{ "name": "blueprint", "rules": { "source_file": { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_definition" } }, "_definition": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "assignment" } ] }, "comment": { "type": "SEQ", "members": [ { "type": "STRING", "value": "#" }, { "type": "PATTERN", "value": ".*" } ] }, "assignment": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "FIELD", "name": "operator", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "=" }, { "type": "STRING", "value": "+=" } ] } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_expr" } } ] }, "_expr": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "integer_literal" } ] }, "identifier": { "type": "PATTERN", "value": "[_\\p{XID_Start}][_\\p{XID_Continue}]*" }, "integer_literal": { "type": "PATTERN", "value": "[0-9]+" } }, "extras": [ { "type": "PATTERN", "value": "\\s+" }, { "type": "SYMBOL", "name": "comment" } ], "conflicts": [], "precedences": [], "externals": [], "inline": [], "supertypes": [] }