{ "name": "cmake", "rules": { "source_file": { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_command_invocation" } }, "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": ";" }, "variable": { "type": "PREC_LEFT", "value": 0, "content": { "type": "REPEAT1", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[a-zA-Z0-9/_.+-]" }, { "type": "SYMBOL", "name": "escape_sequence" } ] } } }, "variable_ref": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "normal_var" }, { "type": "SYMBOL", "name": "env_var" }, { "type": "SYMBOL", "name": "cache_var" } ] }, "normal_var": { "type": "SEQ", "members": [ { "type": "STRING", "value": "${" }, { "type": "SYMBOL", "name": "variable" }, { "type": "STRING", "value": "}" } ] }, "env_var": { "type": "SEQ", "members": [ { "type": "STRING", "value": "$ENV" }, { "type": "STRING", "value": "{" }, { "type": "SYMBOL", "name": "variable" }, { "type": "STRING", "value": "}" } ] }, "cache_var": { "type": "SEQ", "members": [ { "type": "STRING", "value": "$CACHE" }, { "type": "STRING", "value": "{" }, { "type": "SYMBOL", "name": "variable" }, { "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": "CHOICE", "members": [ { "type": "SYMBOL", "name": "quoted_element" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "\"" } ] }, "quoted_element": { "type": "REPEAT1", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "variable_ref" }, { "type": "PATTERN", "value": "[^\\\\\"]" }, { "type": "SYMBOL", "name": "escape_sequence" }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "\\" }, { "type": "PATTERN", "value": "\\n+" } ] } ] } }, "unquoted_argument": { "type": "REPEAT1", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "variable_ref" }, { "type": "PATTERN", "value": "[^ ()#\\\"\\\\]" }, { "type": "SYMBOL", "name": "escape_sequence" } ] } }, "if_command": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "if" }, { "type": "STRING", "value": "(" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[ \\t]+" }, { "type": "PATTERN", "value": "\\n+" } ] } }, { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "argument" }, { "type": "STRING", "value": "1" }, { "type": "STRING", "value": "ON" }, { "type": "STRING", "value": "YES" }, { "type": "STRING", "value": "TRUE" }, { "type": "STRING", "value": "Y" }, { "type": "STRING", "value": "0" }, { "type": "STRING", "value": "OFF" }, { "type": "STRING", "value": "NO" }, { "type": "STRING", "value": "FALSE" }, { "type": "STRING", "value": "N" }, { "type": "STRING", "value": "IGNORE" }, { "type": "STRING", "value": "NOTFOUND" }, { "type": "STRING", "value": "NOT" }, { "type": "STRING", "value": "AND" }, { "type": "STRING", "value": "OR" }, { "type": "STRING", "value": "COMMAND" }, { "type": "STRING", "value": "POLICY" }, { "type": "STRING", "value": "TARGET" }, { "type": "STRING", "value": "TEST" }, { "type": "STRING", "value": "DEFINED" }, { "type": "STRING", "value": "CACHE" }, { "type": "STRING", "value": "ENV" }, { "type": "STRING", "value": "IN_LIST" }, { "type": "STRING", "value": "EXISTS" }, { "type": "STRING", "value": "IS_NEWER_THAN" }, { "type": "STRING", "value": "IS_DIRECTORY" }, { "type": "STRING", "value": "IS_SYMLINK" }, { "type": "STRING", "value": "IS_ABSOLUTE" }, { "type": "STRING", "value": "MATCHES" }, { "type": "STRING", "value": "LESS" }, { "type": "STRING", "value": "GREATER" }, { "type": "STRING", "value": "EQUAL" }, { "type": "STRING", "value": "LESS_EQUAL" }, { "type": "STRING", "value": "GREATER_EQUAL" }, { "type": "STRING", "value": "STRLESS" }, { "type": "STRING", "value": "STRGREATER" }, { "type": "STRING", "value": "STREQUAL" }, { "type": "STRING", "value": "STRLESS_EQUAL" }, { "type": "STRING", "value": "STRGREATER_EQUAL" }, { "type": "STRING", "value": "VERSION_LESS" }, { "type": "STRING", "value": "VERSION_GREATER" }, { "type": "STRING", "value": "VERSION_EQUAL" }, { "type": "STRING", "value": "VERSION_LESS_EQUAL" }, { "type": "STRING", "value": "VERSION_GREATER_EQUAL" } ] }, { "type": "REPEAT", "content": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[ \\t]+" }, { "type": "PATTERN", "value": "\\n+" } ] } }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "argument" }, { "type": "STRING", "value": "1" }, { "type": "STRING", "value": "ON" }, { "type": "STRING", "value": "YES" }, { "type": "STRING", "value": "TRUE" }, { "type": "STRING", "value": "Y" }, { "type": "STRING", "value": "0" }, { "type": "STRING", "value": "OFF" }, { "type": "STRING", "value": "NO" }, { "type": "STRING", "value": "FALSE" }, { "type": "STRING", "value": "N" }, { "type": "STRING", "value": "IGNORE" }, { "type": "STRING", "value": "NOTFOUND" }, { "type": "STRING", "value": "NOT" }, { "type": "STRING", "value": "AND" }, { "type": "STRING", "value": "OR" }, { "type": "STRING", "value": "COMMAND" }, { "type": "STRING", "value": "POLICY" }, { "type": "STRING", "value": "TARGET" }, { "type": "STRING", "value": "TEST" }, { "type": "STRING", "value": "DEFINED" }, { "type": "STRING", "value": "CACHE" }, { "type": "STRING", "value": "ENV" }, { "type": "STRING", "value": "IN_LIST" }, { "type": "STRING", "value": "EXISTS" }, { "type": "STRING", "value": "IS_NEWER_THAN" }, { "type": "STRING", "value": "IS_DIRECTORY" }, { "type": "STRING", "value": "IS_SYMLINK" }, { "type": "STRING", "value": "IS_ABSOLUTE" }, { "type": "STRING", "value": "MATCHES" }, { "type": "STRING", "value": "LESS" }, { "type": "STRING", "value": "GREATER" }, { "type": "STRING", "value": "EQUAL" }, { "type": "STRING", "value": "LESS_EQUAL" }, { "type": "STRING", "value": "GREATER_EQUAL" }, { "type": "STRING", "value": "STRLESS" }, { "type": "STRING", "value": "STRGREATER" }, { "type": "STRING", "value": "STREQUAL" }, { "type": "STRING", "value": "STRLESS_EQUAL" }, { "type": "STRING", "value": "STRGREATER_EQUAL" }, { "type": "STRING", "value": "VERSION_LESS" }, { "type": "STRING", "value": "VERSION_GREATER" }, { "type": "STRING", "value": "VERSION_EQUAL" }, { "type": "STRING", "value": "VERSION_LESS_EQUAL" }, { "type": "STRING", "value": "VERSION_GREATER_EQUAL" } ] }, { "type": "BLANK" } ] } ] } } } ] }, { "type": "STRING", "value": ")" } ] }, "elseif_command": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "elseif" }, { "type": "STRING", "value": "(" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[ \\t]+" }, { "type": "PATTERN", "value": "\\n+" } ] } }, { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "argument" }, { "type": "STRING", "value": "1" }, { "type": "STRING", "value": "ON" }, { "type": "STRING", "value": "YES" }, { "type": "STRING", "value": "TRUE" }, { "type": "STRING", "value": "Y" }, { "type": "STRING", "value": "0" }, { "type": "STRING", "value": "OFF" }, { "type": "STRING", "value": "NO" }, { "type": "STRING", "value": "FALSE" }, { "type": "STRING", "value": "N" }, { "type": "STRING", "value": "IGNORE" }, { "type": "STRING", "value": "NOTFOUND" }, { "type": "STRING", "value": "NOT" }, { "type": "STRING", "value": "AND" }, { "type": "STRING", "value": "OR" }, { "type": "STRING", "value": "COMMAND" }, { "type": "STRING", "value": "POLICY" }, { "type": "STRING", "value": "TARGET" }, { "type": "STRING", "value": "TEST" }, { "type": "STRING", "value": "DEFINED" }, { "type": "STRING", "value": "CACHE" }, { "type": "STRING", "value": "ENV" }, { "type": "STRING", "value": "IN_LIST" }, { "type": "STRING", "value": "EXISTS" }, { "type": "STRING", "value": "IS_NEWER_THAN" }, { "type": "STRING", "value": "IS_DIRECTORY" }, { "type": "STRING", "value": "IS_SYMLINK" }, { "type": "STRING", "value": "IS_ABSOLUTE" }, { "type": "STRING", "value": "MATCHES" }, { "type": "STRING", "value": "LESS" }, { "type": "STRING", "value": "GREATER" }, { "type": "STRING", "value": "EQUAL" }, { "type": "STRING", "value": "LESS_EQUAL" }, { "type": "STRING", "value": "GREATER_EQUAL" }, { "type": "STRING", "value": "STRLESS" }, { "type": "STRING", "value": "STRGREATER" }, { "type": "STRING", "value": "STREQUAL" }, { "type": "STRING", "value": "STRLESS_EQUAL" }, { "type": "STRING", "value": "STRGREATER_EQUAL" }, { "type": "STRING", "value": "VERSION_LESS" }, { "type": "STRING", "value": "VERSION_GREATER" }, { "type": "STRING", "value": "VERSION_EQUAL" }, { "type": "STRING", "value": "VERSION_LESS_EQUAL" }, { "type": "STRING", "value": "VERSION_GREATER_EQUAL" } ] }, { "type": "REPEAT", "content": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[ \\t]+" }, { "type": "PATTERN", "value": "\\n+" } ] } }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "argument" }, { "type": "STRING", "value": "1" }, { "type": "STRING", "value": "ON" }, { "type": "STRING", "value": "YES" }, { "type": "STRING", "value": "TRUE" }, { "type": "STRING", "value": "Y" }, { "type": "STRING", "value": "0" }, { "type": "STRING", "value": "OFF" }, { "type": "STRING", "value": "NO" }, { "type": "STRING", "value": "FALSE" }, { "type": "STRING", "value": "N" }, { "type": "STRING", "value": "IGNORE" }, { "type": "STRING", "value": "NOTFOUND" }, { "type": "STRING", "value": "NOT" }, { "type": "STRING", "value": "AND" }, { "type": "STRING", "value": "OR" }, { "type": "STRING", "value": "COMMAND" }, { "type": "STRING", "value": "POLICY" }, { "type": "STRING", "value": "TARGET" }, { "type": "STRING", "value": "TEST" }, { "type": "STRING", "value": "DEFINED" }, { "type": "STRING", "value": "CACHE" }, { "type": "STRING", "value": "ENV" }, { "type": "STRING", "value": "IN_LIST" }, { "type": "STRING", "value": "EXISTS" }, { "type": "STRING", "value": "IS_NEWER_THAN" }, { "type": "STRING", "value": "IS_DIRECTORY" }, { "type": "STRING", "value": "IS_SYMLINK" }, { "type": "STRING", "value": "IS_ABSOLUTE" }, { "type": "STRING", "value": "MATCHES" }, { "type": "STRING", "value": "LESS" }, { "type": "STRING", "value": "GREATER" }, { "type": "STRING", "value": "EQUAL" }, { "type": "STRING", "value": "LESS_EQUAL" }, { "type": "STRING", "value": "GREATER_EQUAL" }, { "type": "STRING", "value": "STRLESS" }, { "type": "STRING", "value": "STRGREATER" }, { "type": "STRING", "value": "STREQUAL" }, { "type": "STRING", "value": "STRLESS_EQUAL" }, { "type": "STRING", "value": "STRGREATER_EQUAL" }, { "type": "STRING", "value": "VERSION_LESS" }, { "type": "STRING", "value": "VERSION_GREATER" }, { "type": "STRING", "value": "VERSION_EQUAL" }, { "type": "STRING", "value": "VERSION_LESS_EQUAL" }, { "type": "STRING", "value": "VERSION_GREATER_EQUAL" } ] }, { "type": "BLANK" } ] } ] } } } ] }, { "type": "STRING", "value": ")" } ] }, "else_command": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "else" }, { "type": "STRING", "value": "(" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[ \\t]+" }, { "type": "PATTERN", "value": "\\n+" } ] } }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "argument" }, { "type": "STRING", "value": "1" }, { "type": "STRING", "value": "ON" }, { "type": "STRING", "value": "YES" }, { "type": "STRING", "value": "TRUE" }, { "type": "STRING", "value": "Y" }, { "type": "STRING", "value": "0" }, { "type": "STRING", "value": "OFF" }, { "type": "STRING", "value": "NO" }, { "type": "STRING", "value": "FALSE" }, { "type": "STRING", "value": "N" }, { "type": "STRING", "value": "IGNORE" }, { "type": "STRING", "value": "NOTFOUND" }, { "type": "STRING", "value": "NOT" }, { "type": "STRING", "value": "AND" }, { "type": "STRING", "value": "OR" }, { "type": "STRING", "value": "COMMAND" }, { "type": "STRING", "value": "POLICY" }, { "type": "STRING", "value": "TARGET" }, { "type": "STRING", "value": "TEST" }, { "type": "STRING", "value": "DEFINED" }, { "type": "STRING", "value": "CACHE" }, { "type": "STRING", "value": "ENV" }, { "type": "STRING", "value": "IN_LIST" }, { "type": "STRING", "value": "EXISTS" }, { "type": "STRING", "value": "IS_NEWER_THAN" }, { "type": "STRING", "value": "IS_DIRECTORY" }, { "type": "STRING", "value": "IS_SYMLINK" }, { "type": "STRING", "value": "IS_ABSOLUTE" }, { "type": "STRING", "value": "MATCHES" }, { "type": "STRING", "value": "LESS" }, { "type": "STRING", "value": "GREATER" }, { "type": "STRING", "value": "EQUAL" }, { "type": "STRING", "value": "LESS_EQUAL" }, { "type": "STRING", "value": "GREATER_EQUAL" }, { "type": "STRING", "value": "STRLESS" }, { "type": "STRING", "value": "STRGREATER" }, { "type": "STRING", "value": "STREQUAL" }, { "type": "STRING", "value": "STRLESS_EQUAL" }, { "type": "STRING", "value": "STRGREATER_EQUAL" }, { "type": "STRING", "value": "VERSION_LESS" }, { "type": "STRING", "value": "VERSION_GREATER" }, { "type": "STRING", "value": "VERSION_EQUAL" }, { "type": "STRING", "value": "VERSION_LESS_EQUAL" }, { "type": "STRING", "value": "VERSION_GREATER_EQUAL" } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, "endif_command": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "endif" }, { "type": "STRING", "value": "(" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[ \\t]+" }, { "type": "PATTERN", "value": "\\n+" } ] } }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "argument" }, { "type": "STRING", "value": "1" }, { "type": "STRING", "value": "ON" }, { "type": "STRING", "value": "YES" }, { "type": "STRING", "value": "TRUE" }, { "type": "STRING", "value": "Y" }, { "type": "STRING", "value": "0" }, { "type": "STRING", "value": "OFF" }, { "type": "STRING", "value": "NO" }, { "type": "STRING", "value": "FALSE" }, { "type": "STRING", "value": "N" }, { "type": "STRING", "value": "IGNORE" }, { "type": "STRING", "value": "NOTFOUND" }, { "type": "STRING", "value": "NOT" }, { "type": "STRING", "value": "AND" }, { "type": "STRING", "value": "OR" }, { "type": "STRING", "value": "COMMAND" }, { "type": "STRING", "value": "POLICY" }, { "type": "STRING", "value": "TARGET" }, { "type": "STRING", "value": "TEST" }, { "type": "STRING", "value": "DEFINED" }, { "type": "STRING", "value": "CACHE" }, { "type": "STRING", "value": "ENV" }, { "type": "STRING", "value": "IN_LIST" }, { "type": "STRING", "value": "EXISTS" }, { "type": "STRING", "value": "IS_NEWER_THAN" }, { "type": "STRING", "value": "IS_DIRECTORY" }, { "type": "STRING", "value": "IS_SYMLINK" }, { "type": "STRING", "value": "IS_ABSOLUTE" }, { "type": "STRING", "value": "MATCHES" }, { "type": "STRING", "value": "LESS" }, { "type": "STRING", "value": "GREATER" }, { "type": "STRING", "value": "EQUAL" }, { "type": "STRING", "value": "LESS_EQUAL" }, { "type": "STRING", "value": "GREATER_EQUAL" }, { "type": "STRING", "value": "STRLESS" }, { "type": "STRING", "value": "STRGREATER" }, { "type": "STRING", "value": "STREQUAL" }, { "type": "STRING", "value": "STRLESS_EQUAL" }, { "type": "STRING", "value": "STRGREATER_EQUAL" }, { "type": "STRING", "value": "VERSION_LESS" }, { "type": "STRING", "value": "VERSION_GREATER" }, { "type": "STRING", "value": "VERSION_EQUAL" }, { "type": "STRING", "value": "VERSION_LESS_EQUAL" }, { "type": "STRING", "value": "VERSION_GREATER_EQUAL" } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, "if_condition": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "if_command" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_command_invocation" }, { "type": "SYMBOL", "name": "elseif_command" }, { "type": "SYMBOL", "name": "else_command" } ] } }, { "type": "SYMBOL", "name": "endif_command" } ] }, "foreach_command": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "foreach" }, { "type": "STRING", "value": "(" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[ \\t]+" }, { "type": "PATTERN", "value": "\\n+" } ] } }, { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "argument" }, { "type": "STRING", "value": "IN" }, { "type": "STRING", "value": "RANGE" }, { "type": "STRING", "value": "ZIP_LISTS" }, { "type": "STRING", "value": "LISTS" }, { "type": "STRING", "value": "ITEMS" } ] }, { "type": "REPEAT", "content": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[ \\t]+" }, { "type": "PATTERN", "value": "\\n+" } ] } }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "argument" }, { "type": "STRING", "value": "IN" }, { "type": "STRING", "value": "RANGE" }, { "type": "STRING", "value": "ZIP_LISTS" }, { "type": "STRING", "value": "LISTS" }, { "type": "STRING", "value": "ITEMS" } ] }, { "type": "BLANK" } ] } ] } } } ] }, { "type": "STRING", "value": ")" } ] }, "endforeach_command": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "endforeach" }, { "type": "STRING", "value": "(" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[ \\t]+" }, { "type": "PATTERN", "value": "\\n+" } ] } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "argument" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, "foreach_loop": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "foreach_command" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_command_invocation" } }, { "type": "SYMBOL", "name": "endforeach_command" } ] }, "while_command": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "while" }, { "type": "STRING", "value": "(" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[ \\t]+" }, { "type": "PATTERN", "value": "\\n+" } ] } }, { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "argument" }, { "type": "STRING", "value": "1" }, { "type": "STRING", "value": "ON" }, { "type": "STRING", "value": "YES" }, { "type": "STRING", "value": "TRUE" }, { "type": "STRING", "value": "Y" }, { "type": "STRING", "value": "0" }, { "type": "STRING", "value": "OFF" }, { "type": "STRING", "value": "NO" }, { "type": "STRING", "value": "FALSE" }, { "type": "STRING", "value": "N" }, { "type": "STRING", "value": "IGNORE" }, { "type": "STRING", "value": "NOTFOUND" }, { "type": "STRING", "value": "NOT" }, { "type": "STRING", "value": "AND" }, { "type": "STRING", "value": "OR" }, { "type": "STRING", "value": "COMMAND" }, { "type": "STRING", "value": "POLICY" }, { "type": "STRING", "value": "TARGET" }, { "type": "STRING", "value": "TEST" }, { "type": "STRING", "value": "DEFINED" }, { "type": "STRING", "value": "CACHE" }, { "type": "STRING", "value": "ENV" }, { "type": "STRING", "value": "IN_LIST" }, { "type": "STRING", "value": "EXISTS" }, { "type": "STRING", "value": "IS_NEWER_THAN" }, { "type": "STRING", "value": "IS_DIRECTORY" }, { "type": "STRING", "value": "IS_SYMLINK" }, { "type": "STRING", "value": "IS_ABSOLUTE" }, { "type": "STRING", "value": "MATCHES" }, { "type": "STRING", "value": "LESS" }, { "type": "STRING", "value": "GREATER" }, { "type": "STRING", "value": "EQUAL" }, { "type": "STRING", "value": "LESS_EQUAL" }, { "type": "STRING", "value": "GREATER_EQUAL" }, { "type": "STRING", "value": "STRLESS" }, { "type": "STRING", "value": "STRGREATER" }, { "type": "STRING", "value": "STREQUAL" }, { "type": "STRING", "value": "STRLESS_EQUAL" }, { "type": "STRING", "value": "STRGREATER_EQUAL" }, { "type": "STRING", "value": "VERSION_LESS" }, { "type": "STRING", "value": "VERSION_GREATER" }, { "type": "STRING", "value": "VERSION_EQUAL" }, { "type": "STRING", "value": "VERSION_LESS_EQUAL" }, { "type": "STRING", "value": "VERSION_GREATER_EQUAL" } ] }, { "type": "REPEAT", "content": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[ \\t]+" }, { "type": "PATTERN", "value": "\\n+" } ] } }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "argument" }, { "type": "STRING", "value": "1" }, { "type": "STRING", "value": "ON" }, { "type": "STRING", "value": "YES" }, { "type": "STRING", "value": "TRUE" }, { "type": "STRING", "value": "Y" }, { "type": "STRING", "value": "0" }, { "type": "STRING", "value": "OFF" }, { "type": "STRING", "value": "NO" }, { "type": "STRING", "value": "FALSE" }, { "type": "STRING", "value": "N" }, { "type": "STRING", "value": "IGNORE" }, { "type": "STRING", "value": "NOTFOUND" }, { "type": "STRING", "value": "NOT" }, { "type": "STRING", "value": "AND" }, { "type": "STRING", "value": "OR" }, { "type": "STRING", "value": "COMMAND" }, { "type": "STRING", "value": "POLICY" }, { "type": "STRING", "value": "TARGET" }, { "type": "STRING", "value": "TEST" }, { "type": "STRING", "value": "DEFINED" }, { "type": "STRING", "value": "CACHE" }, { "type": "STRING", "value": "ENV" }, { "type": "STRING", "value": "IN_LIST" }, { "type": "STRING", "value": "EXISTS" }, { "type": "STRING", "value": "IS_NEWER_THAN" }, { "type": "STRING", "value": "IS_DIRECTORY" }, { "type": "STRING", "value": "IS_SYMLINK" }, { "type": "STRING", "value": "IS_ABSOLUTE" }, { "type": "STRING", "value": "MATCHES" }, { "type": "STRING", "value": "LESS" }, { "type": "STRING", "value": "GREATER" }, { "type": "STRING", "value": "EQUAL" }, { "type": "STRING", "value": "LESS_EQUAL" }, { "type": "STRING", "value": "GREATER_EQUAL" }, { "type": "STRING", "value": "STRLESS" }, { "type": "STRING", "value": "STRGREATER" }, { "type": "STRING", "value": "STREQUAL" }, { "type": "STRING", "value": "STRLESS_EQUAL" }, { "type": "STRING", "value": "STRGREATER_EQUAL" }, { "type": "STRING", "value": "VERSION_LESS" }, { "type": "STRING", "value": "VERSION_GREATER" }, { "type": "STRING", "value": "VERSION_EQUAL" }, { "type": "STRING", "value": "VERSION_LESS_EQUAL" }, { "type": "STRING", "value": "VERSION_GREATER_EQUAL" } ] }, { "type": "BLANK" } ] } ] } } } ] }, { "type": "STRING", "value": ")" } ] }, "endwhile_command": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "endwhile" }, { "type": "STRING", "value": "(" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[ \\t]+" }, { "type": "PATTERN", "value": "\\n+" } ] } }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "argument" }, { "type": "STRING", "value": "1" }, { "type": "STRING", "value": "ON" }, { "type": "STRING", "value": "YES" }, { "type": "STRING", "value": "TRUE" }, { "type": "STRING", "value": "Y" }, { "type": "STRING", "value": "0" }, { "type": "STRING", "value": "OFF" }, { "type": "STRING", "value": "NO" }, { "type": "STRING", "value": "FALSE" }, { "type": "STRING", "value": "N" }, { "type": "STRING", "value": "IGNORE" }, { "type": "STRING", "value": "NOTFOUND" }, { "type": "STRING", "value": "NOT" }, { "type": "STRING", "value": "AND" }, { "type": "STRING", "value": "OR" }, { "type": "STRING", "value": "COMMAND" }, { "type": "STRING", "value": "POLICY" }, { "type": "STRING", "value": "TARGET" }, { "type": "STRING", "value": "TEST" }, { "type": "STRING", "value": "DEFINED" }, { "type": "STRING", "value": "CACHE" }, { "type": "STRING", "value": "ENV" }, { "type": "STRING", "value": "IN_LIST" }, { "type": "STRING", "value": "EXISTS" }, { "type": "STRING", "value": "IS_NEWER_THAN" }, { "type": "STRING", "value": "IS_DIRECTORY" }, { "type": "STRING", "value": "IS_SYMLINK" }, { "type": "STRING", "value": "IS_ABSOLUTE" }, { "type": "STRING", "value": "MATCHES" }, { "type": "STRING", "value": "LESS" }, { "type": "STRING", "value": "GREATER" }, { "type": "STRING", "value": "EQUAL" }, { "type": "STRING", "value": "LESS_EQUAL" }, { "type": "STRING", "value": "GREATER_EQUAL" }, { "type": "STRING", "value": "STRLESS" }, { "type": "STRING", "value": "STRGREATER" }, { "type": "STRING", "value": "STREQUAL" }, { "type": "STRING", "value": "STRLESS_EQUAL" }, { "type": "STRING", "value": "STRGREATER_EQUAL" }, { "type": "STRING", "value": "VERSION_LESS" }, { "type": "STRING", "value": "VERSION_GREATER" }, { "type": "STRING", "value": "VERSION_EQUAL" }, { "type": "STRING", "value": "VERSION_LESS_EQUAL" }, { "type": "STRING", "value": "VERSION_GREATER_EQUAL" } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, "while_loop": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "while_command" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_command_invocation" } }, { "type": "SYMBOL", "name": "endwhile_command" } ] }, "function_command": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "function" }, { "type": "STRING", "value": "(" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[ \\t]+" }, { "type": "PATTERN", "value": "\\n+" } ] } }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "argument" }, { "type": "REPEAT", "content": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[ \\t]+" }, { "type": "PATTERN", "value": "\\n+" } ] } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "argument" }, { "type": "BLANK" } ] } ] } } } ] }, { "type": "STRING", "value": ")" } ] }, "endfunction_command": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "endfunction" }, { "type": "STRING", "value": "(" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[ \\t]+" }, { "type": "PATTERN", "value": "\\n+" } ] } }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "argument" }, { "type": "REPEAT", "content": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[ \\t]+" }, { "type": "PATTERN", "value": "\\n+" } ] } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "argument" }, { "type": "BLANK" } ] } ] } } } ] }, { "type": "STRING", "value": ")" } ] }, "function_def": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "function_command" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_command_invocation" } }, { "type": "SYMBOL", "name": "endfunction_command" } ] }, "macro_command": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "macro" }, { "type": "STRING", "value": "(" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[ \\t]+" }, { "type": "PATTERN", "value": "\\n+" } ] } }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "argument" }, { "type": "REPEAT", "content": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[ \\t]+" }, { "type": "PATTERN", "value": "\\n+" } ] } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "argument" }, { "type": "BLANK" } ] } ] } } } ] }, { "type": "STRING", "value": ")" } ] }, "endmacro_command": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "endmacro" }, { "type": "STRING", "value": "(" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[ \\t]+" }, { "type": "PATTERN", "value": "\\n+" } ] } }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "argument" }, { "type": "REPEAT", "content": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[ \\t]+" }, { "type": "PATTERN", "value": "\\n+" } ] } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "argument" }, { "type": "BLANK" } ] } ] } } } ] }, { "type": "STRING", "value": ")" } ] }, "macro_def": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "macro_command" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_command_invocation" } }, { "type": "SYMBOL", "name": "endmacro_command" } ] }, "message_command": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "message" }, { "type": "STRING", "value": "(" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[ \\t]+" }, { "type": "PATTERN", "value": "\\n+" } ] } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "argument" }, { "type": "STRING", "value": "FATAL_ERROR" }, { "type": "STRING", "value": "SEND_ERROR" }, { "type": "STRING", "value": "WARNING" }, { "type": "STRING", "value": "AUTHOR_WARNING" }, { "type": "STRING", "value": "DEPRECATION" }, { "type": "STRING", "value": "NOTICE" }, { "type": "STRING", "value": "STATUS" }, { "type": "STRING", "value": "VERBOSE" }, { "type": "STRING", "value": "DEBUG" }, { "type": "STRING", "value": "TRACE" }, { "type": "STRING", "value": "CHECK_START" }, { "type": "STRING", "value": "CHECK_PASS" }, { "type": "STRING", "value": "CHECK_FAIL" } ] }, { "type": "REPEAT", "content": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[ \\t]+" }, { "type": "PATTERN", "value": "\\n+" } ] } }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "argument" }, { "type": "STRING", "value": "FATAL_ERROR" }, { "type": "STRING", "value": "SEND_ERROR" }, { "type": "STRING", "value": "WARNING" }, { "type": "STRING", "value": "AUTHOR_WARNING" }, { "type": "STRING", "value": "DEPRECATION" }, { "type": "STRING", "value": "NOTICE" }, { "type": "STRING", "value": "STATUS" }, { "type": "STRING", "value": "VERBOSE" }, { "type": "STRING", "value": "DEBUG" }, { "type": "STRING", "value": "TRACE" }, { "type": "STRING", "value": "CHECK_START" }, { "type": "STRING", "value": "CHECK_PASS" }, { "type": "STRING", "value": "CHECK_FAIL" } ] }, { "type": "BLANK" } ] } ] } } } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, "normal_command": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "STRING", "value": "(" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[ \\t]+" }, { "type": "PATTERN", "value": "\\n+" } ] } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "argument" }, { "type": "REPEAT", "content": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[ \\t]+" }, { "type": "PATTERN", "value": "\\n+" } ] } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "argument" }, { "type": "BLANK" } ] } ] } } } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, "_command_invocation": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "normal_command" }, { "type": "SYMBOL", "name": "if_condition" }, { "type": "SYMBOL", "name": "foreach_loop" }, { "type": "SYMBOL", "name": "while_loop" }, { "type": "SYMBOL", "name": "function_def" }, { "type": "SYMBOL", "name": "macro_def" }, { "type": "SYMBOL", "name": "message_command" } ] }, "if": { "type": "PATTERN", "value": "[iI][fF]" }, "elseif": { "type": "PATTERN", "value": "[eE][lL][sS][eE][iI][fF]" }, "else": { "type": "PATTERN", "value": "[eE][lL][sS][eE]" }, "endif": { "type": "PATTERN", "value": "[eE][nN][dD][iI][fF]" }, "foreach": { "type": "PATTERN", "value": "[fF][oO][rR][eE][aA][cC][hH]" }, "endforeach": { "type": "PATTERN", "value": "[eE][nN][dD][fF][oO][rR][eE][aA][cC][hH]" }, "while": { "type": "PATTERN", "value": "[wW][hH][iI][lL][eE]" }, "endwhile": { "type": "PATTERN", "value": "[eE][nN][dD][wW][hH][iI][lL][eE]" }, "function": { "type": "PATTERN", "value": "[fF][uU][nN][cC][tT][iI][oO][nN]" }, "endfunction": { "type": "PATTERN", "value": "[eE][nN][dD][fF][uU][nN][cC][tT][iI][oO][nN]" }, "macro": { "type": "PATTERN", "value": "[mM][aA][cC][rR][oO]" }, "endmacro": { "type": "PATTERN", "value": "[eE][nN][dD][mM][aA][cC][rR][oO]" }, "message": { "type": "PATTERN", "value": "[mM][eE][sS][sS][aA][gG][eE]" }, "identifier": { "type": "PATTERN", "value": "[A-Za-z_][A-Za-z0-9_]*" }, "integer": { "type": "PATTERN", "value": "[+-]*\\d+" } }, "extras": [ { "type": "PATTERN", "value": "\\s" } ], "conflicts": [], "precedences": [], "externals": [], "inline": [], "supertypes": [] }