{ "name": "uses_current_column", "externals": [ {"type": "SYMBOL", "name": "_indent"}, {"type": "SYMBOL", "name": "_dedent"}, {"type": "SYMBOL", "name": "_newline"} ], "extras": [ {"type": "PATTERN", "value": "\\s"} ], "rules": { "block": { "type": "REPEAT1", "content": {"type": "SYMBOL", "name": "_statement"} }, "_statement": { "type": "SEQ", "members": [ {"type": "SYMBOL", "name": "_expression"}, {"type": "SYMBOL", "name": "_newline"} ] }, "_expression": { "type": "CHOICE", "members": [ {"type": "SYMBOL", "name": "do_expression"}, {"type": "SYMBOL", "name": "binary_expression"}, {"type": "SYMBOL", "name": "identifier"} ] }, "do_expression": { "type": "SEQ", "members": [ {"type": "STRING", "value": "do"}, {"type": "SYMBOL", "name": "_indent"}, {"type": "SYMBOL", "name": "block"}, {"type": "SYMBOL", "name": "_dedent"} ] }, "binary_expression": { "type": "PREC_LEFT", "value": 1, "content": { "type": "SEQ", "members": [ {"type": "SYMBOL", "name": "_expression"}, { "type": "CHOICE", "members": [ {"type": "STRING", "value": "="}, {"type": "STRING", "value": "+"}, {"type": "STRING", "value": "-"} ] }, {"type": "SYMBOL", "name": "_expression"} ] } }, "identifier": {"type": "PATTERN", "value": "\\w+"} } }