{ "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json", "name": "scl", "rules": { "source_file": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "bom" }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "organization_block" }, { "type": "SYMBOL", "name": "function_block" }, { "type": "SYMBOL", "name": "function" }, { "type": "SYMBOL", "name": "type_definition" }, { "type": "SYMBOL", "name": "data_block" }, { "type": "SYMBOL", "name": "statement" } ] } } ] }, "title_statement": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "[Tt][Ii][Tt][Ll][Ee]" }, { "type": "PATTERN", "value": "\\s*=\\s*" }, { "type": "PATTERN", "value": "[^\\n\\r]+" } ] } }, "author_value": { "type": "TOKEN", "content": { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "[a-zA-Z0-9_\\-\\/]" } } }, "type_definition": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Tt][Yy][Pp][Ee]" } }, "named": true, "value": "keyword" }, { "type": "FIELD", "name": "name", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "identifier" } ] } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "title_statement" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "attribute_list" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Nn][Aa][Mm][Ee]" } }, "named": true, "value": "keyword" }, { "type": "STRING", "value": ":" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "author_value" } ] } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Aa][Uu][Tt][Hh][Oo][Rr]" } }, "named": true, "value": "keyword" }, { "type": "STRING", "value": ":" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "author_value" } ] } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ff][Aa][Mm][Ii][Ll][Yy]" } }, "named": true, "value": "keyword" }, { "type": "STRING", "value": ":" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "author_value" } ] } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Vv][Ee][Rr][Ss][Ii][Oo][Nn]" } }, "named": true, "value": "keyword" }, { "type": "STRING", "value": ":" }, { "type": "SYMBOL", "name": "number" } ] }, { "type": "BLANK" } ] }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ss][Tt][Rr][Uu][Cc][Tt]" } }, "named": true, "value": "keyword" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "var_item" }, { "type": "SYMBOL", "name": "block_comment" } ] } }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ee][Nn][Dd]_[Ss][Tt][Rr][Uu][Cc][Tt]" } }, "named": true, "value": "keyword" }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": ";" }, { "type": "BLANK" } ] }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ee][Nn][Dd]_[Tt][Yy][Pp][Ee]" } }, "named": true, "value": "keyword" } ] }, "data_block": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Dd][Aa][Tt][Aa]_[Bb][Ll][Oo][Cc][Kk]" } }, "named": true, "value": "keyword" }, { "type": "FIELD", "name": "name", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "identifier" } ] } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "title_statement" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "attribute_list" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Nn][Aa][Mm][Ee]" } }, "named": true, "value": "keyword" }, { "type": "STRING", "value": ":" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "author_value" } ] } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Aa][Uu][Tt][Hh][Oo][Rr]" } }, "named": true, "value": "keyword" }, { "type": "STRING", "value": ":" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "author_value" } ] } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ff][Aa][Mm][Ii][Ll][Yy]" } }, "named": true, "value": "keyword" }, { "type": "STRING", "value": ":" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "author_value" } ] } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Vv][Ee][Rr][Ss][Ii][Oo][Nn]" } }, "named": true, "value": "keyword" }, { "type": "STRING", "value": ":" }, { "type": "SYMBOL", "name": "number" } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Nn][Oo][Nn]_[Rr][Ee][Tt][Aa][Ii][Nn]" } }, "named": true, "value": "keyword" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Rr][Ee][Tt][Aa][Ii][Nn]" } }, "named": true, "value": "keyword" } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "associated", "content": { "type": "SYMBOL", "name": "string" } }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "var_declaration" }, { "type": "SYMBOL", "name": "var_db_specific_declaration" } ] }, { "type": "BLANK" } ] }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Bb][Ee][Gg][Ii][Nn]" } }, "named": true, "value": "keyword" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "statement" } }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ee][Nn][Dd]_[Dd][Aa][Tt][Aa]_[Bb][Ll][Oo][Cc][Kk]" } }, "named": true, "value": "keyword" } ] }, "organization_block": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Oo][Rr][Gg][Aa][Nn][Ii][Zz][Aa][Tt][Ii][Oo][Nn]_[Bb][Ll][Oo][Cc][Kk]" } }, "named": true, "value": "keyword" }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "string" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "title_statement" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "attribute_list" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Nn][Aa][Mm][Ee]" } }, "named": true, "value": "keyword" }, { "type": "STRING", "value": ":" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "author_value" } ] } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Aa][Uu][Tt][Hh][Oo][Rr]" } }, "named": true, "value": "keyword" }, { "type": "STRING", "value": ":" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "author_value" } ] } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ff][Aa][Mm][Ii][Ll][Yy]" } }, "named": true, "value": "keyword" }, { "type": "STRING", "value": ":" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "author_value" } ] } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Vv][Ee][Rr][Ss][Ii][Oo][Nn]" } }, "named": true, "value": "keyword" }, { "type": "STRING", "value": ":" }, { "type": "SYMBOL", "name": "number" } ] }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "var_declaration" } }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Bb][Ee][Gg][Ii][Nn]" } }, "named": true, "value": "keyword" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "statement" } }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ee][Nn][Dd]_[Oo][Rr][Gg][Aa][Nn][Ii][Zz][Aa][Tt][Ii][Oo][Nn]_[Bb][Ll][Oo][Cc][Kk]" } }, "named": true, "value": "keyword" } ] }, "function_block": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ff][Uu][Nn][Cc][Tt][Ii][Oo][Nn]_[Bb][Ll][Oo][Cc][Kk]" } }, "named": true, "value": "keyword" }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "string" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "title_statement" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "attribute_list" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Nn][Aa][Mm][Ee]" } }, "named": true, "value": "keyword" }, { "type": "STRING", "value": ":" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "author_value" } ] } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Aa][Uu][Tt][Hh][Oo][Rr]" } }, "named": true, "value": "keyword" }, { "type": "STRING", "value": ":" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "author_value" } ] } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ff][Aa][Mm][Ii][Ll][Yy]" } }, "named": true, "value": "keyword" }, { "type": "STRING", "value": ":" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "author_value" } ] } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Vv][Ee][Rr][Ss][Ii][Oo][Nn]" } }, "named": true, "value": "keyword" }, { "type": "STRING", "value": ":" }, { "type": "SYMBOL", "name": "number" } ] }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "var_declaration" }, { "type": "SYMBOL", "name": "var_temp_declaration" }, { "type": "SYMBOL", "name": "var_constant_declaration" }, { "type": "SYMBOL", "name": "var_retain_declaration" }, { "type": "SYMBOL", "name": "var_non_retain_declaration" }, { "type": "SYMBOL", "name": "var_db_specific_declaration" }, { "type": "SYMBOL", "name": "block_comment" } ] } }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Bb][Ee][Gg][Ii][Nn]" } }, "named": true, "value": "keyword" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "statement" } }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ee][Nn][Dd]_[Ff][Uu][Nn][Cc][Tt][Ii][Oo][Nn]_[Bb][Ll][Oo][Cc][Kk]" } }, "named": true, "value": "keyword" } ] }, "function": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ff][Uu][Nn][Cc][Tt][Ii][Oo][Nn]" } }, "named": true, "value": "keyword" }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "string" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": ":" }, { "type": "SYMBOL", "name": "type" } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "title_statement" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "attribute_list" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Nn][Aa][Mm][Ee]" } }, "named": true, "value": "keyword" }, { "type": "STRING", "value": ":" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "author_value" } ] } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Aa][Uu][Tt][Hh][Oo][Rr]" } }, "named": true, "value": "keyword" }, { "type": "STRING", "value": ":" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "author_value" } ] } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ff][Aa][Mm][Ii][Ll][Yy]" } }, "named": true, "value": "keyword" }, { "type": "STRING", "value": ":" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "author_value" } ] } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Vv][Ee][Rr][Ss][Ii][Oo][Nn]" } }, "named": true, "value": "keyword" }, { "type": "STRING", "value": ":" }, { "type": "SYMBOL", "name": "number" } ] }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "var_declaration" }, { "type": "SYMBOL", "name": "var_temp_declaration" }, { "type": "SYMBOL", "name": "var_constant_declaration" }, { "type": "SYMBOL", "name": "var_retain_declaration" }, { "type": "SYMBOL", "name": "var_non_retain_declaration" }, { "type": "SYMBOL", "name": "block_comment" } ] } }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Bb][Ee][Gg][Ii][Nn]" } }, "named": true, "value": "keyword" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "statement" } }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ee][Nn][Dd]_[Ff][Uu][Nn][Cc][Tt][Ii][Oo][Nn]" } }, "named": true, "value": "keyword" } ] }, "attribute_list": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "SYMBOL", "name": "attribute" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "," }, { "type": "STRING", "value": ";" } ] }, { "type": "SYMBOL", "name": "attribute" } ] } }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "," }, { "type": "STRING", "value": ";" } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "}" } ] }, "attribute": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "STRING", "value": ":=" }, { "type": "SYMBOL", "name": "attribute_value" } ] }, "attribute_value": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "string" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Tt][Rr][Uu][Ee]" } }, "named": true, "value": "constant" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ff][Aa][Ll][Ss][Ee]" } }, "named": true, "value": "constant" }, { "type": "SYMBOL", "name": "identifier" } ] }, "var_declaration": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Vv][Aa][Rr]_[Ii][Nn][Pp][Uu][Tt]" } }, "named": true, "value": "keyword" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Vv][Aa][Rr]_[Oo][Uu][Tt][Pp][Uu][Tt]" } }, "named": true, "value": "keyword" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Vv][Aa][Rr]_[Ii][Nn]_[Oo][Uu][Tt]" } }, "named": true, "value": "keyword" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Vv][Aa][Rr]" } }, "named": true, "value": "keyword" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Vv][Aa][Rr]_[Tt][Ee][Mm][Pp]" } }, "named": true, "value": "keyword" }, { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Vv][Aa][Rr]" } }, "named": true, "value": "keyword" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Cc][Oo][Nn][Ss][Tt][Aa][Nn][Tt]" } }, "named": true, "value": "keyword" } ] }, { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Vv][Aa][Rr]" } }, "named": true, "value": "keyword" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Rr][Ee][Tt][Aa][Ii][Nn]" } }, "named": true, "value": "keyword" } ] }, { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Vv][Aa][Rr]" } }, "named": true, "value": "keyword" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Nn][Oo][Nn]_[Rr][Ee][Tt][Aa][Ii][Nn]" } }, "named": true, "value": "keyword" } ] }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Vv][Aa][Rr]_[Cc][Oo][Nn][Ss][Tt][Aa][Nn][Tt]" } }, "named": true, "value": "keyword" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Vv][Aa][Rr]_[Rr][Ee][Tt][Aa][Ii][Nn]" } }, "named": true, "value": "keyword" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Vv][Aa][Rr]_[Nn][Oo][Nn]_[Rr][Ee][Tt][Aa][Ii][Nn]" } }, "named": true, "value": "keyword" } ] }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "var_item" }, { "type": "SYMBOL", "name": "block_comment" } ] } }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ee][Nn][Dd]_[Vv][Aa][Rr]" } }, "named": true, "value": "keyword" } ] }, "var_temp_declaration": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Vv][Aa][Rr]_[Tt][Ee][Mm][Pp]" } }, "named": true, "value": "keyword" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "var_item" }, { "type": "SYMBOL", "name": "block_comment" } ] } }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ee][Nn][Dd]_[Vv][Aa][Rr]" } }, "named": true, "value": "keyword" } ] }, "var_constant_declaration": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Vv][Aa][Rr]" } }, "named": true, "value": "keyword" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Cc][Oo][Nn][Ss][Tt][Aa][Nn][Tt]" } }, "named": true, "value": "keyword" } ] }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Vv][Aa][Rr]_[Cc][Oo][Nn][Ss][Tt][Aa][Nn][Tt]" } }, "named": true, "value": "keyword" } ] }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "var_item" }, { "type": "SYMBOL", "name": "block_comment" } ] } }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ee][Nn][Dd]_[Vv][Aa][Rr]" } }, "named": true, "value": "keyword" } ] }, "var_retain_declaration": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Vv][Aa][Rr]" } }, "named": true, "value": "keyword" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Rr][Ee][Tt][Aa][Ii][Nn]" } }, "named": true, "value": "keyword" } ] }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Vv][Aa][Rr]_[Rr][Ee][Tt][Aa][Ii][Nn]" } }, "named": true, "value": "keyword" } ] }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "var_item" }, { "type": "SYMBOL", "name": "block_comment" } ] } }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ee][Nn][Dd]_[Vv][Aa][Rr]" } }, "named": true, "value": "keyword" } ] }, "var_non_retain_declaration": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Vv][Aa][Rr]" } }, "named": true, "value": "keyword" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Nn][Oo][Nn]_[Rr][Ee][Tt][Aa][Ii][Nn]" } }, "named": true, "value": "keyword" } ] }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Vv][Aa][Rr]_[Nn][Oo][Nn]_[Rr][Ee][Tt][Aa][Ii][Nn]" } }, "named": true, "value": "keyword" } ] }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "var_item" }, { "type": "SYMBOL", "name": "block_comment" } ] } }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ee][Nn][Dd]_[Vv][Aa][Rr]" } }, "named": true, "value": "keyword" } ] }, "var_db_specific_declaration": { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Vv][Aa][Rr]" } }, "named": true, "value": "keyword" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Dd][Bb]_[Ss][Pp][Ee][Cc][Ii][Ff][Ii][Cc]" } }, "named": true, "value": "keyword" } ] }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "var_item" }, { "type": "SYMBOL", "name": "block_comment" } ] } }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ee][Nn][Dd]_[Vv][Aa][Rr]" } }, "named": true, "value": "keyword" } ] }, "var_item": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "attribute_list" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "type", "content": { "type": "SYMBOL", "name": "type" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": ":=" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "SYMBOL", "name": "struct_initializer" } ] } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ";" } ] }, "type": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "type_builtin" }, { "type": "SYMBOL", "name": "array_type" }, { "type": "SYMBOL", "name": "ref_type" }, { "type": "SYMBOL", "name": "struct_type" }, { "type": "SYMBOL", "name": "string_type" }, { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "string" } ] }, "type_builtin": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Bb][Oo][Oo][Ll]" } }, "named": true, "value": "type_builtin" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Bb][Yy][Tt][Ee]" } }, "named": true, "value": "type_builtin" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ww][Oo][Rr][Dd]" } }, "named": true, "value": "type_builtin" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Dd][Ww][Oo][Rr][Dd]" } }, "named": true, "value": "type_builtin" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ll][Ww][Oo][Rr][Dd]" } }, "named": true, "value": "type_builtin" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ss][Ii][Nn][Tt]" } }, "named": true, "value": "type_builtin" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Uu][Ss][Ii][Nn][Tt]" } }, "named": true, "value": "type_builtin" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ii][Nn][Tt]" } }, "named": true, "value": "type_builtin" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Uu][Ii][Nn][Tt]" } }, "named": true, "value": "type_builtin" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Dd][Ii][Nn][Tt]" } }, "named": true, "value": "type_builtin" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Uu][Dd][Ii][Nn][Tt]" } }, "named": true, "value": "type_builtin" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ll][Ii][Nn][Tt]" } }, "named": true, "value": "type_builtin" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Uu][Ll][Ii][Nn][Tt]" } }, "named": true, "value": "type_builtin" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Rr][Ee][Aa][Ll]" } }, "named": true, "value": "type_builtin" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ll][Rr][Ee][Aa][Ll]" } }, "named": true, "value": "type_builtin" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Cc][Hh][Aa][Rr]" } }, "named": true, "value": "type_builtin" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ww][Cc][Hh][Aa][Rr]" } }, "named": true, "value": "type_builtin" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Tt][Ii][Mm][Ee]" } }, "named": true, "value": "type_builtin" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ll][Tt][Ii][Mm][Ee]" } }, "named": true, "value": "type_builtin" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ss]5[Tt][Ii][Mm][Ee]" } }, "named": true, "value": "type_builtin" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Dd][Aa][Tt][Ee]" } }, "named": true, "value": "type_builtin" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Tt][Ii][Mm][Ee]_[Oo][Ff]_[Dd][Aa][Yy]" } }, "named": true, "value": "type_builtin" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Tt][Oo][Dd]" } }, "named": true, "value": "type_builtin" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ll][Tt][Oo][Dd]" } }, "named": true, "value": "type_builtin" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ll][Tt][Ii][Mm][Ee]_[Oo][Ff]_[Dd][Aa][Yy]" } }, "named": true, "value": "type_builtin" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Dd][Aa][Tt][Ee]_[Aa][Nn][Dd]_[Tt][Ii][Mm][Ee]" } }, "named": true, "value": "type_builtin" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Dd][Tt]" } }, "named": true, "value": "type_builtin" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ll][Dd][Tt]" } }, "named": true, "value": "type_builtin" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Dd][Aa][Tt][Ee]_[Aa][Nn][Dd]_[Ll][Tt][Ii][Mm][Ee]" } }, "named": true, "value": "type_builtin" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Dd][Tt][Ll]" } }, "named": true, "value": "type_builtin" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Vv][Aa][Rr][Ii][Aa][Nn][Tt]" } }, "named": true, "value": "type_builtin" } ] }, "string_type": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ss][Tt][Rr][Ii][Nn][Gg]" } }, "named": true, "value": "type_builtin" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ww][Ss][Tt][Rr][Ii][Nn][Gg]" } }, "named": true, "value": "type_builtin" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "SYMBOL", "name": "number" }, { "type": "STRING", "value": "]" } ] }, { "type": "BLANK" } ] } ] }, "array_type": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Aa][Rr][Rr][Aa][Yy]" } }, "named": true, "value": "keyword" }, { "type": "STRING", "value": "[" }, { "type": "REPEAT1", "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "number" }, { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "identifier" } ] }, { "type": "STRING", "value": ".." }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "number" }, { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "identifier" } ] } ] }, { "type": "STRING", "value": "*" } ] }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "," }, { "type": "BLANK" } ] } ] } }, { "type": "STRING", "value": "]" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Oo][Ff]" } }, "named": true, "value": "keyword" }, { "type": "SYMBOL", "name": "type" } ] }, "ref_type": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Rr][Ee][Ff]_[Tt][Oo]" } }, "named": true, "value": "keyword" }, { "type": "SYMBOL", "name": "type" } ] }, "struct_type": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ss][Tt][Rr][Uu][Cc][Tt]" } }, "named": true, "value": "keyword" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "var_item" }, { "type": "SYMBOL", "name": "block_comment" } ] } }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ee][Nn][Dd]_[Ss][Tt][Rr][Uu][Cc][Tt]" } }, "named": true, "value": "keyword" } ] }, "statement": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "assignment" }, { "type": "SYMBOL", "name": "fb_call" }, { "type": "SYMBOL", "name": "if_statement" }, { "type": "SYMBOL", "name": "case_statement" }, { "type": "SYMBOL", "name": "for_statement" }, { "type": "SYMBOL", "name": "while_statement" }, { "type": "SYMBOL", "name": "repeat_statement" }, { "type": "SYMBOL", "name": "region_statement" }, { "type": "SYMBOL", "name": "function_call" }, { "type": "SYMBOL", "name": "return_statement" }, { "type": "SYMBOL", "name": "goto_statement" }, { "type": "SYMBOL", "name": "exit_statement" }, { "type": "SYMBOL", "name": "continue_statement" }, { "type": "SYMBOL", "name": "empty_statement" }, { "type": "SYMBOL", "name": "var_declaration" }, { "type": "SYMBOL", "name": "var_temp_declaration" }, { "type": "SYMBOL", "name": "var_constant_declaration" }, { "type": "SYMBOL", "name": "var_retain_declaration" }, { "type": "SYMBOL", "name": "var_non_retain_declaration" }, { "type": "SYMBOL", "name": "var_db_specific_declaration" } ] }, "empty_statement": { "type": "STRING", "value": ";" }, "fb_call": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "instance", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "prefixed_identifier" }, { "type": "SYMBOL", "name": "identifier" } ] } }, { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "fb_parameter_list" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, "fb_parameter_list": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "fb_parameter" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "fb_parameter" } ] } } ] }, "fb_parameter": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": ":=" }, { "type": "STRING", "value": "=>" } ] }, { "type": "SYMBOL", "name": "expression" } ] }, "assignment": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "target", "content": { "type": "SYMBOL", "name": "lvalue" } }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": ":=" }, { "type": "STRING", "value": "+=" }, { "type": "STRING", "value": "-=" }, { "type": "STRING", "value": "*=" }, { "type": "STRING", "value": "/=" }, { "type": "STRING", "value": "&=" }, { "type": "STRING", "value": "|=" }, { "type": "STRING", "value": "^=" } ] }, { "type": "FIELD", "name": "value", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "SYMBOL", "name": "chained_assignment" } ] } }, { "type": "STRING", "value": ";" } ] }, "chained_assignment": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "lvalue" }, { "type": "STRING", "value": ":=" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "SYMBOL", "name": "chained_assignment" } ] } ] } }, "lvalue": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "prefixed_identifier" }, { "type": "SYMBOL", "name": "field_access" }, { "type": "SYMBOL", "name": "array_access" }, { "type": "SYMBOL", "name": "function_name" }, { "type": "SYMBOL", "name": "bit_access" } ] }, "function_name": { "type": "SYMBOL", "name": "string" }, "prefixed_identifier": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "STRING", "value": "#" }, "named": true, "value": "prefix" }, { "type": "SYMBOL", "name": "identifier" } ] }, "field_access": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "lvalue" }, { "type": "STRING", "value": "." }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "prefixed_identifier" } ] } ] }, "array_access": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "lvalue" }, { "type": "STRING", "value": "[" }, { "type": "SYMBOL", "name": "expression" }, { "type": "STRING", "value": "]" } ] }, "bit_access": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "lvalue" }, { "type": "STRING", "value": "." }, { "type": "STRING", "value": "%" }, { "type": "PATTERN", "value": "[A-Za-z]+" }, { "type": "SYMBOL", "name": "number" } ] }, "if_statement": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ii][Ff]" } }, "named": true, "value": "keyword" }, { "type": "SYMBOL", "name": "expression" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Tt][Hh][Ee][Nn]" } }, "named": true, "value": "keyword" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "statement" } }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "elsif_clause" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "else_clause" }, { "type": "BLANK" } ] }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ee][Nn][Dd]_[Ii][Ff]" } }, "named": true, "value": "keyword" } ] }, "elsif_clause": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ee][Ll][Ss][Ii][Ff]" } }, "named": true, "value": "keyword" }, { "type": "SYMBOL", "name": "expression" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Tt][Hh][Ee][Nn]" } }, "named": true, "value": "keyword" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "statement" } } ] }, "else_clause": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ee][Ll][Ss][Ee]" } }, "named": true, "value": "keyword" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "statement" } } ] }, "case_statement": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Cc][Aa][Ss][Ee]" } }, "named": true, "value": "keyword" }, { "type": "SYMBOL", "name": "expression" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Oo][Ff]" } }, "named": true, "value": "keyword" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "case_item" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "else_clause" }, { "type": "BLANK" } ] }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ee][Nn][Dd]_[Cc][Aa][Ss][Ee]" } }, "named": true, "value": "keyword" } ] }, "case_item": { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "number" }, { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "prefixed_identifier" }, { "type": "SYMBOL", "name": "range" } ] }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "," }, { "type": "BLANK" } ] } ] } }, { "type": "STRING", "value": ":" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "statement" } } ] }, "range": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "number" }, { "type": "STRING", "value": ".." }, { "type": "SYMBOL", "name": "number" } ] }, "for_statement": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ff][Oo][Rr]" } }, "named": true, "value": "keyword" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "prefixed_identifier" } ] }, { "type": "STRING", "value": ":=" }, { "type": "SYMBOL", "name": "expression" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Tt][Oo]" } }, "named": true, "value": "keyword" }, { "type": "SYMBOL", "name": "expression" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Bb][Yy]" } }, "named": true, "value": "keyword" }, { "type": "SYMBOL", "name": "expression" } ] }, { "type": "BLANK" } ] }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Dd][Oo]" } }, "named": true, "value": "keyword" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "statement" } }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ee][Nn][Dd]_[Ff][Oo][Rr]" } }, "named": true, "value": "keyword" } ] }, "while_statement": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ww][Hh][Ii][Ll][Ee]" } }, "named": true, "value": "keyword" }, { "type": "SYMBOL", "name": "expression" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Dd][Oo]" } }, "named": true, "value": "keyword" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "statement" } }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ee][Nn][Dd]_[Ww][Hh][Ii][Ll][Ee]" } }, "named": true, "value": "keyword" } ] }, "repeat_statement": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Rr][Ee][Pp][Ee][Aa][Tt]" } }, "named": true, "value": "keyword" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "statement" } }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Uu][Nn][Tt][Ii][Ll]" } }, "named": true, "value": "keyword" }, { "type": "SYMBOL", "name": "expression" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ee][Nn][Dd]_[Rr][Ee][Pp][Ee][Aa][Tt]" } }, "named": true, "value": "keyword" } ] }, "region_statement": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Rr][Ee][Gg][Ii][Oo][Nn]" } }, "named": true, "value": "keyword" }, { "type": "SYMBOL", "name": "region_name" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "statement" } }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ee][Nn][Dd]_[Rr][Ee][Gg][Ii][Oo][Nn]" } }, "named": true, "value": "keyword" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "region_name" }, { "type": "BLANK" } ] } ] }, "region_name": { "type": "TOKEN", "content": { "type": "REPEAT1", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[a-zA-Z0-9_\\-\\/]" }, { "type": "PATTERN", "value": "[ \\t]+" } ] } } }, "return_statement": { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Rr][Ee][Tt][Uu][Rr][Nn]" } }, "named": true, "value": "keyword" }, "goto_statement": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Gg][Oo][Tt][Oo]" } }, "named": true, "value": "keyword" }, { "type": "SYMBOL", "name": "identifier" } ] }, "function_call": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "string" } ] }, { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "parameter_list" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "method_callee" }, { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "parameter_list" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] } ] }, "method_callee": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "lvalue" }, { "type": "STRING", "value": "." }, { "type": "SYMBOL", "name": "identifier" } ] }, "parameter_list": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "parameter" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "parameter" } ] } } ] }, "parameter": { "type": "CHOICE", "members": [ { "type": "PREC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "STRING", "value": ":=" }, { "type": "SYMBOL", "name": "expression" } ] } }, { "type": "PREC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "STRING", "value": "=>" }, { "type": "SYMBOL", "name": "identifier" } ] } } ] }, "expression": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "number" }, { "type": "SYMBOL", "name": "hex_number" }, { "type": "SYMBOL", "name": "binary_number" }, { "type": "SYMBOL", "name": "octal_number" }, { "type": "SYMBOL", "name": "time_value" }, { "type": "SYMBOL", "name": "date_literal" }, { "type": "SYMBOL", "name": "bool_literal" }, { "type": "SYMBOL", "name": "typed_int_literal" }, { "type": "SYMBOL", "name": "wstring_literal" }, { "type": "SYMBOL", "name": "char_literal" }, { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "prefixed_identifier" }, { "type": "SYMBOL", "name": "field_access" }, { "type": "SYMBOL", "name": "array_access" }, { "type": "SYMBOL", "name": "bit_access" }, { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "function_call" }, { "type": "SYMBOL", "name": "unary_expression" }, { "type": "SYMBOL", "name": "binary_expression" }, { "type": "PREC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "SYMBOL", "name": "expression" }, { "type": "STRING", "value": ")" } ] } } ] }, "unary_expression": { "type": "PREC_RIGHT", "value": 10, "content": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Nn][Oo][Tt]" } }, "named": true, "value": "operator" }, { "type": "SYMBOL", "name": "expression" } ] }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "+" }, { "type": "SYMBOL", "name": "expression" } ] }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "-" }, { "type": "SYMBOL", "name": "expression" } ] } ] } }, "binary_expression": { "type": "CHOICE", "members": [ { "type": "PREC_LEFT", "value": 2, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Oo][Rr]" } }, "named": true, "value": "operator" }, { "type": "SYMBOL", "name": "expression" } ] } }, { "type": "PREC_LEFT", "value": 3, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Xx][Oo][Rr]" } }, "named": true, "value": "operator" }, { "type": "SYMBOL", "name": "expression" } ] } }, { "type": "PREC_LEFT", "value": 4, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Aa][Nn][Dd]" } }, "named": true, "value": "operator" }, { "type": "SYMBOL", "name": "expression" } ] } }, { "type": "PREC_LEFT", "value": 5, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "=" }, { "type": "STRING", "value": "<>" } ] }, { "type": "SYMBOL", "name": "expression" } ] } }, { "type": "PREC_LEFT", "value": 6, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "<" }, { "type": "STRING", "value": ">" }, { "type": "STRING", "value": "<=" }, { "type": "STRING", "value": ">=" } ] }, { "type": "SYMBOL", "name": "expression" } ] } }, { "type": "PREC_LEFT", "value": 7, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "+" }, { "type": "STRING", "value": "-" } ] }, { "type": "SYMBOL", "name": "expression" } ] } }, { "type": "PREC_LEFT", "value": 8, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "*" }, { "type": "STRING", "value": "/" }, { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Mm][Oo][Dd]" } }, "named": true, "value": "operator" } ] }, { "type": "SYMBOL", "name": "expression" } ] } } ] }, "struct_initializer": { "type": "PREC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "struct_initializer" }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "STRING", "value": ":=" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "SYMBOL", "name": "struct_initializer" } ] } ] }, { "type": "SYMBOL", "name": "expression" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "struct_initializer" }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "STRING", "value": ":=" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "SYMBOL", "name": "struct_initializer" } ] } ] }, { "type": "SYMBOL", "name": "expression" } ] } ] } }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "," }, { "type": "BLANK" } ] } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] } }, "number": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "\\d+(\\.\\d+)?" } }, "hex_number": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "16#" }, { "type": "PATTERN", "value": "[0-9A-Fa-f_]+" } ] } }, "binary_number": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "2#" }, { "type": "PATTERN", "value": "[01_]+" } ] } }, "octal_number": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "8#" }, { "type": "PATTERN", "value": "[0-7_]+" } ] } }, "time_value": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "[Tt]#" }, { "type": "REPEAT1", "content": { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "\\d+" }, { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[Nn][Ss]" }, { "type": "PATTERN", "value": "[Uu][Ss]" }, { "type": "PATTERN", "value": "[Mm][Ss]" }, { "type": "PATTERN", "value": "[Ss]" }, { "type": "PATTERN", "value": "[Mm][Ii][Nn]" }, { "type": "PATTERN", "value": "[Hh]" }, { "type": "PATTERN", "value": "[Dd]" } ] } ] } }, { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "_[\\d_]+[A-Za-z]+" }, { "type": "BLANK" } ] } ] } }, "date_literal": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[Dd][Aa][Tt][Ee]#" }, { "type": "PATTERN", "value": "[Tt][Oo][Dd]#" }, { "type": "PATTERN", "value": "[Dd][Tt]#" }, { "type": "PATTERN", "value": "[Ll][Tt][Ii][Mm][Ee]#" }, { "type": "PATTERN", "value": "[Ss]5[Tt][Ii][Mm][Ee]#" }, { "type": "PATTERN", "value": "[Ll][Dd][Tt]#" }, { "type": "PATTERN", "value": "[Ll][Tt][Oo][Dd]#" }, { "type": "PATTERN", "value": "[Dd][Tt][Ll]#" } ] }, { "type": "PATTERN", "value": "[\\d:_\\-]+" } ] } }, "bool_literal": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "[Bb][Oo][Oo][Ll]#" }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "TRUE" }, { "type": "STRING", "value": "FALSE" }, { "type": "STRING", "value": "true" }, { "type": "STRING", "value": "false" }, { "type": "STRING", "value": "True" }, { "type": "STRING", "value": "False" } ] } ] } }, "typed_int_literal": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[Uu]?[Ss][Ii][Nn][Tt]#" }, { "type": "PATTERN", "value": "[Uu]?[Ii][Nn][Tt]#" }, { "type": "PATTERN", "value": "[Uu]?[Dd][Ii][Nn][Tt]#" }, { "type": "PATTERN", "value": "[Uu]?[Ll][Ii][Nn][Tt]#" }, { "type": "PATTERN", "value": "L#" }, { "type": "PATTERN", "value": "C#" }, { "type": "PATTERN", "value": "LW#" } ] }, { "type": "PATTERN", "value": "[\\dA-Fa-f_#]+" } ] } }, "string": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "'" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[^'\\n]" }, { "type": "STRING", "value": "''" } ] } }, { "type": "STRING", "value": "'" } ] }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "\"" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[^\"\\n]" }, { "type": "STRING", "value": "\"\"" } ] } }, { "type": "STRING", "value": "\"" } ] } ] }, "wstring_literal": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[Ww][Ss][Tt][Rr][Ii][Nn][Gg]#" }, { "type": "PATTERN", "value": "[Ss][Tt][Rr][Ii][Nn][Gg]#" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "'" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[^'\\n]" }, { "type": "STRING", "value": "''" } ] } }, { "type": "STRING", "value": "'" } ] }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "\"" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[^\"\\n]" }, { "type": "STRING", "value": "\"\"" } ] } }, { "type": "STRING", "value": "\"" } ] } ] } ] } }, "char_literal": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "'" }, { "type": "PATTERN", "value": "[^']" }, { "type": "STRING", "value": "'" } ] }, { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "[Ww][Cc][Hh][Aa][Rr]#" }, { "type": "STRING", "value": "'" }, { "type": "PATTERN", "value": "[^']" }, { "type": "STRING", "value": "'" } ] }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "C#" }, { "type": "STRING", "value": "'" }, { "type": "PATTERN", "value": "[^']" }, { "type": "STRING", "value": "'" } ] } ] }, "identifier": { "type": "PATTERN", "value": "[a-zA-Z_][a-zA-Z0-9_]*" }, "line_comment": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "//" }, { "type": "PATTERN", "value": ".*" } ] } }, "block_comment": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(*" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[^*]" }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "*" }, { "type": "PATTERN", "value": "[^)]" } ] } ] } }, { "type": "STRING", "value": "*)" } ] } }, "c_style_comment": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(/*" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[^*]" }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "*" }, { "type": "PATTERN", "value": "[^)]" } ] } ] } }, { "type": "STRING", "value": "*/)" } ] } }, "exit_statement": { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Ee][Xx][Ii][Tt]" } }, "named": true, "value": "keyword" }, "continue_statement": { "type": "ALIAS", "content": { "type": "TOKEN", "content": { "type": "PATTERN", "value": "[Cc][Oo][Nn][Tt][Ii][Nn][Uu][Ee]" } }, "named": true, "value": "keyword" }, "bom": { "type": "TOKEN", "content": { "type": "STRING", "value": "" } } }, "extras": [ { "type": "PATTERN", "value": "\\s" }, { "type": "SYMBOL", "name": "line_comment" }, { "type": "SYMBOL", "name": "block_comment" }, { "type": "SYMBOL", "name": "c_style_comment" } ], "conflicts": [ [ "case_item" ], [ "region_statement" ], [ "case_statement" ], [ "fb_call", "function_call" ], [ "fb_parameter", "parameter" ], [ "var_declaration", "var_temp_declaration" ], [ "var_declaration", "var_constant_declaration" ], [ "var_declaration", "var_retain_declaration" ], [ "var_declaration", "var_non_retain_declaration" ], [ "var_declaration", "var_db_specific_declaration" ], [ "type", "struct_type" ], [ "expression", "struct_initializer" ] ], "precedences": [], "externals": [], "inline": [], "supertypes": [], "reserved": {} }