{ "name": "tiger", "rules": { "source_file": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_expr" } ] }, "_expr": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "nil" }, { "type": "SYMBOL", "name": "integer_literal" }, { "type": "SYMBOL", "name": "string_literal" } ] }, "integer_literal": { "type": "PATTERN", "value": "[0-9]+" }, "string_literal": { "type": "SEQ", "members": [ { "type": "STRING", "value": "\"" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "escape_sequence" }, { "type": "PATTERN", "value": "[^\"\\\\]+" } ] } }, { "type": "STRING", "value": "\"" } ] }, "escape_sequence": { "type": "IMMEDIATE_TOKEN", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "\\" }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "a" }, { "type": "STRING", "value": "b" }, { "type": "STRING", "value": "f" }, { "type": "STRING", "value": "n" }, { "type": "STRING", "value": "r" }, { "type": "STRING", "value": "t" }, { "type": "STRING", "value": "v" } ] }, { "type": "PATTERN", "value": "[0-3][0-7]{2}" }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "x" }, { "type": "PATTERN", "value": "[0-9a-fA-F]{2}" } ] }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "\\" }, { "type": "STRING", "value": "\"" } ] } ] } ] } } }, "extras": [ { "type": "PATTERN", "value": "\\s" } ], "conflicts": [], "precedences": [], "externals": [], "inline": [], "supertypes": [] }