{
"name": "mal",
"word": "identifier",
"rules": {
"source_file": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "declaration"
}
},
"comment": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "//"
},
{
"type": "PATTERN",
"value": "[^\\r\\n\\u2028\\u2029]*"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "/*"
},
{
"type": "PATTERN",
"value": "[^*]*\\*+([^/*][^*]*\\*+)*"
},
{
"type": "STRING",
"value": "/"
}
]
}
]
}
}
},
"declaration": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "include_declaration"
},
{
"type": "SYMBOL",
"name": "category_declaration"
},
{
"type": "SYMBOL",
"name": "define_declaration"
},
{
"type": "SYMBOL",
"name": "associations_declaration"
}
]
},
"include_declaration": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "include"
},
{
"type": "FIELD",
"name": "file",
"content": {
"type": "SYMBOL",
"name": "string"
}
}
]
},
"category_declaration": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "category"
},
{
"type": "FIELD",
"name": "id",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "FIELD",
"name": "meta",
"content": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "meta"
}
}
},
{
"type": "STRING",
"value": "{"
},
{
"type": "FIELD",
"name": "assets",
"content": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "asset_declaration"
}
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"asset_declaration": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "abstract"
},
"named": false,
"value": "abstract"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "asset"
},
{
"type": "FIELD",
"name": "id",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "FIELD",
"name": "extends",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "extends"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
{
"type": "BLANK"
}
]
}
},
{
"type": "FIELD",
"name": "meta",
"content": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "meta"
}
}
},
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "asset_definition"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"asset_definition": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "attack_step"
},
{
"type": "SYMBOL",
"name": "asset_variable"
}
]
}
},
"asset_variable": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "let"
},
{
"type": "FIELD",
"name": "id",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "asset_expr"
}
}
]
},
"attack_step": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "step_type",
"content": {
"type": "SYMBOL",
"name": "step_type"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "causal_mode",
"content": {
"type": "SYMBOL",
"name": "step_causal_mode"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "id",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "cias",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SYMBOL",
"name": "cias"
},
{
"type": "STRING",
"value": "}"
}
]
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "ttc",
"content": {
"type": "SYMBOL",
"name": "ttc"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "meta",
"content": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "meta"
}
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "detector",
"content": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "detector"
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "preconditions",
"content": {
"type": "SYMBOL",
"name": "preconditions"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "reaches",
"content": {
"type": "SYMBOL",
"name": "reaching"
}
},
{
"type": "BLANK"
}
]
}
]
},
"step_type": {
"type": "TOKEN",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "|"
},
{
"type": "STRING",
"value": "&"
},
{
"type": "STRING",
"value": "#"
},
{
"type": "STRING",
"value": "E"
},
{
"type": "STRING",
"value": "!E"
}
]
}
},
"step_causal_mode": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "action"
},
{
"type": "STRING",
"value": "effect"
}
]
},
"cias": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "cia"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "cia"
}
]
}
}
]
},
"detector": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "!"
},
{
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "STRING",
"value": "//!"
}
}
}
]
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "detector_name"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "context",
"content": {
"type": "SYMBOL",
"name": "detector_context"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "tp_fp_rate",
"content": {
"type": "SYMBOL",
"name": "tp_fp_rate"
}
},
{
"type": "BLANK"
}
]
}
]
},
"detector_name": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
}
]
},
"detector_context": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "detector_context_reference"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "detector_context_reference"
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"detector_context_reference": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "ctx_step",
"content": {
"type": "SYMBOL",
"name": "asset_expr"
}
},
{
"type": "FIELD",
"name": "id",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
"tp_fp_rate": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "tp_fp_pair"
},
{
"type": "SYMBOL",
"name": "tpr_only"
},
{
"type": "SYMBOL",
"name": "fpr_only"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
"tp_fp_pair": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "tpr_key",
"content": {
"type": "STRING",
"value": "tpr"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "tp_rate",
"content": {
"type": "SYMBOL",
"name": "_number"
}
},
{
"type": "STRING",
"value": ","
},
{
"type": "FIELD",
"name": "fpr_key",
"content": {
"type": "STRING",
"value": "fpr"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "fp_rate",
"content": {
"type": "SYMBOL",
"name": "_number"
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "fpr_key",
"content": {
"type": "STRING",
"value": "fpr"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "fp_rate",
"content": {
"type": "SYMBOL",
"name": "_number"
}
},
{
"type": "STRING",
"value": ","
},
{
"type": "FIELD",
"name": "tpr_key",
"content": {
"type": "STRING",
"value": "tpr"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "tp_rate",
"content": {
"type": "SYMBOL",
"name": "_number"
}
}
]
}
]
},
"tpr_only": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "tpr_key",
"content": {
"type": "STRING",
"value": "tpr"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "tp_rate",
"content": {
"type": "SYMBOL",
"name": "_number"
}
}
]
},
"fpr_only": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "fpr_key",
"content": {
"type": "STRING",
"value": "fpr"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "fp_rate",
"content": {
"type": "SYMBOL",
"name": "_number"
}
}
]
},
"preconditions": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "<-"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "asset_expr"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "asset_expr"
}
]
}
}
]
}
}
]
},
"reaching": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+>"
},
{
"type": "STRING",
"value": "->"
}
]
}
},
{
"type": "FIELD",
"name": "reaches",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "asset_expr"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "asset_expr"
}
]
}
}
]
}
}
]
},
"ttc": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "_ttc_expr"
},
{
"type": "STRING",
"value": "]"
}
]
},
"_ttc_expr": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_ttc_parenthesized"
},
{
"type": "SYMBOL",
"name": "_ttc_primary"
},
{
"type": "SYMBOL",
"name": "ttc_binop"
}
]
},
"_ttc_parenthesized": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_ttc_expr"
},
{
"type": "STRING",
"value": ")"
}
]
},
"_ttc_primary": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_number"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "ttc_distribution"
}
]
},
"ttc_distribution": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "id",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "values",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_number"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_number"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"ttc_binop": {
"type": "CHOICE",
"members": [
{
"type": "PREC_LEFT",
"value": "binary_plus",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_ttc_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "+"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_ttc_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "binary_plus",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_ttc_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "-"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_ttc_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "binary_mul",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_ttc_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "*"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_ttc_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "binary_mul",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_ttc_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "/"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_ttc_expr"
}
}
]
}
},
{
"type": "PREC_RIGHT",
"value": "binary_exp",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_ttc_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "^"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_ttc_expr"
}
}
]
}
}
]
},
"asset_expr": {
"type": "SYMBOL",
"name": "_inline_asset_expr"
},
"_inline_asset_expr": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_inline_asset_expr"
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SYMBOL",
"name": "_asset_expr_primary"
},
{
"type": "SYMBOL",
"name": "asset_expr_binop"
},
{
"type": "SYMBOL",
"name": "asset_expr_unop"
},
{
"type": "SYMBOL",
"name": "asset_expr_type"
}
]
},
"_asset_expr_primary": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "asset_variable_substitution"
}
]
},
"asset_variable_substitution": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "id",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "("
},
{
"type": "STRING",
"value": ")"
}
]
},
"asset_expr_type": {
"type": "PREC_LEFT",
"value": "binary_exp",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "expression",
"content": {
"type": "SYMBOL",
"name": "_inline_asset_expr"
}
},
{
"type": "STRING",
"value": "["
},
{
"type": "FIELD",
"name": "type_id",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "]"
}
]
}
},
"asset_expr_binop": {
"type": "CHOICE",
"members": [
{
"type": "PREC_LEFT",
"value": "binary_plus",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_inline_asset_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "\\/"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_inline_asset_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "binary_plus",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_inline_asset_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "/\\"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_inline_asset_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "binary_plus",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_inline_asset_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "-"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_inline_asset_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "binary_mul",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_inline_asset_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "."
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_inline_asset_expr"
}
}
]
}
}
]
},
"asset_expr_unop": {
"type": "CHOICE",
"members": [
{
"type": "PREC_LEFT",
"value": "binary_exp",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "expression",
"content": {
"type": "SYMBOL",
"name": "_inline_asset_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "*"
}
}
]
}
}
]
},
"define_declaration": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "#"
},
{
"type": "FIELD",
"name": "id",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "string"
}
}
]
},
"associations_declaration": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "associations"
},
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "association"
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"association": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left_id",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "["
},
{
"type": "FIELD",
"name": "left_field_id",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "]"
},
{
"type": "FIELD",
"name": "left_mult",
"content": {
"type": "SYMBOL",
"name": "multiplicity"
}
},
{
"type": "STRING",
"value": "<--"
},
{
"type": "FIELD",
"name": "id",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "-->"
},
{
"type": "FIELD",
"name": "right_mult",
"content": {
"type": "SYMBOL",
"name": "multiplicity"
}
},
{
"type": "STRING",
"value": "["
},
{
"type": "FIELD",
"name": "right_field_id",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "]"
},
{
"type": "FIELD",
"name": "right_id",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "FIELD",
"name": "meta",
"content": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "meta"
}
}
}
]
},
"multiplicity": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_multiplicity_atom"
},
{
"type": "SYMBOL",
"name": "multiplicity_range"
}
]
},
"_multiplicity_atom": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "integer"
},
{
"type": "SYMBOL",
"name": "star"
}
]
},
"multiplicity_range": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "start",
"content": {
"type": "SYMBOL",
"name": "_multiplicity_atom"
}
},
{
"type": "STRING",
"value": ".."
},
{
"type": "FIELD",
"name": "end",
"content": {
"type": "SYMBOL",
"name": "_multiplicity_atom"
}
}
]
},
"meta": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "id",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "info"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "info",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "string"
},
"named": true,
"value": "meta_string"
}
}
]
},
"string": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\""
},
{
"type": "PATTERN",
"value": "(?:\\\\\"|[^\"])*"
},
{
"type": "STRING",
"value": "\""
}
]
}
},
"_number": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "integer"
},
{
"type": "SYMBOL",
"name": "float"
}
]
},
"integer": {
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[0-9]+"
}
},
"float": {
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "(:?[0-9]+(:?[.][0-9]*)?|[.][0-9]+)"
}
},
"identifier": {
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[a-zA-Z0-9_]+"
}
},
"star": {
"type": "TOKEN",
"content": {
"type": "STRING",
"value": "*"
}
},
"cia": {
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[CIA]"
}
}
},
"extras": [
{
"type": "PATTERN",
"value": "[ \\t\\r\\n]+"
},
{
"type": "SYMBOL",
"name": "comment"
}
],
"conflicts": [
[
"association"
]
],
"precedences": [
[
{
"type": "STRING",
"value": "binary_exp"
},
{
"type": "STRING",
"value": "binary_mul"
},
{
"type": "STRING",
"value": "binary_plus"
}
]
],
"externals": [],
"inline": [],
"supertypes": []
}