Files
tree-sitter-django/src/grammar.json
T

3032 lines
63 KiB
JSON

{
"$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
"name": "django",
"word": "identifier",
"rules": {
"template": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "template_tag"
},
{
"type": "SYMBOL",
"name": "content"
}
]
}
},
"content": {
"type": "PATTERN",
"value": "(?:[^\\{]|\\{[^\\{#%}])+"
},
"template_tag": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "template_block_groups"
},
{
"type": "SYMBOL",
"name": "template_variable"
},
{
"type": "SYMBOL",
"name": "template_comment"
}
]
},
"filtered_value": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "value"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "|"
}
},
{
"type": "SYMBOL",
"name": "filter_expression"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"filter_expression": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "filter"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "|"
}
},
{
"type": "SYMBOL",
"name": "filter"
}
]
}
}
]
},
"value": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "literal"
},
{
"type": "SYMBOL",
"name": "variable_attribute"
}
]
},
"literal": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "string"
}
]
},
{
"type": "SYMBOL",
"name": "_after_literal"
}
]
},
"number": {
"type": "PATTERN",
"value": "[-+]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][0-9]+)?"
},
"string": {
"type": "PATTERN",
"value": "\"(?:[^\"\\\\]|\\\\[^\\n])*\"|'(?:[^'\\\\]|\\\\[^\\n])*'"
},
"attribute": {
"type": "PATTERN",
"value": "[a-zA-Z0-9_]+(?:\\.[a-zA-Z0-9_]+)*"
},
"variable_attribute": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "."
}
},
{
"type": "SYMBOL",
"name": "attribute"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"identifier": {
"type": "PATTERN",
"value": "[a-zA-Z][a-zA-Z0-9_]*"
},
"binaryOperator": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_before_and"
},
{
"type": "STRING",
"value": "and"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_before_or"
},
{
"type": "STRING",
"value": "or"
}
]
},
{
"type": "STRING",
"value": "=="
},
{
"type": "STRING",
"value": "!="
},
{
"type": "STRING",
"value": "<"
},
{
"type": "STRING",
"value": ">"
},
{
"type": "STRING",
"value": "<="
},
{
"type": "STRING",
"value": ">="
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_before_in"
},
{
"type": "STRING",
"value": "in"
}
]
},
{
"type": "PREC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_before_not"
},
{
"type": "STRING",
"value": "not"
},
{
"type": "STRING",
"value": "in"
}
]
}
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_before_is"
},
{
"type": "STRING",
"value": "is"
}
]
},
{
"type": "PREC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_before_is"
},
{
"type": "STRING",
"value": "is"
},
{
"type": "STRING",
"value": "not"
}
]
}
}
]
},
"predicate": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_before_not"
},
{
"type": "STRING",
"value": "not"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "filtered_value"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "binaryOperator"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_before_not"
},
{
"type": "STRING",
"value": "not"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "filtered_value"
}
]
}
}
]
},
"template_variable": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{{"
},
{
"type": "SYMBOL",
"name": "filtered_value"
},
{
"type": "STRING",
"value": "}}"
}
]
},
"template_comment": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{#"
},
{
"type": "PATTERN",
"value": "(?:[^#]|#[^}])*"
},
{
"type": "STRING",
"value": "#}"
}
]
},
"template_block_groups": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "autoescape_group"
},
{
"type": "SYMBOL",
"name": "block_group"
},
{
"type": "SYMBOL",
"name": "comment_group"
},
{
"type": "SYMBOL",
"name": "csrf_token"
},
{
"type": "SYMBOL",
"name": "cycle"
},
{
"type": "SYMBOL",
"name": "debug"
},
{
"type": "SYMBOL",
"name": "extends"
},
{
"type": "SYMBOL",
"name": "filter_group"
},
{
"type": "SYMBOL",
"name": "firstof"
},
{
"type": "SYMBOL",
"name": "for_group"
},
{
"type": "SYMBOL",
"name": "if_group"
},
{
"type": "SYMBOL",
"name": "ifchanged_group"
},
{
"type": "SYMBOL",
"name": "include"
},
{
"type": "SYMBOL",
"name": "load"
},
{
"type": "SYMBOL",
"name": "lorem"
},
{
"type": "SYMBOL",
"name": "now"
},
{
"type": "SYMBOL",
"name": "partial"
},
{
"type": "SYMBOL",
"name": "partialdef_group"
},
{
"type": "SYMBOL",
"name": "query_string"
},
{
"type": "SYMBOL",
"name": "regroup"
},
{
"type": "SYMBOL",
"name": "reset_cycle"
},
{
"type": "SYMBOL",
"name": "spaceless_group"
},
{
"type": "SYMBOL",
"name": "template_tag_block"
},
{
"type": "SYMBOL",
"name": "url_block"
},
{
"type": "SYMBOL",
"name": "verbatim_group"
},
{
"type": "SYMBOL",
"name": "width_ratio"
},
{
"type": "SYMBOL",
"name": "with_group"
}
]
},
"filter": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "add:"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "STRING",
"value": "addslashes"
},
{
"type": "STRING",
"value": "capfirst"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "center:"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "cut:"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "date:"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "STRING",
"value": "date"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "default:"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "default_if_none:"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "dictsort:"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "dictsortreversed:"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "divisibleby:"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "STRING",
"value": "escape"
},
{
"type": "STRING",
"value": "escapejs"
},
{
"type": "STRING",
"value": "filesizeformat"
},
{
"type": "STRING",
"value": "first"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "floatformat:"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "STRING",
"value": "floatformat"
}
]
},
{
"type": "STRING",
"value": "force_escape"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "get_digit:"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "STRING",
"value": "iriencode"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "join:"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "json_script:"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "STRING",
"value": "json_script"
}
]
},
{
"type": "STRING",
"value": "last"
},
{
"type": "STRING",
"value": "length"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "length_is:"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "STRING",
"value": "linebreaks"
},
{
"type": "STRING",
"value": "linebreaksbr"
},
{
"type": "STRING",
"value": "linenumbers"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "ljust:"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "STRING",
"value": "lower"
},
{
"type": "STRING",
"value": "make_list"
},
{
"type": "STRING",
"value": "phone2numeric"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "pluralize:"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "STRING",
"value": "pluralize"
}
]
},
{
"type": "STRING",
"value": "pprint"
},
{
"type": "STRING",
"value": "random"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "rjust:"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "STRING",
"value": "safe"
},
{
"type": "STRING",
"value": "safeseq"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "slice:"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "STRING",
"value": "slugify"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "stringformat:"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "STRING",
"value": "striptags"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "time:"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "STRING",
"value": "time"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "timesince:"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "STRING",
"value": "timesince"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "timeuntil:"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "STRING",
"value": "timeuntil"
}
]
},
{
"type": "STRING",
"value": "title"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "truncatechars:"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "truncatechars_html:"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "truncatewords:"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "truncatewords_html:"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "STRING",
"value": "unordered_list"
},
{
"type": "STRING",
"value": "upper"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "urlencode:"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "STRING",
"value": "urlencode"
}
]
},
{
"type": "STRING",
"value": "urlize"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "urlizetrunc:"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "STRING",
"value": "wordcount"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "wordwrap:"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "yesno:"
},
{
"type": "SYMBOL",
"name": "value"
}
]
},
{
"type": "STRING",
"value": "yesno"
}
]
}
]
},
"autoescape_group": {
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "autoescape"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "on"
},
{
"type": "STRING",
"value": "off"
}
]
},
{
"type": "STRING",
"value": "%}"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "template"
},
{
"type": "BLANK"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "endautoescape"
}
},
{
"type": "STRING",
"value": "%}"
}
]
}
]
},
"block_group": {
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "block"
}
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "push_block"
}
},
{
"type": "STRING",
"value": "%}"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "template"
},
{
"type": "BLANK"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "endblock"
}
},
{
"type": "SYMBOL",
"name": "pop_block"
},
{
"type": "STRING",
"value": "%}"
}
]
}
]
},
"comment_group": {
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "comment"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "%}"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "comment_content"
},
{
"type": "BLANK"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "endcomment"
}
},
{
"type": "STRING",
"value": "%}"
}
]
}
]
},
"csrf_token": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "csrf_token"
}
},
{
"type": "STRING",
"value": "%}"
}
]
},
"cycle": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "cycle"
}
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "filtered_value"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_before_as"
},
{
"type": "STRING",
"value": "as"
},
{
"type": "FIELD",
"name": "variable",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "silent"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "%}"
}
]
},
"debug": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "debug"
}
},
{
"type": "STRING",
"value": "%}"
}
]
},
"extends": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "extends"
}
},
{
"type": "SYMBOL",
"name": "filtered_value"
},
{
"type": "STRING",
"value": "%}"
}
]
},
"filter_group": {
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "filter"
}
},
{
"type": "SYMBOL",
"name": "filter_expression"
},
{
"type": "STRING",
"value": "%}"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "template"
},
{
"type": "BLANK"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "endfilter"
}
},
{
"type": "STRING",
"value": "%}"
}
]
}
]
},
"firstof": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "firstof"
}
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "filtered_value"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_before_as"
},
{
"type": "STRING",
"value": "as"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "%}"
}
]
},
"for_scope": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "for"
}
},
{
"type": "FIELD",
"name": "variable",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "FIELD",
"name": "variable",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
}
},
{
"type": "STRING",
"value": "in"
},
{
"type": "SYMBOL",
"name": "filtered_value"
},
{
"type": "STRING",
"value": "%}"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "template"
},
{
"type": "BLANK"
}
]
}
]
}
},
"for_group": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "for_scope"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "empty"
}
},
{
"type": "STRING",
"value": "%}"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "template"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "endfor"
}
},
{
"type": "STRING",
"value": "%}"
}
]
}
]
},
"if_group": {
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "if"
}
},
{
"type": "SYMBOL",
"name": "predicate"
},
{
"type": "STRING",
"value": "%}"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "template"
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "elif"
}
},
{
"type": "SYMBOL",
"name": "predicate"
},
{
"type": "STRING",
"value": "%}"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "template"
},
{
"type": "BLANK"
}
]
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "else"
}
},
{
"type": "STRING",
"value": "%}"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "template"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "endif"
}
},
{
"type": "STRING",
"value": "%}"
}
]
}
]
},
"ifchanged_group": {
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "ifchanged"
}
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "filtered_value"
}
},
{
"type": "STRING",
"value": "%}"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "template"
},
{
"type": "BLANK"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "endifchanged"
}
},
{
"type": "STRING",
"value": "%}"
}
]
}
]
},
"include": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "include"
}
},
{
"type": "SYMBOL",
"name": "filtered_value"
},
{
"type": "STRING",
"value": "%}"
}
]
},
"library": {
"type": "PREC",
"value": -1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "."
}
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"load": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "load"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "from"
},
{
"type": "SYMBOL",
"name": "library"
}
]
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "library"
}
}
]
},
{
"type": "STRING",
"value": "%}"
}
]
},
"lorem": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "lorem"
}
},
{
"type": "SYMBOL",
"name": "filtered_value"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_before_w"
},
{
"type": "STRING",
"value": "w"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_before_p"
},
{
"type": "STRING",
"value": "p"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_before_b"
},
{
"type": "STRING",
"value": "b"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_before_random"
},
{
"type": "STRING",
"value": "random"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "%}"
}
]
},
"now": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "now"
}
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_before_as"
},
{
"type": "STRING",
"value": "as"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "%}"
}
]
},
"partial": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "partial"
}
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": "%}"
}
]
},
"partialdef_group": {
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "partialdef"
}
},
{
"type": "SYMBOL",
"name": "push_partial"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "inline"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "%}"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "template"
},
{
"type": "BLANK"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "endpartialdef"
}
},
{
"type": "SYMBOL",
"name": "pop_partial"
},
{
"type": "STRING",
"value": "%}"
}
]
}
]
},
"query_string": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "querystring"
}
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "filtered_value"
}
]
}
},
{
"type": "STRING",
"value": "%}"
}
]
},
"regroup": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "regroup"
}
},
{
"type": "SYMBOL",
"name": "filtered_value"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_before_by"
},
{
"type": "STRING",
"value": "by"
}
]
},
{
"type": "SYMBOL",
"name": "attribute"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_before_as"
},
{
"type": "STRING",
"value": "as"
},
{
"type": "FIELD",
"name": "variable",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "%}"
}
]
},
"reset_cycle": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "resetcycle"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "%}"
}
]
},
"spaceless_group": {
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "spaceless"
}
},
{
"type": "STRING",
"value": "%}"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "template"
},
{
"type": "BLANK"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "endspaceless"
}
},
{
"type": "STRING",
"value": "%}"
}
]
}
]
},
"template_tag_block": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "templatetag"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "openblock"
},
{
"type": "STRING",
"value": "closeblock"
},
{
"type": "STRING",
"value": "openvariable"
},
{
"type": "STRING",
"value": "closevariable"
},
{
"type": "STRING",
"value": "openbrace"
},
{
"type": "STRING",
"value": "closebrace"
},
{
"type": "STRING",
"value": "opencomment"
},
{
"type": "STRING",
"value": "closecomment"
}
]
},
{
"type": "STRING",
"value": "%}"
}
]
},
"url_block": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "url"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "filtered_value"
}
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "filtered_value"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_before_as"
},
{
"type": "STRING",
"value": "as"
},
{
"type": "FIELD",
"name": "variable",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "%}"
}
]
},
"verbatim_group": {
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "verbatim"
}
},
{
"type": "SYMBOL",
"name": "push_verbatim"
},
{
"type": "STRING",
"value": "%}"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "verbatim_content"
},
{
"type": "BLANK"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "endverbatim"
}
},
{
"type": "SYMBOL",
"name": "pop_verbatim"
},
{
"type": "STRING",
"value": "%}"
}
]
}
]
},
"width_ratio": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "widthratio"
}
},
{
"type": "SYMBOL",
"name": "filtered_value"
},
{
"type": "SYMBOL",
"name": "filtered_value"
},
{
"type": "SYMBOL",
"name": "filtered_value"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_before_as"
},
{
"type": "STRING",
"value": "as"
},
{
"type": "FIELD",
"name": "variable",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "%}"
}
]
},
"with_group": {
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "with"
}
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "variable",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "filtered_value"
}
]
}
},
{
"type": "STRING",
"value": "%}"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "template"
},
{
"type": "BLANK"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{%"
},
{
"type": "FIELD",
"name": "tag",
"content": {
"type": "STRING",
"value": "endwith"
}
},
{
"type": "STRING",
"value": "%}"
}
]
}
]
}
},
"extras": [
{
"type": "PATTERN",
"value": "[ \\t]"
}
],
"conflicts": [
[
"template"
]
],
"precedences": [],
"externals": [
{
"type": "SYMBOL",
"name": "matcher_error"
},
{
"type": "SYMBOL",
"name": "pop_block"
},
{
"type": "SYMBOL",
"name": "pop_partial"
},
{
"type": "SYMBOL",
"name": "pop_verbatim"
},
{
"type": "SYMBOL",
"name": "push_block"
},
{
"type": "SYMBOL",
"name": "push_partial"
},
{
"type": "SYMBOL",
"name": "push_verbatim"
},
{
"type": "SYMBOL",
"name": "verbatim_content"
},
{
"type": "SYMBOL",
"name": "comment_content"
},
{
"type": "SYMBOL",
"name": "_before_and"
},
{
"type": "SYMBOL",
"name": "_before_as"
},
{
"type": "SYMBOL",
"name": "_before_b"
},
{
"type": "SYMBOL",
"name": "_before_by"
},
{
"type": "SYMBOL",
"name": "_before_in"
},
{
"type": "SYMBOL",
"name": "_before_is"
},
{
"type": "SYMBOL",
"name": "_before_not"
},
{
"type": "SYMBOL",
"name": "_before_or"
},
{
"type": "SYMBOL",
"name": "_before_p"
},
{
"type": "SYMBOL",
"name": "_before_random"
},
{
"type": "SYMBOL",
"name": "_before_w"
},
{
"type": "SYMBOL",
"name": "_after_literal"
}
],
"inline": [],
"supertypes": [
"template_tag",
"template_block_groups"
],
"reserved": {
"global": [
{
"type": "STRING",
"value": "not"
},
{
"type": "STRING",
"value": "if"
},
{
"type": "STRING",
"value": "in"
},
{
"type": "STRING",
"value": "is"
},
{
"type": "STRING",
"value": "as"
},
{
"type": "STRING",
"value": "for"
},
{
"type": "STRING",
"value": "from"
}
]
}
}