Re: [Pyparsing] Unordered set of expressions
Brought to you by:
ptmcg
From: Paul M. <pt...@au...> - 2011-09-30 02:44:35
|
Russell - Still not seeing the problem. from pyparsing import * """ language = expr1 & expr2 & Optional(expr3) & ZeroOrMore(expr4) & ZeroOrMore(expr5) """ A = oneOf("A a")("As") B = oneOf("B b")("Bs") C = oneOf("C c")("Cs") D = oneOf("D d")("Ds") E = oneOf("E e")("Es") lang = A & B & Optional(C) & ZeroOrMore(D) & ZeroOrMore(E) tests = """\ ABCDE ABDE AB BA EDCBA EaEB BeDCADEeDEDDeDD""".splitlines() for t in tests: print t.strip() print lang.parseString(t, parseAll=True).dump() print Prints: ABCDE ['A', 'B', 'C', 'D', 'E'] - As: A - Bs: B - Cs: C - Ds: D - Es: E ABDE ['A', 'B', 'D', 'E'] - As: A - Bs: B - Ds: D - Es: E AB ['A', 'B'] - As: A - Bs: B BA ['B', 'A'] - As: A - Bs: B EDCBA ['E', 'D', 'C', 'B', 'A'] - As: A - Bs: B - Cs: C - Ds: D - Es: E EaEB ['E', 'a', 'E', 'B'] - As: a - Bs: B - Es: ['E', 'E'] BeDCADEeDEDDeDD ['B', 'e', 'D', 'C', 'A', 'D', 'E', 'e', 'D', 'E', 'D', 'D', 'e', 'D', 'D'] - As: A - Bs: B - Cs: C - Ds: ['D', 'D', 'D', 'D', 'D', 'D', 'D'] - Es: ['e', 'E', 'e', 'E', 'e'] No Group required, and the parsed results look okay. -- Paul |