2022-06-01 16:23:43 +02:00
|
|
|
{
|
|
|
|
"name": "tiger",
|
2022-06-01 17:36:39 +02:00
|
|
|
"word": "identifier",
|
2022-06-01 16:23:43 +02:00
|
|
|
"rules": {
|
|
|
|
"source_file": {
|
2022-06-01 19:33:42 +02:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
2022-06-01 20:37:24 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_declaration_chunks"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
2022-06-01 19:33:42 +02:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"_expr": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
2022-06-01 19:40:44 +02:00
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "nil_literal"
|
2022-06-01 19:33:42 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "integer_literal"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "string_literal"
|
2022-06-01 19:34:31 +02:00
|
|
|
},
|
2022-06-01 19:48:54 +02:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "array_expression"
|
|
|
|
},
|
2022-06-01 19:54:09 +02:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "record_expression"
|
|
|
|
},
|
2022-06-01 20:07:00 +02:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_lvalue"
|
|
|
|
},
|
2022-06-01 19:58:40 +02:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "function_call"
|
|
|
|
},
|
2022-06-01 19:34:31 +02:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "unary_expression"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "binary_expression"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "sequence_expression"
|
2022-06-01 20:11:52 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "assignment_expression"
|
2022-06-01 20:18:10 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "if_expression"
|
2022-06-01 20:19:56 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "while_expression"
|
2022-06-01 20:23:04 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "for_expression"
|
2022-06-01 20:23:46 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "break_expression"
|
2022-06-01 20:36:14 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "let_expression"
|
2022-06-04 20:25:41 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "meta_cast"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "meta_expression"
|
2022-06-01 19:33:42 +02:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2022-06-01 19:40:44 +02:00
|
|
|
"nil_literal": {
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "nil"
|
|
|
|
},
|
2022-06-01 19:33:42 +02:00
|
|
|
"integer_literal": {
|
|
|
|
"type": "PATTERN",
|
|
|
|
"value": "[0-9]+"
|
|
|
|
},
|
|
|
|
"string_literal": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "\""
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "REPEAT",
|
|
|
|
"content": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "escape_sequence"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "PATTERN",
|
|
|
|
"value": "[^\"\\\\]+"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "\""
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2022-06-01 17:36:39 +02:00
|
|
|
"identifier": {
|
|
|
|
"type": "PATTERN",
|
|
|
|
"value": "[_a-zA-Z0-9]+"
|
|
|
|
},
|
2022-06-03 10:15:37 +02:00
|
|
|
"_type_identifier": {
|
2022-06-04 20:25:41 +02:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "ALIAS",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "identifier"
|
|
|
|
},
|
|
|
|
"named": true,
|
|
|
|
"value": "type_identifier"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "meta_type_identifier"
|
|
|
|
}
|
|
|
|
]
|
2022-06-03 10:15:37 +02:00
|
|
|
},
|
2022-06-03 10:31:30 +02:00
|
|
|
"_field_identifier": {
|
|
|
|
"type": "ALIAS",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "identifier"
|
|
|
|
},
|
|
|
|
"named": true,
|
|
|
|
"value": "field_identifier"
|
|
|
|
},
|
2022-06-01 19:33:42 +02:00
|
|
|
"escape_sequence": {
|
|
|
|
"type": "IMMEDIATE_TOKEN",
|
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "\\"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "a"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "b"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "f"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "n"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "r"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "t"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "v"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "PATTERN",
|
|
|
|
"value": "[0-3][0-7]{2}"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "x"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "PATTERN",
|
|
|
|
"value": "[0-9a-fA-F]{2}"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "\\"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "\""
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
2022-06-01 19:34:31 +02:00
|
|
|
},
|
2022-06-01 20:07:00 +02:00
|
|
|
"_lvalue": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "identifier"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "record_value"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "array_value"
|
2022-06-04 20:25:41 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "meta_lvalue"
|
2022-06-01 20:07:00 +02:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"record_value": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "record",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_lvalue"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "."
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "field",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
2022-06-03 10:31:30 +02:00
|
|
|
"name": "_field_identifier"
|
2022-06-01 20:07:00 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"array_value": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "array",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_lvalue"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "["
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "index",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "]"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2022-06-01 19:58:40 +02:00
|
|
|
"function_call": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "function",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "identifier"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "("
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "arguments",
|
|
|
|
"content": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "REPEAT",
|
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ","
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ")"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2022-06-01 19:34:31 +02:00
|
|
|
"unary_expression": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "operator",
|
|
|
|
"content": {
|
|
|
|
"type": "ALIAS",
|
|
|
|
"content": {
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "-"
|
|
|
|
},
|
|
|
|
"named": true,
|
|
|
|
"value": "operator"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "expression",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"binary_expression": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "PREC_LEFT",
|
|
|
|
"value": 5,
|
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "left",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "operator",
|
|
|
|
"content": {
|
|
|
|
"type": "ALIAS",
|
|
|
|
"content": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "*"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "/"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"named": true,
|
|
|
|
"value": "operator"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "right",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "PREC_LEFT",
|
|
|
|
"value": 4,
|
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "left",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "operator",
|
|
|
|
"content": {
|
|
|
|
"type": "ALIAS",
|
|
|
|
"content": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "+"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "-"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"named": true,
|
|
|
|
"value": "operator"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "right",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "PREC_LEFT",
|
|
|
|
"value": 3,
|
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "left",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "operator",
|
|
|
|
"content": {
|
|
|
|
"type": "ALIAS",
|
|
|
|
"content": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ">="
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "<="
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "="
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "<>"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "<"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ">"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"named": true,
|
|
|
|
"value": "operator"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "right",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "PREC_LEFT",
|
|
|
|
"value": 2,
|
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "left",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "operator",
|
|
|
|
"content": {
|
|
|
|
"type": "ALIAS",
|
|
|
|
"content": {
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "&"
|
|
|
|
},
|
|
|
|
"named": true,
|
|
|
|
"value": "operator"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "right",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "PREC_LEFT",
|
|
|
|
"value": 1,
|
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "left",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "operator",
|
|
|
|
"content": {
|
|
|
|
"type": "ALIAS",
|
|
|
|
"content": {
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "|"
|
|
|
|
},
|
|
|
|
"named": true,
|
|
|
|
"value": "operator"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "right",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"sequence_expression": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "("
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "REPEAT",
|
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ";"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ")"
|
|
|
|
}
|
|
|
|
]
|
2022-06-01 19:48:54 +02:00
|
|
|
},
|
|
|
|
"array_expression": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "type",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
2022-06-03 10:15:37 +02:00
|
|
|
"name": "_type_identifier"
|
2022-06-01 19:48:54 +02:00
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "["
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "size",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "]"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "of"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "init",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
2022-06-01 19:54:09 +02:00
|
|
|
},
|
|
|
|
"record_expression": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "type",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
2022-06-03 10:15:37 +02:00
|
|
|
"name": "_type_identifier"
|
2022-06-01 19:54:09 +02:00
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "{"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "field",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
2022-06-03 10:31:30 +02:00
|
|
|
"name": "_field_identifier"
|
2022-06-01 19:54:09 +02:00
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "="
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "init",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "REPEAT",
|
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ","
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "field",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
2022-06-03 10:31:30 +02:00
|
|
|
"name": "_field_identifier"
|
2022-06-01 19:54:09 +02:00
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "="
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "init",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "}"
|
|
|
|
}
|
|
|
|
]
|
2022-06-01 20:11:52 +02:00
|
|
|
},
|
|
|
|
"assignment_expression": {
|
|
|
|
"type": "PREC_RIGHT",
|
|
|
|
"value": 6,
|
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "left",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_lvalue"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
2022-06-03 11:42:57 +02:00
|
|
|
"type": "ALIAS",
|
|
|
|
"content": {
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ":="
|
|
|
|
},
|
|
|
|
"named": true,
|
|
|
|
"value": "operator"
|
2022-06-01 20:11:52 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "right",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
2022-06-01 20:18:10 +02:00
|
|
|
},
|
|
|
|
"if_expression": {
|
|
|
|
"type": "PREC_RIGHT",
|
|
|
|
"value": 0,
|
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "if"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "condition",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "then"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "consequence",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "else"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "alternative",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
2022-06-01 20:19:56 +02:00
|
|
|
},
|
|
|
|
"while_expression": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "while"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "condition",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "do"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "body",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
2022-06-01 20:23:04 +02:00
|
|
|
},
|
|
|
|
"for_expression": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "for"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "index",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "identifier"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
2022-06-03 11:42:57 +02:00
|
|
|
"type": "ALIAS",
|
|
|
|
"content": {
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ":="
|
|
|
|
},
|
|
|
|
"named": true,
|
|
|
|
"value": "operator"
|
2022-06-01 20:23:04 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "start",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "to"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "end",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "do"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "body",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
2022-06-01 20:23:46 +02:00
|
|
|
},
|
|
|
|
"break_expression": {
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "break"
|
2022-06-01 20:36:14 +02:00
|
|
|
},
|
|
|
|
"let_expression": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "let"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "declarations",
|
|
|
|
"content": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_declaration_chunks"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "in"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "body",
|
|
|
|
"content": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "REPEAT",
|
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ";"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "end"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"_declaration_chunks": {
|
|
|
|
"type": "REPEAT1",
|
|
|
|
"content": {
|
2022-06-04 20:25:41 +02:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "meta_chunks"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_declaration_chunk"
|
|
|
|
}
|
|
|
|
]
|
2022-06-01 20:36:14 +02:00
|
|
|
}
|
|
|
|
},
|
|
|
|
"_declaration_chunk": {
|
2022-06-01 20:48:32 +02:00
|
|
|
"type": "PREC_LEFT",
|
|
|
|
"value": 0,
|
|
|
|
"content": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
2022-06-01 20:52:20 +02:00
|
|
|
{
|
|
|
|
"type": "REPEAT1",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "type_declaration"
|
|
|
|
}
|
|
|
|
},
|
2022-06-01 20:48:32 +02:00
|
|
|
{
|
|
|
|
"type": "REPEAT1",
|
|
|
|
"content": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "function_declaration"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "primitive_declaration"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "variable_declaration"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "import_declaration"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
2022-06-01 20:52:20 +02:00
|
|
|
"type_declaration": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "type"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "name",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "identifier"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "="
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "value",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_type"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"_type": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "type_alias"
|
2022-06-01 20:53:39 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "record_type"
|
2022-06-01 20:54:35 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "array_type"
|
2022-06-01 20:52:20 +02:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"type_alias": {
|
|
|
|
"type": "SYMBOL",
|
2022-06-03 10:15:37 +02:00
|
|
|
"name": "_type_identifier"
|
2022-06-01 20:52:20 +02:00
|
|
|
},
|
2022-06-01 20:53:39 +02:00
|
|
|
"record_type": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "{"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
2022-06-03 10:40:14 +02:00
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "name",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_field_identifier"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ":"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "type",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_type_identifier"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
2022-06-01 20:53:39 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "REPEAT",
|
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ","
|
|
|
|
},
|
|
|
|
{
|
2022-06-03 10:40:14 +02:00
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "name",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_field_identifier"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ":"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "type",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_type_identifier"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
2022-06-01 20:53:39 +02:00
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "}"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2022-06-01 20:54:35 +02:00
|
|
|
"array_type": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "array"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "of"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "element_type",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
2022-06-03 10:35:53 +02:00
|
|
|
"name": "_type_identifier"
|
2022-06-01 20:54:35 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2022-06-01 20:48:32 +02:00
|
|
|
"function_declaration": {
|
|
|
|
"type": "SEQ",
|
2022-06-01 20:36:14 +02:00
|
|
|
"members": [
|
2022-06-01 20:48:32 +02:00
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "function"
|
|
|
|
},
|
2022-06-01 20:41:25 +02:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2022-06-01 20:48:32 +02:00
|
|
|
"name": "_function_declaration_common"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "="
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "body",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"primitive_declaration": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "primitive"
|
2022-06-01 20:41:25 +02:00
|
|
|
},
|
2022-06-01 20:36:14 +02:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2022-06-01 20:48:32 +02:00
|
|
|
"name": "_function_declaration_common"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"_function_declaration_common": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "name",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "identifier"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "parameters",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "parameters"
|
|
|
|
}
|
2022-06-01 22:07:05 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ":"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "return_type",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
2022-06-03 10:15:37 +02:00
|
|
|
"name": "_type_identifier"
|
2022-06-01 22:07:05 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
2022-06-01 20:48:32 +02:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"parameters": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "("
|
|
|
|
},
|
|
|
|
{
|
2022-06-02 09:33:37 +02:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
2022-06-03 10:40:14 +02:00
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "name",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "identifier"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ":"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "type",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_type_identifier"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
2022-06-02 09:33:37 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "REPEAT",
|
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ","
|
|
|
|
},
|
|
|
|
{
|
2022-06-03 10:40:14 +02:00
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "name",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "identifier"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ":"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "type",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_type_identifier"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
2022-06-02 09:33:37 +02:00
|
|
|
}
|
|
|
|
]
|
2022-06-01 20:48:32 +02:00
|
|
|
}
|
2022-06-02 09:33:37 +02:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
2022-06-01 20:48:32 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ")"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2022-06-01 20:41:25 +02:00
|
|
|
"variable_declaration": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "var"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "name",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "identifier"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ":"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "type",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
2022-06-03 10:15:37 +02:00
|
|
|
"name": "_type_identifier"
|
2022-06-01 20:41:25 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
2022-06-03 11:42:57 +02:00
|
|
|
"type": "ALIAS",
|
|
|
|
"content": {
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ":="
|
|
|
|
},
|
|
|
|
"named": true,
|
|
|
|
"value": "operator"
|
2022-06-01 20:41:25 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "value",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2022-06-01 20:36:14 +02:00
|
|
|
"import_declaration": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "import"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "file",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "string_literal"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
2022-06-04 20:25:41 +02:00
|
|
|
},
|
|
|
|
"meta_chunks": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "_chunks"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "("
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "index",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "integer_literal"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ")"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"meta_cast": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "_cast"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "("
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "expression",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expr"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ","
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "type",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_type"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ")"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"meta_expression": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "_exp"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "("
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "index",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "integer_literal"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ")"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"meta_lvalue": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "_lvalue"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "("
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "index",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "integer_literal"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ")"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"meta_type_identifier": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "_namety"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "("
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "integer_literal"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ")"
|
|
|
|
}
|
|
|
|
]
|
2022-06-01 16:23:43 +02:00
|
|
|
}
|
|
|
|
},
|
|
|
|
"extras": [
|
|
|
|
{
|
|
|
|
"type": "PATTERN",
|
2022-06-02 11:03:55 +02:00
|
|
|
"value": "( |\\n|\\r|\\t)+"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "comment"
|
2022-06-01 16:23:43 +02:00
|
|
|
}
|
|
|
|
],
|
2022-06-01 20:07:00 +02:00
|
|
|
"conflicts": [
|
|
|
|
[
|
|
|
|
"_lvalue",
|
|
|
|
"array_expression"
|
2022-06-03 10:15:37 +02:00
|
|
|
],
|
2022-06-04 20:25:41 +02:00
|
|
|
[
|
|
|
|
"_lvalue",
|
|
|
|
"record_expression"
|
|
|
|
],
|
2022-06-03 10:15:37 +02:00
|
|
|
[
|
|
|
|
"_lvalue",
|
|
|
|
"_type_identifier"
|
2022-06-01 20:07:00 +02:00
|
|
|
]
|
|
|
|
],
|
2022-06-01 16:23:43 +02:00
|
|
|
"precedences": [],
|
2022-06-02 16:13:55 +02:00
|
|
|
"externals": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "comment"
|
|
|
|
}
|
|
|
|
],
|
2022-06-03 10:15:37 +02:00
|
|
|
"inline": [
|
2022-06-03 10:31:30 +02:00
|
|
|
"_type_identifier",
|
2022-06-03 10:59:50 +02:00
|
|
|
"_field_identifier",
|
|
|
|
"_function_declaration_common"
|
2022-06-03 10:15:37 +02:00
|
|
|
],
|
2022-06-01 16:23:43 +02:00
|
|
|
"supertypes": []
|
|
|
|
}
|
|
|
|
|