Procházet zdrojové kódy

Reset flex's internal buffer (depends on new pybison version).

Sander Mathijs van Veen před 13 roky
rodič
revize
ed513ed6ac
2 změnil soubory, kde provedl 10 přidání a 1 odebrání
  1. 1 1
      external/pybison
  2. 9 0
      src/parser.py

+ 1 - 1
external/pybison

@@ -1 +1 @@
-Subproject commit 91979192cf3f03df25e88fadfabe893321eb1d9c
+Subproject commit 0a49121e413712be4d0d27ca7142f16ff95de4df

+ 9 - 0
src/parser.py

@@ -115,6 +115,8 @@ class Parser(BisonParser):
         self.reset()
 
     def reset(self):
+        super(Parser, self).reset()
+
         self.read_buffer = ''
         self.read_queue = Queue.Queue()
 
@@ -687,6 +689,13 @@ class Parser(BisonParser):
 
     int yycolumn = 0;
 
+    void reset_flex_buffer(void) {
+        yycolumn = 0;
+        yylineno = 0;
+        YY_FLUSH_BUFFER;
+        BEGIN(0);
+    }
+
     #define YY_USER_ACTION \
             yylloc.first_line = yylloc.last_line = yylineno; \
             yylloc.first_column = yycolumn; \