{
"name": "pug",
"rules": {
"source_file": {
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "conditional"
},
{
"type": "SYMBOL",
"name": "comment"
},
{
"type": "SYMBOL",
"name": "script_block"
},
{
"type": "SYMBOL",
"name": "tag"
},
{
"type": "SYMBOL",
"name": "doctype"
},
{
"type": "SYMBOL",
"name": "unbuffered_code"
},
{
"type": "SYMBOL",
"name": "buffered_code"
},
{
"type": "SYMBOL",
"name": "unescaped_buffered_code"
},
{
"type": "SYMBOL",
"name": "case"
},
{
"type": "SYMBOL",
"name": "pipe"
},
{
"type": "SYMBOL",
"name": "filter"
},
{
"type": "SYMBOL",
"name": "block_definition"
},
{
"type": "SYMBOL",
"name": "block_append"
},
{
"type": "SYMBOL",
"name": "block_prepend"
},
{
"type": "SYMBOL",
"name": "extends"
},
{
"type": "SYMBOL",
"name": "mixin_definition"
},
{
"type": "SYMBOL",
"name": "mixin_use"
},
{
"type": "SYMBOL",
"name": "each"
},
{
"type": "SYMBOL",
"name": "while"
},
{
"type": "SYMBOL",
"name": "include"
}
]
}
},
"doctype": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "doctype"
},
{
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "html"
},
{
"type": "STRING",
"value": "strict"
},
{
"type": "STRING",
"value": "xml"
},
{
"type": "STRING",
"value": "transitional"
},
{
"type": "STRING",
"value": "frameset"
},
{
"type": "STRING",
"value": "1.1"
},
{
"type": "STRING",
"value": "basic"
},
{
"type": "STRING",
"value": "mobile"
},
{
"type": "STRING",
"value": "plist"
}
]
},
"named": true,
"value": "doctype_name"
}
]
},
"pipe": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "|"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_content_or_javascript"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
},
"include": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "include"
},
"named": true,
"value": "keyword"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "filter"
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[^\\n]+"
},
"named": true,
"value": "filename"
}
]
},
"while": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "while"
},
"named": true,
"value": "keyword"
},
{
"type": "SYMBOL",
"name": "iteration_iterator"
},
{
"type": "SYMBOL",
"name": "_newline"
},
{
"type": "SYMBOL",
"name": "children"
}
]
},
"_each_js": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[\\w_]+"
},
"named": true,
"value": "javascript"
},
"iteration_variable": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_each_js"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_each_js"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"iteration_iterator": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[^\\n]+"
},
"named": true,
"value": "javascript"
},
"_each_else": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "else"
},
"named": true,
"value": "keyword"
},
{
"type": "SYMBOL",
"name": "_newline"
},
{
"type": "SYMBOL",
"name": "children"
}
]
},
"each": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "each"
},
{
"type": "STRING",
"value": "for"
}
]
},
"named": true,
"value": "keyword"
},
{
"type": "SYMBOL",
"name": "iteration_variable"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "in"
},
"named": true,
"value": "keyword"
},
{
"type": "SYMBOL",
"name": "iteration_iterator"
},
{
"type": "SYMBOL",
"name": "_newline"
},
{
"type": "SYMBOL",
"name": "children"
},
{
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_each_else"
},
{
"type": "BLANK"
}
]
},
"named": true,
"value": "else"
}
]
}
},
"mixin_use": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "+"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "tag_name"
},
"named": true,
"value": "mixin_name"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_pug_attributes"
},
"named": true,
"value": "attribute"
},
{
"type": "STRING",
"value": ","
}
]
}
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_pug_attributes"
},
"named": true,
"value": "attribute"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"mixin_definition": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "mixin"
},
"named": true,
"value": "keyword"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "tag_name"
},
"named": true,
"value": "mixin_name"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "mixin_attributes"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_newline"
},
{
"type": "SYMBOL",
"name": "children"
}
]
},
"mixin_attributes": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "\\w+"
},
"named": true,
"value": "attribute_name"
},
{
"type": "STRING",
"value": ","
}
]
}
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "\\w+"
},
"named": true,
"value": "attribute_name"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"_block_content": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "tag_name"
},
"named": true,
"value": "block_name"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_newline"
},
{
"type": "SYMBOL",
"name": "children"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"block_definition": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "block"
},
"named": true,
"value": "keyword"
},
{
"type": "SYMBOL",
"name": "_block_content"
}
]
},
"block_append": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "block"
},
{
"type": "BLANK"
}
]
},
"named": true,
"value": "keyword"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "append"
},
"named": true,
"value": "keyword"
},
{
"type": "SYMBOL",
"name": "_block_content"
}
]
},
"block_prepend": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "block"
},
{
"type": "BLANK"
}
]
},
"named": true,
"value": "keyword"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "prepend"
},
"named": true,
"value": "keyword"
},
{
"type": "SYMBOL",
"name": "_block_content"
}
]
},
"extends": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "extends"
},
"named": true,
"value": "keyword"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[^\\n]+"
},
"named": true,
"value": "filename"
}
]
},
"filter": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "filter_name"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "attributes"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "filter_content"
},
"named": true,
"value": "content"
},
{
"type": "BLANK"
}
]
}
]
}
},
"filter_name": {
"type": "PATTERN",
"value": "[\\w-]+"
},
"filter_content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "filter"
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "( |\\t)+"
},
{
"type": "PATTERN",
"value": "[^\\n]*"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_newline"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[^\\n]*"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
}
]
},
"conditional": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "unless"
},
{
"type": "STRING",
"value": "if"
},
{
"type": "STRING",
"value": "else if"
}
]
},
"named": true,
"value": "keyword"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_un_delimited_javascript"
},
"named": true,
"value": "javascript"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "else"
},
"named": true,
"value": "keyword"
}
]
},
{
"type": "SYMBOL",
"name": "_newline"
},
{
"type": "SYMBOL",
"name": "children"
}
]
},
"case": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "case"
},
"named": true,
"value": "keyword"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_un_delimited_javascript_line"
},
"named": true,
"value": "javascript"
},
{
"type": "SYMBOL",
"name": "_newline"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "when"
}
}
]
}
},
"_when_content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_newline"
},
{
"type": "SYMBOL",
"name": "children"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_dummy_tag"
},
"named": true,
"value": "children"
}
]
}
]
}
]
},
"_dummy_tag": {
"type": "SYMBOL",
"name": "tag"
},
"_when_keyword": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "when"
},
"named": true,
"value": "keyword"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[^:\\n]+?"
},
"named": true,
"value": "javascript"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "default"
},
"named": true,
"value": "keyword"
}
]
},
"when": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_when_keyword"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_when_content"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_dedent"
},
{
"type": "BLANK"
}
]
}
]
}
},
"unescaped_buffered_code": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "!="
},
{
"type": "SYMBOL",
"name": "_single_line_buf_code"
}
]
},
"buffered_code": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_single_line_buf_code"
}
]
},
"script_block": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "script."
},
{
"type": "SYMBOL",
"name": "_newline"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "ALIAS",
"content": {
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[^\\n]+"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
"named": true,
"value": "javascript"
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
"tag": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "tag_name"
},
{
"type": "SYMBOL",
"name": "id"
},
{
"type": "SYMBOL",
"name": "class"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "id"
},
{
"type": "SYMBOL",
"name": "class"
}
]
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "attributes"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "/"
},
"named": true,
"value": "self_close_slash"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "tag"
}
]
},
{
"type": "SYMBOL",
"name": "_content_after_dot"
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_newline"
},
{
"type": "SYMBOL",
"name": "_indent"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "buffered_code"
},
{
"type": "SYMBOL",
"name": "unescaped_buffered_code"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": " "
},
{
"type": "SYMBOL",
"name": "_content_or_javascript"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_newline"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "children"
},
{
"type": "BLANK"
}
]
}
]
}
]
}
]
},
"_content_after_dot": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_newline"
},
{
"type": "SYMBOL",
"name": "_indent"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "_newline"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "ALIAS",
"content": {
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_content_or_javascript"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
"named": true,
"value": "children"
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
"attributes": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "attribute"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "STRING",
"value": " "
}
]
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "attribute"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"attribute": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_attribute"
},
{
"type": "SYMBOL",
"name": "_angular_attribute"
}
]
},
"_ternary_attribute_value": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[^'\"`{\\[][^?]+?"
},
{
"type": "STRING",
"value": "?"
},
{
"type": "PATTERN",
"value": "[^)?]+?"
},
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[^ )]*?"
},
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "'(?:[^'\\\\]|\\\\.)*'"
},
{
"type": "PATTERN",
"value": "\"(?:[^\"\\\\]|\\\\.)*\""
},
{
"type": "PATTERN",
"value": "`(?:[^`\\\\]|\\\\.)*`"
}
]
}
]
}
]
}
},
"named": true,
"value": "javascript"
}
]
},
"_string_attribute_value": {
"type": "SYMBOL",
"name": "quoted_attribute_value"
},
"_variable_attribute_value": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[^'\"`{\\[][^ ,()]+(\\([^)]*?\\))?"
},
"named": true,
"value": "javascript"
}
]
},
"_object_attribute_value": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "PATTERN",
"value": "([^\\[\\]()]*?(, ?)?)*?"
},
{
"type": "STRING",
"value": "}"
}
]
}
},
"named": true,
"value": "javascript"
}
]
},
"_template_attribute_value": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "`"
},
{
"type": "PATTERN",
"value": "(?:[^`\\\\]|\\\\.)*"
},
{
"type": "STRING",
"value": "`"
}
]
}
},
"named": true,
"value": "javascript"
}
]
},
"_array_attribute_value": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "PATTERN",
"value": "[^\\[\\]()]*?"
},
{
"type": "STRING",
"value": "]"
}
]
}
},
"named": true,
"value": "javascript"
}
]
},
"_pug_attributes": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_string_attribute_value"
},
{
"type": "SYMBOL",
"name": "_ternary_attribute_value"
},
{
"type": "SYMBOL",
"name": "_variable_attribute_value"
},
{
"type": "SYMBOL",
"name": "_array_attribute_value"
},
{
"type": "SYMBOL",
"name": "_object_attribute_value"
},
{
"type": "SYMBOL",
"name": "_template_attribute_value"
}
]
},
"_attribute": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "attribute_name"
},
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[\\w@\\-:]+"
},
"named": true,
"value": "attribute_modifier"
}
]
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_pug_attributes"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"_angular_attribute": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "angular_attribute_name"
},
"named": true,
"value": "attribute_name"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "quoted_javascript"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"children": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_children_choice"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_dedent"
},
{
"type": "BLANK"
}
]
}
]
}
},
"_children_choice": {
"type": "PREC",
"value": 1,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "buffered_code"
},
{
"type": "SYMBOL",
"name": "case"
},
{
"type": "SYMBOL",
"name": "comment"
},
{
"type": "SYMBOL",
"name": "conditional"
},
{
"type": "SYMBOL",
"name": "doctype"
},
{
"type": "SYMBOL",
"name": "pipe"
},
{
"type": "SYMBOL",
"name": "script_block"
},
{
"type": "SYMBOL",
"name": "tag"
},
{
"type": "SYMBOL",
"name": "unbuffered_code"
},
{
"type": "SYMBOL",
"name": "unescaped_buffered_code"
},
{
"type": "SYMBOL",
"name": "filter"
},
{
"type": "SYMBOL",
"name": "block_definition"
},
{
"type": "SYMBOL",
"name": "block_append"
},
{
"type": "SYMBOL",
"name": "block_prepend"
},
{
"type": "SYMBOL",
"name": "extends"
},
{
"type": "SYMBOL",
"name": "each"
},
{
"type": "SYMBOL",
"name": "while"
},
{
"type": "SYMBOL",
"name": "include"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
"comment": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_comment"
},
{
"type": "SYMBOL",
"name": "_comment_not_first_line"
}
]
},
"_comment": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "//"
},
{
"type": "STRING",
"value": "//-"
}
]
},
{
"type": "SYMBOL",
"name": "_comment_content"
},
{
"type": "SYMBOL",
"name": "_newline"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_comment_content"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"_comment_not_first_line": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "//"
},
{
"type": "STRING",
"value": "//-"
}
]
},
{
"type": "SYMBOL",
"name": "_newline"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_comment_content"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
"tag_name": {
"type": "PATTERN",
"value": "\\w(?:[-\\w]*\\w)?"
},
"class": {
"type": "PATTERN",
"value": "\\.[_a-z0-9\\-]*[_a-zA-Z][_a-zA-Z0-9\\-]*"
},
"id": {
"type": "PATTERN",
"value": "#[\\w-]+"
},
"angular_attribute_name": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "\\[[\\w@\\-:\\.]+\\]"
},
{
"type": "PATTERN",
"value": "\\([\\w@\\-:\\.]+\\)"
},
{
"type": "PATTERN",
"value": "\\[\\([\\w@\\-:\\.]+\\)\\]"
},
{
"type": "PATTERN",
"value": "\\*[\\w@\\-:\\.]+"
}
]
},
"attribute_name": {
"type": "PATTERN",
"value": "#?[\\w@\\-:]+"
},
"quoted_javascript": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "'"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?:[^'\\\\]|\\\\.)+"
},
"named": true,
"value": "javascript"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "'"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\""
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?:[^\"\\\\]|\\\\.)+"
},
"named": true,
"value": "javascript"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "\""
}
]
}
]
},
"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": "\""
}
]
}
]
},
"content": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[^\\n{#]+?"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "#"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "BLANK"
}
]
}
]
}
}
},
"_comment_content": {
"type": "PATTERN",
"value": "[^\\n]*"
},
"_content_or_javascript": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "#{"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_delimited_javascript"
},
"named": true,
"value": "javascript"
},
{
"type": "STRING",
"value": "}"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{{"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_delimited_javascript"
},
"named": true,
"value": "javascript"
},
{
"type": "STRING",
"value": "}}"
}
]
},
{
"type": "SYMBOL",
"name": "content"
}
]
}
},
"_delimited_javascript": {
"type": "PATTERN",
"value": "[^\\n}]+"
},
"_un_delimited_javascript": {
"type": "SYMBOL",
"name": "_un_delimited_javascript_line"
},
"_un_delimited_javascript_line": {
"type": "PATTERN",
"value": "(.)+?"
},
"_un_delimited_javascript_multiline": {
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "SYMBOL",
"name": "_un_delimited_javascript_line"
}
}
},
"_single_line_buf_code": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_un_delimited_javascript"
},
"named": true,
"value": "javascript"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_newline"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "tag"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_dedent"
},
{
"type": "BLANK"
}
]
}
]
}
},
"_multi_line_buf_code": {
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_un_delimited_javascript_multiline"
}
]
},
"named": true,
"value": "javascript"
},
"unbuffered_code": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PATTERN",
"value": "( |\\t)*"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_single_line_buf_code"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_newline"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "SYMBOL",
"name": "_multi_line_buf_code"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_dedent"
},
{
"type": "BLANK"
}
]
}
]
}
}
},
"extras": [
{
"type": "PATTERN",
"value": "\\s"
}
],
"conflicts": [],
"precedences": [],
"externals": [
{
"type": "SYMBOL",
"name": "_newline"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "SYMBOL",
"name": "_dedent"
}
],
"inline": [],
"supertypes": []
}