summaryrefslogtreecommitdiff
path: root/examples/railroad_diagram_demo.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/railroad_diagram_demo.py')
-rw-r--r--examples/railroad_diagram_demo.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/examples/railroad_diagram_demo.py b/examples/railroad_diagram_demo.py
index b07153e..8995bdc 100644
--- a/examples/railroad_diagram_demo.py
+++ b/examples/railroad_diagram_demo.py
@@ -6,12 +6,14 @@ integer = pp.Word(pp.nums).setName("integer")
plus_minus = pp.Char("+-")
mult_div = pp.Char("*/")
street_address = pp.Group(integer("house_number") + word[1, ...]("street_name")).setName("street_address")
+time = pp.Regex(r"\d\d:\d\d")
-grammar = (integer[1, ...]
- + (ppc.ipv4_address & word & pp.Optional(integer)).setName("header with various elements")("header")
+grammar = (pp.Group(integer[1, ...])
+ + (ppc.ipv4_address & word("header_word") & pp.Optional(time)).setName("header with various elements")("header")
+ street_address("address")
+ pp.Group(pp.counted_array(word))
+ pp.Group(integer * 8)("data")
+ + pp.Group(pp.Word("abc") + pp.Word("def")*3)
+ pp.infix_notation(integer,
[
(plus_minus().setName("leading sign"), 1, pp.opAssoc.RIGHT),
@@ -24,3 +26,6 @@ grammar = (integer[1, ...]
grammar.create_diagram("railroad_diagram_demo.html", vertical=6, show_results_names=True)
+
+test = """1 2 3 ABC 1.2.3.4 12:45 123 Main St 4 abc def ghi jkl 5 5 5 5 5 5 5 5 a d d d 2+2 bob 5.6.7.8"""
+result = grammar.runTests([test])