Files
tia-lsp/src/grammar.json
T
lazar 7b25cf6202 feat: add TYPE/STRUCT and DATA_BLOCK support to tree-sitter grammar
- Add type_definition rule for UDT files (TYPE/STRUCT/END_STRUCT/END_TYPE)
- Add data_block rule for DB files (DATA_BLOCK/BEGIN/END_DATA_BLOCK)
- Add NON_RETAIN and RETAIN modifiers support in data blocks
- Keywords now highlighted correctly in .udt and .db files
2026-02-20 23:42:28 +01:00

3694 lines
80 KiB
JSON

{
"$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
"name": "scl",
"rules": {
"source_file": {
"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"
}
]
}
},
"type_definition": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "TYPE"
},
"named": true,
"value": "keyword"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "TITLE"
},
"named": true,
"value": "keyword"
},
{
"type": "STRING",
"value": "="
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "attribute_list"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "VERSION"
},
"named": true,
"value": "keyword"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "number"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "STRUCT"
},
"named": true,
"value": "keyword"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "var_item"
},
{
"type": "SYMBOL",
"name": "block_comment"
}
]
}
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "END_STRUCT"
},
"named": true,
"value": "keyword"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "END_TYPE"
},
"named": true,
"value": "keyword"
}
]
},
"data_block": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "DATA_BLOCK"
},
"named": true,
"value": "keyword"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "TITLE"
},
"named": true,
"value": "keyword"
},
{
"type": "STRING",
"value": "="
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "attribute_list"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "VERSION"
},
"named": true,
"value": "keyword"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "number"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "NON_RETAIN"
},
"named": true,
"value": "keyword"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "RETAIN"
},
"named": true,
"value": "keyword"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "var_declaration"
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "BEGIN"
},
"named": true,
"value": "keyword"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "statement"
}
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "END_DATA_BLOCK"
},
"named": true,
"value": "keyword"
}
]
},
"organization_block": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "ORGANIZATION_BLOCK"
},
"named": true,
"value": "keyword"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "string"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "TITLE"
},
"named": true,
"value": "keyword"
},
{
"type": "STRING",
"value": "="
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "attribute_list"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "VERSION"
},
"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": "STRING",
"value": "BEGIN"
},
"named": true,
"value": "keyword"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "statement"
}
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "END_ORGANIZATION_BLOCK"
},
"named": true,
"value": "keyword"
}
]
},
"function_block": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "FUNCTION_BLOCK"
},
"named": true,
"value": "keyword"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "string"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "TITLE"
},
"named": true,
"value": "keyword"
},
{
"type": "STRING",
"value": "="
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "attribute_list"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "VERSION"
},
"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": "STRING",
"value": "BEGIN"
},
"named": true,
"value": "keyword"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "statement"
}
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "END_FUNCTION_BLOCK"
},
"named": true,
"value": "keyword"
}
]
},
"function": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "FUNCTION"
},
"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": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "TITLE"
},
"named": true,
"value": "keyword"
},
{
"type": "STRING",
"value": "="
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "attribute_list"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "VERSION"
},
"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": "STRING",
"value": "BEGIN"
},
"named": true,
"value": "keyword"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "statement"
}
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "END_FUNCTION"
},
"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": "STRING",
"value": "TRUE"
},
"named": true,
"value": "constant"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "FALSE"
},
"named": true,
"value": "constant"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
"var_declaration": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "VAR_INPUT"
},
"named": true,
"value": "keyword"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "VAR_OUTPUT"
},
"named": true,
"value": "keyword"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "VAR_IN_OUT"
},
"named": true,
"value": "keyword"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "VAR"
},
"named": true,
"value": "keyword"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "VAR_TEMP"
},
"named": true,
"value": "keyword"
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "VAR"
},
"named": true,
"value": "keyword"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "CONSTANT"
},
"named": true,
"value": "keyword"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "VAR"
},
"named": true,
"value": "keyword"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "RETAIN"
},
"named": true,
"value": "keyword"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "VAR"
},
"named": true,
"value": "keyword"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "NON_RETAIN"
},
"named": true,
"value": "keyword"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "VAR_CONSTANT"
},
"named": true,
"value": "keyword"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "VAR_RETAIN"
},
"named": true,
"value": "keyword"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "VAR_NON_RETAIN"
},
"named": true,
"value": "keyword"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "var_item"
},
{
"type": "SYMBOL",
"name": "block_comment"
}
]
}
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "END_VAR"
},
"named": true,
"value": "keyword"
}
]
},
"var_temp_declaration": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "VAR_TEMP"
},
"named": true,
"value": "keyword"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "var_item"
},
{
"type": "SYMBOL",
"name": "block_comment"
}
]
}
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "END_VAR"
},
"named": true,
"value": "keyword"
}
]
},
"var_constant_declaration": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "VAR"
},
"named": true,
"value": "keyword"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "CONSTANT"
},
"named": true,
"value": "keyword"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "VAR_CONSTANT"
},
"named": true,
"value": "keyword"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "var_item"
},
{
"type": "SYMBOL",
"name": "block_comment"
}
]
}
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "END_VAR"
},
"named": true,
"value": "keyword"
}
]
},
"var_retain_declaration": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "VAR"
},
"named": true,
"value": "keyword"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "RETAIN"
},
"named": true,
"value": "keyword"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "VAR_RETAIN"
},
"named": true,
"value": "keyword"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "var_item"
},
{
"type": "SYMBOL",
"name": "block_comment"
}
]
}
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "END_VAR"
},
"named": true,
"value": "keyword"
}
]
},
"var_non_retain_declaration": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "VAR"
},
"named": true,
"value": "keyword"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "NON_RETAIN"
},
"named": true,
"value": "keyword"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "VAR_NON_RETAIN"
},
"named": true,
"value": "keyword"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "var_item"
},
{
"type": "SYMBOL",
"name": "block_comment"
}
]
}
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "END_VAR"
},
"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": "SYMBOL",
"name": "expression"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ";"
}
]
},
"type": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "BOOL"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "Bool"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "INT"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "Int"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "int"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "DINT"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "DInt"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "dint"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "SINT"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "SInt"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "sint"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "USINT"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "USInt"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "usint"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "UINT"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "UInt"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "uint"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "WORD"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "Word"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "word"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "DWORD"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "DWord"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "dword"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "BYTE"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "Byte"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "byte"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "REAL"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "Real"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "real"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "LREAL"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "LReal"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "lreal"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "TIME"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "Time"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "time"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "TOD"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "Tod"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "tod"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "DT"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "Dt"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "dt"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "String"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "STRING"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "string"
},
"named": true,
"value": "type_builtin"
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "String"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "STRING"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "string"
},
"named": true,
"value": "type_builtin"
}
]
},
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "WString"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "WSTRING"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "wstring"
},
"named": true,
"value": "type_builtin"
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "WString"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "WSTRING"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "wstring"
},
"named": true,
"value": "type_builtin"
}
]
},
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "Char"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "CHAR"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "char"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "WChar"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "WCHAR"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "wchar"
},
"named": true,
"value": "type_builtin"
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "ARRAY"
},
"named": true,
"value": "keyword"
},
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "STRING",
"value": ".."
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "STRING",
"value": "]"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "OF"
},
"named": true,
"value": "keyword"
},
{
"type": "SYMBOL",
"name": "type"
}
]
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "string"
}
]
},
"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": "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"
}
]
},
"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": "SEQ",
"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": "STRING",
"value": ":="
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "STRING",
"value": ";"
}
]
},
"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"
}
]
},
"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": "]"
}
]
},
"if_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "IF"
},
"named": true,
"value": "keyword"
},
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "THEN"
},
"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": "STRING",
"value": "END_IF"
},
"named": true,
"value": "keyword"
}
]
},
"elsif_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "ELSIF"
},
"named": true,
"value": "keyword"
},
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "THEN"
},
"named": true,
"value": "keyword"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "statement"
}
}
]
},
"else_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "ELSE"
},
"named": true,
"value": "keyword"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "statement"
}
}
]
},
"case_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "CASE"
},
"named": true,
"value": "keyword"
},
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "OF"
},
"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": "STRING",
"value": "END_CASE"
},
"named": true,
"value": "keyword"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
}
]
},
"case_item": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "prefixed_identifier"
},
{
"type": "SYMBOL",
"name": "range"
}
]
},
{
"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": "STRING",
"value": "FOR"
},
"named": true,
"value": "keyword"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": ":="
},
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "TO"
},
"named": true,
"value": "keyword"
},
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "BY"
},
"named": true,
"value": "keyword"
},
{
"type": "SYMBOL",
"name": "expression"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "DO"
},
"named": true,
"value": "keyword"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "statement"
}
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "END_FOR"
},
"named": true,
"value": "keyword"
}
]
},
"while_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "WHILE"
},
"named": true,
"value": "keyword"
},
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "DO"
},
"named": true,
"value": "keyword"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "statement"
}
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "END_WHILE"
},
"named": true,
"value": "keyword"
}
]
},
"repeat_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "REPEAT"
},
"named": true,
"value": "keyword"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "statement"
}
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "UNTIL"
},
"named": true,
"value": "keyword"
},
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "END_REPEAT"
},
"named": true,
"value": "keyword"
}
]
},
"region_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "REGION"
},
"named": true,
"value": "keyword"
},
{
"type": "SYMBOL",
"name": "region_name"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "statement"
}
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "END_REGION"
},
"named": true,
"value": "keyword"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "region_name"
},
{
"type": "BLANK"
}
]
}
]
},
"region_name": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "STRING",
"value": "/"
},
{
"type": "STRING",
"value": "-"
}
]
}
},
"function_call": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "string"
}
]
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "parameter_list"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "=>"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"parameter_list": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "parameter"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "parameter"
}
]
}
}
]
},
"parameter": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": ":="
},
{
"type": "SYMBOL",
"name": "expression"
}
]
},
"expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "hex_number"
},
{
"type": "SYMBOL",
"name": "time_value"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "prefixed_identifier"
},
{
"type": "SYMBOL",
"name": "field_access"
},
{
"type": "SYMBOL",
"name": "array_access"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "unary_expression"
},
{
"type": "SYMBOL",
"name": "binary_expression"
},
{
"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": "STRING",
"value": "NOT"
},
"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": "STRING",
"value": "OR"
},
"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": "STRING",
"value": "XOR"
},
"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": "STRING",
"value": "AND"
},
"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": "STRING",
"value": "MOD"
},
"named": true,
"value": "operator"
}
]
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
}
]
},
"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_]+"
}
]
}
},
"time_value": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "T#"
},
{
"type": "PATTERN",
"value": "\\d+(_?\\d)*(ms|s|min|h)"
}
]
}
},
"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": "\""
}
]
}
]
},
"string_type": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "STRING"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "String"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "string"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "WSTRING"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "WString"
},
"named": true,
"value": "type_builtin"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "wstring"
},
"named": true,
"value": "type_builtin"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"char_literal": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "'"
},
{
"type": "PATTERN",
"value": "[^']"
},
{
"type": "STRING",
"value": "'"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "WCHAR#"
},
{
"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": "STRING",
"value": "EXIT"
},
"named": true,
"value": "keyword"
},
"continue_statement": {
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "CONTINUE"
},
"named": true,
"value": "keyword"
}
},
"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"
],
[
"region_name"
],
[
"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"
]
],
"precedences": [],
"externals": [],
"inline": [],
"supertypes": [],
"reserved": {}
}