| @@ -0,0 +1,26 @@ | |||||
| # | |||||
| # This example shows how to use Lark's templates to achieve cleaner grammars | |||||
| # | |||||
| from lark import Lark | |||||
| grammar = r""" | |||||
| start: list | dict | |||||
| list: "[" _seperated{atom, ","} "]" | |||||
| dict: "{" _seperated{key_value, ","} "}" | |||||
| key_value: atom ":" atom | |||||
| _seperated{x, sep}: x (sep x)* // Define a sequence of 'x sep x sep x ...' | |||||
| atom: NUMBER | ESCAPED_STRING | |||||
| %import common (NUMBER, ESCAPED_STRING, WS) | |||||
| %ignore WS | |||||
| """ | |||||
| parser = Lark(grammar) | |||||
| print(parser.parse('[1, "a", 2]')) | |||||
| print(parser.parse('{"a": 2, "b": 6}')) | |||||