[
{
"type": "asset_declaration",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": false,
"types": [
{
"type": "asset_definition",
"named": true
}
]
},
"extends": {
"multiple": true,
"required": false,
"types": [
{
"type": "extends",
"named": false
},
{
"type": "identifier",
"named": true
}
]
},
"id": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"meta": {
"multiple": true,
"required": false,
"types": [
{
"type": "meta",
"named": true
}
]
}
}
},
{
"type": "asset_definition",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "asset_variable",
"named": true
},
{
"type": "attack_step",
"named": true
}
]
}
},
{
"type": "asset_expr",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "asset_expr_binop",
"named": true
},
{
"type": "asset_expr_type",
"named": true
},
{
"type": "asset_expr_unop",
"named": true
},
{
"type": "asset_variable_substitution",
"named": true
},
{
"type": "identifier",
"named": true
}
]
}
},
{
"type": "asset_expr_binop",
"named": true,
"fields": {
"left": {
"multiple": true,
"required": true,
"types": [
{
"type": "(",
"named": false
},
{
"type": ")",
"named": false
},
{
"type": "asset_expr_binop",
"named": true
},
{
"type": "asset_expr_type",
"named": true
},
{
"type": "asset_expr_unop",
"named": true
},
{
"type": "asset_variable_substitution",
"named": true
},
{
"type": "identifier",
"named": true
}
]
},
"operator": {
"multiple": false,
"required": true,
"types": [
{
"type": "-",
"named": false
},
{
"type": ".",
"named": false
},
{
"type": "/\\",
"named": false
},
{
"type": "\\/",
"named": false
}
]
},
"right": {
"multiple": true,
"required": true,
"types": [
{
"type": "(",
"named": false
},
{
"type": ")",
"named": false
},
{
"type": "asset_expr_binop",
"named": true
},
{
"type": "asset_expr_type",
"named": true
},
{
"type": "asset_expr_unop",
"named": true
},
{
"type": "asset_variable_substitution",
"named": true
},
{
"type": "identifier",
"named": true
}
]
}
}
},
{
"type": "asset_expr_type",
"named": true,
"fields": {
"expression": {
"multiple": true,
"required": true,
"types": [
{
"type": "(",
"named": false
},
{
"type": ")",
"named": false
},
{
"type": "asset_expr_binop",
"named": true
},
{
"type": "asset_expr_type",
"named": true
},
{
"type": "asset_expr_unop",
"named": true
},
{
"type": "asset_variable_substitution",
"named": true
},
{
"type": "identifier",
"named": true
}
]
},
"type_id": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
}
},
{
"type": "asset_expr_unop",
"named": true,
"fields": {
"expression": {
"multiple": true,
"required": true,
"types": [
{
"type": "(",
"named": false
},
{
"type": ")",
"named": false
},
{
"type": "asset_expr_binop",
"named": true
},
{
"type": "asset_expr_type",
"named": true
},
{
"type": "asset_expr_unop",
"named": true
},
{
"type": "asset_variable_substitution",
"named": true
},
{
"type": "identifier",
"named": true
}
]
},
"operator": {
"multiple": false,
"required": true,
"types": [
{
"type": "*",
"named": false
}
]
}
}
},
{
"type": "asset_variable",
"named": true,
"fields": {
"id": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"value": {
"multiple": false,
"required": true,
"types": [
{
"type": "asset_expr",
"named": true
}
]
}
}
},
{
"type": "asset_variable_substitution",
"named": true,
"fields": {
"id": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
}
},
{
"type": "association",
"named": true,
"fields": {
"id": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"left_field_id": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"left_id": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"left_mult": {
"multiple": false,
"required": true,
"types": [
{
"type": "multiplicity",
"named": true
}
]
},
"meta": {
"multiple": true,
"required": false,
"types": [
{
"type": "meta",
"named": true
}
]
},
"right_field_id": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"right_id": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"right_mult": {
"multiple": false,
"required": true,
"types": [
{
"type": "multiplicity",
"named": true
}
]
}
}
},
{
"type": "associations_declaration",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "association",
"named": true
}
]
}
},
{
"type": "attack_step",
"named": true,
"fields": {
"causal_mode": {
"multiple": false,
"required": false,
"types": [
{
"type": "step_causal_mode",
"named": true
}
]
},
"cias": {
"multiple": true,
"required": false,
"types": [
{
"type": "cias",
"named": true
},
{
"type": "{",
"named": false
},
{
"type": "}",
"named": false
}
]
},
"detector": {
"multiple": true,
"required": false,
"types": [
{
"type": "detector",
"named": true
}
]
},
"id": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"meta": {
"multiple": true,
"required": false,
"types": [
{
"type": "meta",
"named": true
}
]
},
"preconditions": {
"multiple": false,
"required": false,
"types": [
{
"type": "preconditions",
"named": true
}
]
},
"reaches": {
"multiple": false,
"required": false,
"types": [
{
"type": "reaching",
"named": true
}
]
},
"step_type": {
"multiple": false,
"required": true,
"types": [
{
"type": "step_type",
"named": true
}
]
},
"tag": {
"multiple": true,
"required": false,
"types": [
{
"type": "@",
"named": false
},
{
"type": "identifier",
"named": true
}
]
},
"ttc": {
"multiple": false,
"required": false,
"types": [
{
"type": "ttc",
"named": true
}
]
}
}
},
{
"type": "category_declaration",
"named": true,
"fields": {
"assets": {
"multiple": true,
"required": false,
"types": [
{
"type": "asset_declaration",
"named": true
}
]
},
"id": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"meta": {
"multiple": true,
"required": false,
"types": [
{
"type": "meta",
"named": true
}
]
}
}
},
{
"type": "cias",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "cia",
"named": true
}
]
}
},
{
"type": "declaration",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "associations_declaration",
"named": true
},
{
"type": "category_declaration",
"named": true
},
{
"type": "define_declaration",
"named": true
},
{
"type": "include_declaration",
"named": true
}
]
}
},
{
"type": "define_declaration",
"named": true,
"fields": {
"id": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"value": {
"multiple": false,
"required": true,
"types": [
{
"type": "string",
"named": true
}
]
}
}
},
{
"type": "detector",
"named": true,
"fields": {
"context": {
"multiple": false,
"required": false,
"types": [
{
"type": "detector_context",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "detector_name",
"named": true
}
]
},
"tp_fp_rate": {
"multiple": false,
"required": false,
"types": [
{
"type": "tp_fp_rate",
"named": true
}
]
},
"type": {
"multiple": false,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
}
}
},
{
"type": "detector_context",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "detector_context_reference",
"named": true
}
]
}
},
{
"type": "detector_context_reference",
"named": true,
"fields": {
"ctx_step": {
"multiple": false,
"required": true,
"types": [
{
"type": "asset_expr",
"named": true
}
]
},
"id": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
}
},
{
"type": "detector_name",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
{
"type": "fpr_only",
"named": true,
"fields": {
"fp_rate": {
"multiple": false,
"required": true,
"types": [
{
"type": "float",
"named": true
},
{
"type": "integer",
"named": true
}
]
},
"fpr_key": {
"multiple": false,
"required": true,
"types": [
{
"type": "fpr",
"named": false
}
]
}
}
},
{
"type": "include_declaration",
"named": true,
"fields": {
"file": {
"multiple": false,
"required": true,
"types": [
{
"type": "string",
"named": true
}
]
}
}
},
{
"type": "meta",
"named": true,
"fields": {
"id": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"info": {
"multiple": false,
"required": true,
"types": [
{
"type": "meta_string",
"named": true
}
]
}
}
},
{
"type": "multiplicity",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "integer",
"named": true
},
{
"type": "multiplicity_range",
"named": true
},
{
"type": "star",
"named": true
}
]
}
},
{
"type": "multiplicity_range",
"named": true,
"fields": {
"end": {
"multiple": false,
"required": true,
"types": [
{
"type": "integer",
"named": true
},
{
"type": "star",
"named": true
}
]
},
"start": {
"multiple": false,
"required": true,
"types": [
{
"type": "integer",
"named": true
},
{
"type": "star",
"named": true
}
]
}
}
},
{
"type": "preconditions",
"named": true,
"fields": {
"condition": {
"multiple": true,
"required": true,
"types": [
{
"type": ",",
"named": false
},
{
"type": "asset_expr",
"named": true
}
]
}
}
},
{
"type": "reaching",
"named": true,
"fields": {
"operator": {
"multiple": false,
"required": true,
"types": [
{
"type": "+>",
"named": false
},
{
"type": "->",
"named": false
}
]
},
"reaches": {
"multiple": true,
"required": true,
"types": [
{
"type": ",",
"named": false
},
{
"type": "asset_expr",
"named": true
}
]
}
}
},
{
"type": "source_file",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "declaration",
"named": true
}
]
}
},
{
"type": "star",
"named": true,
"fields": {}
},
{
"type": "step_causal_mode",
"named": true,
"fields": {}
},
{
"type": "tp_fp_pair",
"named": true,
"fields": {
"fp_rate": {
"multiple": false,
"required": true,
"types": [
{
"type": "float",
"named": true
},
{
"type": "integer",
"named": true
}
]
},
"fpr_key": {
"multiple": false,
"required": true,
"types": [
{
"type": "fpr",
"named": false
}
]
},
"tp_rate": {
"multiple": false,
"required": true,
"types": [
{
"type": "float",
"named": true
},
{
"type": "integer",
"named": true
}
]
},
"tpr_key": {
"multiple": false,
"required": true,
"types": [
{
"type": "tpr",
"named": false
}
]
}
}
},
{
"type": "tp_fp_rate",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "fpr_only",
"named": true
},
{
"type": "tp_fp_pair",
"named": true
},
{
"type": "tpr_only",
"named": true
}
]
}
},
{
"type": "tpr_only",
"named": true,
"fields": {
"tp_rate": {
"multiple": false,
"required": true,
"types": [
{
"type": "float",
"named": true
},
{
"type": "integer",
"named": true
}
]
},
"tpr_key": {
"multiple": false,
"required": true,
"types": [
{
"type": "tpr",
"named": false
}
]
}
}
},
{
"type": "ttc",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "float",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "ttc_binop",
"named": true
},
{
"type": "ttc_distribution",
"named": true
}
]
}
},
{
"type": "ttc_binop",
"named": true,
"fields": {
"left": {
"multiple": true,
"required": true,
"types": [
{
"type": "(",
"named": false
},
{
"type": ")",
"named": false
},
{
"type": "float",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "ttc_binop",
"named": true
},
{
"type": "ttc_distribution",
"named": true
}
]
},
"operator": {
"multiple": false,
"required": true,
"types": [
{
"type": "*",
"named": false
},
{
"type": "+",
"named": false
},
{
"type": "-",
"named": false
},
{
"type": "/",
"named": false
},
{
"type": "^",
"named": false
}
]
},
"right": {
"multiple": true,
"required": true,
"types": [
{
"type": "(",
"named": false
},
{
"type": ")",
"named": false
},
{
"type": "float",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "integer",
"named": true
},
{
"type": "ttc_binop",
"named": true
},
{
"type": "ttc_distribution",
"named": true
}
]
}
}
},
{
"type": "ttc_distribution",
"named": true,
"fields": {
"id": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"values": {
"multiple": true,
"required": false,
"types": [
{
"type": ",",
"named": false
},
{
"type": "float",
"named": true
},
{
"type": "integer",
"named": true
}
]
}
}
},
{
"type": "!",
"named": false
},
{
"type": "#",
"named": false
},
{
"type": "(",
"named": false
},
{
"type": ")",
"named": false
},
{
"type": "*",
"named": false
},
{
"type": "+",
"named": false
},
{
"type": "+>",
"named": false
},
{
"type": ",",
"named": false
},
{
"type": "-",
"named": false
},
{
"type": "-->",
"named": false
},
{
"type": "->",
"named": false
},
{
"type": ".",
"named": false
},
{
"type": "..",
"named": false
},
{
"type": "/",
"named": false
},
{
"type": "//!",
"named": false
},
{
"type": "/\\",
"named": false
},
{
"type": ":",
"named": false
},
{
"type": "<-",
"named": false
},
{
"type": "<--",
"named": false
},
{
"type": "=",
"named": false
},
{
"type": "@",
"named": false
},
{
"type": "[",
"named": false
},
{
"type": "\\/",
"named": false
},
{
"type": "]",
"named": false
},
{
"type": "^",
"named": false
},
{
"type": "abstract",
"named": false
},
{
"type": "action",
"named": false
},
{
"type": "asset",
"named": false
},
{
"type": "associations",
"named": false
},
{
"type": "category",
"named": false
},
{
"type": "cia",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "effect",
"named": false
},
{
"type": "extends",
"named": false
},
{
"type": "float",
"named": true
},
{
"type": "fpr",
"named": false
},
{
"type": "identifier",
"named": true
},
{
"type": "include",
"named": false
},
{
"type": "info",
"named": false
},
{
"type": "integer",
"named": true
},
{
"type": "let",
"named": false
},
{
"type": "meta_string",
"named": true
},
{
"type": "step_type",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "tpr",
"named": false
},
{
"type": "{",
"named": false
},
{
"type": "}",
"named": false
}
]