summaryrefslogtreecommitdiff
path: root/examples/make_diagram.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/make_diagram.py')
-rw-r--r--examples/make_diagram.py25
1 files changed, 12 insertions, 13 deletions
diff --git a/examples/make_diagram.py b/examples/make_diagram.py
index 5508f4e..23e435b 100644
--- a/examples/make_diagram.py
+++ b/examples/make_diagram.py
@@ -3,16 +3,7 @@
#
# Sample railroad diagrams of selected pyparsing examples.
#
-# Copyright 2020, Paul McGuire
-
-from pyparsing.diagram import to_railroad, railroad_to_html
-
-
-def make_diagram(expr, output_html="output.html"):
- with open(output_html, "w", encoding="utf-8") as fp:
- railroad = to_railroad(expr)
- fp.write(railroad_to_html(railroad))
-
+# Copyright 2021, Paul McGuire
# Uncomment the related import statement and rerun to construct railroad diagram
@@ -22,14 +13,22 @@ from examples.delta_time import time_expression as imported_expr
# from examples.ebnftest import ebnf_parser as imported_expr
# from examples.jsonParser import jsonObject as imported_expr
# from examples.lucene_grammar import expression as imported_expr
-# from examples.invRegex import parser as imported_expr
+# from examples.invRegex import parser; imported_expr = parser()
# from examples.oc import program as imported_expr
# from examples.mozillaCalendarParser import calendars as imported_expr
# from examples.pgn import pgnGrammar as imported_expr
-# from examples.idlParse import CORBA_IDL_BNF as imported_expr
+# from examples.idlParse import CORBA_IDL_BNF; imported_expr = CORBA_IDL_BNF()
# from examples.chemicalFormulas import formula as imported_expr
# from examples.romanNumerals import romanNumeral as imported_expr
# from examples.protobuf_parser import parser as imported_expr
# from examples.parsePythonValue import listItem as imported_expr
+# from examples.one_to_ninety_nine import one_to_99 as imported_expr
+# from examples.simpleSQL import simpleSQL as imported_expr
+# from examples.simpleBool import boolExpr as imported_expr
+grammar = imported_expr
+
+# or define a custom grammar here
+# import pyparsing as pp
+# grammar = pp.Or(["foo", "bar"]) + pp.Word(pp.nums) + pp.pyparsing_common.uuid
-make_diagram(imported_expr)
+grammar.create_diagram(output_html="output.html", show_results_names=True)