summaryrefslogtreecommitdiff
path: root/tikzit/src/data/tikzgraphassembler.cpp
diff options
context:
space:
mode:
authorAleks Kissinger <aleks0@gmail.com>2017-01-22 14:19:41 +0100
committerAleks Kissinger <aleks0@gmail.com>2017-01-22 14:19:41 +0100
commitdf9f92b955ceb18a89b68dacdc3a2ab820a36123 (patch)
tree45fc97744261db1a9ce0a1078129bf805165be3a /tikzit/src/data/tikzgraphassembler.cpp
parent48e69ae28bb8b40d5a2281f0ea26141220b3bf5e (diff)
parsing
Diffstat (limited to 'tikzit/src/data/tikzgraphassembler.cpp')
-rw-r--r--tikzit/src/data/tikzgraphassembler.cpp21
1 files changed, 19 insertions, 2 deletions
diff --git a/tikzit/src/data/tikzgraphassembler.cpp b/tikzit/src/data/tikzgraphassembler.cpp
index d8e3963..c05a5c8 100644
--- a/tikzit/src/data/tikzgraphassembler.cpp
+++ b/tikzit/src/data/tikzgraphassembler.cpp
@@ -1,14 +1,31 @@
#include "tikzgraphassembler.h"
+#include "tikzparserdefs.h"
+#include "tikzparser.parser.hpp"
+#include "tikzlexer.h"
+
+int yyparse(void *scanner);
+
+
TikzGraphAssembler::TikzGraphAssembler(Graph *graph, QObject *parent) :
- _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;