diff options
author | Paul McGuire <ptmcg@austin.rr.com> | 2019-07-06 00:34:19 -0500 |
---|---|---|
committer | Paul McGuire <ptmcg@austin.rr.com> | 2019-07-06 00:34:19 -0500 |
commit | ffee388a149836b1f8d128bc953c1b0363cee82b (patch) | |
tree | 8811ad21cdb6b09c0aecc42328ebd2b6f45341f0 /unitTests.py | |
parent | 8b73519b483f155cfee69e36357833310ffe9dd6 (diff) | |
download | pyparsing-git-ffee388a149836b1f8d128bc953c1b0363cee82b.tar.gz |
Add support for multiple '...' skips in a single expression; `_skippped` results name will always return a list of skipped items
Diffstat (limited to 'unitTests.py')
-rw-r--r-- | unitTests.py | 38 |
1 files changed, 25 insertions, 13 deletions
diff --git a/unitTests.py b/unitTests.py index 2bbb45a..b024b14 100644 --- a/unitTests.py +++ b/unitTests.py @@ -1049,42 +1049,53 @@ class SkipToParserTests(ParseTestCase): # ellipses for SkipTo # (use eval() to avoid syntax problems when running in Py2) e = define_expr('... + Literal("end")') - test(e, "start 123 end", ['start 123 ', 'end'], {'_skipped': 'start 123 '}) + test(e, "start 123 end", ['start 123 ', 'end'], {'_skipped': ['start 123 ']}) e = define_expr('Literal("start") + ... + Literal("end")') - test(e, "start 123 end", ['start', '123 ', 'end'], {'_skipped': '123 '}) + test(e, "start 123 end", ['start', '123 ', 'end'], {'_skipped': ['123 ']}) e = define_expr('Literal("start") + ...') test(e, "start 123 end", None, None) e = define_expr('And(["start", ..., "end"])') - test(e, "start 123 end", ['start', '123 ', 'end'], {'_skipped': '123 '}) + test(e, "start 123 end", ['start', '123 ', 'end'], {'_skipped': ['123 ']}) e = define_expr('And([..., "end"])') - test(e, "start 123 end", ['start 123 ', 'end'], {'_skipped': 'start 123 '}) + test(e, "start 123 end", ['start 123 ', 'end'], {'_skipped': ['start 123 ']}) e = define_expr('"start" + (num_word | ...) + "end"') test(e, "start 456 end", ['start', '456', 'end'], {}) - test(e, "start 123 456 end", ['start', '123', '456 ', 'end'], {'_skipped': '456 '}) - test(e, "start end", ['start', '', 'end'], {'_skipped': 'missing <int>'}) + test(e, "start 123 456 end", ['start', '123', '456 ', 'end'], {'_skipped': ['456 ']}) + test(e, "start end", ['start', '', 'end'], {'_skipped': ['missing <int>']}) + + # e = define_expr('"start" + (num_word | ...)("inner") + "end"') + # test(e, "start 456 end", ['start', '456', 'end'], {'inner': '456'}) e = define_expr('"start" + (alpha_word[0, ...] & num_word[0, ...] | ...) + "end"') test(e, "start 456 red end", ['start', '456', 'red', 'end'], {}) test(e, "start red 456 end", ['start', 'red', '456', 'end'], {}) - test(e, "start 456 red + end", ['start', '456', 'red', '+ ', 'end'], {'_skipped': '+ '}) + test(e, "start 456 red + end", ['start', '456', 'red', '+ ', 'end'], {'_skipped': ['+ ']}) test(e, "start red end", ['start', 'red', 'end'], {}) test(e, "start 456 end", ['start', '456', 'end'], {}) test(e, "start end", ['start', 'end'], {}) - test(e, "start 456 + end", ['start', '456', '+ ', 'end'], {'_skipped': '+ '}) + test(e, "start 456 + end", ['start', '456', '+ ', 'end'], {'_skipped': ['+ ']}) e = define_expr('"start" + (alpha_word[...] & num_word[...] | ...) + "end"') test(e, "start 456 red end", ['start', '456', 'red', 'end'], {}) test(e, "start red 456 end", ['start', 'red', '456', 'end'], {}) - test(e, "start 456 red + end", ['start', '456', 'red', '+ ', 'end'], {'_skipped': '+ '}) - test(e, "start red end", ['start', 'red ', 'end'], {'_skipped': 'red '}) - test(e, "start 456 end", ['start', '456 ', 'end'], {'_skipped': '456 '}) - test(e, "start end", ['start', '', 'end'], {'_skipped': 'missing <{{alpha}... & {int}...}>'}) - test(e, "start 456 + end", ['start', '456 + ', 'end'], {'_skipped': '456 + '}) + test(e, "start 456 red + end", ['start', '456', 'red', '+ ', 'end'], {'_skipped': ['+ ']}) + test(e, "start red end", ['start', 'red ', 'end'], {'_skipped': ['red ']}) + test(e, "start 456 end", ['start', '456 ', 'end'], {'_skipped': ['456 ']}) + test(e, "start end", ['start', '', 'end'], {'_skipped': ['missing <{{alpha}... & {int}...}>']}) + test(e, "start 456 + end", ['start', '456 + ', 'end'], {'_skipped': ['456 + ']}) + + e = define_expr('"start" + (alpha_word | ...) + (num_word | ...) + "end"') + test(e, "start red 456 end", ['start', 'red', '456', 'end'], {}) + test(e, "start red end", ['start', 'red', '', 'end'], {'_skipped': ['missing <int>']}) + test(e, "start end", ['start', '', '', 'end'], {'_skipped': ['missing <alpha>', 'missing <int>']}) + + e = define_expr('Literal("start") + ... + "+" + ... + "end"') + test(e, "start red + 456 end", ['start', 'red ', '+', '456 ', 'end'], {'_skipped': ['red ', '456 ']}) class CustomQuotesTest(ParseTestCase): @@ -4661,6 +4672,7 @@ if __name__ == '__main__': # run specific tests by including them in this list, otherwise # all tests will be run testclasses = [ + SkipToParserTests ] if not testclasses: |