summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorptmcg <ptmcg@austin.rr.com>2021-09-08 07:44:31 -0500
committerptmcg <ptmcg@austin.rr.com>2021-09-08 07:44:31 -0500
commit154d3d14563a3145ba13583d29cab6dff3e9c037 (patch)
treed7655f624998dd910caf5c833dda2cb4a68aad85
parent6001307267b3a735f8c9bd33322d7e446d4ff3d7 (diff)
downloadpyparsing-git-226-railroad-updates.tar.gz
Fix parsing ambiguity in railroad_diagram_demo.py so that parser can actually parse a valid input string226-railroad-updates
-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])