{ "name": "inline_rules", "extras": [ {"type": "PATTERN", "value": "\\s"} ], "inline": [ "expression" ], "rules": { "program": { "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "statement" } }, "statement": { "type": "SEQ", "members": [ {"type": "SYMBOL", "name": "expression"}, {"type": "STRING", "value": ";"} ] }, "expression": { "type": "CHOICE", "members": [ {"type": "SYMBOL", "name": "sum"}, {"type": "SYMBOL", "name": "product"}, {"type": "SYMBOL", "name": "number"}, {"type": "SYMBOL", "name": "parenthesized_expression"} ] }, "parenthesized_expression": { "type": "SEQ", "members": [ {"type": "STRING", "value": "("}, {"type": "SYMBOL", "name": "expression"}, {"type": "STRING", "value": ")"} ] }, "sum": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ {"type": "SYMBOL", "name": "expression"}, {"type": "STRING", "value": "+"}, {"type": "SYMBOL", "name": "expression"} ] } }, "product": { "type": "PREC_LEFT", "value": 2, "content": { "type": "SEQ", "members": [ {"type": "SYMBOL", "name": "expression"}, {"type": "STRING", "value": "*"}, {"type": "SYMBOL", "name": "expression"} ] } }, "number": {"type": "PATTERN", "value": "\\d+"} } }