aboutsummaryrefslogtreecommitdiff
path: root/src/parser/parse_tree.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/parser/parse_tree.cpp')
-rw-r--r--src/parser/parse_tree.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/parser/parse_tree.cpp b/src/parser/parse_tree.cpp
index 76c67b0..bbafeb8 100644
--- a/src/parser/parse_tree.cpp
+++ b/src/parser/parse_tree.cpp
@@ -1,6 +1,7 @@
#include "parse_tree.h"
#include "parse_directive.h"
#include "parse_element.h"
+#include "parser_state.h"
#include "specs.h"
#include <sstream>
@@ -310,9 +311,10 @@ ParseTree::ParseTree(const string &name, const ParseSubcircuit &subcircuit, cons
}
yyscan_t scanner;
+ ParserState *parser_state = new ParserState;
YY_BUFFER_STATE buf;
- yylex_init(&scanner);
+ yylex_init_extra(parser_state, &scanner);
buf = yy_scan_string(subcircuit.netlist.c_str(), scanner);
yy_switch_to_buffer(buf, scanner);
@@ -320,6 +322,7 @@ ParseTree::ParseTree(const string &name, const ParseSubcircuit &subcircuit, cons
//yy_delete_buffer(buf, scanner);
yylex_destroy(scanner);
+ delete parser_state;
// Return if unsuccessful
if (parsing_result != 0) {