Reviewers: ,

Message:
Committed patchset #1 manually as r17636 (presubmit successful).

Description:
Experimental lexer generator: Code gen fix.

The generated code now does something reasonable for simple exaples.

BUG=
[email protected]

Committed: https://code.google.com/p/v8/source/detail?r=17636

Please review this at https://codereview.chromium.org/58943004/

SVN Base: https://v8.googlecode.com/svn/branches/experimental/parser

Affected files (+3, -2 lines):
  M tools/lexer_generator/dfa.py


Index: tools/lexer_generator/dfa.py
diff --git a/tools/lexer_generator/dfa.py b/tools/lexer_generator/dfa.py
index 98f7559c9b65723a24942267bc0c7231a144a396..f31f8c092bc37d78b79051520acaf099047faec0 100644
--- a/tools/lexer_generator/dfa.py
+++ b/tools/lexer_generator/dfa.py
@@ -53,7 +53,7 @@ class DfaState(AutomatonState):
   def transitions(self):
     return self.__transitions

-  def to_code(self):
+  def to_code(self, start_node_number):
     # FIXME: add different check types (if, switch, lookup table)
     # FIXME: add action + break / continue
     # FIXME: add default action
@@ -78,6 +78,7 @@ fprintf(stderr, "state %s, char at hand is %%c (%%d)\\n", c, c);
         code += 'return 1;'
       else:
         code += self.action()[1];
+        code += 'goto code_%s;' % start_node_number

     return code

@@ -165,5 +166,5 @@ char c = *cursor;
 goto code_%s;
 ''' % (self.__start.node_number())
     for n in self.__name_map.values():
-      code += n.to_code()
+      code += n.to_code(self.__start.node_number())
     return code


--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to