{ "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_]*" }, "escape_sequence": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_escape_identity" }, { "type": "SYMBOL", "name": "_escape_encoded" }, { "type": "SYMBOL", "name": "_escape_semicolon" } ] }, "_escape_identity": { "type": "PATTERN", "value": "\\\\[^A-Za-z0-9;]" }, "_escape_encoded": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "\\t" }, { "type": "STRING", "value": "\\r" }, { "type": "STRING", "value": "\\n" } ] }, "_escape_semicolon": { "type": "STRING", "value": ";" }, "argument": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "bracket_argument" }, { "type": "SYMBOL", "name": "quoted_argument" }, { "type": "SYMBOL", "name": "unquoted_argument" } ] }, "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": "]" } ] }, "quoted_argument": { "type": "SEQ", "members": [ { "type": "STRING", "value": "\"" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_quoted_element" } }, { "type": "STRING", "value": "\"" } ] }, "_quoted_element": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[^\\\\\"]" }, { "type": "SYMBOL", "name": "escape_sequence" }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "\\" }, { "type": "SYMBOL", "name": "newline" } ] } ] }, "unquoted_argument": { "type": "REPEAT1", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[^ ()#\\\"\\\\]" }, { "type": "SYMBOL", "name": "escape_sequence" } ] } }, "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": "seperation" } }, { "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": [] }