UNPKG

tree-sitter-angular

Version:
2,291 lines (2,290 loc) 76.5 kB
{ "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json", "name": "angular", "inherits": "html", "rules": { "document": { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_node" } }, "doctype": { "type": "SEQ", "members": [ { "type": "STRING", "value": "<!" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_doctype" }, "named": false, "value": "doctype" }, { "type": "PATTERN", "value": "[^>]+" }, { "type": "STRING", "value": ">" } ] }, "_doctype": { "type": "PATTERN", "value": "[Dd][Oo][Cc][Tt][Yy][Pp][Ee]" }, "_node": { "type": "CHOICE", "members": [ { "type": "PREC", "value": 1, "content": { "type": "SYMBOL", "name": "icu_expression" } }, { "type": "PREC", "value": 1, "content": { "type": "SYMBOL", "name": "interpolation" } }, { "type": "PREC", "value": 1, "content": { "type": "SYMBOL", "name": "_any_statement" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "doctype" }, { "type": "SYMBOL", "name": "entity" }, { "type": "SYMBOL", "name": "text" }, { "type": "SYMBOL", "name": "element" }, { "type": "SYMBOL", "name": "script_element" }, { "type": "SYMBOL", "name": "style_element" }, { "type": "SYMBOL", "name": "erroneous_end_tag" } ] } ] }, "element": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "start_tag" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_node" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "end_tag" }, { "type": "SYMBOL", "name": "_implicit_end_tag" } ] } ] }, { "type": "SYMBOL", "name": "self_closing_tag" } ] }, "script_element": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "script_start_tag" }, "named": true, "value": "start_tag" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "raw_text" }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "end_tag" } ] }, "style_element": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "style_start_tag" }, "named": true, "value": "start_tag" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "raw_text" }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "end_tag" } ] }, "start_tag": { "type": "SEQ", "members": [ { "type": "STRING", "value": "<" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_start_tag_name" }, "named": true, "value": "tag_name" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "attribute" } }, { "type": "STRING", "value": ">" } ] }, "script_start_tag": { "type": "SEQ", "members": [ { "type": "STRING", "value": "<" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_script_start_tag_name" }, "named": true, "value": "tag_name" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "attribute" } }, { "type": "STRING", "value": ">" } ] }, "style_start_tag": { "type": "SEQ", "members": [ { "type": "STRING", "value": "<" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_style_start_tag_name" }, "named": true, "value": "tag_name" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "attribute" } }, { "type": "STRING", "value": ">" } ] }, "self_closing_tag": { "type": "SEQ", "members": [ { "type": "STRING", "value": "<" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_start_tag_name" }, "named": true, "value": "tag_name" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "attribute" } }, { "type": "STRING", "value": "/>" } ] }, "end_tag": { "type": "SEQ", "members": [ { "type": "STRING", "value": "</" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_end_tag_name" }, "named": true, "value": "tag_name" }, { "type": "STRING", "value": ">" } ] }, "erroneous_end_tag": { "type": "SEQ", "members": [ { "type": "STRING", "value": "</" }, { "type": "SYMBOL", "name": "erroneous_end_tag_name" }, { "type": "STRING", "value": ">" } ] }, "attribute": { "type": "CHOICE", "members": [ { "type": "PREC", "value": 1, "content": { "type": "SYMBOL", "name": "property_binding" } }, { "type": "PREC", "value": 1, "content": { "type": "SYMBOL", "name": "two_way_binding" } }, { "type": "PREC", "value": 1, "content": { "type": "SYMBOL", "name": "animation_binding" } }, { "type": "PREC", "value": 1, "content": { "type": "SYMBOL", "name": "event_binding" } }, { "type": "PREC", "value": 1, "content": { "type": "SYMBOL", "name": "structural_directive" } }, { "type": "SYMBOL", "name": "_normal_attribute" } ] }, "attribute_name": { "type": "PATTERN", "value": "[^<>\\*.\\[\\]\\(\\)\"'=\\s]+" }, "attribute_value": { "type": "PATTERN", "value": "[^<>\"'=\\s]+" }, "entity": { "type": "PATTERN", "value": "&(#([xX][0-9a-fA-F]{1,6}|[0-9]{1,5})|[A-Za-z]{1,30});?" }, "quoted_attribute_value": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "'" }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[^']+" }, "named": true, "value": "attribute_value" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "'" } ] }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "\"" }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[^\"]+" }, "named": true, "value": "attribute_value" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "\"" } ] } ] }, "text": { "type": "PATTERN", "value": "[^<>@{}&\\s]([^<>@{}&]*[^<>@{}&\\s])?" }, "statement_block": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_node" } }, { "type": "STRING", "value": "}" } ] } }, "_any_statement": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "if_statement" }, { "type": "SYMBOL", "name": "for_statement" }, { "type": "SYMBOL", "name": "defer_statement" }, { "type": "SYMBOL", "name": "switch_statement" }, { "type": "SYMBOL", "name": "let_statement" }, { "type": "SYMBOL", "name": "_alternative_statement" } ] }, "_alternative_statement": { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "alternative", "content": { "type": "SYMBOL", "name": "else_statement" } }, { "type": "FIELD", "name": "alternative_condition", "content": { "type": "SYMBOL", "name": "else_if_statement" } }, { "type": "FIELD", "name": "empty", "content": { "type": "SYMBOL", "name": "empty_statement" } }, { "type": "FIELD", "name": "placeholder", "content": { "type": "SYMBOL", "name": "placeholder_statement" } }, { "type": "FIELD", "name": "loading", "content": { "type": "SYMBOL", "name": "loading_statement" } }, { "type": "FIELD", "name": "error", "content": { "type": "SYMBOL", "name": "error_statement" } } ] }, "let_statement": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_control_flow_start" }, "named": false, "value": "@" }, { "type": "ALIAS", "content": { "type": "STRING", "value": "let" }, "named": true, "value": "control_keyword" }, { "type": "SYMBOL", "name": "assignment_expression" }, { "type": "STRING", "value": ";" } ] } }, "switch_statement": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_control_flow_start" }, "named": false, "value": "@" }, { "type": "ALIAS", "content": { "type": "STRING", "value": "switch" }, "named": true, "value": "control_keyword" }, { "type": "STRING", "value": "(" }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": ")" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "switch_body" } } ] } }, "switch_body": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "REPEAT1", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "case_statement" }, { "type": "SYMBOL", "name": "default_statement" } ] } }, { "type": "STRING", "value": "}" } ] }, "case_statement": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_control_flow_start" }, "named": false, "value": "@" }, { "type": "ALIAS", "content": { "type": "STRING", "value": "case" }, "named": true, "value": "control_keyword" }, { "type": "STRING", "value": "(" }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "_any_expression" } }, { "type": "STRING", "value": ")" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "statement_block" } } ] }, "default_statement": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_control_flow_start" }, "named": false, "value": "@" }, { "type": "ALIAS", "content": { "type": "STRING", "value": "default" }, "named": true, "value": "control_keyword" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "statement_block" } } ] }, "defer_statement": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_control_flow_start" }, "named": false, "value": "@" }, { "type": "ALIAS", "content": { "type": "STRING", "value": "defer" }, "named": true, "value": "control_keyword" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "defer_trigger" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "statement_block" } } ] } }, "placeholder_statement": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_control_flow_start" }, "named": false, "value": "@" }, { "type": "ALIAS", "content": { "type": "STRING", "value": "placeholder" }, "named": true, "value": "control_keyword" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "placeholder_minimum" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "statement_block" } } ] } }, "loading_statement": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_control_flow_start" }, "named": false, "value": "@" }, { "type": "ALIAS", "content": { "type": "STRING", "value": "loading" }, "named": true, "value": "control_keyword" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "loading_condition" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "statement_block" } } ] } }, "error_statement": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_control_flow_start" }, "named": false, "value": "@" }, { "type": "ALIAS", "content": { "type": "STRING", "value": "error" }, "named": true, "value": "control_keyword" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "statement_block" } } ] }, "defer_trigger": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "FIELD", "name": "condition", "content": { "type": "SYMBOL", "name": "defer_trigger_condition" } }, { "type": "CHOICE", "members": [ { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": ";" }, { "type": "FIELD", "name": "condition", "content": { "type": "SYMBOL", "name": "defer_trigger_condition" } } ] } }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, "placeholder_minimum": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "FIELD", "name": "minimum", "content": { "type": "SYMBOL", "name": "timed_expression" } }, { "type": "STRING", "value": ")" } ] }, "loading_condition": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "FIELD", "name": "condition", "content": { "type": "SYMBOL", "name": "timed_expression" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": ";" }, { "type": "FIELD", "name": "condition", "content": { "type": "SYMBOL", "name": "timed_expression" } } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, "defer_trigger_condition": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "STRING", "value": "prefetch" }, "named": true, "value": "prefetch_keyword" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "STRING", "value": "when" }, "named": true, "value": "special_keyword" }, { "type": "FIELD", "name": "trigger", "content": { "type": "SYMBOL", "name": "_any_expression" } } ] }, { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "STRING", "value": "on" }, "named": true, "value": "special_keyword" }, { "type": "FIELD", "name": "trigger", "content": { "type": "SYMBOL", "name": "_primitive" } } ] } ] } ] }, "timed_expression": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "after" }, { "type": "STRING", "value": "minimum" } ] }, "named": true, "value": "special_keyword" }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "number" } }, { "type": "ALIAS", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "ms" }, { "type": "STRING", "value": "s" } ] }, "named": true, "value": "unit" } ] }, "for_statement": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_control_flow_start" }, "named": false, "value": "@" }, { "type": "ALIAS", "content": { "type": "STRING", "value": "for" }, "named": true, "value": "control_keyword" }, { "type": "STRING", "value": "(" }, { "type": "FIELD", "name": "declaration", "content": { "type": "SYMBOL", "name": "for_declaration" } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "reference", "content": { "type": "SYMBOL", "name": "for_reference" } }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "statement_block" } } ] } }, "empty_statement": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_control_flow_start" }, "named": false, "value": "@" }, { "type": "ALIAS", "content": { "type": "STRING", "value": "empty" }, "named": true, "value": "control_keyword" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "statement_block" } } ] }, "for_declaration": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "ALIAS", "content": { "type": "STRING", "value": "of" }, "named": true, "value": "special_keyword" }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": ";" }, { "type": "ALIAS", "content": { "type": "STRING", "value": "track" }, "named": true, "value": "special_keyword" }, { "type": "FIELD", "name": "track", "content": { "type": "SYMBOL", "name": "expression" } } ] }, "for_reference": { "type": "SEQ", "members": [ { "type": "STRING", "value": ";" }, { "type": "ALIAS", "content": { "type": "STRING", "value": "let" }, "named": true, "value": "special_keyword" }, { "type": "FIELD", "name": "alias", "content": { "type": "SYMBOL", "name": "assignment_expression" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": ";" }, { "type": "STRING", "value": "," } ] }, { "type": "FIELD", "name": "alias", "content": { "type": "SYMBOL", "name": "assignment_expression" } } ] } } ] }, "if_statement": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_if_start_expression" }, { "type": "SYMBOL", "name": "_if_body_expression" } ] } }, "else_if_statement": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_else_if_start_expression" }, { "type": "SYMBOL", "name": "_if_body_expression" } ] } }, "else_statement": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_control_flow_start" }, "named": false, "value": "@" }, { "type": "ALIAS", "content": { "type": "STRING", "value": "else" }, "named": true, "value": "control_keyword" }, { "type": "SYMBOL", "name": "statement_block" } ] } }, "_if_start_expression": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_control_flow_start" }, "named": false, "value": "@" }, { "type": "ALIAS", "content": { "type": "STRING", "value": "if" }, "named": true, "value": "control_keyword" } ] }, "_else_if_start_expression": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_control_flow_start" }, "named": false, "value": "@" }, { "type": "ALIAS", "content": { "type": "STRING", "value": "else" }, "named": true, "value": "control_keyword" }, { "type": "ALIAS", "content": { "type": "STRING", "value": "if" }, "named": true, "value": "control_keyword" } ] }, "_if_body_expression": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "FIELD", "name": "condition", "content": { "type": "SYMBOL", "name": "if_condition" } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "reference", "content": { "type": "SYMBOL", "name": "if_reference" } }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" }, { "type": "FIELD", "name": "consequence", "content": { "type": "SYMBOL", "name": "statement_block" } } ] } }, "if_condition": { "type": "PREC_RIGHT", "value": 1, "content": { "type": "SYMBOL", "name": "_any_expression" } }, "if_reference": { "type": "SEQ", "members": [ { "type": "STRING", "value": ";" }, { "type": "ALIAS", "content": { "type": "STRING", "value": "as" }, "named": true, "value": "special_keyword" }, { "type": "SYMBOL", "name": "identifier" } ] }, "_any_expression": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "binary_expression" }, { "type": "SYMBOL", "name": "unary_expression" }, { "type": "SYMBOL", "name": "expression" }, { "type": "SYMBOL", "name": "ternary_expression" }, { "type": "SYMBOL", "name": "nullish_coalescing_expression" }, { "type": "SYMBOL", "name": "template_string" }, { "type": "PREC", "value": 3, "content": { "type": "SYMBOL", "name": "conditional_expression" } } ] }, "assignment_expression": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "_any_expression" } } ] }, "icu_expression": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_any_expression" }, { "type": "SYMBOL", "name": "concatenation_expression" } ] }, { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "icu_clause" }, { "type": "STRING", "value": "," }, { "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "icu_case" } }, { "type": "STRING", "value": "}" } ] }, "icu_clause": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "plural" }, { "type": "STRING", "value": "select" } ] }, "icu_case": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "icu_category" }, { "type": "STRING", "value": "{" }, { "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "_node" } }, { "type": "STRING", "value": "}" } ] }, "icu_category": { "type": "PATTERN", "value": "[^{}]+", "flags": "i" }, "interpolation": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_interpolation_start" }, "named": false, "value": "{{" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_any_expression" }, { "type": "SYMBOL", "name": "concatenation_expression" } ] }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_interpolation_end" }, "named": false, "value": "}}" } ] }, "concatenation_expression": { "type": "PREC", "value": 2, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_primitive" }, { "type": "STRING", "value": "+" }, { "type": "SYMBOL", "name": "expression" }, { "type": "CHOICE", "members": [ { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "+" }, { "type": "SYMBOL", "name": "_primitive" } ] } }, { "type": "BLANK" } ] } ] } }, "structural_directive": { "type": "SEQ", "members": [ { "type": "STRING", "value": "*" }, { "type": "SYMBOL", "name": "identifier" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "=" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_double_quote" }, { "type": "SYMBOL", "name": "_single_quote" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "structural_expression" }, { "type": "SYMBOL", "name": "structural_declaration" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_double_quote" }, { "type": "SYMBOL", "name": "_single_quote" } ] } ] }, { "type": "BLANK" } ] } ] }, "structural_expression": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_any_expression" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_alias" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_else_template_expression" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_context_expression" }, { "type": "BLANK" } ] } ] }, "structural_declaration": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "STRING", "value": "let" }, "named": true, "value": "special_keyword" }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "structural_assignment" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": ";" }, { "type": "STRING", "value": "," } ] }, { "type": "SYMBOL", "name": "structural_assignment" } ] } } ] } ] }, "structural_assignment": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "identifier" } } ] }, { "type": "PREC_LEFT", "value": 2, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "STRING", "value": "let" }, "named": true, "value": "special_keyword" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "FIELD", "name": "operator", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "STRING", "value": "=" } ] } }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_alias" }, { "type": "BLANK" } ] } ] } }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_alias" }, { "type": "BLANK" } ] } ] } ] }, "_alias": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "STRING", "value": "as" }, "named": true, "value": "special_keyword" }, { "type": "FIELD", "name": "alias", "content": { "type": "SYMBOL", "name": "identifier" } } ] }, "_else_template_expression": { "type": "SEQ", "members": [ { "type": "STRING", "value": ";" }, { "type": "ALIAS", "content": { "type": "STRING", "value": "else" }, "named": true, "value": "special_keyword" }, { "type": "SYMBOL", "name": "identifier" } ] }, "_context_expression": { "type": "SEQ", "members": [ { "type": "STRING", "value": ";" }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "STRING", "value": "context" }, "named": true, "value": "special_keyword" }, { "type": "FIELD", "name": "named", "content": { "type": "SYMBOL", "name": "identifier" } } ] }, { "type": "STRING", "value": ":" }, { "type": "SYMBOL", "name": "_any_expression" } ] }, "property_binding": { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "SYMBOL", "name": "binding_name" }, { "type": "STRING", "value": "]" }, { "type": "SYMBOL", "name": "_binding_assignment" } ] }, "event_binding": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "SYMBOL", "name": "binding_name" }, { "type": "STRING", "value": ")" }, { "type": "SYMBOL", "name": "_binding_assignment" } ] }, "two_way_binding": { "type": "SEQ", "members": [ { "type": "STRING", "value": "[(" }, { "type": "SYMBOL", "name": "binding_name" }, { "type": "STRING", "value": ")]" }, { "type": "SYMBOL", "name": "_binding_assignment" } ] }, "animation_binding": { "type": "SEQ", "members": [ { "type": "STRING", "value": "[@" }, { "type": "SYMBOL", "name": "binding_name" }, { "type": "STRING", "value": "]" }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "trigger", "content": { "type": "SYMBOL", "name": "_binding_assignment" } }, { "type": "BLANK" }