Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(21)

Unified Diff: tools/lexer_generator/code_generator.jinja

Issue 85853003: Experimental parser: simplify goto logic (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/parser
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/lexer_generator/automaton.py ('k') | tools/lexer_generator/code_generator.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/lexer_generator/code_generator.jinja
diff --git a/tools/lexer_generator/code_generator.jinja b/tools/lexer_generator/code_generator.jinja
index 0b38707b4125ab3d00b2c3343b3fc73b559540aa..e86655dc43dbdbd1df92a172586a18aed19d8480 100644
--- a/tools/lexer_generator/code_generator.jinja
+++ b/tools/lexer_generator/code_generator.jinja
@@ -87,26 +87,30 @@
DO_LINE_TERMINATOR();
{% elif type == 'token' %}
DO_TOKEN(Token::{{value}})
- {% elif type == 'goto' %}
- goto code_after_entry_{{value}};
+ {% elif type == 'goto_start' %}
+ goto code_{{value[0]}};
{% elif type == 'store_token' %}
stored_token = Token::{{value}};
+ {% elif type == 'store_token_and_goto' %}
+ stored_token = Token::{{value[0]}};
+ goto code_after_entry_{{value[1]}};
{% elif type == 'do_stored_token' %}
DO_TOKEN(stored_token)
{% elif type == 'do_token_and_go_forward' %}
DO_TOKEN_AND_GO_FORWARD(Token::{{value}})
{% elif type == 'harmony_token' %}
if (harmony_{{value[0]}}_) {
- DO_TOKEN(Token::{{value[1][0]}});
+ DO_TOKEN(Token::{{value[1]}});
} else {
- DO_TOKEN(Token::{{value[1][1]}});
+ DO_TOKEN(Token::{{value[2]}});
}
- {% elif type == 'store_harmony_token' %}
+ {% elif type == 'store_harmony_token_and_goto' %}
if (harmony_{{value[0]}}_) {
- stored_token = Token::{{value[1][0]}};
+ stored_token = Token::{{value[1]}};
} else {
- stored_token = Token::{{value[1][1]}};
+ stored_token = Token::{{value[2]}};
}
+ goto code_after_entry_{{value[3]}};
{% elif type == 'set_marker' %}
marker_ = cursor_ - {{value}};
{% else %}
« no previous file with comments | « tools/lexer_generator/automaton.py ('k') | tools/lexer_generator/code_generator.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698