From 768e097abd17d07dd2748894b4dc1b09471dd6da Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Fri, 26 Jan 2018 22:34:15 +0900 Subject: started implementing project loader --- src/data/tikzassembler.cpp | 54 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 src/data/tikzassembler.cpp (limited to 'src/data/tikzassembler.cpp') diff --git a/src/data/tikzassembler.cpp b/src/data/tikzassembler.cpp new file mode 100644 index 0000000..456464a --- /dev/null +++ b/src/data/tikzassembler.cpp @@ -0,0 +1,54 @@ +#include "tikzassembler.h" + +#include "tikzparserdefs.h" +#include "tikzparser.parser.hpp" +#include "tikzlexer.h" + +int yyparse(void *scanner); + +TikzAssembler::TikzAssembler(Graph *graph, QObject *parent) : + QObject(parent), _graph(graph), _project(0) +{ + yylex_init(&scanner); + yyset_extra(this, scanner); +} + +TikzAssembler::TikzAssembler(Project *project, QObject *parent) : + QObject(parent), _graph(0), _project(project) +{ + yylex_init(&scanner); + yyset_extra(this, scanner); +} + +void TikzAssembler::addNodeToMap(Node *n) { _nodeMap.insert(n->name(), n); } +Node *TikzAssembler::nodeWithName(QString name) { return _nodeMap[name]; } + +bool TikzAssembler::parse(const QString &tikz) +{ + yy_scan_string(tikz.toLatin1().data(), scanner); + int result = yyparse(scanner); + + if (result == 0) return true; + else return false; +} + +Graph *TikzAssembler::graph() const +{ + return _graph; +} + +Project *TikzAssembler::project() const +{ + return _project; +} + +bool TikzAssembler::isGraph() const +{ + return _graph != 0; +} + +bool TikzAssembler::isProject() const +{ + return _project != 0; +} + -- cgit v1.2.3