{
"$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
"name": "ned",
"rules": {
"nedfile": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "comment"
},
{
"type": "SYMBOL",
"name": "_EMPTYLINE"
},
{
"type": "SYMBOL",
"name": "package"
},
{
"type": "SYMBOL",
"name": "import"
},
{
"type": "SYMBOL",
"name": "property_decl"
},
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_property_namevalue"
},
{
"type": "STRING",
"value": ";"
}
]
},
"named": true,
"value": "property"
},
{
"type": "SYMBOL",
"name": "channel"
},
{
"type": "SYMBOL",
"name": "channel_interface"
},
{
"type": "SYMBOL",
"name": "simple"
},
{
"type": "SYMBOL",
"name": "module"
},
{
"type": "SYMBOL",
"name": "network"
},
{
"type": "SYMBOL",
"name": "moduleinterface"
},
{
"type": "STRING",
"value": ";"
}
]
}
}
},
"comment": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_commentline"
}
}
},
"_commentline": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "//"
},
{
"type": "PATTERN",
"value": "(\\\\+(.|\\r?\\n)|[^\\\\\\n])*"
}
]
}
},
"inline_comment": {
"type": "SYMBOL",
"name": "_commentline"
},
"package": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "package"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_dottedname"
},
"named": true,
"value": "name"
},
{
"type": "STRING",
"value": ";"
}
]
},
"_dottedname": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_NAME"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "_NAME"
}
]
}
}
]
}
},
"import": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "import"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "importspec"
},
"named": true,
"value": "name"
},
{
"type": "STRING",
"value": ";"
}
]
},
"importspec": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_import_un_qname"
},
{
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_importname"
},
{
"type": "STRING",
"value": "."
}
]
}
},
{
"type": "SYMBOL",
"name": "_import_un_qname"
}
]
}
]
},
"_import_un_qname": {
"type": "SYMBOL",
"name": "_importname"
},
"_importname": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_NAME"
},
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "**"
}
]
}
},
"property": {
"type": "SYMBOL",
"name": "_property_namevalue"
},
"property_decl": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "property_decl_header"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "inline_properties"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ";"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "property_decl_header"
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "property_decl_keys"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "inline_properties"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ";"
}
]
}
]
},
"property_decl_header": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "property"
},
{
"type": "STRING",
"value": "@"
},
{
"type": "SYMBOL",
"name": "_NAME"
},
{
"type": "STRING",
"value": "["
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "property"
},
{
"type": "STRING",
"value": "@"
},
{
"type": "SYMBOL",
"name": "_NAME"
}
]
}
]
},
"property_decl_keys": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "property_decl_key"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "SYMBOL",
"name": "property_decl_key"
}
]
}
}
]
},
"property_decl_key": {
"type": "SYMBOL",
"name": "_property_literal"
},
"fileproperty": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_property_namevalue"
},
{
"type": "STRING",
"value": ";"
}
]
},
"channel": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_channelheader"
},
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "parameters"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"_channelheader": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "channel"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_NAME"
},
"named": true,
"value": "name"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_inheritance"
},
{
"type": "BLANK"
}
]
}
]
},
"_inheritance": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "extends"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "like"
},
{
"type": "SYMBOL",
"name": "_likenames"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "extends"
},
{
"type": "SYMBOL",
"name": "extends"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "extends"
},
{
"type": "SYMBOL",
"name": "extends"
},
{
"type": "STRING",
"value": "like"
},
{
"type": "SYMBOL",
"name": "_likenames"
}
]
}
]
},
"extends": {
"type": "SYMBOL",
"name": "_dottedname"
},
"_likenames": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_likename"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_likename"
}
]
}
}
]
},
"_likename": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_dottedname"
},
"named": true,
"value": "implements"
},
"channel_interface": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "channelinterfaceheader"
},
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "parameters"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"channelinterfaceheader": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "channelinterface"
},
{
"type": "SYMBOL",
"name": "_NAME"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_interfaceinheritance"
},
{
"type": "BLANK"
}
]
}
]
},
"_interfaceinheritance": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "extends"
},
{
"type": "SYMBOL",
"name": "_extendnames"
}
]
},
"_extendnames": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "extends"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "extends"
}
]
}
}
]
},
"simple": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simplemoduleheader"
},
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "parameters"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "gates"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"_simplemoduleheader": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "simple"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_NAME"
},
"named": true,
"value": "name"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_inheritance"
},
{
"type": "BLANK"
}
]
}
]
},
"module": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_compoundmoduleheader"
},
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "parameters"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "gates"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "types"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "submodules"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "connections"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"_compoundmoduleheader": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "module"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_NAME"
},
"named": true,
"value": "name"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_inheritance"
},
{
"type": "BLANK"
}
]
}
]
},
"network": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_networkheader"
},
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "parameters"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "gates"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "types"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "submodules"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "connections"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"_networkheader": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "network"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_NAME"
},
"named": true,
"value": "name"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_inheritance"
},
{
"type": "BLANK"
}
]
}
]
},
"moduleinterface": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_moduleinterfaceheader"
},
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "parameters"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "gates"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"_moduleinterfaceheader": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "moduleinterface"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_NAME"
},
"named": true,
"value": "name"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_interfaceinheritance"
},
{
"type": "BLANK"
}
]
}
]
},
"parameters": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_params"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "parameters"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_params"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "parameters"
},
{
"type": "STRING",
"value": ":"
}
]
}
]
},
"_params": {
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_paramsitem"
}
},
"_paramsitem": {
"type": "PREC_RIGHT",
"value": 10,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "parameter"
},
{
"type": "SYMBOL",
"name": "property"
}
]
},
{
"type": "STRING",
"value": ";"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "comment"
},
{
"type": "BLANK"
}
]
}
]
}
},
"parameter": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_param_typenamevalue"
},
{
"type": "SYMBOL",
"name": "_parampattern_value"
}
]
},
"_param_typenamevalue": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_param_typename"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "inline_properties"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_param_typename"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "inline_properties"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "="
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "paramvalue"
},
"named": true,
"value": "value"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "inline_properties"
},
{
"type": "BLANK"
}
]
}
]
}
]
},
"_param_typename": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "volatile"
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "paramtype"
},
"named": true,
"value": "type"
},
{
"type": "FIELD",
"name": "parameter_signature",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_NAME"
},
"named": true,
"value": "name"
}
}
]
},
{
"type": "FIELD",
"name": "parameter_signature",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_NAME"
},
"named": true,
"value": "name"
}
}
]
},
"_parampattern_value": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_parampattern"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "inline_properties"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "="
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "paramvalue"
},
"named": true,
"value": "value"
}
]
},
"paramtype": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "double"
},
{
"type": "STRING",
"value": "int"
},
{
"type": "STRING",
"value": "string"
},
{
"type": "STRING",
"value": "bool"
},
{
"type": "STRING",
"value": "object"
},
{
"type": "STRING",
"value": "xml"
}
]
},
"paramvalue": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "default"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "STRING",
"value": "default"
},
{
"type": "STRING",
"value": "ask"
}
]
}
},
"inline_properties": {
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_inline_property_namevalue"
}
},
"_parampattern": {
"type": "FIELD",
"name": "parameter_signature",
"content": {
"type": "SYMBOL",
"name": "pattern"
}
},
"pattern": {
"type": "SEQ",
"members": [
{
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_pattern_elem"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "_pattern_elem"
}
]
}
}
]
}
},
{
"type": "STRING",
"value": "."
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_pattern_elem"
},
{
"type": "STRING",
"value": "typename"
}
]
}
]
},
"_pattern_elem": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_pattern_name"
},
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "pattern_index"
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_pattern_name"
},
{
"type": "STRING",
"value": "["
},
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "STRING",
"value": "**"
},
{
"type": "SYMBOL",
"name": "_pattern_name"
}
]
},
"_pattern_name": {
"type": "PREC_RIGHT",
"value": 10,
"content": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_NAME"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_NAME"
},
{
"type": "STRING",
"value": "$"
},
{
"type": "SYMBOL",
"name": "_NAME"
}
]
},
{
"type": "STRING",
"value": "channel"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SYMBOL",
"name": "pattern_index"
},
{
"type": "STRING",
"value": "}"
}
]
},
{
"type": "STRING",
"value": "*"
}
]
}
}
},
"pattern_index": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_INTCONSTANT"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_INTCONSTANT"
},
{
"type": "STRING",
"value": ".."
},
{
"type": "SYMBOL",
"name": "_INTCONSTANT"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ".."
},
{
"type": "SYMBOL",
"name": "_INTCONSTANT"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_INTCONSTANT"
},
{
"type": "STRING",
"value": ".."
}
]
}
]
},
"_property_namevalue": {
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "property_signature",
"content": {
"type": "SYMBOL",
"name": "_property_name"
}
},
{
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "property_signature",
"content": {
"type": "SYMBOL",
"name": "_property_name"
}
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_property_tags"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
}
]
},
"_inline_property_namevalue": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_property_name"
},
{
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_property_name"
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_property_tags"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
}
]
},
"_property_name": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_PROPNAME"
},
"named": true,
"value": "name"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_PROPNAME"
},
"named": true,
"value": "name"
},
{
"type": "STRING",
"value": "["
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_PROPINDEX"
},
"named": true,
"value": "index"
},
{
"type": "STRING",
"value": "]"
}
]
}
]
}
},
"_property_tags": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "property_tag"
},
"named": true,
"value": "tag"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "property_tag"
},
"named": true,
"value": "tag"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
}
]
},
"property_tag": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_property_literal"
},
"named": true,
"value": "name"
},
{
"type": "STRING",
"value": "="
},
{
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_property_value"
},
{
"type": "BLANK"
}
]
},
"named": true,
"value": "value_list"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "property_values"
},
"named": true,
"value": "value_list"
}
]
}
},
"property_values": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_property_value"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_property_value"
}
]
}
}
]
}
},
"_property_value": {
"type": "SYMBOL",
"name": "_property_literal"
},
"_property_literal": {
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_COMMONCHAR"
},
{
"type": "SYMBOL",
"name": "_STRINGCONSTANT"
},
{
"type": "SYMBOL",
"name": "_XMLCONSTANT"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_property_literal"
},
{
"type": "STRING",
"value": ")"
}
]
}
]
}
]
}
},
"gates": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "gates"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "gate"
}
}
]
},
"gate": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_gate_typenamesize"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "inline_properties"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ";"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "comment"
},
{
"type": "BLANK"
}
]
}
]
},
"_gate_typenamesize": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_gatetype"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_NAME"
},
"named": true,
"value": "name"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_gatetype"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_NAME"
},
"named": true,
"value": "name"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "[]"
},
"named": true,
"value": "vector"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_gatetype"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_NAME"
},
"named": true,
"value": "name"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "sizevector"
},
"named": true,
"value": "vector"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_NAME"
},
"named": true,
"value": "name"
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_NAME"
},
"named": true,
"value": "name"
},
{
"type": "STRING",
"value": "["
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_NAME"
},
"named": true,
"value": "name"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "sizevector"
},
"named": true,
"value": "vector"
}
]
}
]
},
"_gatetype": {
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "input"
},
{
"type": "STRING",
"value": "output"
},
{
"type": "STRING",
"value": "inout"
}
]
},
"named": true,
"value": "type"
},
"types": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "types"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_localtypes"
}
}
]
},
"_localtypes": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_localtype"
}
}
},
"_localtype": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "property_decl"
},
{
"type": "SYMBOL",
"name": "channel"
},
{
"type": "SYMBOL",
"name": "channel_interface"
},
{
"type": "SYMBOL",
"name": "simple"
},
{
"type": "SYMBOL",
"name": "module"
},
{
"type": "SYMBOL",
"name": "network"
},
{
"type": "SYMBOL",
"name": "moduleinterface"
},
{
"type": "STRING",
"value": ";"
}
]
},
"submodules": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "submodules"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "submodule"
},
{
"type": "SYMBOL",
"name": "comment"
}
]
}
}
}
]
},
"submodule": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_submoduleheader"
},
{
"type": "STRING",
"value": ";"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_submoduleheader"
},
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "parameters"
},
{
"type": "BLANK"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "gates"
},
{
"type": "BLANK"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
}
]
}
]
}
},
"_submoduleheader": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_submodulename"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_dottedname"
},
"named": true,
"value": "type"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "condition"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_submodulename"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "likeexpr"
},
"named": true,
"value": "like_expr"
},
{
"type": "STRING",
"value": "like"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_dottedname"
},
"named": true,
"value": "like_type"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "condition"
},
{
"type": "BLANK"
}
]
}
]
}
]
}
},
"_submodulename": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_NAME"
},
"named": true,
"value": "name"
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_NAME"
},
"named": true,
"value": "name"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "sizevector"
},
"named": true,
"value": "vector"
}
]
}
]
}
},
"likeexpr": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "STRING",
"value": ">"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": ">"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "STRING",
"value": "default"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": ")"
},
{
"type": "STRING",
"value": ">"
}
]
}
]
},
"connections": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "connections"
},
{
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "allowunconnected"
},
{
"type": "BLANK"
}
]
},
"named": true,
"value": "allowunconnected"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "connection"
},
{
"type": "SYMBOL",
"name": "_loop_or_condition"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "ifblock"
},
"named": true,
"value": "connection_group"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "forblock"
},
"named": true,
"value": "connection_group"
},
{
"type": "SYMBOL",
"name": "comment"
}
]
}
}
]
}
},
"connection": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "connectionname"
},
"named": true,
"value": "src"
},
{
"type": "SYMBOL",
"name": "arrow"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "connectionname"
},
"named": true,
"value": "dest"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_loops_and_conditions"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ";"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "connectionname"
},
"named": true,
"value": "src"
},
{
"type": "SYMBOL",
"name": "arrow"
},
{
"type": "SYMBOL",
"name": "_channelspec"
},
{
"type": "SYMBOL",
"name": "arrow"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "connectionname"
},
"named": true,
"value": "dest"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_loops_and_conditions"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ";"
}
]
}
]
}
},
"arrow": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "-->"
},
{
"type": "STRING",
"value": "<--"
},
{
"type": "STRING",
"value": "<-->"
}
]
},
"connectionname": {
"type": "SYMBOL",
"name": "_modulegate"
},
"_modulegate": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_modulepart"
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "gatepart"
},
"named": true,
"value": "gate"
}
]
}
},
"_modulepart": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_NAME"
},
"named": true,
"value": "name"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_indexvector"
},
{
"type": "BLANK"
}
]
}
]
}
},
"named": true,
"value": "module"
},
{
"type": "STRING",
"value": "."
}
]
}
},
"gatepart": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_NAME"
},
"named": true,
"value": "name"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_indexvector"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "subgate"
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "++"
},
{
"type": "BLANK"
}
]
},
"named": true,
"value": "plusplus"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "subgate"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_indexvector"
}
]
}
]
}
]
},
"_loops_and_conditions": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_loop_or_condition"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_loop_or_condition"
}
]
}
}
]
},
"_loop_or_condition": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "loop"
},
{
"type": "SYMBOL",
"name": "condition"
}
]
},
"loop": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "for"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_NAME"
},
"named": true,
"value": "param_name"
},
{
"type": "STRING",
"value": "="
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_expression"
},
"named": true,
"value": "from_value"
},
{
"type": "STRING",
"value": ".."
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_expression"
},
"named": true,
"value": "to_value"
}
]
},
"subgate": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "$i"
},
{
"type": "STRING",
"value": "$o"
}
]
},
"_channelspec": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_channelspec_header"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_channelspec_header"
},
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_params"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SYMBOL",
"name": "_params"
},
{
"type": "STRING",
"value": "}"
}
]
}
]
},
"_channelspec_header": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "channelname"
},
"named": true,
"value": "name"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_dottedname"
},
"named": true,
"value": "name"
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "channelname"
},
"named": true,
"value": "name"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_dottedname"
},
"named": true,
"value": "type"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "channelname"
},
"named": true,
"value": "name"
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "likeexpr"
},
"named": true,
"value": "like_expr"
},
{
"type": "STRING",
"value": "like"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_dottedname"
},
"named": true,
"value": "like_type"
}
]
}
]
},
"channelname": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_NAME"
},
{
"type": "STRING",
"value": ":"
}
]
},
"condition": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "if"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_expression"
},
"named": true,
"value": "value"
}
]
},
"ifblock": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "condition"
},
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "connection"
},
{
"type": "SYMBOL",
"name": "comment"
}
]
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"forblock": {
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "loop"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "loop"
}
]
}
}
]
},
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "connection"
},
{
"type": "SYMBOL",
"name": "comment"
}
]
}
},
{
"type": "STRING",
"value": "}"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
}
]
},
"sizevector": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_expression"
},
"named": true,
"value": "size"
},
{
"type": "STRING",
"value": "]"
}
]
},
"_indexvector": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_expression"
},
"named": true,
"value": "index"
},
{
"type": "STRING",
"value": "]"
}
]
},
"_expression": {
"type": "PREC_RIGHT",
"value": 10,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_simple_expr"
},
{
"type": "SYMBOL",
"name": "_functioncall"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "_functioncall"
}
]
},
{
"type": "SYMBOL",
"name": "object"
},
{
"type": "SYMBOL",
"name": "array"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "+"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "-"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "*"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "/"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "%"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "^"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "=="
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "!="
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": ">"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": ">="
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "<"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "<="
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "<=>"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "match"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "&&"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "||"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "^^"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "!"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "&"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "|"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "#"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "~"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "<<"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": ">>"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "?"
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
]
}
},
"_functioncall": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_funcname"
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_exprlist"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"array": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "_exprlist"
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "_exprlist"
},
{
"type": "STRING",
"value": ","
},
{
"type": "STRING",
"value": "]"
}
]
}
]
},
"object": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyvaluelist"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_NAME"
},
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyvaluelist"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_NAME"
},
{
"type": "STRING",
"value": "::"
},
{
"type": "SYMBOL",
"name": "_NAME"
},
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyvaluelist"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_NAME"
},
{
"type": "STRING",
"value": "::"
},
{
"type": "SYMBOL",
"name": "_NAME"
},
{
"type": "STRING",
"value": "::"
},
{
"type": "SYMBOL",
"name": "_NAME"
},
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyvaluelist"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_NAME"
},
{
"type": "STRING",
"value": "::"
},
{
"type": "SYMBOL",
"name": "_NAME"
},
{
"type": "STRING",
"value": "::"
},
{
"type": "SYMBOL",
"name": "_NAME"
},
{
"type": "STRING",
"value": "::"
},
{
"type": "SYMBOL",
"name": "_NAME"
},
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyvaluelist"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
}
]
},
"_exprlist": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
}
]
}
},
"keyvaluelist": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "keyvalue"
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "keyvalue"
}
]
}
}
]
},
"keyvalue": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "key"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
"key": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_STRINGCONSTANT"
},
{
"type": "SYMBOL",
"name": "_NAME"
},
{
"type": "SYMBOL",
"name": "_INTCONSTANT"
},
{
"type": "SYMBOL",
"name": "_REALCONSTANT"
},
{
"type": "SYMBOL",
"name": "_quantity"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "SYMBOL",
"name": "_INTCONSTANT"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "SYMBOL",
"name": "_REALCONSTANT"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "SYMBOL",
"name": "_quantity"
}
]
},
{
"type": "STRING",
"value": "nan"
},
{
"type": "STRING",
"value": "inf"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "STRING",
"value": "inf"
}
]
},
{
"type": "STRING",
"value": "true"
},
{
"type": "STRING",
"value": "false"
},
{
"type": "STRING",
"value": "null"
},
{
"type": "STRING",
"value": "nullptr"
}
]
},
"_simple_expr": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_qname"
},
{
"type": "SYMBOL",
"name": "operator"
},
{
"type": "SYMBOL",
"name": "_literal"
}
]
},
"_funcname": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_qname"
},
{
"type": "STRING",
"value": "bool"
},
{
"type": "STRING",
"value": "int"
},
{
"type": "STRING",
"value": "double"
},
{
"type": "STRING",
"value": "string"
},
{
"type": "STRING",
"value": "object"
},
{
"type": "STRING",
"value": "xml"
},
{
"type": "STRING",
"value": "xmldoc"
}
]
},
"_qname_elem": {
"type": "PREC_RIGHT",
"value": 10,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_NAME"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_NAME"
},
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "STRING",
"value": "this"
},
{
"type": "STRING",
"value": "parent"
}
]
}
},
"_qname": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_qname_elem"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "_qname_elem"
}
]
}
}
]
}
},
"operator": {
"type": "PREC",
"value": 20,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_qname"
},
{
"type": "STRING",
"value": "."
},
{
"type": "STRING",
"value": "index"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_qname"
},
{
"type": "STRING",
"value": "."
},
{
"type": "STRING",
"value": "typename"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "exists"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_qname"
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "sizeof"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_qname"
},
{
"type": "STRING",
"value": ")"
}
]
}
]
}
},
"_literal": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_STRINGCONSTANT"
},
{
"type": "SYMBOL",
"name": "_XMLCONSTANT"
},
{
"type": "SYMBOL",
"name": "_boolliteral"
},
{
"type": "SYMBOL",
"name": "_numliteral"
},
{
"type": "SYMBOL",
"name": "_otherliteral"
}
]
},
"_boolliteral": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "true"
},
{
"type": "STRING",
"value": "false"
}
]
},
"_numliteral": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_INTCONSTANT"
},
{
"type": "SYMBOL",
"name": "_realconstant_ext"
},
{
"type": "SYMBOL",
"name": "_quantity"
}
]
},
"_otherliteral": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "undefined"
},
{
"type": "STRING",
"value": "nullptr"
},
{
"type": "STRING",
"value": "null"
}
]
},
"_quantity": {
"type": "PREC",
"value": 10,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_quantity"
},
{
"type": "SYMBOL",
"name": "_INTCONSTANT"
},
{
"type": "SYMBOL",
"name": "_NAME"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_quantity"
},
{
"type": "SYMBOL",
"name": "_realconstant_ext"
},
{
"type": "SYMBOL",
"name": "_NAME"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_quantity"
},
{
"type": "SYMBOL",
"name": "_intconstant_ext"
},
{
"type": "SYMBOL",
"name": "_NAME"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_INTCONSTANT"
},
{
"type": "SYMBOL",
"name": "_NAME"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_realconstant_ext"
},
{
"type": "SYMBOL",
"name": "_NAME"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_intconstant_ext"
},
{
"type": "SYMBOL",
"name": "_NAME"
}
]
}
]
}
},
"_intconstant_ext": {
"type": "PATTERN",
"value": "[0-9]+e[0-9]*"
},
"_realconstant_ext": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_REALCONSTANT"
},
{
"type": "STRING",
"value": "inf"
},
{
"type": "STRING",
"value": "nan"
},
{
"type": "SYMBOL",
"name": "_intconstant_ext"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "_INTCONSTANT"
}
]
}
]
},
"_NAME": {
"type": "PATTERN",
"value": "[_a-zA-Z][_a-zA-Z0-9]*"
},
"_PROPNAME": {
"type": "PATTERN",
"value": "[a-zA-Z_][a-zA-Z0-9_:.-]*"
},
"_PROPINDEX": {
"type": "PATTERN",
"value": "[a-zA-Z_][a-zA-Z0-9_*?{}:.-]*"
},
"_INTCONSTANT": {
"type": "PATTERN",
"value": "\\d+"
},
"_REALCONSTANT": {
"type": "PATTERN",
"value": "\\d+\\.\\d+"
},
"_STRINGCONSTANT": {
"type": "PATTERN",
"value": "\"([^\"\\\\]|\\\\.)*\""
},
"_XMLCONSTANT": {
"type": "PATTERN",
"value": "\"[^\"]*\"|'[^']*'"
},
"_EMPTYLINE": {
"type": "PATTERN",
"value": "\\r?\\n\\s*\\r?\\n\\s*"
},
"_COMMONCHAR": {
"type": "PATTERN",
"value": "[^\"]"
}
},
"extras": [
{
"type": "PATTERN",
"value": "\\s"
},
{
"type": "SYMBOL",
"name": "inline_comment"
}
],
"conflicts": [
[
"_dottedname",
"_modulepart"
]
],
"precedences": [],
"externals": [],
"inline": [],
"supertypes": [],
"reserved": {}
}