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.