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

Unified Diff: tools/lexer_generator/generator.py

Issue 59663004: Experimental parser: add html arg to generator (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') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/lexer_generator/generator.py
diff --git a/tools/lexer_generator/generator.py b/tools/lexer_generator/generator.py
index 51962a9f867188d72b26e27c880808f0eac9cf21..a257568a8ec10b194387bdcd29298f9b4b8a6200 100644
--- a/tools/lexer_generator/generator.py
+++ b/tools/lexer_generator/generator.py
@@ -25,6 +25,7 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+import argparse
from nfa import Nfa, NfaBuilder
from dfa import Dfa
from rule_parser import RuleParser, RuleParserState
@@ -88,14 +89,24 @@ def process_rules(parser_state):
(start, dfa_nodes) = nfa.compute_dfa()
dfa = Dfa(start, dfa_nodes)
html_data.append((rule_name, nfa, dfa))
- html = generate_html(html_data)
- # print html
+ return html_data
+
+if __name__ == '__main__':
+
+ parser = argparse.ArgumentParser()
+ parser.add_argument('--html')
+ args = parser.parse_args()
+
+ re_file = 'src/lexer/lexer_py.re'
-def parse_file(file_name):
parser_state = RuleParserState()
- with open(file_name, 'r') as f:
+ with open(re_file, 'r') as f:
RuleParser.parse(f.read(), parser_state)
- process_rules(parser_state)
+ html_data = process_rules(parser_state)
-if __name__ == '__main__':
- parse_file('src/lexer/lexer_py.re')
+ html_file = args.html
+ if html_file:
+ html = generate_html(html_data)
+ with open(args.html, 'w') as f:
+ f.write(html)
+ print "wrote html to %s" % html_file
« no previous file with comments | « tools/lexer_generator/automaton.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698