3032 lines
63 KiB
JSON
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"
|
|
}
|
|
]
|
|
}
|
|
} |