diff options
Diffstat (limited to 'src/data/tikzgraphassembler.cpp')
-rw-r--r-- | src/data/tikzgraphassembler.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/data/tikzgraphassembler.cpp b/src/data/tikzgraphassembler.cpp new file mode 100644 index 0000000..c05a5c8 --- /dev/null +++ b/src/data/tikzgraphassembler.cpp @@ -0,0 +1,33 @@ +#include "tikzgraphassembler.h" + +#include "tikzparserdefs.h" +#include "tikzparser.parser.hpp" +#include "tikzlexer.h" + +int yyparse(void *scanner); + + +TikzGraphAssembler::TikzGraphAssembler(Graph *graph, QObject *parent) : + QObject(parent), _graph(graph) +{ + yylex_init(&scanner); + yyset_extra(this, scanner); +} + +void TikzGraphAssembler::addNodeToMap(Node *n) { _nodeMap.insert(n->name(), n); } +Node *TikzGraphAssembler::nodeWithName(QString name) { return _nodeMap[name]; } + +bool TikzGraphAssembler::parse(const QString &tikz) +{ + yy_scan_string(tikz.toLatin1().data(), scanner); + int result = yyparse(scanner); + + if (result == 0) return true; + else return false; +} + +Graph *TikzGraphAssembler::graph() const +{ + return _graph; +} + |