{ "name": "CMake", "rules": { "source_file": { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "command_invocation" } }, "line_ending": { "type": "SYMBOL", "name": "newline" }, "seperation": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "space" }, { "type": "SYMBOL", "name": "line_ending" } ] }, "space": { "type": "PATTERN", "value": "[ \\t]+" }, "newline": { "type": "PATTERN", "value": "\\n" }, "identifier": { "type": "PATTERN", "value": "[A-Za-z_][A-Za-z0-9_]*" }, "argument": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "unquoted_argument" }, { "type": "SYMBOL", "name": "bracket_argument" } ] }, "unquoted_argument": { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[^ ()#\\\"\\\\]" } }, "bracket_argument": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_bracket_open" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_bracket_content" }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "_bracket_close" } ] }, "_bracket_open": { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "REPEAT", "content": { "type": "STRING", "value": "=" } }, { "type": "STRING", "value": "[" } ] }, "_bracket_content": { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[^\\]]" } }, "_bracket_close": { "type": "SEQ", "members": [ { "type": "STRING", "value": "]" }, { "type": "REPEAT", "content": { "type": "STRING", "value": "=" } }, { "type": "STRING", "value": "]" } ] }, "arguments": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "argument" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_seperated_arguments" } } ] }, "_seperated_arguments": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "seperation" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "argument" }, { "type": "BLANK" } ] } ] } }, "command_invocation": { "type": "SEQ", "members": [ { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "space" } }, { "type": "SYMBOL", "name": "identifier" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "space" } }, { "type": "STRING", "value": "(" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "seperation" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "arguments" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] } }, "extras": [ { "type": "PATTERN", "value": "\\s" } ], "conflicts": [], "precedences": [], "externals": [], "inline": [], "supertypes": [] }