From 3688b0053b143c9e0717ecd3739b476e8c6ad0fc Mon Sep 17 00:00:00 2001 From: Erez Sh Date: Wed, 22 Jan 2020 15:13:12 +0200 Subject: [PATCH] Disallow '. .' for '..' syntax (Issue #513) --- lark/load_grammar.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lark/load_grammar.py b/lark/load_grammar.py index ba26fe2..051f8cd 100644 --- a/lark/load_grammar.py +++ b/lark/load_grammar.py @@ -77,7 +77,8 @@ TERMINALS = { '_COLON': ':', '_COMMA': ',', '_OR': r'\|', - '_DOT': r'\.', + '_DOT': r'\.(?!\.)', + '_DOTDOT': r'\.\.', 'TILDE': '~', 'RULE': '!?[_?]?[a-z][_a-z0-9]*', 'TERMINAL': '_?[A-Z][_A-Z0-9]*', @@ -112,7 +113,7 @@ RULES = { '?expr': ['atom', 'atom OP', 'atom TILDE NUMBER', - 'atom TILDE NUMBER _DOT _DOT NUMBER', + 'atom TILDE NUMBER _DOTDOT NUMBER', ], '?atom': ['_LPAR expansions _RPAR', @@ -130,7 +131,7 @@ RULES = { '?name': ['RULE', 'TERMINAL'], 'maybe': ['_LBRA expansions _RBRA'], - 'range': ['STRING _DOT _DOT STRING'], + 'range': ['STRING _DOTDOT STRING'], 'term': ['TERMINAL _COLON expansions _NL', 'TERMINAL _DOT NUMBER _COLON expansions _NL'],