commit 9b44006c18ef1d5f0ba2c098651046eab01869ba Author: Daniel Hanson Date: Tue Aug 11 16:28:11 2026 -0500 initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3c3629e --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules diff --git a/README.md b/README.md new file mode 100644 index 0000000..7b4508a --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +# tree-sitter-django + +A [tree-sitter](https://tree-sitter.github.io/tree-sitter/) grammar for the Django Template Language (DTL) — the `{% %}` tags and `{{ }}` variables used in Django templates. + +## Development + +```sh +npm install +npm run parser-generate # regenerate the parser from grammar.js +npm run parser-test # run the corpus tests in test/corpus +npm run parser-build # build the WASM binary +npm run playground # interactively explore the grammar +``` diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..3ecdb17 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,20 @@ +import { defineConfig, globalIgnores } from "eslint/config"; +import eslintConfigPrettier from "eslint-config-prettier"; + +const eslintConfig = defineConfig([ + eslintConfigPrettier, // Disable ESLint rules that conflict with Prettier + { + rules: { + "@typescript-eslint/no-unused-vars": "error", + "react-hooks/exhaustive-deps": "error", + }, + }, + // Override default ignores of eslint-config-next. + globalIgnores([ + // Default ignores of eslint-config-next: + "out/**", + "build/**", + ]), +]); + +export default eslintConfig; diff --git a/grammar.js b/grammar.js new file mode 100644 index 0000000..3305d6b --- /dev/null +++ b/grammar.js @@ -0,0 +1,281 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +/// +// @ts-check + +/** + * @param {string} tag + * @param {...RuleOrLiteral} args + * @returns {SeqRule} + */ +function block(tag, ...args) { + return seq("{%", field("tag", tag), ...args, "%}"); +} + +const django = grammar({ + name: "django", + extras: ($) => [/[ \t]/], + conflicts: ($) => [[$.template]], + supertypes: ($) => [$.template_tag, $.template_block_groups], + externals: ($) => [ + $.pop_block, + $.pop_partial, + $.pop_verbatim, + $.push_block, + $.push_partial, + $.push_verbatim, + $.matcher_error, + ], + reserved: { + global: ($) => ["not", "if", "in", "is", "as"], + }, + rules: { + template: ($) => repeat1(choice($.template_tag, $.content)), + content: ($) => /(?:[^\{]|\{[^\{#%}])+/, + template_tag: ($) => choice($.template_block_groups, $.template_variable, $.template_comment), + filtered_value: ($) => seq( + $.value, + optional( + seq( + token.immediate("|"), + $.filter_expression + ), + ), + ), + filter_expression: ($) => seq($.filter, repeat(seq(token.immediate("|"), $.filter))), + value: ($) => choice($.literal, $.variable_attribute), + literal: ($) => choice($.number, $.string), + number: ($) => /-?(?:[0-9]+(?:\.[0-9]*)?|\.[0-9]+)(?:[eE]-?[0-9]+)?/, + string: ($) => /"(?:[^"\\]|\\\\|\\")*"|'(?:[^'\\]|\\\\|\\')*'/, + attribute: ($) => /[a-zA-Z0-9_]+(?:\.[a-zA-Z0-9_]+)*/, + variable_attribute: ($) => seq($.identifier, optional(seq(token.immediate('.'), $.attribute))), + identifier: ($) => /[a-zA-Z][a-zA-Z0-9_]+/, + binaryOperator: ($) => + choice( + "and", + "or", + "==", + "!=", + "<", + ">", + "<=", + ">=", + "in", + prec(1, seq("not", "in")), + "is", + prec(1, seq("is", "not")) + ), + predicate: ($) => + seq( + optional("not"), + $.filtered_value, + repeat(seq($.binaryOperator, optional("not"), $.filtered_value)) + ), + template_variable: ($) => seq("{{", $.filtered_value, "}}"), + template_comment: ($) => seq("{#", /(?:[^#]|#[^}])*/, "#}"), + template_block_groups: ($) => + choice( + $.autoescape_group, + $.block_group, + $.csrf_token, + $.cycle, + $.debug, + $.extends, + $.filter_group, + $.firstof, + $.for_group, + $.if_group, + $.ifchanged_group, + $.include, + $.lorem, + $.now, + $.partial, + $.partialdef_group, + $.query_string, + $.regroup, + $.reset_cycle, + $.spaceless_group, + $.template_tag_block, + $.url_block, + $.verbatim_group, + $.with_group + ), + filter: ($) => choice( + seq("add:", $.value), + "addslashes", + "capfirst", + seq("center:", $.value), + seq("cut:", $.value), + choice(seq("date:", $.value), "date"), + seq("default:", $.value), + seq("default_if_none:", $.value), + seq("dictsort:", $.value), + seq("dictsortreversed:", $.value), + seq("divisibleby:", $.value), + "escape", + "escapejs", + "filesizeformat", + "first", + choice(seq("floatformat:", $.value), "floatformat"), + "force_escape", + seq("get_digit:", $.value), + "iriencode", + seq("join:", $.value), + choice(seq("json_script:", $.value), "json_script"), + "last", + "length", + seq("length_is:", $.value), + "linebreaks", + "linebreaksbr", + "linenumbers", + seq("ljust:", $.value), + "lower", + "make_list", + "phone2numeric", + choice(seq("pluralize:", $.value), "pluralize"), + "pprint", + "random", + seq("rjust:", $.value), + "safe", + "safeseq", + seq("slice:", $.value), + "slugify", + seq("stringformat:", $.value), + "striptags", + choice(seq("time:", $.value), "time"), + choice(seq("timesince:", $.value), "timesince"), + choice(seq("timeuntil:", $.value), "timeuntil"), + "title", + seq("truncatechars:", $.value), + seq("truncatechars_html:", $.value), + seq("truncatewords:", $.value), + seq("truncatewords_html:", $.value), + "unordered_list", + choice(seq("urlencode:", $.value), "urlencode"), + "urlize", + seq("urlizetrunc:", $.value), + "wordcount", + seq("wordwrap:", $.value), + choice(seq("yesno:", $.value), "yesno"), + ), + autoescape_group: ($) => + seq(block("autoescape", choice("on", "off")), optional($.template), block("endautoescape")), + block_group: ($) => + seq( + block("block", field("name", $.push_block)), + optional($.template), + block("endblock", $.pop_block) + ), + comment: ($) => seq(block("comment", optional($.string)), /.*/, prec(1, block("endcomment"))), + csrf_token: ($) => block("csrf_token"), + cycle: ($) => + block( + "cycle", + repeat1($.filtered_value), + optional(seq("as", field("name", $.identifier))), + optional("silent") + ), + debug: ($) => block("debug"), + extends: ($) => block("extends", $.filtered_value), + filter_group: ($) => + seq(block("filter", $.filter_expression), optional($.template), block("endfilter")), + firstof: ($) => block("firstof", repeat1($.filtered_value), optional(seq("as", $.identifier))), + for_group: ($) => + seq( + block( + "for", + field("variables", $.identifier), + repeat(seq(",", field("variables", $.identifier))), + "in", + $.filtered_value + ), + optional($.template), + optional(seq(block("empty"), optional($.template))), + block("endfor") + ), + if_group: ($) => + seq( + block("if", $.predicate), + optional($.template), + repeat(seq(block("elif", $.predicate), optional($.template))), + optional(seq(block("else"), optional($.template))), + block("endif") + ), + ifchanged_group: ($) => + seq( + block("ifchanged", repeat($.filtered_value)), + optional($.template), + block("endifchanged") + ), + include: ($) => block("include", $.filtered_value), + load: ($) => + block( + "load", + choice( + repeat1($.variable_attribute), + seq(repeat1($.identifier), "from", $.variable_attribute) + ) + ), + lorem: ($) => block("lorem", $.filtered_value, choice("w", "p", "b"), optional("random")), + now: ($) => block("now", $.string, optional(seq("as", field("variable", $.identifier)))), + partial: ($) => block("partial", field("name", $.identifier)), + partialdef_group: ($) => + seq( + block("partialdef", field("name", $.push_partial), optional("inline")), + optional($.template), + block("endpartialdef", $.pop_partial) + ), + query_string: ($) => + block("querystring", repeat($.identifier), repeat(seq($.identifier, "=", $.filtered_value))), + regroup: ($) => + block( + "regroup", + $.filtered_value, + "by", + $.attribute, + optional(seq("as", field("variable", $.identifier))) + ), + reset_cycle: ($) => block("resetcycle", optional($.identifier)), + spaceless_group: ($) => seq(block("spaceless"), optional($.template), block("endspaceless")), + template_tag_block: ($) => + block( + "templatetag", + choice( + "openblock", + "closeblock", + "openvariable", + "closevariable", + "openbrace", + "closebrace", + "opencomment", + "closecomment" + ) + ), + url_block: $ => block( + "url", + choice($.string, $.identifier), + optional( + choice( + repeat1($.filtered_value), + repeat1(seq($.identifier, '=', $.filtered_value)), + ), + ), + optional( + seq("as", field("variable", $.identifier)), + ), + ), + verbatim_group: ($) => + seq( + block("verbatim", field("name", $.push_verbatim)), + /.*/, + prec(1, block("endverbatim", $.pop_verbatim)) + ), + with_group: ($) => + seq( + block("with", field("variables", repeat1(seq(field("name", $.identifier), "=", $.filtered_value)))), + optional($.template), + block("endwith") + ), + }, +}); + +export default django; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..0bca809 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1172 @@ +{ + "name": "tree-sitter-django", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "tree-sitter-django", + "version": "0.1.0", + "license": "MIT", + "dependencies": { + "web-tree-sitter": "^0.26.12" + }, + "devDependencies": { + "eslint": "^9", + "eslint-config-prettier": "^10.1.8", + "prettier": "^3.9.6", + "tree-sitter-cli": "^0.26.12", + "typescript": "^5" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.10.1.tgz", + "integrity": "sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", + "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.5" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.6.tgz", + "integrity": "sha512-l2Ul9PrHsPCKcEY/ac7VgFj9D80C7S68sOKc618SyHDPK36s1XcFebXY0iTzUVn4Yq+YbwvSnDmCz9yxjX+QrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.14.0", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.3.0", + "minimatch": "^3.1.5", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "9.39.5", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.5.tgz", + "integrity": "sha512-QywQuszQh77pIXCsq998c8hbhSTI/azTty1Z6N53dmAudKHhy573j3yvRLsX2BSp8YpLtoCEG8E9DJe+8zUh4A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz", + "integrity": "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/types": "^0.15.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.8.tgz", + "integrity": "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.2", + "@humanfs/types": "^0.15.0", + "@humanwhocodes/retry": "^0.4.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/types": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-0.15.0.tgz", + "integrity": "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/acorn": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.18.0.tgz", + "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", + "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.39.5", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.5.tgz", + "integrity": "sha512-DgZS62aPLXKlnxILS/AYCoRvHaZeXceIzlXPkkGGzJWSow1aEk0lbTlxUSlyjC8jcaKxAdOnTDz+o1JFSBsyjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.2", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.6", + "@eslint/js": "9.39.5", + "@eslint/plugin-kit": "^0.4.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.14.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.5", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-prettier": { + "version": "10.1.8", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", + "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.4.tgz", + "integrity": "sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==", + "dev": true, + "license": "ISC" + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/js-yaml": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.1.tgz", + "integrity": "sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.9.6", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.6.tgz", + "integrity": "sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tree-sitter-cli": { + "version": "0.26.12", + "resolved": "https://registry.npmjs.org/tree-sitter-cli/-/tree-sitter-cli-0.26.12.tgz", + "integrity": "sha512-rIdMAm6nv75MVFoZ7UTaLVB1OG5h3ZSlCZEp5pne4gOUTalJIkL0A1NlYBg0oEl/d7gvIyc2Y5Jz8m5Xj+NOEw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "tree-sitter": "cli.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/web-tree-sitter": { + "version": "0.26.12", + "resolved": "https://registry.npmjs.org/web-tree-sitter/-/web-tree-sitter-0.26.12.tgz", + "integrity": "sha512-fvqTNZQBGUgUgfP0mHw+iHf9Yf6bRQrp0A3pSf2v/hSKxkT1beCoIWoLVmlPL7O6dmySfSb/t1aJoJvrgTRStw==", + "license": "MIT" + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..b67efa6 --- /dev/null +++ b/package.json @@ -0,0 +1,27 @@ +{ + "name": "tree-sitter-django", + "version": "0.1.0", + "private": true, + "license": "MIT", + "type": "module", + "scripts": { + "lint": "eslint", + "lint:fix": "eslint --fix", + "format": "prettier --write .", + "format:check": "prettier --check .", + "parser-test": "tree-sitter test", + "parser-generate": "tree-sitter generate", + "parser-build": "tree-sitter build --wasm", + "playground": "tree-sitter playground" + }, + "dependencies": { + "web-tree-sitter": "^0.26.12" + }, + "devDependencies": { + "eslint": "^9", + "eslint-config-prettier": "^10.1.8", + "prettier": "^3.9.6", + "tree-sitter-cli": "^0.26.12", + "typescript": "^5" + } +} diff --git a/queries/highlights.scm b/queries/highlights.scm new file mode 100644 index 0000000..3b6cd9f --- /dev/null +++ b/queries/highlights.scm @@ -0,0 +1,29 @@ +; Identifiers + +(cycle name: + name: (identifier) @variable) + +(block_group + name: (push_block) @block_name) + +(partialdef_group + name: (push_partial) @partial_name) + +(verbatim_group + name: (push_verbatim) @verbatim_name) + +(with_group + variables: (_ + name: (identifier) @variable)) + +; Literals + +(number) @number +(string) @string + +; Constants + +(template_block_groups + tag: (_) @tag) + +(filter . (_) @filter) diff --git a/src/grammar.json b/src/grammar.json new file mode 100644 index 0000000..c571959 --- /dev/null +++ b/src/grammar.json @@ -0,0 +1,2711 @@ +{ + "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json", + "name": "django", + "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": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "number" + }, + { + "type": "SYMBOL", + "name": "string" + } + ] + }, + "number": { + "type": "PATTERN", + "value": "-?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE]-?[0-9]+)?" + }, + "string": { + "type": "PATTERN", + "value": "\"(?:[^\"\\\\]|\\\\\\\\|\\\\\")*\"|'(?:[^'\\\\]|\\\\\\\\|\\\\')*'" + }, + "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": "STRING", + "value": "and" + }, + { + "type": "STRING", + "value": "or" + }, + { + "type": "STRING", + "value": "==" + }, + { + "type": "STRING", + "value": "!=" + }, + { + "type": "STRING", + "value": "<" + }, + { + "type": "STRING", + "value": ">" + }, + { + "type": "STRING", + "value": "<=" + }, + { + "type": "STRING", + "value": ">=" + }, + { + "type": "STRING", + "value": "in" + }, + { + "type": "PREC", + "value": 1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "not" + }, + { + "type": "STRING", + "value": "in" + } + ] + } + }, + { + "type": "STRING", + "value": "is" + }, + { + "type": "PREC", + "value": 1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "is" + }, + { + "type": "STRING", + "value": "not" + } + ] + } + } + ] + }, + "predicate": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "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": "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": "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": "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": "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": "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": { + "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": "PATTERN", + "value": ".*" + }, + { + "type": "PREC", + "value": 1, + "content": { + "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": "STRING", + "value": "as" + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "silent" + }, + { + "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": "STRING", + "value": "as" + }, + { + "type": "SYMBOL", + "name": "identifier" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "%}" + } + ] + }, + "for_group": { + "type": "SEQ", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{%" + }, + { + "type": "FIELD", + "name": "tag", + "content": { + "type": "STRING", + "value": "for" + } + }, + { + "type": "FIELD", + "name": "variables", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "FIELD", + "name": "variables", + "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" + } + ] + }, + { + "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": "%}" + } + ] + }, + "load": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{%" + }, + { + "type": "FIELD", + "name": "tag", + "content": { + "type": "STRING", + "value": "load" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "REPEAT1", + "content": { + "type": "SYMBOL", + "name": "variable_attribute" + } + }, + { + "type": "SEQ", + "members": [ + { + "type": "REPEAT1", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "STRING", + "value": "from" + }, + { + "type": "SYMBOL", + "name": "variable_attribute" + } + ] + } + ] + }, + { + "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": "STRING", + "value": "w" + }, + { + "type": "STRING", + "value": "p" + }, + { + "type": "STRING", + "value": "b" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "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": "STRING", + "value": "as" + }, + { + "type": "FIELD", + "name": "variable", + "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": "FIELD", + "name": "name", + "content": { + "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": "FIELD", + "name": "name", + "content": { + "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": "STRING", + "value": "by" + }, + { + "type": "SYMBOL", + "name": "attribute" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "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": "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": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "push_verbatim" + } + }, + { + "type": "STRING", + "value": "%}" + } + ] + }, + { + "type": "PATTERN", + "value": ".*" + }, + { + "type": "PREC", + "value": 1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{%" + }, + { + "type": "FIELD", + "name": "tag", + "content": { + "type": "STRING", + "value": "endverbatim" + } + }, + { + "type": "SYMBOL", + "name": "pop_verbatim" + }, + { + "type": "STRING", + "value": "%}" + } + ] + } + } + ] + }, + "with_group": { + "type": "SEQ", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{%" + }, + { + "type": "FIELD", + "name": "tag", + "content": { + "type": "STRING", + "value": "with" + } + }, + { + "type": "FIELD", + "name": "variables", + "content": { + "type": "REPEAT1", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "name", + "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": "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": "matcher_error" + } + ], + "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" + } + ] + } +} \ No newline at end of file diff --git a/src/node-types.json b/src/node-types.json new file mode 100644 index 0000000..be91d51 --- /dev/null +++ b/src/node-types.json @@ -0,0 +1,1694 @@ +[ + { + "type": "template_block_groups", + "named": true, + "subtypes": [ + { + "type": "autoescape_group", + "named": true + }, + { + "type": "block_group", + "named": true + }, + { + "type": "csrf_token", + "named": true + }, + { + "type": "cycle", + "named": true + }, + { + "type": "debug", + "named": true + }, + { + "type": "extends", + "named": true + }, + { + "type": "filter_group", + "named": true + }, + { + "type": "firstof", + "named": true + }, + { + "type": "for_group", + "named": true + }, + { + "type": "if_group", + "named": true + }, + { + "type": "ifchanged_group", + "named": true + }, + { + "type": "include", + "named": true + }, + { + "type": "lorem", + "named": true + }, + { + "type": "now", + "named": true + }, + { + "type": "partial", + "named": true + }, + { + "type": "partialdef_group", + "named": true + }, + { + "type": "query_string", + "named": true + }, + { + "type": "regroup", + "named": true + }, + { + "type": "reset_cycle", + "named": true + }, + { + "type": "spaceless_group", + "named": true + }, + { + "type": "template_tag_block", + "named": true + }, + { + "type": "url_block", + "named": true + }, + { + "type": "verbatim_group", + "named": true + }, + { + "type": "with_group", + "named": true + } + ] + }, + { + "type": "template_tag", + "named": true, + "subtypes": [ + { + "type": "template_block_groups", + "named": true + }, + { + "type": "template_comment", + "named": true + }, + { + "type": "template_variable", + "named": true + } + ] + }, + { + "type": "autoescape_group", + "named": true, + "fields": { + "tag": { + "multiple": true, + "required": true, + "types": [ + { + "type": "autoescape", + "named": false + }, + { + "type": "endautoescape", + "named": false + } + ] + } + }, + "children": { + "multiple": false, + "required": false, + "types": [ + { + "type": "template", + "named": true + } + ] + } + }, + { + "type": "binaryOperator", + "named": true, + "fields": {} + }, + { + "type": "block_group", + "named": true, + "fields": { + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "push_block", + "named": true + } + ] + }, + "tag": { + "multiple": true, + "required": true, + "types": [ + { + "type": "block", + "named": false + }, + { + "type": "endblock", + "named": false + } + ] + } + }, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "pop_block", + "named": true + }, + { + "type": "template", + "named": true + } + ] + } + }, + { + "type": "csrf_token", + "named": true, + "fields": { + "tag": { + "multiple": false, + "required": true, + "types": [ + { + "type": "csrf_token", + "named": false + } + ] + } + } + }, + { + "type": "cycle", + "named": true, + "fields": { + "name": { + "multiple": false, + "required": false, + "types": [ + { + "type": "identifier", + "named": true + } + ] + }, + "tag": { + "multiple": false, + "required": true, + "types": [ + { + "type": "cycle", + "named": false + } + ] + } + }, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "filtered_value", + "named": true + } + ] + } + }, + { + "type": "debug", + "named": true, + "fields": { + "tag": { + "multiple": false, + "required": true, + "types": [ + { + "type": "debug", + "named": false + } + ] + } + } + }, + { + "type": "extends", + "named": true, + "fields": { + "tag": { + "multiple": false, + "required": true, + "types": [ + { + "type": "extends", + "named": false + } + ] + } + }, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "filtered_value", + "named": true + } + ] + } + }, + { + "type": "filter", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": false, + "types": [ + { + "type": "value", + "named": true + } + ] + } + }, + { + "type": "filter_expression", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "filter", + "named": true + } + ] + } + }, + { + "type": "filter_group", + "named": true, + "fields": { + "tag": { + "multiple": true, + "required": true, + "types": [ + { + "type": "endfilter", + "named": false + }, + { + "type": "filter", + "named": false + } + ] + } + }, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "filter_expression", + "named": true + }, + { + "type": "template", + "named": true + } + ] + } + }, + { + "type": "filtered_value", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "filter_expression", + "named": true + }, + { + "type": "value", + "named": true + } + ] + } + }, + { + "type": "firstof", + "named": true, + "fields": { + "tag": { + "multiple": false, + "required": true, + "types": [ + { + "type": "firstof", + "named": false + } + ] + } + }, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "filtered_value", + "named": true + }, + { + "type": "identifier", + "named": true + } + ] + } + }, + { + "type": "for_group", + "named": true, + "fields": { + "tag": { + "multiple": true, + "required": true, + "types": [ + { + "type": "empty", + "named": false + }, + { + "type": "endfor", + "named": false + }, + { + "type": "for", + "named": false + } + ] + }, + "variables": { + "multiple": true, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } + }, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "filtered_value", + "named": true + }, + { + "type": "template", + "named": true + } + ] + } + }, + { + "type": "if_group", + "named": true, + "fields": { + "tag": { + "multiple": true, + "required": true, + "types": [ + { + "type": "elif", + "named": false + }, + { + "type": "else", + "named": false + }, + { + "type": "endif", + "named": false + }, + { + "type": "if", + "named": false + } + ] + } + }, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "predicate", + "named": true + }, + { + "type": "template", + "named": true + } + ] + } + }, + { + "type": "ifchanged_group", + "named": true, + "fields": { + "tag": { + "multiple": true, + "required": true, + "types": [ + { + "type": "endifchanged", + "named": false + }, + { + "type": "ifchanged", + "named": false + } + ] + } + }, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "filtered_value", + "named": true + }, + { + "type": "template", + "named": true + } + ] + } + }, + { + "type": "include", + "named": true, + "fields": { + "tag": { + "multiple": false, + "required": true, + "types": [ + { + "type": "include", + "named": false + } + ] + } + }, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "filtered_value", + "named": true + } + ] + } + }, + { + "type": "literal", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "number", + "named": true + }, + { + "type": "string", + "named": true + } + ] + } + }, + { + "type": "lorem", + "named": true, + "fields": { + "tag": { + "multiple": false, + "required": true, + "types": [ + { + "type": "lorem", + "named": false + } + ] + } + }, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "filtered_value", + "named": true + } + ] + } + }, + { + "type": "now", + "named": true, + "fields": { + "tag": { + "multiple": false, + "required": true, + "types": [ + { + "type": "now", + "named": false + } + ] + }, + "variable": { + "multiple": false, + "required": false, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } + }, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "string", + "named": true + } + ] + } + }, + { + "type": "partial", + "named": true, + "fields": { + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + }, + "tag": { + "multiple": false, + "required": true, + "types": [ + { + "type": "partial", + "named": false + } + ] + } + } + }, + { + "type": "partialdef_group", + "named": true, + "fields": { + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "push_partial", + "named": true + } + ] + }, + "tag": { + "multiple": true, + "required": true, + "types": [ + { + "type": "endpartialdef", + "named": false + }, + { + "type": "partialdef", + "named": false + } + ] + } + }, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "pop_partial", + "named": true + }, + { + "type": "template", + "named": true + } + ] + } + }, + { + "type": "predicate", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "binaryOperator", + "named": true + }, + { + "type": "filtered_value", + "named": true + } + ] + } + }, + { + "type": "query_string", + "named": true, + "fields": { + "tag": { + "multiple": false, + "required": true, + "types": [ + { + "type": "querystring", + "named": false + } + ] + } + }, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "filtered_value", + "named": true + }, + { + "type": "identifier", + "named": true + } + ] + } + }, + { + "type": "regroup", + "named": true, + "fields": { + "tag": { + "multiple": false, + "required": true, + "types": [ + { + "type": "regroup", + "named": false + } + ] + }, + "variable": { + "multiple": false, + "required": false, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } + }, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "attribute", + "named": true + }, + { + "type": "filtered_value", + "named": true + } + ] + } + }, + { + "type": "reset_cycle", + "named": true, + "fields": { + "tag": { + "multiple": false, + "required": true, + "types": [ + { + "type": "resetcycle", + "named": false + } + ] + } + }, + "children": { + "multiple": false, + "required": false, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } + }, + { + "type": "spaceless_group", + "named": true, + "fields": { + "tag": { + "multiple": true, + "required": true, + "types": [ + { + "type": "endspaceless", + "named": false + }, + { + "type": "spaceless", + "named": false + } + ] + } + }, + "children": { + "multiple": false, + "required": false, + "types": [ + { + "type": "template", + "named": true + } + ] + } + }, + { + "type": "template", + "named": true, + "root": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "content", + "named": true + }, + { + "type": "template_tag", + "named": true + } + ] + } + }, + { + "type": "template_comment", + "named": true, + "fields": {} + }, + { + "type": "template_tag_block", + "named": true, + "fields": { + "tag": { + "multiple": false, + "required": true, + "types": [ + { + "type": "templatetag", + "named": false + } + ] + } + } + }, + { + "type": "template_variable", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "filtered_value", + "named": true + } + ] + } + }, + { + "type": "url_block", + "named": true, + "fields": { + "tag": { + "multiple": false, + "required": true, + "types": [ + { + "type": "url", + "named": false + } + ] + }, + "variable": { + "multiple": false, + "required": false, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } + }, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "filtered_value", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "string", + "named": true + } + ] + } + }, + { + "type": "value", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "literal", + "named": true + }, + { + "type": "variable_attribute", + "named": true + } + ] + } + }, + { + "type": "variable_attribute", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "attribute", + "named": true + }, + { + "type": "identifier", + "named": true + } + ] + } + }, + { + "type": "verbatim_group", + "named": true, + "fields": { + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "push_verbatim", + "named": true + } + ] + }, + "tag": { + "multiple": true, + "required": true, + "types": [ + { + "type": "endverbatim", + "named": false + }, + { + "type": "verbatim", + "named": false + } + ] + } + }, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "pop_verbatim", + "named": true + } + ] + } + }, + { + "type": "with_group", + "named": true, + "fields": { + "name": { + "multiple": true, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + }, + "tag": { + "multiple": true, + "required": true, + "types": [ + { + "type": "endwith", + "named": false + }, + { + "type": "with", + "named": false + } + ] + }, + "variables": { + "multiple": true, + "required": true, + "types": [ + { + "type": "=", + "named": false + }, + { + "type": "filtered_value", + "named": true + }, + { + "type": "identifier", + "named": true + } + ] + } + }, + "children": { + "multiple": false, + "required": false, + "types": [ + { + "type": "template", + "named": true + } + ] + } + }, + { + "type": "!=", + "named": false + }, + { + "type": "#}", + "named": false + }, + { + "type": "%}", + "named": false + }, + { + "type": ",", + "named": false + }, + { + "type": ".", + "named": false + }, + { + "type": "<", + "named": false + }, + { + "type": "<=", + "named": false + }, + { + "type": "=", + "named": false + }, + { + "type": "==", + "named": false + }, + { + "type": ">", + "named": false + }, + { + "type": ">=", + "named": false + }, + { + "type": "add:", + "named": false + }, + { + "type": "addslashes", + "named": false + }, + { + "type": "and", + "named": false + }, + { + "type": "as", + "named": false + }, + { + "type": "attribute", + "named": true + }, + { + "type": "autoescape", + "named": false + }, + { + "type": "b", + "named": false + }, + { + "type": "block", + "named": false + }, + { + "type": "by", + "named": false + }, + { + "type": "capfirst", + "named": false + }, + { + "type": "center:", + "named": false + }, + { + "type": "closeblock", + "named": false + }, + { + "type": "closebrace", + "named": false + }, + { + "type": "closecomment", + "named": false + }, + { + "type": "closevariable", + "named": false + }, + { + "type": "content", + "named": true + }, + { + "type": "csrf_token", + "named": false + }, + { + "type": "cut:", + "named": false + }, + { + "type": "cycle", + "named": false + }, + { + "type": "date", + "named": false + }, + { + "type": "date:", + "named": false + }, + { + "type": "debug", + "named": false + }, + { + "type": "default:", + "named": false + }, + { + "type": "default_if_none:", + "named": false + }, + { + "type": "dictsort:", + "named": false + }, + { + "type": "dictsortreversed:", + "named": false + }, + { + "type": "divisibleby:", + "named": false + }, + { + "type": "elif", + "named": false + }, + { + "type": "else", + "named": false + }, + { + "type": "empty", + "named": false + }, + { + "type": "endautoescape", + "named": false + }, + { + "type": "endblock", + "named": false + }, + { + "type": "endfilter", + "named": false + }, + { + "type": "endfor", + "named": false + }, + { + "type": "endif", + "named": false + }, + { + "type": "endifchanged", + "named": false + }, + { + "type": "endpartialdef", + "named": false + }, + { + "type": "endspaceless", + "named": false + }, + { + "type": "endverbatim", + "named": false + }, + { + "type": "endwith", + "named": false + }, + { + "type": "escape", + "named": false + }, + { + "type": "escapejs", + "named": false + }, + { + "type": "extends", + "named": false + }, + { + "type": "filesizeformat", + "named": false + }, + { + "type": "filter", + "named": false + }, + { + "type": "first", + "named": false + }, + { + "type": "firstof", + "named": false + }, + { + "type": "floatformat", + "named": false + }, + { + "type": "floatformat:", + "named": false + }, + { + "type": "for", + "named": false + }, + { + "type": "force_escape", + "named": false + }, + { + "type": "get_digit:", + "named": false + }, + { + "type": "identifier", + "named": true + }, + { + "type": "if", + "named": false + }, + { + "type": "ifchanged", + "named": false + }, + { + "type": "in", + "named": false + }, + { + "type": "include", + "named": false + }, + { + "type": "inline", + "named": false + }, + { + "type": "iriencode", + "named": false + }, + { + "type": "is", + "named": false + }, + { + "type": "join:", + "named": false + }, + { + "type": "json_script", + "named": false + }, + { + "type": "json_script:", + "named": false + }, + { + "type": "last", + "named": false + }, + { + "type": "length", + "named": false + }, + { + "type": "length_is:", + "named": false + }, + { + "type": "linebreaks", + "named": false + }, + { + "type": "linebreaksbr", + "named": false + }, + { + "type": "linenumbers", + "named": false + }, + { + "type": "ljust:", + "named": false + }, + { + "type": "lorem", + "named": false + }, + { + "type": "lower", + "named": false + }, + { + "type": "make_list", + "named": false + }, + { + "type": "not", + "named": false + }, + { + "type": "now", + "named": false + }, + { + "type": "number", + "named": true + }, + { + "type": "off", + "named": false + }, + { + "type": "on", + "named": false + }, + { + "type": "openblock", + "named": false + }, + { + "type": "openbrace", + "named": false + }, + { + "type": "opencomment", + "named": false + }, + { + "type": "openvariable", + "named": false + }, + { + "type": "or", + "named": false + }, + { + "type": "p", + "named": false + }, + { + "type": "partial", + "named": false + }, + { + "type": "partialdef", + "named": false + }, + { + "type": "phone2numeric", + "named": false + }, + { + "type": "pluralize", + "named": false + }, + { + "type": "pluralize:", + "named": false + }, + { + "type": "pop_block", + "named": true + }, + { + "type": "pop_partial", + "named": true + }, + { + "type": "pop_verbatim", + "named": true + }, + { + "type": "pprint", + "named": false + }, + { + "type": "push_block", + "named": true + }, + { + "type": "push_partial", + "named": true + }, + { + "type": "push_verbatim", + "named": true + }, + { + "type": "querystring", + "named": false + }, + { + "type": "random", + "named": false + }, + { + "type": "regroup", + "named": false + }, + { + "type": "resetcycle", + "named": false + }, + { + "type": "rjust:", + "named": false + }, + { + "type": "safe", + "named": false + }, + { + "type": "safeseq", + "named": false + }, + { + "type": "silent", + "named": false + }, + { + "type": "slice:", + "named": false + }, + { + "type": "slugify", + "named": false + }, + { + "type": "spaceless", + "named": false + }, + { + "type": "string", + "named": true + }, + { + "type": "stringformat:", + "named": false + }, + { + "type": "striptags", + "named": false + }, + { + "type": "templatetag", + "named": false + }, + { + "type": "time", + "named": false + }, + { + "type": "time:", + "named": false + }, + { + "type": "timesince", + "named": false + }, + { + "type": "timesince:", + "named": false + }, + { + "type": "timeuntil", + "named": false + }, + { + "type": "timeuntil:", + "named": false + }, + { + "type": "title", + "named": false + }, + { + "type": "truncatechars:", + "named": false + }, + { + "type": "truncatechars_html:", + "named": false + }, + { + "type": "truncatewords:", + "named": false + }, + { + "type": "truncatewords_html:", + "named": false + }, + { + "type": "unordered_list", + "named": false + }, + { + "type": "url", + "named": false + }, + { + "type": "urlencode", + "named": false + }, + { + "type": "urlencode:", + "named": false + }, + { + "type": "urlize", + "named": false + }, + { + "type": "urlizetrunc:", + "named": false + }, + { + "type": "verbatim", + "named": false + }, + { + "type": "w", + "named": false + }, + { + "type": "with", + "named": false + }, + { + "type": "wordcount", + "named": false + }, + { + "type": "wordwrap:", + "named": false + }, + { + "type": "yesno", + "named": false + }, + { + "type": "yesno:", + "named": false + }, + { + "type": "{#", + "named": false + }, + { + "type": "{%", + "named": false + }, + { + "type": "{{", + "named": false + }, + { + "type": "|", + "named": false + }, + { + "type": "}}", + "named": false + } +] \ No newline at end of file diff --git a/src/parser.c b/src/parser.c new file mode 100644 index 0000000..79f8551 --- /dev/null +++ b/src/parser.c @@ -0,0 +1,17128 @@ +/* Automatically @generated by tree-sitter */ + +#include "tree_sitter/parser.h" + +#if defined(__GNUC__) || defined(__clang__) +#pragma GCC diagnostic ignored "-Wmissing-field-initializers" +#endif + +#ifdef _MSC_VER +#pragma optimize("", off) +#elif defined(__clang__) +#pragma clang optimize off +#elif defined(__GNUC__) +#pragma GCC optimize ("O0") +#endif + +#define LANGUAGE_VERSION 15 +#define STATE_COUNT 720 +#define LARGE_STATE_COUNT 18 +#define SYMBOL_COUNT 201 +#define ALIAS_COUNT 0 +#define TOKEN_COUNT 155 +#define EXTERNAL_TOKEN_COUNT 7 +#define FIELD_COUNT 4 +#define MAX_ALIAS_SEQUENCE_LENGTH 15 +#define MAX_RESERVED_WORD_SET_SIZE 0 +#define PRODUCTION_ID_COUNT 42 +#define SUPERTYPE_COUNT 2 + +enum ts_symbol_identifiers { + sym_content = 1, + anon_sym_PIPE = 2, + sym_number = 3, + sym_string = 4, + sym_attribute = 5, + anon_sym_DOT = 6, + sym_identifier = 7, + anon_sym_and = 8, + anon_sym_or = 9, + anon_sym_EQ_EQ = 10, + anon_sym_BANG_EQ = 11, + anon_sym_LT = 12, + anon_sym_GT = 13, + anon_sym_LT_EQ = 14, + anon_sym_GT_EQ = 15, + anon_sym_in = 16, + anon_sym_not = 17, + anon_sym_is = 18, + anon_sym_LBRACE_LBRACE = 19, + anon_sym_RBRACE_RBRACE = 20, + anon_sym_LBRACE_POUND = 21, + aux_sym_template_comment_token1 = 22, + anon_sym_POUND_RBRACE = 23, + anon_sym_add_COLON = 24, + anon_sym_addslashes = 25, + anon_sym_capfirst = 26, + anon_sym_center_COLON = 27, + anon_sym_cut_COLON = 28, + anon_sym_date_COLON = 29, + anon_sym_date = 30, + anon_sym_default_COLON = 31, + anon_sym_default_if_none_COLON = 32, + anon_sym_dictsort_COLON = 33, + anon_sym_dictsortreversed_COLON = 34, + anon_sym_divisibleby_COLON = 35, + anon_sym_escape = 36, + anon_sym_escapejs = 37, + anon_sym_filesizeformat = 38, + anon_sym_first = 39, + anon_sym_floatformat_COLON = 40, + anon_sym_floatformat = 41, + anon_sym_force_escape = 42, + anon_sym_get_digit_COLON = 43, + anon_sym_iriencode = 44, + anon_sym_join_COLON = 45, + anon_sym_json_script_COLON = 46, + anon_sym_json_script = 47, + anon_sym_last = 48, + anon_sym_length = 49, + anon_sym_length_is_COLON = 50, + anon_sym_linebreaks = 51, + anon_sym_linebreaksbr = 52, + anon_sym_linenumbers = 53, + anon_sym_ljust_COLON = 54, + anon_sym_lower = 55, + anon_sym_make_list = 56, + anon_sym_phone2numeric = 57, + anon_sym_pluralize_COLON = 58, + anon_sym_pluralize = 59, + anon_sym_pprint = 60, + anon_sym_random = 61, + anon_sym_rjust_COLON = 62, + anon_sym_safe = 63, + anon_sym_safeseq = 64, + anon_sym_slice_COLON = 65, + anon_sym_slugify = 66, + anon_sym_stringformat_COLON = 67, + anon_sym_striptags = 68, + anon_sym_time_COLON = 69, + anon_sym_time = 70, + anon_sym_timesince_COLON = 71, + anon_sym_timesince = 72, + anon_sym_timeuntil_COLON = 73, + anon_sym_timeuntil = 74, + anon_sym_title = 75, + anon_sym_truncatechars_COLON = 76, + anon_sym_truncatechars_html_COLON = 77, + anon_sym_truncatewords_COLON = 78, + anon_sym_truncatewords_html_COLON = 79, + anon_sym_unordered_list = 80, + anon_sym_urlencode_COLON = 81, + anon_sym_urlencode = 82, + anon_sym_urlize = 83, + anon_sym_urlizetrunc_COLON = 84, + anon_sym_wordcount = 85, + anon_sym_wordwrap_COLON = 86, + anon_sym_yesno_COLON = 87, + anon_sym_yesno = 88, + anon_sym_LBRACE_PERCENT = 89, + anon_sym_autoescape = 90, + anon_sym_on = 91, + anon_sym_off = 92, + anon_sym_PERCENT_RBRACE = 93, + anon_sym_endautoescape = 94, + anon_sym_block = 95, + anon_sym_endblock = 96, + anon_sym_csrf_token = 97, + anon_sym_cycle = 98, + anon_sym_as = 99, + anon_sym_silent = 100, + anon_sym_debug = 101, + anon_sym_extends = 102, + anon_sym_filter = 103, + anon_sym_endfilter = 104, + anon_sym_firstof = 105, + anon_sym_for = 106, + anon_sym_COMMA = 107, + anon_sym_empty = 108, + anon_sym_endfor = 109, + anon_sym_if = 110, + anon_sym_elif = 111, + anon_sym_else = 112, + anon_sym_endif = 113, + anon_sym_ifchanged = 114, + anon_sym_endifchanged = 115, + anon_sym_include = 116, + anon_sym_lorem = 117, + anon_sym_w = 118, + anon_sym_p = 119, + anon_sym_b = 120, + anon_sym_now = 121, + anon_sym_partial = 122, + anon_sym_partialdef = 123, + anon_sym_inline = 124, + anon_sym_endpartialdef = 125, + anon_sym_querystring = 126, + anon_sym_EQ = 127, + anon_sym_regroup = 128, + anon_sym_by = 129, + anon_sym_resetcycle = 130, + anon_sym_spaceless = 131, + anon_sym_endspaceless = 132, + anon_sym_templatetag = 133, + anon_sym_openblock = 134, + anon_sym_closeblock = 135, + anon_sym_openvariable = 136, + anon_sym_closevariable = 137, + anon_sym_openbrace = 138, + anon_sym_closebrace = 139, + anon_sym_opencomment = 140, + anon_sym_closecomment = 141, + anon_sym_url = 142, + anon_sym_verbatim = 143, + aux_sym_verbatim_group_token1 = 144, + anon_sym_endverbatim = 145, + anon_sym_with = 146, + anon_sym_endwith = 147, + sym_pop_block = 148, + sym_pop_partial = 149, + sym_pop_verbatim = 150, + sym_push_block = 151, + sym_push_partial = 152, + sym_push_verbatim = 153, + sym_matcher_error = 154, + sym_template = 155, + sym_template_tag = 156, + sym_filtered_value = 157, + sym_filter_expression = 158, + sym_value = 159, + sym_literal = 160, + sym_variable_attribute = 161, + sym_binaryOperator = 162, + sym_predicate = 163, + sym_template_variable = 164, + sym_template_comment = 165, + sym_template_block_groups = 166, + sym_filter = 167, + sym_autoescape_group = 168, + sym_block_group = 169, + sym_csrf_token = 170, + sym_cycle = 171, + sym_debug = 172, + sym_extends = 173, + sym_filter_group = 174, + sym_firstof = 175, + sym_for_group = 176, + sym_if_group = 177, + sym_ifchanged_group = 178, + sym_include = 179, + sym_lorem = 180, + sym_now = 181, + sym_partial = 182, + sym_partialdef_group = 183, + sym_query_string = 184, + sym_regroup = 185, + sym_reset_cycle = 186, + sym_spaceless_group = 187, + sym_template_tag_block = 188, + sym_url_block = 189, + sym_verbatim_group = 190, + sym_with_group = 191, + aux_sym_template_repeat1 = 192, + aux_sym_filter_expression_repeat1 = 193, + aux_sym_predicate_repeat1 = 194, + aux_sym_cycle_repeat1 = 195, + aux_sym_for_group_repeat1 = 196, + aux_sym_if_group_repeat1 = 197, + aux_sym_query_string_repeat1 = 198, + aux_sym_query_string_repeat2 = 199, + aux_sym_with_group_repeat1 = 200, +}; + +static const char * const ts_symbol_names[] = { + [ts_builtin_sym_end] = "end", + [sym_content] = "content", + [anon_sym_PIPE] = "|", + [sym_number] = "number", + [sym_string] = "string", + [sym_attribute] = "attribute", + [anon_sym_DOT] = ".", + [sym_identifier] = "identifier", + [anon_sym_and] = "and", + [anon_sym_or] = "or", + [anon_sym_EQ_EQ] = "==", + [anon_sym_BANG_EQ] = "!=", + [anon_sym_LT] = "<", + [anon_sym_GT] = ">", + [anon_sym_LT_EQ] = "<=", + [anon_sym_GT_EQ] = ">=", + [anon_sym_in] = "in", + [anon_sym_not] = "not", + [anon_sym_is] = "is", + [anon_sym_LBRACE_LBRACE] = "{{", + [anon_sym_RBRACE_RBRACE] = "}}", + [anon_sym_LBRACE_POUND] = "{#", + [aux_sym_template_comment_token1] = "template_comment_token1", + [anon_sym_POUND_RBRACE] = "#}", + [anon_sym_add_COLON] = "add:", + [anon_sym_addslashes] = "addslashes", + [anon_sym_capfirst] = "capfirst", + [anon_sym_center_COLON] = "center:", + [anon_sym_cut_COLON] = "cut:", + [anon_sym_date_COLON] = "date:", + [anon_sym_date] = "date", + [anon_sym_default_COLON] = "default:", + [anon_sym_default_if_none_COLON] = "default_if_none:", + [anon_sym_dictsort_COLON] = "dictsort:", + [anon_sym_dictsortreversed_COLON] = "dictsortreversed:", + [anon_sym_divisibleby_COLON] = "divisibleby:", + [anon_sym_escape] = "escape", + [anon_sym_escapejs] = "escapejs", + [anon_sym_filesizeformat] = "filesizeformat", + [anon_sym_first] = "first", + [anon_sym_floatformat_COLON] = "floatformat:", + [anon_sym_floatformat] = "floatformat", + [anon_sym_force_escape] = "force_escape", + [anon_sym_get_digit_COLON] = "get_digit:", + [anon_sym_iriencode] = "iriencode", + [anon_sym_join_COLON] = "join:", + [anon_sym_json_script_COLON] = "json_script:", + [anon_sym_json_script] = "json_script", + [anon_sym_last] = "last", + [anon_sym_length] = "length", + [anon_sym_length_is_COLON] = "length_is:", + [anon_sym_linebreaks] = "linebreaks", + [anon_sym_linebreaksbr] = "linebreaksbr", + [anon_sym_linenumbers] = "linenumbers", + [anon_sym_ljust_COLON] = "ljust:", + [anon_sym_lower] = "lower", + [anon_sym_make_list] = "make_list", + [anon_sym_phone2numeric] = "phone2numeric", + [anon_sym_pluralize_COLON] = "pluralize:", + [anon_sym_pluralize] = "pluralize", + [anon_sym_pprint] = "pprint", + [anon_sym_random] = "random", + [anon_sym_rjust_COLON] = "rjust:", + [anon_sym_safe] = "safe", + [anon_sym_safeseq] = "safeseq", + [anon_sym_slice_COLON] = "slice:", + [anon_sym_slugify] = "slugify", + [anon_sym_stringformat_COLON] = "stringformat:", + [anon_sym_striptags] = "striptags", + [anon_sym_time_COLON] = "time:", + [anon_sym_time] = "time", + [anon_sym_timesince_COLON] = "timesince:", + [anon_sym_timesince] = "timesince", + [anon_sym_timeuntil_COLON] = "timeuntil:", + [anon_sym_timeuntil] = "timeuntil", + [anon_sym_title] = "title", + [anon_sym_truncatechars_COLON] = "truncatechars:", + [anon_sym_truncatechars_html_COLON] = "truncatechars_html:", + [anon_sym_truncatewords_COLON] = "truncatewords:", + [anon_sym_truncatewords_html_COLON] = "truncatewords_html:", + [anon_sym_unordered_list] = "unordered_list", + [anon_sym_urlencode_COLON] = "urlencode:", + [anon_sym_urlencode] = "urlencode", + [anon_sym_urlize] = "urlize", + [anon_sym_urlizetrunc_COLON] = "urlizetrunc:", + [anon_sym_wordcount] = "wordcount", + [anon_sym_wordwrap_COLON] = "wordwrap:", + [anon_sym_yesno_COLON] = "yesno:", + [anon_sym_yesno] = "yesno", + [anon_sym_LBRACE_PERCENT] = "{%", + [anon_sym_autoescape] = "autoescape", + [anon_sym_on] = "on", + [anon_sym_off] = "off", + [anon_sym_PERCENT_RBRACE] = "%}", + [anon_sym_endautoescape] = "endautoescape", + [anon_sym_block] = "block", + [anon_sym_endblock] = "endblock", + [anon_sym_csrf_token] = "csrf_token", + [anon_sym_cycle] = "cycle", + [anon_sym_as] = "as", + [anon_sym_silent] = "silent", + [anon_sym_debug] = "debug", + [anon_sym_extends] = "extends", + [anon_sym_filter] = "filter", + [anon_sym_endfilter] = "endfilter", + [anon_sym_firstof] = "firstof", + [anon_sym_for] = "for", + [anon_sym_COMMA] = ",", + [anon_sym_empty] = "empty", + [anon_sym_endfor] = "endfor", + [anon_sym_if] = "if", + [anon_sym_elif] = "elif", + [anon_sym_else] = "else", + [anon_sym_endif] = "endif", + [anon_sym_ifchanged] = "ifchanged", + [anon_sym_endifchanged] = "endifchanged", + [anon_sym_include] = "include", + [anon_sym_lorem] = "lorem", + [anon_sym_w] = "w", + [anon_sym_p] = "p", + [anon_sym_b] = "b", + [anon_sym_now] = "now", + [anon_sym_partial] = "partial", + [anon_sym_partialdef] = "partialdef", + [anon_sym_inline] = "inline", + [anon_sym_endpartialdef] = "endpartialdef", + [anon_sym_querystring] = "querystring", + [anon_sym_EQ] = "=", + [anon_sym_regroup] = "regroup", + [anon_sym_by] = "by", + [anon_sym_resetcycle] = "resetcycle", + [anon_sym_spaceless] = "spaceless", + [anon_sym_endspaceless] = "endspaceless", + [anon_sym_templatetag] = "templatetag", + [anon_sym_openblock] = "openblock", + [anon_sym_closeblock] = "closeblock", + [anon_sym_openvariable] = "openvariable", + [anon_sym_closevariable] = "closevariable", + [anon_sym_openbrace] = "openbrace", + [anon_sym_closebrace] = "closebrace", + [anon_sym_opencomment] = "opencomment", + [anon_sym_closecomment] = "closecomment", + [anon_sym_url] = "url", + [anon_sym_verbatim] = "verbatim", + [aux_sym_verbatim_group_token1] = "verbatim_group_token1", + [anon_sym_endverbatim] = "endverbatim", + [anon_sym_with] = "with", + [anon_sym_endwith] = "endwith", + [sym_pop_block] = "pop_block", + [sym_pop_partial] = "pop_partial", + [sym_pop_verbatim] = "pop_verbatim", + [sym_push_block] = "push_block", + [sym_push_partial] = "push_partial", + [sym_push_verbatim] = "push_verbatim", + [sym_matcher_error] = "matcher_error", + [sym_template] = "template", + [sym_template_tag] = "template_tag", + [sym_filtered_value] = "filtered_value", + [sym_filter_expression] = "filter_expression", + [sym_value] = "value", + [sym_literal] = "literal", + [sym_variable_attribute] = "variable_attribute", + [sym_binaryOperator] = "binaryOperator", + [sym_predicate] = "predicate", + [sym_template_variable] = "template_variable", + [sym_template_comment] = "template_comment", + [sym_template_block_groups] = "template_block_groups", + [sym_filter] = "filter", + [sym_autoescape_group] = "autoescape_group", + [sym_block_group] = "block_group", + [sym_csrf_token] = "csrf_token", + [sym_cycle] = "cycle", + [sym_debug] = "debug", + [sym_extends] = "extends", + [sym_filter_group] = "filter_group", + [sym_firstof] = "firstof", + [sym_for_group] = "for_group", + [sym_if_group] = "if_group", + [sym_ifchanged_group] = "ifchanged_group", + [sym_include] = "include", + [sym_lorem] = "lorem", + [sym_now] = "now", + [sym_partial] = "partial", + [sym_partialdef_group] = "partialdef_group", + [sym_query_string] = "query_string", + [sym_regroup] = "regroup", + [sym_reset_cycle] = "reset_cycle", + [sym_spaceless_group] = "spaceless_group", + [sym_template_tag_block] = "template_tag_block", + [sym_url_block] = "url_block", + [sym_verbatim_group] = "verbatim_group", + [sym_with_group] = "with_group", + [aux_sym_template_repeat1] = "template_repeat1", + [aux_sym_filter_expression_repeat1] = "filter_expression_repeat1", + [aux_sym_predicate_repeat1] = "predicate_repeat1", + [aux_sym_cycle_repeat1] = "cycle_repeat1", + [aux_sym_for_group_repeat1] = "for_group_repeat1", + [aux_sym_if_group_repeat1] = "if_group_repeat1", + [aux_sym_query_string_repeat1] = "query_string_repeat1", + [aux_sym_query_string_repeat2] = "query_string_repeat2", + [aux_sym_with_group_repeat1] = "with_group_repeat1", +}; + +static const TSSymbol ts_symbol_map[] = { + [ts_builtin_sym_end] = ts_builtin_sym_end, + [sym_content] = sym_content, + [anon_sym_PIPE] = anon_sym_PIPE, + [sym_number] = sym_number, + [sym_string] = sym_string, + [sym_attribute] = sym_attribute, + [anon_sym_DOT] = anon_sym_DOT, + [sym_identifier] = sym_identifier, + [anon_sym_and] = anon_sym_and, + [anon_sym_or] = anon_sym_or, + [anon_sym_EQ_EQ] = anon_sym_EQ_EQ, + [anon_sym_BANG_EQ] = anon_sym_BANG_EQ, + [anon_sym_LT] = anon_sym_LT, + [anon_sym_GT] = anon_sym_GT, + [anon_sym_LT_EQ] = anon_sym_LT_EQ, + [anon_sym_GT_EQ] = anon_sym_GT_EQ, + [anon_sym_in] = anon_sym_in, + [anon_sym_not] = anon_sym_not, + [anon_sym_is] = anon_sym_is, + [anon_sym_LBRACE_LBRACE] = anon_sym_LBRACE_LBRACE, + [anon_sym_RBRACE_RBRACE] = anon_sym_RBRACE_RBRACE, + [anon_sym_LBRACE_POUND] = anon_sym_LBRACE_POUND, + [aux_sym_template_comment_token1] = aux_sym_template_comment_token1, + [anon_sym_POUND_RBRACE] = anon_sym_POUND_RBRACE, + [anon_sym_add_COLON] = anon_sym_add_COLON, + [anon_sym_addslashes] = anon_sym_addslashes, + [anon_sym_capfirst] = anon_sym_capfirst, + [anon_sym_center_COLON] = anon_sym_center_COLON, + [anon_sym_cut_COLON] = anon_sym_cut_COLON, + [anon_sym_date_COLON] = anon_sym_date_COLON, + [anon_sym_date] = anon_sym_date, + [anon_sym_default_COLON] = anon_sym_default_COLON, + [anon_sym_default_if_none_COLON] = anon_sym_default_if_none_COLON, + [anon_sym_dictsort_COLON] = anon_sym_dictsort_COLON, + [anon_sym_dictsortreversed_COLON] = anon_sym_dictsortreversed_COLON, + [anon_sym_divisibleby_COLON] = anon_sym_divisibleby_COLON, + [anon_sym_escape] = anon_sym_escape, + [anon_sym_escapejs] = anon_sym_escapejs, + [anon_sym_filesizeformat] = anon_sym_filesizeformat, + [anon_sym_first] = anon_sym_first, + [anon_sym_floatformat_COLON] = anon_sym_floatformat_COLON, + [anon_sym_floatformat] = anon_sym_floatformat, + [anon_sym_force_escape] = anon_sym_force_escape, + [anon_sym_get_digit_COLON] = anon_sym_get_digit_COLON, + [anon_sym_iriencode] = anon_sym_iriencode, + [anon_sym_join_COLON] = anon_sym_join_COLON, + [anon_sym_json_script_COLON] = anon_sym_json_script_COLON, + [anon_sym_json_script] = anon_sym_json_script, + [anon_sym_last] = anon_sym_last, + [anon_sym_length] = anon_sym_length, + [anon_sym_length_is_COLON] = anon_sym_length_is_COLON, + [anon_sym_linebreaks] = anon_sym_linebreaks, + [anon_sym_linebreaksbr] = anon_sym_linebreaksbr, + [anon_sym_linenumbers] = anon_sym_linenumbers, + [anon_sym_ljust_COLON] = anon_sym_ljust_COLON, + [anon_sym_lower] = anon_sym_lower, + [anon_sym_make_list] = anon_sym_make_list, + [anon_sym_phone2numeric] = anon_sym_phone2numeric, + [anon_sym_pluralize_COLON] = anon_sym_pluralize_COLON, + [anon_sym_pluralize] = anon_sym_pluralize, + [anon_sym_pprint] = anon_sym_pprint, + [anon_sym_random] = anon_sym_random, + [anon_sym_rjust_COLON] = anon_sym_rjust_COLON, + [anon_sym_safe] = anon_sym_safe, + [anon_sym_safeseq] = anon_sym_safeseq, + [anon_sym_slice_COLON] = anon_sym_slice_COLON, + [anon_sym_slugify] = anon_sym_slugify, + [anon_sym_stringformat_COLON] = anon_sym_stringformat_COLON, + [anon_sym_striptags] = anon_sym_striptags, + [anon_sym_time_COLON] = anon_sym_time_COLON, + [anon_sym_time] = anon_sym_time, + [anon_sym_timesince_COLON] = anon_sym_timesince_COLON, + [anon_sym_timesince] = anon_sym_timesince, + [anon_sym_timeuntil_COLON] = anon_sym_timeuntil_COLON, + [anon_sym_timeuntil] = anon_sym_timeuntil, + [anon_sym_title] = anon_sym_title, + [anon_sym_truncatechars_COLON] = anon_sym_truncatechars_COLON, + [anon_sym_truncatechars_html_COLON] = anon_sym_truncatechars_html_COLON, + [anon_sym_truncatewords_COLON] = anon_sym_truncatewords_COLON, + [anon_sym_truncatewords_html_COLON] = anon_sym_truncatewords_html_COLON, + [anon_sym_unordered_list] = anon_sym_unordered_list, + [anon_sym_urlencode_COLON] = anon_sym_urlencode_COLON, + [anon_sym_urlencode] = anon_sym_urlencode, + [anon_sym_urlize] = anon_sym_urlize, + [anon_sym_urlizetrunc_COLON] = anon_sym_urlizetrunc_COLON, + [anon_sym_wordcount] = anon_sym_wordcount, + [anon_sym_wordwrap_COLON] = anon_sym_wordwrap_COLON, + [anon_sym_yesno_COLON] = anon_sym_yesno_COLON, + [anon_sym_yesno] = anon_sym_yesno, + [anon_sym_LBRACE_PERCENT] = anon_sym_LBRACE_PERCENT, + [anon_sym_autoescape] = anon_sym_autoescape, + [anon_sym_on] = anon_sym_on, + [anon_sym_off] = anon_sym_off, + [anon_sym_PERCENT_RBRACE] = anon_sym_PERCENT_RBRACE, + [anon_sym_endautoescape] = anon_sym_endautoescape, + [anon_sym_block] = anon_sym_block, + [anon_sym_endblock] = anon_sym_endblock, + [anon_sym_csrf_token] = anon_sym_csrf_token, + [anon_sym_cycle] = anon_sym_cycle, + [anon_sym_as] = anon_sym_as, + [anon_sym_silent] = anon_sym_silent, + [anon_sym_debug] = anon_sym_debug, + [anon_sym_extends] = anon_sym_extends, + [anon_sym_filter] = anon_sym_filter, + [anon_sym_endfilter] = anon_sym_endfilter, + [anon_sym_firstof] = anon_sym_firstof, + [anon_sym_for] = anon_sym_for, + [anon_sym_COMMA] = anon_sym_COMMA, + [anon_sym_empty] = anon_sym_empty, + [anon_sym_endfor] = anon_sym_endfor, + [anon_sym_if] = anon_sym_if, + [anon_sym_elif] = anon_sym_elif, + [anon_sym_else] = anon_sym_else, + [anon_sym_endif] = anon_sym_endif, + [anon_sym_ifchanged] = anon_sym_ifchanged, + [anon_sym_endifchanged] = anon_sym_endifchanged, + [anon_sym_include] = anon_sym_include, + [anon_sym_lorem] = anon_sym_lorem, + [anon_sym_w] = anon_sym_w, + [anon_sym_p] = anon_sym_p, + [anon_sym_b] = anon_sym_b, + [anon_sym_now] = anon_sym_now, + [anon_sym_partial] = anon_sym_partial, + [anon_sym_partialdef] = anon_sym_partialdef, + [anon_sym_inline] = anon_sym_inline, + [anon_sym_endpartialdef] = anon_sym_endpartialdef, + [anon_sym_querystring] = anon_sym_querystring, + [anon_sym_EQ] = anon_sym_EQ, + [anon_sym_regroup] = anon_sym_regroup, + [anon_sym_by] = anon_sym_by, + [anon_sym_resetcycle] = anon_sym_resetcycle, + [anon_sym_spaceless] = anon_sym_spaceless, + [anon_sym_endspaceless] = anon_sym_endspaceless, + [anon_sym_templatetag] = anon_sym_templatetag, + [anon_sym_openblock] = anon_sym_openblock, + [anon_sym_closeblock] = anon_sym_closeblock, + [anon_sym_openvariable] = anon_sym_openvariable, + [anon_sym_closevariable] = anon_sym_closevariable, + [anon_sym_openbrace] = anon_sym_openbrace, + [anon_sym_closebrace] = anon_sym_closebrace, + [anon_sym_opencomment] = anon_sym_opencomment, + [anon_sym_closecomment] = anon_sym_closecomment, + [anon_sym_url] = anon_sym_url, + [anon_sym_verbatim] = anon_sym_verbatim, + [aux_sym_verbatim_group_token1] = aux_sym_verbatim_group_token1, + [anon_sym_endverbatim] = anon_sym_endverbatim, + [anon_sym_with] = anon_sym_with, + [anon_sym_endwith] = anon_sym_endwith, + [sym_pop_block] = sym_pop_block, + [sym_pop_partial] = sym_pop_partial, + [sym_pop_verbatim] = sym_pop_verbatim, + [sym_push_block] = sym_push_block, + [sym_push_partial] = sym_push_partial, + [sym_push_verbatim] = sym_push_verbatim, + [sym_matcher_error] = sym_matcher_error, + [sym_template] = sym_template, + [sym_template_tag] = sym_template_tag, + [sym_filtered_value] = sym_filtered_value, + [sym_filter_expression] = sym_filter_expression, + [sym_value] = sym_value, + [sym_literal] = sym_literal, + [sym_variable_attribute] = sym_variable_attribute, + [sym_binaryOperator] = sym_binaryOperator, + [sym_predicate] = sym_predicate, + [sym_template_variable] = sym_template_variable, + [sym_template_comment] = sym_template_comment, + [sym_template_block_groups] = sym_template_block_groups, + [sym_filter] = sym_filter, + [sym_autoescape_group] = sym_autoescape_group, + [sym_block_group] = sym_block_group, + [sym_csrf_token] = sym_csrf_token, + [sym_cycle] = sym_cycle, + [sym_debug] = sym_debug, + [sym_extends] = sym_extends, + [sym_filter_group] = sym_filter_group, + [sym_firstof] = sym_firstof, + [sym_for_group] = sym_for_group, + [sym_if_group] = sym_if_group, + [sym_ifchanged_group] = sym_ifchanged_group, + [sym_include] = sym_include, + [sym_lorem] = sym_lorem, + [sym_now] = sym_now, + [sym_partial] = sym_partial, + [sym_partialdef_group] = sym_partialdef_group, + [sym_query_string] = sym_query_string, + [sym_regroup] = sym_regroup, + [sym_reset_cycle] = sym_reset_cycle, + [sym_spaceless_group] = sym_spaceless_group, + [sym_template_tag_block] = sym_template_tag_block, + [sym_url_block] = sym_url_block, + [sym_verbatim_group] = sym_verbatim_group, + [sym_with_group] = sym_with_group, + [aux_sym_template_repeat1] = aux_sym_template_repeat1, + [aux_sym_filter_expression_repeat1] = aux_sym_filter_expression_repeat1, + [aux_sym_predicate_repeat1] = aux_sym_predicate_repeat1, + [aux_sym_cycle_repeat1] = aux_sym_cycle_repeat1, + [aux_sym_for_group_repeat1] = aux_sym_for_group_repeat1, + [aux_sym_if_group_repeat1] = aux_sym_if_group_repeat1, + [aux_sym_query_string_repeat1] = aux_sym_query_string_repeat1, + [aux_sym_query_string_repeat2] = aux_sym_query_string_repeat2, + [aux_sym_with_group_repeat1] = aux_sym_with_group_repeat1, +}; + +static const TSSymbolMetadata ts_symbol_metadata[] = { + [ts_builtin_sym_end] = { + .visible = false, + .named = true, + }, + [sym_content] = { + .visible = true, + .named = true, + }, + [anon_sym_PIPE] = { + .visible = true, + .named = false, + }, + [sym_number] = { + .visible = true, + .named = true, + }, + [sym_string] = { + .visible = true, + .named = true, + }, + [sym_attribute] = { + .visible = true, + .named = true, + }, + [anon_sym_DOT] = { + .visible = true, + .named = false, + }, + [sym_identifier] = { + .visible = true, + .named = true, + }, + [anon_sym_and] = { + .visible = true, + .named = false, + }, + [anon_sym_or] = { + .visible = true, + .named = false, + }, + [anon_sym_EQ_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_BANG_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_LT] = { + .visible = true, + .named = false, + }, + [anon_sym_GT] = { + .visible = true, + .named = false, + }, + [anon_sym_LT_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_GT_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_in] = { + .visible = true, + .named = false, + }, + [anon_sym_not] = { + .visible = true, + .named = false, + }, + [anon_sym_is] = { + .visible = true, + .named = false, + }, + [anon_sym_LBRACE_LBRACE] = { + .visible = true, + .named = false, + }, + [anon_sym_RBRACE_RBRACE] = { + .visible = true, + .named = false, + }, + [anon_sym_LBRACE_POUND] = { + .visible = true, + .named = false, + }, + [aux_sym_template_comment_token1] = { + .visible = false, + .named = false, + }, + [anon_sym_POUND_RBRACE] = { + .visible = true, + .named = false, + }, + [anon_sym_add_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_addslashes] = { + .visible = true, + .named = false, + }, + [anon_sym_capfirst] = { + .visible = true, + .named = false, + }, + [anon_sym_center_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_cut_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_date_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_date] = { + .visible = true, + .named = false, + }, + [anon_sym_default_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_default_if_none_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_dictsort_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_dictsortreversed_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_divisibleby_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_escape] = { + .visible = true, + .named = false, + }, + [anon_sym_escapejs] = { + .visible = true, + .named = false, + }, + [anon_sym_filesizeformat] = { + .visible = true, + .named = false, + }, + [anon_sym_first] = { + .visible = true, + .named = false, + }, + [anon_sym_floatformat_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_floatformat] = { + .visible = true, + .named = false, + }, + [anon_sym_force_escape] = { + .visible = true, + .named = false, + }, + [anon_sym_get_digit_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_iriencode] = { + .visible = true, + .named = false, + }, + [anon_sym_join_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_json_script_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_json_script] = { + .visible = true, + .named = false, + }, + [anon_sym_last] = { + .visible = true, + .named = false, + }, + [anon_sym_length] = { + .visible = true, + .named = false, + }, + [anon_sym_length_is_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_linebreaks] = { + .visible = true, + .named = false, + }, + [anon_sym_linebreaksbr] = { + .visible = true, + .named = false, + }, + [anon_sym_linenumbers] = { + .visible = true, + .named = false, + }, + [anon_sym_ljust_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_lower] = { + .visible = true, + .named = false, + }, + [anon_sym_make_list] = { + .visible = true, + .named = false, + }, + [anon_sym_phone2numeric] = { + .visible = true, + .named = false, + }, + [anon_sym_pluralize_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_pluralize] = { + .visible = true, + .named = false, + }, + [anon_sym_pprint] = { + .visible = true, + .named = false, + }, + [anon_sym_random] = { + .visible = true, + .named = false, + }, + [anon_sym_rjust_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_safe] = { + .visible = true, + .named = false, + }, + [anon_sym_safeseq] = { + .visible = true, + .named = false, + }, + [anon_sym_slice_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_slugify] = { + .visible = true, + .named = false, + }, + [anon_sym_stringformat_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_striptags] = { + .visible = true, + .named = false, + }, + [anon_sym_time_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_time] = { + .visible = true, + .named = false, + }, + [anon_sym_timesince_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_timesince] = { + .visible = true, + .named = false, + }, + [anon_sym_timeuntil_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_timeuntil] = { + .visible = true, + .named = false, + }, + [anon_sym_title] = { + .visible = true, + .named = false, + }, + [anon_sym_truncatechars_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_truncatechars_html_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_truncatewords_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_truncatewords_html_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_unordered_list] = { + .visible = true, + .named = false, + }, + [anon_sym_urlencode_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_urlencode] = { + .visible = true, + .named = false, + }, + [anon_sym_urlize] = { + .visible = true, + .named = false, + }, + [anon_sym_urlizetrunc_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_wordcount] = { + .visible = true, + .named = false, + }, + [anon_sym_wordwrap_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_yesno_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_yesno] = { + .visible = true, + .named = false, + }, + [anon_sym_LBRACE_PERCENT] = { + .visible = true, + .named = false, + }, + [anon_sym_autoescape] = { + .visible = true, + .named = false, + }, + [anon_sym_on] = { + .visible = true, + .named = false, + }, + [anon_sym_off] = { + .visible = true, + .named = false, + }, + [anon_sym_PERCENT_RBRACE] = { + .visible = true, + .named = false, + }, + [anon_sym_endautoescape] = { + .visible = true, + .named = false, + }, + [anon_sym_block] = { + .visible = true, + .named = false, + }, + [anon_sym_endblock] = { + .visible = true, + .named = false, + }, + [anon_sym_csrf_token] = { + .visible = true, + .named = false, + }, + [anon_sym_cycle] = { + .visible = true, + .named = false, + }, + [anon_sym_as] = { + .visible = true, + .named = false, + }, + [anon_sym_silent] = { + .visible = true, + .named = false, + }, + [anon_sym_debug] = { + .visible = true, + .named = false, + }, + [anon_sym_extends] = { + .visible = true, + .named = false, + }, + [anon_sym_filter] = { + .visible = true, + .named = false, + }, + [anon_sym_endfilter] = { + .visible = true, + .named = false, + }, + [anon_sym_firstof] = { + .visible = true, + .named = false, + }, + [anon_sym_for] = { + .visible = true, + .named = false, + }, + [anon_sym_COMMA] = { + .visible = true, + .named = false, + }, + [anon_sym_empty] = { + .visible = true, + .named = false, + }, + [anon_sym_endfor] = { + .visible = true, + .named = false, + }, + [anon_sym_if] = { + .visible = true, + .named = false, + }, + [anon_sym_elif] = { + .visible = true, + .named = false, + }, + [anon_sym_else] = { + .visible = true, + .named = false, + }, + [anon_sym_endif] = { + .visible = true, + .named = false, + }, + [anon_sym_ifchanged] = { + .visible = true, + .named = false, + }, + [anon_sym_endifchanged] = { + .visible = true, + .named = false, + }, + [anon_sym_include] = { + .visible = true, + .named = false, + }, + [anon_sym_lorem] = { + .visible = true, + .named = false, + }, + [anon_sym_w] = { + .visible = true, + .named = false, + }, + [anon_sym_p] = { + .visible = true, + .named = false, + }, + [anon_sym_b] = { + .visible = true, + .named = false, + }, + [anon_sym_now] = { + .visible = true, + .named = false, + }, + [anon_sym_partial] = { + .visible = true, + .named = false, + }, + [anon_sym_partialdef] = { + .visible = true, + .named = false, + }, + [anon_sym_inline] = { + .visible = true, + .named = false, + }, + [anon_sym_endpartialdef] = { + .visible = true, + .named = false, + }, + [anon_sym_querystring] = { + .visible = true, + .named = false, + }, + [anon_sym_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_regroup] = { + .visible = true, + .named = false, + }, + [anon_sym_by] = { + .visible = true, + .named = false, + }, + [anon_sym_resetcycle] = { + .visible = true, + .named = false, + }, + [anon_sym_spaceless] = { + .visible = true, + .named = false, + }, + [anon_sym_endspaceless] = { + .visible = true, + .named = false, + }, + [anon_sym_templatetag] = { + .visible = true, + .named = false, + }, + [anon_sym_openblock] = { + .visible = true, + .named = false, + }, + [anon_sym_closeblock] = { + .visible = true, + .named = false, + }, + [anon_sym_openvariable] = { + .visible = true, + .named = false, + }, + [anon_sym_closevariable] = { + .visible = true, + .named = false, + }, + [anon_sym_openbrace] = { + .visible = true, + .named = false, + }, + [anon_sym_closebrace] = { + .visible = true, + .named = false, + }, + [anon_sym_opencomment] = { + .visible = true, + .named = false, + }, + [anon_sym_closecomment] = { + .visible = true, + .named = false, + }, + [anon_sym_url] = { + .visible = true, + .named = false, + }, + [anon_sym_verbatim] = { + .visible = true, + .named = false, + }, + [aux_sym_verbatim_group_token1] = { + .visible = false, + .named = false, + }, + [anon_sym_endverbatim] = { + .visible = true, + .named = false, + }, + [anon_sym_with] = { + .visible = true, + .named = false, + }, + [anon_sym_endwith] = { + .visible = true, + .named = false, + }, + [sym_pop_block] = { + .visible = true, + .named = true, + }, + [sym_pop_partial] = { + .visible = true, + .named = true, + }, + [sym_pop_verbatim] = { + .visible = true, + .named = true, + }, + [sym_push_block] = { + .visible = true, + .named = true, + }, + [sym_push_partial] = { + .visible = true, + .named = true, + }, + [sym_push_verbatim] = { + .visible = true, + .named = true, + }, + [sym_matcher_error] = { + .visible = true, + .named = true, + }, + [sym_template] = { + .visible = true, + .named = true, + }, + [sym_template_tag] = { + .visible = false, + .named = true, + .supertype = true, + }, + [sym_filtered_value] = { + .visible = true, + .named = true, + }, + [sym_filter_expression] = { + .visible = true, + .named = true, + }, + [sym_value] = { + .visible = true, + .named = true, + }, + [sym_literal] = { + .visible = true, + .named = true, + }, + [sym_variable_attribute] = { + .visible = true, + .named = true, + }, + [sym_binaryOperator] = { + .visible = true, + .named = true, + }, + [sym_predicate] = { + .visible = true, + .named = true, + }, + [sym_template_variable] = { + .visible = true, + .named = true, + }, + [sym_template_comment] = { + .visible = true, + .named = true, + }, + [sym_template_block_groups] = { + .visible = false, + .named = true, + .supertype = true, + }, + [sym_filter] = { + .visible = true, + .named = true, + }, + [sym_autoescape_group] = { + .visible = true, + .named = true, + }, + [sym_block_group] = { + .visible = true, + .named = true, + }, + [sym_csrf_token] = { + .visible = true, + .named = true, + }, + [sym_cycle] = { + .visible = true, + .named = true, + }, + [sym_debug] = { + .visible = true, + .named = true, + }, + [sym_extends] = { + .visible = true, + .named = true, + }, + [sym_filter_group] = { + .visible = true, + .named = true, + }, + [sym_firstof] = { + .visible = true, + .named = true, + }, + [sym_for_group] = { + .visible = true, + .named = true, + }, + [sym_if_group] = { + .visible = true, + .named = true, + }, + [sym_ifchanged_group] = { + .visible = true, + .named = true, + }, + [sym_include] = { + .visible = true, + .named = true, + }, + [sym_lorem] = { + .visible = true, + .named = true, + }, + [sym_now] = { + .visible = true, + .named = true, + }, + [sym_partial] = { + .visible = true, + .named = true, + }, + [sym_partialdef_group] = { + .visible = true, + .named = true, + }, + [sym_query_string] = { + .visible = true, + .named = true, + }, + [sym_regroup] = { + .visible = true, + .named = true, + }, + [sym_reset_cycle] = { + .visible = true, + .named = true, + }, + [sym_spaceless_group] = { + .visible = true, + .named = true, + }, + [sym_template_tag_block] = { + .visible = true, + .named = true, + }, + [sym_url_block] = { + .visible = true, + .named = true, + }, + [sym_verbatim_group] = { + .visible = true, + .named = true, + }, + [sym_with_group] = { + .visible = true, + .named = true, + }, + [aux_sym_template_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_filter_expression_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_predicate_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_cycle_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_for_group_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_if_group_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_query_string_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_query_string_repeat2] = { + .visible = false, + .named = false, + }, + [aux_sym_with_group_repeat1] = { + .visible = false, + .named = false, + }, +}; + +enum ts_field_identifiers { + field_name = 1, + field_tag = 2, + field_variable = 3, + field_variables = 4, +}; + +static const char * const ts_field_names[] = { + [0] = NULL, + [field_name] = "name", + [field_tag] = "tag", + [field_variable] = "variable", + [field_variables] = "variables", +}; + +static const TSMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { + [1] = {.index = 0, .length = 1}, + [2] = {.index = 1, .length = 2}, + [3] = {.index = 3, .length = 2}, + [4] = {.index = 5, .length = 1}, + [5] = {.index = 6, .length = 2}, + [6] = {.index = 8, .length = 1}, + [7] = {.index = 9, .length = 2}, + [8] = {.index = 11, .length = 2}, + [9] = {.index = 13, .length = 2}, + [10] = {.index = 15, .length = 2}, + [11] = {.index = 17, .length = 2}, + [12] = {.index = 19, .length = 2}, + [13] = {.index = 21, .length = 4}, + [14] = {.index = 25, .length = 2}, + [15] = {.index = 27, .length = 3}, + [16] = {.index = 30, .length = 3}, + [17] = {.index = 33, .length = 2}, + [18] = {.index = 35, .length = 4}, + [19] = {.index = 39, .length = 3}, + [20] = {.index = 42, .length = 3}, + [21] = {.index = 45, .length = 3}, + [22] = {.index = 48, .length = 3}, + [23] = {.index = 51, .length = 4}, + [24] = {.index = 55, .length = 3}, + [25] = {.index = 58, .length = 3}, + [26] = {.index = 61, .length = 4}, + [27] = {.index = 65, .length = 3}, + [28] = {.index = 68, .length = 3}, + [29] = {.index = 71, .length = 4}, + [30] = {.index = 75, .length = 4}, + [31] = {.index = 79, .length = 3}, + [32] = {.index = 82, .length = 4}, + [33] = {.index = 86, .length = 4}, + [34] = {.index = 90, .length = 4}, + [35] = {.index = 94, .length = 4}, + [36] = {.index = 98, .length = 5}, + [37] = {.index = 103, .length = 4}, + [38] = {.index = 107, .length = 4}, + [39] = {.index = 111, .length = 5}, + [40] = {.index = 116, .length = 5}, + [41] = {.index = 121, .length = 5}, +}; + +static const TSFieldMapEntry ts_field_map_entries[] = { + [0] = + {field_tag, 1}, + [1] = + {field_name, 2}, + {field_tag, 1}, + [3] = + {field_name, 0, .inherited = true}, + {field_name, 1, .inherited = true}, + [5] = + {field_variables, 1}, + [6] = + {field_variables, 0, .inherited = true}, + {field_variables, 1, .inherited = true}, + [8] = + {field_name, 0}, + [9] = + {field_name, 4}, + {field_tag, 1}, + [11] = + {field_tag, 0, .inherited = true}, + {field_tag, 1, .inherited = true}, + [13] = + {field_tag, 1}, + {field_tag, 4}, + [15] = + {field_tag, 1}, + {field_variable, 4}, + [17] = + {field_tag, 1}, + {field_tag, 5}, + [19] = + {field_tag, 1}, + {field_variable, 5}, + [21] = + {field_name, 2, .inherited = true}, + {field_tag, 1}, + {field_tag, 5}, + {field_variables, 2}, + [25] = + {field_tag, 1}, + {field_tag, 6}, + [27] = + {field_name, 2}, + {field_tag, 1}, + {field_tag, 5}, + [30] = + {field_tag, 1}, + {field_tag, 4, .inherited = true}, + {field_tag, 6}, + [33] = + {field_tag, 1}, + {field_variable, 6}, + [35] = + {field_name, 2, .inherited = true}, + {field_tag, 1}, + {field_tag, 6}, + {field_variables, 2}, + [39] = + {field_name, 2}, + {field_tag, 1}, + {field_tag, 6}, + [42] = + {field_tag, 1}, + {field_tag, 7}, + {field_variables, 2}, + [45] = + {field_tag, 1}, + {field_tag, 5, .inherited = true}, + {field_tag, 7}, + [48] = + {field_tag, 1}, + {field_tag, 8}, + {field_variables, 2}, + [51] = + {field_tag, 1}, + {field_tag, 8}, + {field_variables, 2}, + {field_variables, 3, .inherited = true}, + [55] = + {field_tag, 1}, + {field_tag, 5}, + {field_tag, 8}, + [58] = + {field_name, 2}, + {field_tag, 1}, + {field_tag, 7}, + [61] = + {field_tag, 1}, + {field_tag, 9}, + {field_variables, 2}, + {field_variables, 3, .inherited = true}, + [65] = + {field_tag, 1}, + {field_tag, 5}, + {field_tag, 9}, + [68] = + {field_tag, 1}, + {field_tag, 6}, + {field_tag, 9}, + [71] = + {field_tag, 1}, + {field_tag, 4, .inherited = true}, + {field_tag, 6}, + {field_tag, 9}, + [75] = + {field_tag, 1}, + {field_tag, 7}, + {field_tag, 10}, + {field_variables, 2}, + [79] = + {field_tag, 1}, + {field_tag, 6}, + {field_tag, 10}, + [82] = + {field_tag, 1}, + {field_tag, 5, .inherited = true}, + {field_tag, 7}, + {field_tag, 10}, + [86] = + {field_tag, 1}, + {field_tag, 4, .inherited = true}, + {field_tag, 6}, + {field_tag, 10}, + [90] = + {field_tag, 1}, + {field_tag, 7}, + {field_tag, 11}, + {field_variables, 2}, + [94] = + {field_tag, 1}, + {field_tag, 8}, + {field_tag, 11}, + {field_variables, 2}, + [98] = + {field_tag, 1}, + {field_tag, 8}, + {field_tag, 11}, + {field_variables, 2}, + {field_variables, 3, .inherited = true}, + [103] = + {field_tag, 1}, + {field_tag, 5, .inherited = true}, + {field_tag, 7}, + {field_tag, 11}, + [107] = + {field_tag, 1}, + {field_tag, 8}, + {field_tag, 12}, + {field_variables, 2}, + [111] = + {field_tag, 1}, + {field_tag, 8}, + {field_tag, 12}, + {field_variables, 2}, + {field_variables, 3, .inherited = true}, + [116] = + {field_tag, 1}, + {field_tag, 9}, + {field_tag, 12}, + {field_variables, 2}, + {field_variables, 3, .inherited = true}, + [121] = + {field_tag, 1}, + {field_tag, 9}, + {field_tag, 13}, + {field_variables, 2}, + {field_variables, 3, .inherited = true}, +}; + +static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = { + [0] = {0}, +}; + +static const uint16_t ts_non_terminal_alias_map[] = { + 0, +}; + +static const TSStateId ts_primary_state_ids[STATE_COUNT] = { + [0] = 0, + [1] = 1, + [2] = 2, + [3] = 2, + [4] = 4, + [5] = 4, + [6] = 4, + [7] = 4, + [8] = 4, + [9] = 4, + [10] = 4, + [11] = 11, + [12] = 11, + [13] = 11, + [14] = 11, + [15] = 11, + [16] = 11, + [17] = 11, + [18] = 18, + [19] = 18, + [20] = 20, + [21] = 21, + [22] = 22, + [23] = 23, + [24] = 24, + [25] = 25, + [26] = 26, + [27] = 20, + [28] = 28, + [29] = 29, + [30] = 30, + [31] = 31, + [32] = 32, + [33] = 33, + [34] = 34, + [35] = 35, + [36] = 36, + [37] = 37, + [38] = 38, + [39] = 39, + [40] = 21, + [41] = 41, + [42] = 38, + [43] = 33, + [44] = 34, + [45] = 36, + [46] = 39, + [47] = 41, + [48] = 22, + [49] = 49, + [50] = 23, + [51] = 24, + [52] = 26, + [53] = 28, + [54] = 29, + [55] = 30, + [56] = 31, + [57] = 32, + [58] = 35, + [59] = 59, + [60] = 59, + [61] = 49, + [62] = 37, + [63] = 63, + [64] = 63, + [65] = 65, + [66] = 65, + [67] = 67, + [68] = 67, + [69] = 69, + [70] = 70, + [71] = 71, + [72] = 72, + [73] = 73, + [74] = 74, + [75] = 70, + [76] = 76, + [77] = 77, + [78] = 78, + [79] = 79, + [80] = 72, + [81] = 76, + [82] = 77, + [83] = 78, + [84] = 84, + [85] = 85, + [86] = 79, + [87] = 87, + [88] = 85, + [89] = 89, + [90] = 69, + [91] = 91, + [92] = 87, + [93] = 93, + [94] = 84, + [95] = 89, + [96] = 91, + [97] = 93, + [98] = 74, + [99] = 99, + [100] = 71, + [101] = 99, + [102] = 73, + [103] = 103, + [104] = 103, + [105] = 105, + [106] = 106, + [107] = 107, + [108] = 108, + [109] = 109, + [110] = 110, + [111] = 111, + [112] = 112, + [113] = 113, + [114] = 114, + [115] = 115, + [116] = 116, + [117] = 117, + [118] = 118, + [119] = 119, + [120] = 120, + [121] = 121, + [122] = 122, + [123] = 123, + [124] = 124, + [125] = 125, + [126] = 126, + [127] = 124, + [128] = 126, + [129] = 129, + [130] = 125, + [131] = 129, + [132] = 132, + [133] = 132, + [134] = 134, + [135] = 135, + [136] = 125, + [137] = 137, + [138] = 138, + [139] = 138, + [140] = 135, + [141] = 134, + [142] = 114, + [143] = 143, + [144] = 144, + [145] = 108, + [146] = 107, + [147] = 109, + [148] = 144, + [149] = 143, + [150] = 115, + [151] = 112, + [152] = 152, + [153] = 153, + [154] = 113, + [155] = 111, + [156] = 156, + [157] = 106, + [158] = 105, + [159] = 156, + [160] = 105, + [161] = 161, + [162] = 161, + [163] = 163, + [164] = 106, + [165] = 108, + [166] = 107, + [167] = 167, + [168] = 167, + [169] = 169, + [170] = 110, + [171] = 163, + [172] = 172, + [173] = 116, + [174] = 172, + [175] = 175, + [176] = 176, + [177] = 176, + [178] = 178, + [179] = 179, + [180] = 180, + [181] = 169, + [182] = 179, + [183] = 183, + [184] = 178, + [185] = 110, + [186] = 186, + [187] = 186, + [188] = 115, + [189] = 113, + [190] = 106, + [191] = 186, + [192] = 186, + [193] = 105, + [194] = 186, + [195] = 108, + [196] = 107, + [197] = 186, + [198] = 186, + [199] = 114, + [200] = 111, + [201] = 109, + [202] = 112, + [203] = 203, + [204] = 204, + [205] = 205, + [206] = 206, + [207] = 207, + [208] = 208, + [209] = 106, + [210] = 116, + [211] = 211, + [212] = 212, + [213] = 213, + [214] = 108, + [215] = 107, + [216] = 216, + [217] = 217, + [218] = 218, + [219] = 219, + [220] = 220, + [221] = 221, + [222] = 222, + [223] = 105, + [224] = 224, + [225] = 225, + [226] = 226, + [227] = 227, + [228] = 228, + [229] = 229, + [230] = 230, + [231] = 231, + [232] = 232, + [233] = 233, + [234] = 234, + [235] = 235, + [236] = 236, + [237] = 237, + [238] = 238, + [239] = 239, + [240] = 240, + [241] = 241, + [242] = 242, + [243] = 243, + [244] = 244, + [245] = 245, + [246] = 246, + [247] = 247, + [248] = 248, + [249] = 249, + [250] = 250, + [251] = 251, + [252] = 252, + [253] = 109, + [254] = 254, + [255] = 255, + [256] = 256, + [257] = 257, + [258] = 258, + [259] = 259, + [260] = 260, + [261] = 110, + [262] = 111, + [263] = 263, + [264] = 264, + [265] = 265, + [266] = 266, + [267] = 267, + [268] = 268, + [269] = 115, + [270] = 270, + [271] = 271, + [272] = 272, + [273] = 273, + [274] = 274, + [275] = 275, + [276] = 276, + [277] = 113, + [278] = 278, + [279] = 279, + [280] = 280, + [281] = 281, + [282] = 114, + [283] = 283, + [284] = 284, + [285] = 112, + [286] = 286, + [287] = 235, + [288] = 107, + [289] = 289, + [290] = 217, + [291] = 205, + [292] = 106, + [293] = 237, + [294] = 216, + [295] = 231, + [296] = 249, + [297] = 272, + [298] = 212, + [299] = 252, + [300] = 259, + [301] = 247, + [302] = 221, + [303] = 236, + [304] = 213, + [305] = 228, + [306] = 306, + [307] = 230, + [308] = 233, + [309] = 244, + [310] = 256, + [311] = 286, + [312] = 255, + [313] = 263, + [314] = 207, + [315] = 208, + [316] = 229, + [317] = 232, + [318] = 234, + [319] = 246, + [320] = 283, + [321] = 284, + [322] = 204, + [323] = 206, + [324] = 211, + [325] = 218, + [326] = 219, + [327] = 220, + [328] = 222, + [329] = 224, + [330] = 225, + [331] = 226, + [332] = 227, + [333] = 238, + [334] = 239, + [335] = 335, + [336] = 241, + [337] = 242, + [338] = 243, + [339] = 245, + [340] = 248, + [341] = 250, + [342] = 251, + [343] = 254, + [344] = 257, + [345] = 258, + [346] = 260, + [347] = 264, + [348] = 265, + [349] = 266, + [350] = 267, + [351] = 268, + [352] = 270, + [353] = 271, + [354] = 203, + [355] = 273, + [356] = 274, + [357] = 275, + [358] = 276, + [359] = 278, + [360] = 279, + [361] = 280, + [362] = 281, + [363] = 108, + [364] = 116, + [365] = 106, + [366] = 366, + [367] = 108, + [368] = 107, + [369] = 369, + [370] = 370, + [371] = 335, + [372] = 372, + [373] = 105, + [374] = 105, + [375] = 369, + [376] = 110, + [377] = 372, + [378] = 240, + [379] = 379, + [380] = 380, + [381] = 381, + [382] = 379, + [383] = 383, + [384] = 384, + [385] = 385, + [386] = 386, + [387] = 387, + [388] = 386, + [389] = 389, + [390] = 390, + [391] = 391, + [392] = 392, + [393] = 380, + [394] = 381, + [395] = 390, + [396] = 110, + [397] = 397, + [398] = 387, + [399] = 306, + [400] = 391, + [401] = 389, + [402] = 402, + [403] = 110, + [404] = 392, + [405] = 405, + [406] = 406, + [407] = 407, + [408] = 408, + [409] = 409, + [410] = 410, + [411] = 411, + [412] = 412, + [413] = 413, + [414] = 414, + [415] = 405, + [416] = 414, + [417] = 383, + [418] = 418, + [419] = 419, + [420] = 410, + [421] = 421, + [422] = 407, + [423] = 423, + [424] = 406, + [425] = 419, + [426] = 426, + [427] = 412, + [428] = 428, + [429] = 423, + [430] = 418, + [431] = 411, + [432] = 408, + [433] = 433, + [434] = 421, + [435] = 428, + [436] = 426, + [437] = 437, + [438] = 438, + [439] = 439, + [440] = 440, + [441] = 441, + [442] = 442, + [443] = 443, + [444] = 444, + [445] = 445, + [446] = 446, + [447] = 447, + [448] = 448, + [449] = 449, + [450] = 450, + [451] = 451, + [452] = 452, + [453] = 453, + [454] = 454, + [455] = 455, + [456] = 456, + [457] = 457, + [458] = 458, + [459] = 459, + [460] = 460, + [461] = 461, + [462] = 462, + [463] = 463, + [464] = 464, + [465] = 465, + [466] = 466, + [467] = 467, + [468] = 468, + [469] = 469, + [470] = 470, + [471] = 471, + [472] = 472, + [473] = 473, + [474] = 474, + [475] = 475, + [476] = 476, + [477] = 477, + [478] = 478, + [479] = 479, + [480] = 480, + [481] = 455, + [482] = 462, + [483] = 483, + [484] = 484, + [485] = 485, + [486] = 486, + [487] = 487, + [488] = 488, + [489] = 489, + [490] = 470, + [491] = 491, + [492] = 492, + [493] = 493, + [494] = 494, + [495] = 495, + [496] = 496, + [497] = 497, + [498] = 498, + [499] = 499, + [500] = 500, + [501] = 501, + [502] = 502, + [503] = 503, + [504] = 504, + [505] = 505, + [506] = 506, + [507] = 507, + [508] = 508, + [509] = 509, + [510] = 507, + [511] = 511, + [512] = 512, + [513] = 513, + [514] = 514, + [515] = 515, + [516] = 438, + [517] = 443, + [518] = 444, + [519] = 452, + [520] = 458, + [521] = 471, + [522] = 473, + [523] = 477, + [524] = 480, + [525] = 488, + [526] = 500, + [527] = 527, + [528] = 528, + [529] = 529, + [530] = 530, + [531] = 531, + [532] = 532, + [533] = 533, + [534] = 534, + [535] = 535, + [536] = 536, + [537] = 537, + [538] = 538, + [539] = 539, + [540] = 540, + [541] = 541, + [542] = 472, + [543] = 494, + [544] = 504, + [545] = 545, + [546] = 546, + [547] = 547, + [548] = 548, + [549] = 549, + [550] = 450, + [551] = 453, + [552] = 456, + [553] = 476, + [554] = 492, + [555] = 496, + [556] = 497, + [557] = 527, + [558] = 558, + [559] = 559, + [560] = 487, + [561] = 561, + [562] = 487, + [563] = 498, + [564] = 564, + [565] = 565, + [566] = 437, + [567] = 567, + [568] = 457, + [569] = 569, + [570] = 528, + [571] = 571, + [572] = 572, + [573] = 529, + [574] = 530, + [575] = 575, + [576] = 572, + [577] = 577, + [578] = 578, + [579] = 579, + [580] = 511, + [581] = 581, + [582] = 460, + [583] = 531, + [584] = 584, + [585] = 585, + [586] = 484, + [587] = 587, + [588] = 512, + [589] = 589, + [590] = 577, + [591] = 508, + [592] = 532, + [593] = 541, + [594] = 594, + [595] = 584, + [596] = 439, + [597] = 440, + [598] = 445, + [599] = 487, + [600] = 600, + [601] = 459, + [602] = 463, + [603] = 469, + [604] = 478, + [605] = 489, + [606] = 606, + [607] = 545, + [608] = 575, + [609] = 589, + [610] = 610, + [611] = 533, + [612] = 612, + [613] = 613, + [614] = 614, + [615] = 615, + [616] = 616, + [617] = 534, + [618] = 546, + [619] = 513, + [620] = 620, + [621] = 610, + [622] = 622, + [623] = 623, + [624] = 622, + [625] = 625, + [626] = 454, + [627] = 461, + [628] = 483, + [629] = 502, + [630] = 630, + [631] = 581, + [632] = 632, + [633] = 633, + [634] = 634, + [635] = 635, + [636] = 636, + [637] = 535, + [638] = 505, + [639] = 564, + [640] = 640, + [641] = 641, + [642] = 585, + [643] = 643, + [644] = 493, + [645] = 630, + [646] = 514, + [647] = 647, + [648] = 559, + [649] = 536, + [650] = 579, + [651] = 441, + [652] = 613, + [653] = 643, + [654] = 464, + [655] = 515, + [656] = 474, + [657] = 506, + [658] = 537, + [659] = 641, + [660] = 578, + [661] = 623, + [662] = 632, + [663] = 509, + [664] = 495, + [665] = 501, + [666] = 666, + [667] = 667, + [668] = 668, + [669] = 486, + [670] = 538, + [671] = 671, + [672] = 567, + [673] = 633, + [674] = 640, + [675] = 539, + [676] = 468, + [677] = 594, + [678] = 678, + [679] = 614, + [680] = 446, + [681] = 558, + [682] = 612, + [683] = 540, + [684] = 684, + [685] = 615, + [686] = 587, + [687] = 442, + [688] = 688, + [689] = 600, + [690] = 666, + [691] = 684, + [692] = 448, + [693] = 451, + [694] = 466, + [695] = 565, + [696] = 569, + [697] = 616, + [698] = 636, + [699] = 667, + [700] = 671, + [701] = 467, + [702] = 688, + [703] = 634, + [704] = 547, + [705] = 548, + [706] = 447, + [707] = 625, + [708] = 708, + [709] = 620, + [710] = 708, + [711] = 668, + [712] = 503, + [713] = 606, + [714] = 499, + [715] = 475, + [716] = 549, + [717] = 449, + [718] = 491, + [719] = 647, +}; + +static const TSSymbol ts_supertype_symbols[SUPERTYPE_COUNT] = { + sym_template_block_groups, + sym_template_tag, +}; + +static const TSMapSlice ts_supertype_map_slices[] = { + [sym_template_block_groups] = {.index = 0, .length = 24}, + [sym_template_tag] = {.index = 24, .length = 3}, +}; + +static const TSSymbol ts_supertype_map_entries[] = { + [0] = + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [24] = + sym_template_block_groups, + sym_template_comment, + sym_template_variable, +}; + +static bool ts_lex(TSLexer *lexer, TSStateId state) { + START_LEXER(); + eof = lexer->eof(lexer); + switch (state) { + case 0: + if (eof) ADVANCE(638); + ADVANCE_MAP( + '!', 45, + '"', 12, + '#', 624, + '%', 625, + '\'', 20, + ',', 758, + '-', 22, + '.', 648, + '<', 659, + '=', 784, + '>', 660, + 'a', 146, + 'b', 775, + 'c', 54, + 'd', 61, + 'e', 335, + 'f', 288, + 'g', 199, + 'i', 246, + 'j', 424, + 'l', 56, + 'm', 58, + 'n', 422, + 'o', 249, + 'p', 773, + 'q', 606, + 'r', 63, + 's', 59, + 't', 169, + 'u', 400, + 'v', 200, + 'w', 771, + 'y', 196, + '{', 13, + '|', 641, + '}', 626, + ); + if (lookahead == '\t' || + lookahead == ' ') SKIP(636); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(642); + END_STATE(); + case 1: + ADVANCE_MAP( + '!', 45, + '%', 625, + '.', 647, + '<', 659, + '=', 46, + '>', 660, + 'a', 145, + 'b', 615, + 'c', 55, + 'd', 62, + 'e', 337, + 'f', 294, + 'g', 199, + 'i', 386, + 'j', 424, + 'l', 57, + 'm', 58, + 'n', 446, + 'o', 469, + 'p', 281, + 'r', 64, + 's', 60, + 't', 289, + 'u', 401, + 'w', 431, + 'y', 196, + '|', 641, + '}', 626, + ); + if (lookahead == '\t' || + lookahead == ' ') SKIP(3); + END_STATE(); + case 2: + ADVANCE_MAP( + '!', 45, + '%', 625, + '.', 647, + '<', 659, + '=', 46, + '>', 660, + 'a', 391, + 'b', 776, + 'i', 387, + 'n', 446, + 'o', 469, + 'p', 772, + 'w', 770, + '|', 641, + ); + if (lookahead == '\t' || + lookahead == ' ') SKIP(4); + END_STATE(); + case 3: + ADVANCE_MAP( + '!', 45, + '%', 625, + '<', 659, + '=', 46, + '>', 660, + 'a', 145, + 'b', 615, + 'c', 55, + 'd', 62, + 'e', 337, + 'f', 294, + 'g', 199, + 'i', 386, + 'j', 424, + 'l', 57, + 'm', 58, + 'n', 446, + 'o', 469, + 'p', 281, + 'r', 64, + 's', 60, + 't', 289, + 'u', 401, + 'w', 431, + 'y', 196, + '}', 626, + ); + if (lookahead == '\t' || + lookahead == ' ') SKIP(3); + END_STATE(); + case 4: + ADVANCE_MAP( + '!', 45, + '%', 625, + '<', 659, + '=', 46, + '>', 660, + 'a', 391, + 'b', 776, + 'i', 387, + 'n', 446, + 'o', 469, + 'p', 772, + 'w', 770, + ); + if (lookahead == '\t' || + lookahead == ' ') SKIP(4); + END_STATE(); + case 5: + ADVANCE_MAP( + '"', 12, + '%', 625, + '\'', 20, + '-', 22, + '.', 648, + '=', 783, + 'a', 520, + '|', 641, + ); + if (lookahead == '\t' || + lookahead == ' ') SKIP(8); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(642); + if (('A' <= lookahead && lookahead <= 'Z') || + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(632); + END_STATE(); + case 6: + if (lookahead == '"') ADVANCE(12); + if (lookahead == '%') ADVANCE(625); + if (lookahead == '\'') ADVANCE(20); + if (lookahead == '-') ADVANCE(22); + if (lookahead == '.') ADVANCE(648); + if (lookahead == '=') ADVANCE(783); + if (lookahead == '|') ADVANCE(641); + if (lookahead == '\t' || + lookahead == ' ') SKIP(9); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(642); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(632); + END_STATE(); + case 7: + ADVANCE_MAP( + '"', 12, + '%', 625, + '\'', 20, + '-', 22, + '.', 648, + 'a', 520, + 's', 292, + '|', 641, + '}', 626, + ); + if (lookahead == '\t' || + lookahead == ' ') SKIP(10); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(642); + if (('A' <= lookahead && lookahead <= 'Z') || + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(632); + END_STATE(); + case 8: + if (lookahead == '"') ADVANCE(12); + if (lookahead == '%') ADVANCE(625); + if (lookahead == '\'') ADVANCE(20); + if (lookahead == '-') ADVANCE(22); + if (lookahead == '.') ADVANCE(630); + if (lookahead == '=') ADVANCE(783); + if (lookahead == 'a') ADVANCE(520); + if (lookahead == '\t' || + lookahead == ' ') SKIP(8); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(642); + if (('A' <= lookahead && lookahead <= 'Z') || + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(632); + END_STATE(); + case 9: + if (lookahead == '"') ADVANCE(12); + if (lookahead == '%') ADVANCE(625); + if (lookahead == '\'') ADVANCE(20); + if (lookahead == '-') ADVANCE(22); + if (lookahead == '.') ADVANCE(630); + if (lookahead == '=') ADVANCE(783); + if (lookahead == '\t' || + lookahead == ' ') SKIP(9); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(642); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(632); + END_STATE(); + case 10: + ADVANCE_MAP( + '"', 12, + '%', 625, + '\'', 20, + '-', 22, + '.', 630, + 'a', 520, + 's', 292, + '}', 626, + ); + if (lookahead == '\t' || + lookahead == ' ') SKIP(10); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(642); + if (('A' <= lookahead && lookahead <= 'Z') || + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(632); + END_STATE(); + case 11: + if (lookahead == '"') ADVANCE(12); + if (lookahead == '\'') ADVANCE(20); + if (lookahead == '-') ADVANCE(22); + if (lookahead == '.') ADVANCE(630); + if (lookahead == 'n') ADVANCE(426); + if (lookahead == '\t' || + lookahead == ' ') SKIP(11); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(642); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(632); + END_STATE(); + case 12: + if (lookahead == '"') ADVANCE(645); + if (lookahead == '\\') ADVANCE(628); + if (lookahead != 0) ADVANCE(12); + END_STATE(); + case 13: + if (lookahead == '#') ADVANCE(669); + if (lookahead == '%') ADVANCE(738); + if (lookahead == '{') ADVANCE(667); + END_STATE(); + case 14: + if (lookahead == '#') ADVANCE(669); + if (lookahead == '%') ADVANCE(738); + if (lookahead == '{') ADVANCE(667); + if (lookahead != 0 && + lookahead != '}') ADVANCE(640); + END_STATE(); + case 15: + if (lookahead == '%') ADVANCE(625); + if (lookahead == '.') ADVANCE(647); + if (lookahead == 'a') ADVANCE(520); + if (lookahead == '|') ADVANCE(641); + if (lookahead == '\t' || + lookahead == ' ') SKIP(18); + if (('A' <= lookahead && lookahead <= 'Z') || + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(632); + END_STATE(); + case 16: + if (lookahead == '%') ADVANCE(625); + if (lookahead == '.') ADVANCE(647); + if (lookahead == '|') ADVANCE(641); + if (lookahead == '\t' || + lookahead == ' ') SKIP(19); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(632); + END_STATE(); + case 17: + ADVANCE_MAP( + '%', 625, + '=', 783, + 'a', 597, + 'b', 343, + 'c', 511, + 'd', 204, + 'e', 336, + 'f', 296, + 'i', 247, + 'l', 445, + 'n', 425, + 'p', 94, + 'q', 606, + 'r', 167, + 's', 457, + 't', 168, + 'u', 477, + 'v', 200, + 'w', 318, + ); + if (lookahead == '\t' || + lookahead == ' ') SKIP(17); + END_STATE(); + case 18: + if (lookahead == '%') ADVANCE(625); + if (lookahead == 'a') ADVANCE(520); + if (lookahead == '\t' || + lookahead == ' ') SKIP(18); + if (('A' <= lookahead && lookahead <= 'Z') || + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(632); + END_STATE(); + case 19: + if (lookahead == '%') ADVANCE(625); + if (lookahead == '\t' || + lookahead == ' ') SKIP(19); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(632); + END_STATE(); + case 20: + if (lookahead == '\'') ADVANCE(645); + if (lookahead == '\\') ADVANCE(629); + if (lookahead != 0) ADVANCE(20); + END_STATE(); + case 21: + if (lookahead == '-') ADVANCE(631); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(644); + END_STATE(); + case 22: + if (lookahead == '.') ADVANCE(630); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(642); + END_STATE(); + case 23: + if (lookahead == '2') ADVANCE(405); + END_STATE(); + case 24: + if (lookahead == ':') ADVANCE(673); + if (lookahead == 's') ADVANCE(344); + END_STATE(); + case 25: + if (lookahead == ':') ADVANCE(677); + END_STATE(); + case 26: + if (lookahead == ':') ADVANCE(694); + END_STATE(); + case 27: + if (lookahead == ':') ADVANCE(703); + END_STATE(); + case 28: + if (lookahead == ':') ADVANCE(711); + END_STATE(); + case 29: + if (lookahead == ':') ADVANCE(714); + END_STATE(); + case 30: + if (lookahead == ':') ADVANCE(676); + END_STATE(); + case 31: + if (lookahead == ':') ADVANCE(680); + if (lookahead == '_') ADVANCE(304); + END_STATE(); + case 32: + if (lookahead == ':') ADVANCE(682); + if (lookahead == 'r') ADVANCE(186); + END_STATE(); + case 33: + if (lookahead == ':') ADVANCE(735); + END_STATE(); + case 34: + if (lookahead == ':') ADVANCE(692); + END_STATE(); + case 35: + if (lookahead == ':') ADVANCE(699); + END_STATE(); + case 36: + if (lookahead == ':') ADVANCE(684); + END_STATE(); + case 37: + if (lookahead == ':') ADVANCE(716); + END_STATE(); + case 38: + if (lookahead == ':') ADVANCE(725); + if (lookahead == '_') ADVANCE(284); + END_STATE(); + case 39: + if (lookahead == ':') ADVANCE(727); + if (lookahead == '_') ADVANCE(286); + END_STATE(); + case 40: + if (lookahead == ':') ADVANCE(681); + END_STATE(); + case 41: + if (lookahead == ':') ADVANCE(683); + END_STATE(); + case 42: + if (lookahead == ':') ADVANCE(726); + END_STATE(); + case 43: + if (lookahead == ':') ADVANCE(728); + END_STATE(); + case 44: + if (lookahead == ':') ADVANCE(733); + END_STATE(); + case 45: + if (lookahead == '=') ADVANCE(658); + END_STATE(); + case 46: + if (lookahead == '=') ADVANCE(657); + END_STATE(); + case 47: + if (lookahead == '_') ADVANCE(156); + END_STATE(); + case 48: + if (lookahead == '_') ADVANCE(525); + END_STATE(); + case 49: + if (lookahead == '_') ADVANCE(347); + END_STATE(); + case 50: + if (lookahead == '_') ADVANCE(420); + END_STATE(); + case 51: + if (lookahead == '_') ADVANCE(581); + END_STATE(); + case 52: + if (lookahead == '_') ADVANCE(367); + END_STATE(); + case 53: + if (lookahead == '_') ADVANCE(245); + END_STATE(); + case 54: + if (lookahead == 'a') ADVANCE(458); + if (lookahead == 'e') ADVANCE(396); + if (lookahead == 'l') ADVANCE(428); + if (lookahead == 's') ADVANCE(480); + if (lookahead == 'u') ADVANCE(546); + if (lookahead == 'y') ADVANCE(135); + END_STATE(); + case 55: + if (lookahead == 'a') ADVANCE(458); + if (lookahead == 'e') ADVANCE(396); + if (lookahead == 'u') ADVANCE(546); + END_STATE(); + case 56: + if (lookahead == 'a') ADVANCE(524); + if (lookahead == 'e') ADVANCE(388); + if (lookahead == 'i') ADVANCE(399); + if (lookahead == 'j') ADVANCE(607); + if (lookahead == 'o') ADVANCE(486); + END_STATE(); + case 57: + if (lookahead == 'a') ADVANCE(524); + if (lookahead == 'e') ADVANCE(388); + if (lookahead == 'i') ADVANCE(399); + if (lookahead == 'j') ADVANCE(607); + if (lookahead == 'o') ADVANCE(614); + END_STATE(); + case 58: + if (lookahead == 'a') ADVANCE(332); + END_STATE(); + case 59: + if (lookahead == 'a') ADVANCE(262); + if (lookahead == 'i') ADVANCE(345); + if (lookahead == 'l') ADVANCE(295); + if (lookahead == 'p') ADVANCE(86); + if (lookahead == 't') ADVANCE(482); + END_STATE(); + case 60: + if (lookahead == 'a') ADVANCE(262); + if (lookahead == 'l') ADVANCE(295); + if (lookahead == 't') ADVANCE(482); + END_STATE(); + case 61: + if (lookahead == 'a') ADVANCE(571); + if (lookahead == 'e') ADVANCE(105); + if (lookahead == 'i') ADVANCE(121); + END_STATE(); + case 62: + if (lookahead == 'a') ADVANCE(571); + if (lookahead == 'e') ADVANCE(258); + if (lookahead == 'i') ADVANCE(121); + END_STATE(); + case 63: + if (lookahead == 'a') ADVANCE(394); + if (lookahead == 'e') ADVANCE(270); + if (lookahead == 'j') ADVANCE(608); + END_STATE(); + case 64: + if (lookahead == 'a') ADVANCE(394); + if (lookahead == 'j') ADVANCE(608); + END_STATE(); + case 65: + if (lookahead == 'a') ADVANCE(333); + END_STATE(); + case 66: + if (lookahead == 'a') ADVANCE(461); + END_STATE(); + case 67: + if (lookahead == 'a') ADVANCE(600); + END_STATE(); + case 68: + if (lookahead == 'a') ADVANCE(273); + END_STATE(); + case 69: + ADVANCE_MAP( + 'a', 611, + 'b', 359, + 'f', 300, + 'i', 252, + 'p', 78, + 's', 467, + 'v', 240, + 'w', 313, + ); + END_STATE(); + case 70: + if (lookahead == 'a') ADVANCE(611); + if (lookahead == 'b') ADVANCE(359); + if (lookahead == 'f') ADVANCE(300); + if (lookahead == 'i') ADVANCE(254); + if (lookahead == 'p') ADVANCE(78); + if (lookahead == 's') ADVANCE(467); + if (lookahead == 'w') ADVANCE(313); + END_STATE(); + case 71: + if (lookahead == 'a') ADVANCE(460); + END_STATE(); + case 72: + if (lookahead == 'a') ADVANCE(523); + END_STATE(); + case 73: + if (lookahead == 'a') ADVANCE(269); + END_STATE(); + case 74: + if (lookahead == 'a') ADVANCE(360); + END_STATE(); + case 75: + if (lookahead == 'a') ADVANCE(574); + END_STATE(); + case 76: + if (lookahead == 'a') ADVANCE(398); + END_STATE(); + case 77: + if (lookahead == 'a') ADVANCE(342); + END_STATE(); + case 78: + if (lookahead == 'a') ADVANCE(495); + END_STATE(); + case 79: + if (lookahead == 'a') ADVANCE(580); + END_STATE(); + case 80: + if (lookahead == 'a') ADVANCE(592); + END_STATE(); + case 81: + if (lookahead == 'a') ADVANCE(494); + END_STATE(); + case 82: + if (lookahead == 'a') ADVANCE(585); + END_STATE(); + case 83: + if (lookahead == 'a') ADVANCE(560); + END_STATE(); + case 84: + if (lookahead == 'a') ADVANCE(578); + END_STATE(); + case 85: + if (lookahead == 'a') ADVANCE(564); + END_STATE(); + case 86: + if (lookahead == 'a') ADVANCE(130); + END_STATE(); + case 87: + if (lookahead == 'a') ADVANCE(463); + END_STATE(); + case 88: + if (lookahead == 'a') ADVANCE(361); + END_STATE(); + case 89: + if (lookahead == 'a') ADVANCE(417); + END_STATE(); + case 90: + if (lookahead == 'a') ADVANCE(589); + END_STATE(); + case 91: + if (lookahead == 'a') ADVANCE(490); + END_STATE(); + case 92: + if (lookahead == 'a') ADVANCE(131); + END_STATE(); + case 93: + if (lookahead == 'a') ADVANCE(464); + END_STATE(); + case 94: + if (lookahead == 'a') ADVANCE(499); + END_STATE(); + case 95: + if (lookahead == 'a') ADVANCE(465); + END_STATE(); + case 96: + if (lookahead == 'a') ADVANCE(133); + END_STATE(); + case 97: + if (lookahead == 'a') ADVANCE(111); + END_STATE(); + case 98: + if (lookahead == 'a') ADVANCE(141); + END_STATE(); + case 99: + if (lookahead == 'a') ADVANCE(113); + END_STATE(); + case 100: + if (lookahead == 'a') ADVANCE(510); + END_STATE(); + case 101: + ADVANCE_MAP( + 'a', 597, + 'b', 343, + 'c', 511, + 'd', 204, + 'e', 421, + 'f', 296, + 'i', 248, + 'l', 445, + 'n', 425, + 'p', 94, + 'q', 606, + 'r', 167, + 's', 457, + 't', 168, + 'u', 477, + 'v', 200, + 'w', 318, + ); + if (lookahead == '\t' || + lookahead == ' ') SKIP(101); + END_STATE(); + case 102: + if (lookahead == 'b') ADVANCE(774); + if (lookahead == 'p') ADVANCE(772); + if (lookahead == 'w') ADVANCE(770); + if (lookahead == '\t' || + lookahead == ' ') SKIP(102); + END_STATE(); + case 103: + if (lookahead == 'b') ADVANCE(363); + if (lookahead == 'c') ADVANCE(432); + if (lookahead == 'v') ADVANCE(91); + END_STATE(); + case 104: + if (lookahead == 'b') ADVANCE(598); + END_STATE(); + case 105: + if (lookahead == 'b') ADVANCE(598); + if (lookahead == 'f') ADVANCE(67); + END_STATE(); + case 106: + if (lookahead == 'b') ADVANCE(618); + END_STATE(); + case 107: + if (lookahead == 'b') ADVANCE(496); + if (lookahead == 'n') ADVANCE(599); + END_STATE(); + case 108: + if (lookahead == 'b') ADVANCE(79); + END_STATE(); + case 109: + if (lookahead == 'b') ADVANCE(82); + END_STATE(); + case 110: + if (lookahead == 'b') ADVANCE(354); + END_STATE(); + case 111: + if (lookahead == 'b') ADVANCE(356); + END_STATE(); + case 112: + if (lookahead == 'b') ADVANCE(226); + END_STATE(); + case 113: + if (lookahead == 'b') ADVANCE(357); + END_STATE(); + case 114: + if (lookahead == 'b') ADVANCE(365); + if (lookahead == 'c') ADVANCE(454); + if (lookahead == 'v') ADVANCE(100); + END_STATE(); + case 115: + if (lookahead == 'c') ADVANCE(706); + END_STATE(); + case 116: + if (lookahead == 'c') ADVANCE(328); + END_STATE(); + case 117: + if (lookahead == 'c') ADVANCE(329); + END_STATE(); + case 118: + if (lookahead == 'c') ADVANCE(620); + END_STATE(); + case 119: + if (lookahead == 'c') ADVANCE(66); + END_STATE(); + case 120: + if (lookahead == 'c') ADVANCE(330); + END_STATE(); + case 121: + if (lookahead == 'c') ADVANCE(569); + if (lookahead == 'v') ADVANCE(298); + END_STATE(); + case 122: + if (lookahead == 'c') ADVANCE(331); + END_STATE(); + case 123: + if (lookahead == 'c') ADVANCE(90); + END_STATE(); + case 124: + if (lookahead == 'c') ADVANCE(346); + END_STATE(); + case 125: + if (lookahead == 'c') ADVANCE(346); + if (lookahead == 'l') ADVANCE(324); + END_STATE(); + case 126: + if (lookahead == 'c') ADVANCE(439); + if (lookahead == 'w') ADVANCE(501); + END_STATE(); + case 127: + if (lookahead == 'c') ADVANCE(436); + END_STATE(); + case 128: + if (lookahead == 'c') ADVANCE(44); + END_STATE(); + case 129: + if (lookahead == 'c') ADVANCE(203); + END_STATE(); + case 130: + if (lookahead == 'c') ADVANCE(235); + END_STATE(); + case 131: + if (lookahead == 'c') ADVANCE(181); + END_STATE(); + case 132: + if (lookahead == 'c') ADVANCE(183); + END_STATE(); + case 133: + if (lookahead == 'c') ADVANCE(185); + END_STATE(); + case 134: + if (lookahead == 'c') ADVANCE(206); + END_STATE(); + case 135: + if (lookahead == 'c') ADVANCE(349); + END_STATE(); + case 136: + if (lookahead == 'c') ADVANCE(285); + if (lookahead == 'w') ADVANCE(444); + END_STATE(); + case 137: + if (lookahead == 'c') ADVANCE(451); + END_STATE(); + case 138: + if (lookahead == 'c') ADVANCE(491); + END_STATE(); + case 139: + if (lookahead == 'c') ADVANCE(355); + END_STATE(); + case 140: + if (lookahead == 'c') ADVANCE(87); + END_STATE(); + case 141: + if (lookahead == 'c') ADVANCE(238); + END_STATE(); + case 142: + if (lookahead == 'c') ADVANCE(93); + END_STATE(); + case 143: + if (lookahead == 'c') ADVANCE(95); + END_STATE(); + case 144: + if (lookahead == 'c') ADVANCE(287); + END_STATE(); + case 145: + if (lookahead == 'd') ADVANCE(147); + if (lookahead == 'n') ADVANCE(148); + END_STATE(); + case 146: + if (lookahead == 'd') ADVANCE(147); + if (lookahead == 'n') ADVANCE(148); + if (lookahead == 's') ADVANCE(748); + if (lookahead == 'u') ADVANCE(575); + END_STATE(); + case 147: + if (lookahead == 'd') ADVANCE(24); + END_STATE(); + case 148: + if (lookahead == 'd') ADVANCE(655); + END_STATE(); + case 149: + if (lookahead == 'd') ADVANCE(69); + END_STATE(); + case 150: + if (lookahead == 'd') ADVANCE(126); + END_STATE(); + case 151: + if (lookahead == 'd') ADVANCE(766); + END_STATE(); + case 152: + if (lookahead == 'd') ADVANCE(767); + END_STATE(); + case 153: + if (lookahead == 'd') ADVANCE(70); + END_STATE(); + case 154: + if (lookahead == 'd') ADVANCE(429); + END_STATE(); + case 155: + if (lookahead == 'd') ADVANCE(512); + END_STATE(); + case 156: + if (lookahead == 'd') ADVANCE(322); + END_STATE(); + case 157: + if (lookahead == 'd') ADVANCE(41); + END_STATE(); + case 158: + if (lookahead == 'd') ADVANCE(522); + END_STATE(); + case 159: + if (lookahead == 'd') ADVANCE(180); + END_STATE(); + case 160: + if (lookahead == 'd') ADVANCE(212); + END_STATE(); + case 161: + if (lookahead == 'd') ADVANCE(192); + END_STATE(); + case 162: + if (lookahead == 'd') ADVANCE(195); + END_STATE(); + case 163: + if (lookahead == 'd') ADVANCE(309); + END_STATE(); + case 164: + if (lookahead == 'd') ADVANCE(314); + END_STATE(); + case 165: + if (lookahead == 'd') ADVANCE(233); + END_STATE(); + case 166: + if (lookahead == 'd') ADVANCE(52); + END_STATE(); + case 167: + if (lookahead == 'e') ADVANCE(270); + END_STATE(); + case 168: + if (lookahead == 'e') ADVANCE(373); + END_STATE(); + case 169: + if (lookahead == 'e') ADVANCE(373); + if (lookahead == 'i') ADVANCE(377); + if (lookahead == 'r') ADVANCE(603); + END_STATE(); + case 170: + if (lookahead == 'e') ADVANCE(679); + END_STATE(); + case 171: + if (lookahead == 'e') ADVANCE(763); + END_STATE(); + case 172: + if (lookahead == 'e') ADVANCE(107); + END_STATE(); + case 173: + if (lookahead == 'e') ADVANCE(712); + END_STATE(); + case 174: + if (lookahead == 'e') ADVANCE(719); + END_STATE(); + case 175: + if (lookahead == 'e') ADVANCE(747); + END_STATE(); + case 176: + if (lookahead == 'e') ADVANCE(23); + END_STATE(); + case 177: + if (lookahead == 'e') ADVANCE(724); + END_STATE(); + case 178: + if (lookahead == 'e') ADVANCE(685); + END_STATE(); + case 179: + if (lookahead == 'e') ADVANCE(468); + END_STATE(); + case 180: + if (lookahead == 'e') ADVANCE(693); + END_STATE(); + case 181: + if (lookahead == 'e') ADVANCE(795); + END_STATE(); + case 182: + if (lookahead == 'e') ADVANCE(708); + END_STATE(); + case 183: + if (lookahead == 'e') ADVANCE(721); + END_STATE(); + case 184: + if (lookahead == 'e') ADVANCE(739); + END_STATE(); + case 185: + if (lookahead == 'e') ADVANCE(796); + END_STATE(); + case 186: + if (lookahead == 'e') ADVANCE(612); + END_STATE(); + case 187: + if (lookahead == 'e') ADVANCE(787); + END_STATE(); + case 188: + if (lookahead == 'e') ADVANCE(793); + END_STATE(); + case 189: + if (lookahead == 'e') ADVANCE(794); + END_STATE(); + case 190: + if (lookahead == 'e') ADVANCE(743); + END_STATE(); + case 191: + if (lookahead == 'e') ADVANCE(732); + END_STATE(); + case 192: + if (lookahead == 'e') ADVANCE(731); + END_STATE(); + case 193: + if (lookahead == 'e') ADVANCE(691); + END_STATE(); + case 194: + if (lookahead == 'e') ADVANCE(780); + END_STATE(); + case 195: + if (lookahead == 'e') ADVANCE(768); + END_STATE(); + case 196: + if (lookahead == 'e') ADVANCE(527); + END_STATE(); + case 197: + if (lookahead == 'e') ADVANCE(369); + END_STATE(); + case 198: + if (lookahead == 'e') ADVANCE(136); + END_STATE(); + case 199: + if (lookahead == 'e') ADVANCE(547); + END_STATE(); + case 200: + if (lookahead == 'e') ADVANCE(471); + END_STATE(); + case 201: + if (lookahead == 'e') ADVANCE(49); + END_STATE(); + case 202: + if (lookahead == 'e') ADVANCE(106); + END_STATE(); + case 203: + if (lookahead == 'e') ADVANCE(29); + END_STATE(); + case 204: + if (lookahead == 'e') ADVANCE(104); + END_STATE(); + case 205: + if (lookahead == 'e') ADVANCE(543); + END_STATE(); + case 206: + if (lookahead == 'e') ADVANCE(53); + END_STATE(); + case 207: + if (lookahead == 'e') ADVANCE(389); + END_STATE(); + case 208: + if (lookahead == 'e') ADVANCE(478); + END_STATE(); + case 209: + if (lookahead == 'e') ADVANCE(151); + END_STATE(); + case 210: + if (lookahead == 'e') ADVANCE(403); + END_STATE(); + case 211: + if (lookahead == 'e') ADVANCE(472); + END_STATE(); + case 212: + if (lookahead == 'e') ADVANCE(253); + END_STATE(); + case 213: + if (lookahead == 'e') ADVANCE(166); + END_STATE(); + case 214: + if (lookahead == 'e') ADVANCE(397); + END_STATE(); + case 215: + if (lookahead == 'e') ADVANCE(532); + END_STATE(); + case 216: + if (lookahead == 'e') ADVANCE(152); + END_STATE(); + case 217: + if (lookahead == 'e') ADVANCE(483); + END_STATE(); + case 218: + if (lookahead == 'e') ADVANCE(40); + END_STATE(); + case 219: + if (lookahead == 'e') ADVANCE(157); + END_STATE(); + case 220: + if (lookahead == 'e') ADVANCE(572); + END_STATE(); + case 221: + if (lookahead == 'e') ADVANCE(256); + END_STATE(); + case 222: + if (lookahead == 'e') ADVANCE(390); + END_STATE(); + case 223: + if (lookahead == 'e') ADVANCE(474); + END_STATE(); + case 224: + if (lookahead == 'e') ADVANCE(516); + END_STATE(); + case 225: + if (lookahead == 'e') ADVANCE(475); + END_STATE(); + case 226: + if (lookahead == 'e') ADVANCE(492); + END_STATE(); + case 227: + if (lookahead == 'e') ADVANCE(500); + END_STATE(); + case 228: + if (lookahead == 'e') ADVANCE(583); + END_STATE(); + case 229: + if (lookahead == 'e') ADVANCE(65); + END_STATE(); + case 230: + if (lookahead == 'e') ADVANCE(530); + END_STATE(); + case 231: + if (lookahead == 'e') ADVANCE(530); + if (lookahead == 't') ADVANCE(223); + END_STATE(); + case 232: + if (lookahead == 'e') ADVANCE(535); + END_STATE(); + case 233: + if (lookahead == 'e') ADVANCE(498); + END_STATE(); + case 234: + if (lookahead == 'e') ADVANCE(409); + END_STATE(); + case 235: + if (lookahead == 'e') ADVANCE(353); + END_STATE(); + case 236: + if (lookahead == 'e') ADVANCE(493); + END_STATE(); + case 237: + if (lookahead == 'e') ADVANCE(412); + END_STATE(); + case 238: + if (lookahead == 'e') ADVANCE(362); + END_STATE(); + case 239: + if (lookahead == 'e') ADVANCE(413); + END_STATE(); + case 240: + if (lookahead == 'e') ADVANCE(507); + END_STATE(); + case 241: + if (lookahead == 'e') ADVANCE(419); + if (lookahead == 'i') ADVANCE(623); + END_STATE(); + case 242: + if (lookahead == 'e') ADVANCE(114); + END_STATE(); + case 243: + if (lookahead == 'e') ADVANCE(266); + END_STATE(); + case 244: + if (lookahead == 'e') ADVANCE(544); + END_STATE(); + case 245: + if (lookahead == 'e') ADVANCE(545); + END_STATE(); + case 246: + if (lookahead == 'f') ADVANCE(761); + if (lookahead == 'n') ADVANCE(663); + if (lookahead == 'r') ADVANCE(323); + if (lookahead == 's') ADVANCE(666); + END_STATE(); + case 247: + if (lookahead == 'f') ADVANCE(761); + if (lookahead == 'n') ADVANCE(125); + END_STATE(); + case 248: + if (lookahead == 'f') ADVANCE(761); + if (lookahead == 'n') ADVANCE(124); + END_STATE(); + case 249: + if (lookahead == 'f') ADVANCE(250); + if (lookahead == 'n') ADVANCE(740); + if (lookahead == 'p') ADVANCE(207); + if (lookahead == 'r') ADVANCE(656); + END_STATE(); + case 250: + if (lookahead == 'f') ADVANCE(741); + END_STATE(); + case 251: + if (lookahead == 'f') ADVANCE(762); + END_STATE(); + case 252: + if (lookahead == 'f') ADVANCE(765); + END_STATE(); + case 253: + if (lookahead == 'f') ADVANCE(781); + END_STATE(); + case 254: + if (lookahead == 'f') ADVANCE(764); + END_STATE(); + case 255: + if (lookahead == 'f') ADVANCE(756); + END_STATE(); + case 256: + if (lookahead == 'f') ADVANCE(779); + END_STATE(); + case 257: + if (lookahead == 'f') ADVANCE(51); + END_STATE(); + case 258: + if (lookahead == 'f') ADVANCE(67); + END_STATE(); + case 259: + if (lookahead == 'f') ADVANCE(617); + END_STATE(); + case 260: + if (lookahead == 'f') ADVANCE(50); + END_STATE(); + case 261: + if (lookahead == 'f') ADVANCE(306); + END_STATE(); + case 262: + if (lookahead == 'f') ADVANCE(173); + END_STATE(); + case 263: + if (lookahead == 'f') ADVANCE(144); + END_STATE(); + case 264: + if (lookahead == 'f') ADVANCE(443); + END_STATE(); + case 265: + if (lookahead == 'f') ADVANCE(452); + END_STATE(); + case 266: + if (lookahead == 'f') ADVANCE(453); + END_STATE(); + case 267: + if (lookahead == 'g') ADVANCE(752); + END_STATE(); + case 268: + if (lookahead == 'g') ADVANCE(782); + END_STATE(); + case 269: + if (lookahead == 'g') ADVANCE(790); + END_STATE(); + case 270: + if (lookahead == 'g') ADVANCE(489); + if (lookahead == 's') ADVANCE(220); + END_STATE(); + case 271: + if (lookahead == 'g') ADVANCE(302); + END_STATE(); + case 272: + if (lookahead == 'g') ADVANCE(566); + END_STATE(); + case 273: + if (lookahead == 'g') ADVANCE(515); + END_STATE(); + case 274: + if (lookahead == 'g') ADVANCE(209); + END_STATE(); + case 275: + if (lookahead == 'g') ADVANCE(216); + END_STATE(); + case 276: + if (lookahead == 'g') ADVANCE(317); + END_STATE(); + case 277: + if (lookahead == 'g') ADVANCE(265); + END_STATE(); + case 278: + if (lookahead == 'h') ADVANCE(698); + END_STATE(); + case 279: + if (lookahead == 'h') ADVANCE(805); + END_STATE(); + case 280: + if (lookahead == 'h') ADVANCE(804); + END_STATE(); + case 281: + if (lookahead == 'h') ADVANCE(448); + if (lookahead == 'l') ADVANCE(602); + if (lookahead == 'p') ADVANCE(479); + END_STATE(); + case 282: + if (lookahead == 'h') ADVANCE(76); + END_STATE(); + case 283: + if (lookahead == 'h') ADVANCE(224); + END_STATE(); + case 284: + if (lookahead == 'h') ADVANCE(577); + END_STATE(); + case 285: + if (lookahead == 'h') ADVANCE(81); + END_STATE(); + case 286: + if (lookahead == 'h') ADVANCE(591); + END_STATE(); + case 287: + if (lookahead == 'h') ADVANCE(89); + END_STATE(); + case 288: + if (lookahead == 'i') ADVANCE(338); + if (lookahead == 'l') ADVANCE(430); + if (lookahead == 'o') ADVANCE(470); + END_STATE(); + case 289: + if (lookahead == 'i') ADVANCE(377); + if (lookahead == 'r') ADVANCE(603); + END_STATE(); + case 290: + if (lookahead == 'i') ADVANCE(395); + END_STATE(); + case 291: + if (lookahead == 'i') ADVANCE(621); + END_STATE(); + case 292: + if (lookahead == 'i') ADVANCE(650); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(654); + END_STATE(); + case 293: + if (lookahead == 'i') ADVANCE(110); + END_STATE(); + case 294: + if (lookahead == 'i') ADVANCE(358); + if (lookahead == 'l') ADVANCE(430); + if (lookahead == 'o') ADVANCE(506); + END_STATE(); + case 295: + if (lookahead == 'i') ADVANCE(129); + if (lookahead == 'u') ADVANCE(271); + END_STATE(); + case 296: + if (lookahead == 'i') ADVANCE(368); + if (lookahead == 'o') ADVANCE(470); + END_STATE(); + case 297: + if (lookahead == 'i') ADVANCE(392); + END_STATE(); + case 298: + if (lookahead == 'i') ADVANCE(528); + END_STATE(); + case 299: + if (lookahead == 'i') ADVANCE(251); + if (lookahead == 's') ADVANCE(171); + END_STATE(); + case 300: + if (lookahead == 'i') ADVANCE(366); + if (lookahead == 'o') ADVANCE(473); + END_STATE(); + case 301: + if (lookahead == 'i') ADVANCE(371); + END_STATE(); + case 302: + if (lookahead == 'i') ADVANCE(259); + END_STATE(); + case 303: + if (lookahead == 'i') ADVANCE(340); + END_STATE(); + case 304: + if (lookahead == 'i') ADVANCE(260); + END_STATE(); + case 305: + if (lookahead == 'i') ADVANCE(372); + END_STATE(); + case 306: + if (lookahead == 'i') ADVANCE(505); + END_STATE(); + case 307: + if (lookahead == 'i') ADVANCE(115); + END_STATE(); + case 308: + if (lookahead == 'i') ADVANCE(529); + END_STATE(); + case 309: + if (lookahead == 'i') ADVANCE(254); + END_STATE(); + case 310: + if (lookahead == 'i') ADVANCE(74); + END_STATE(); + case 311: + if (lookahead == 'i') ADVANCE(97); + END_STATE(); + case 312: + if (lookahead == 'i') ADVANCE(418); + END_STATE(); + case 313: + if (lookahead == 'i') ADVANCE(568); + END_STATE(); + case 314: + if (lookahead == 'i') ADVANCE(263); + END_STATE(); + case 315: + if (lookahead == 'i') ADVANCE(77); + END_STATE(); + case 316: + if (lookahead == 'i') ADVANCE(402); + END_STATE(); + case 317: + if (lookahead == 'i') ADVANCE(576); + END_STATE(); + case 318: + if (lookahead == 'i') ADVANCE(573); + END_STATE(); + case 319: + if (lookahead == 'i') ADVANCE(408); + END_STATE(); + case 320: + if (lookahead == 'i') ADVANCE(622); + END_STATE(); + case 321: + if (lookahead == 'i') ADVANCE(462); + END_STATE(); + case 322: + if (lookahead == 'i') ADVANCE(276); + END_STATE(); + case 323: + if (lookahead == 'i') ADVANCE(214); + END_STATE(); + case 324: + if (lookahead == 'i') ADVANCE(415); + END_STATE(); + case 325: + if (lookahead == 'i') ADVANCE(538); + END_STATE(); + case 326: + if (lookahead == 'i') ADVANCE(539); + END_STATE(); + case 327: + if (lookahead == 'i') ADVANCE(99); + END_STATE(); + case 328: + if (lookahead == 'k') ADVANCE(744); + END_STATE(); + case 329: + if (lookahead == 'k') ADVANCE(745); + END_STATE(); + case 330: + if (lookahead == 'k') ADVANCE(791); + END_STATE(); + case 331: + if (lookahead == 'k') ADVANCE(792); + END_STATE(); + case 332: + if (lookahead == 'k') ADVANCE(201); + END_STATE(); + case 333: + if (lookahead == 'k') ADVANCE(517); + END_STATE(); + case 334: + if (lookahead == 'k') ADVANCE(222); + END_STATE(); + case 335: + if (lookahead == 'l') ADVANCE(299); + if (lookahead == 'm') ADVANCE(459); + if (lookahead == 'n') ADVANCE(149); + if (lookahead == 's') ADVANCE(119); + if (lookahead == 'x') ADVANCE(590); + END_STATE(); + case 336: + if (lookahead == 'l') ADVANCE(299); + if (lookahead == 'm') ADVANCE(459); + if (lookahead == 'n') ADVANCE(153); + if (lookahead == 'x') ADVANCE(590); + END_STATE(); + case 337: + if (lookahead == 'l') ADVANCE(299); + if (lookahead == 'n') ADVANCE(163); + if (lookahead == 's') ADVANCE(119); + END_STATE(); + case 338: + if (lookahead == 'l') ADVANCE(231); + if (lookahead == 'r') ADVANCE(526); + END_STATE(); + case 339: + if (lookahead == 'l') ADVANCE(799); + END_STATE(); + case 340: + if (lookahead == 'l') ADVANCE(723); + END_STATE(); + case 341: + if (lookahead == 'l') ADVANCE(241); + END_STATE(); + case 342: + if (lookahead == 'l') ADVANCE(778); + END_STATE(); + case 343: + if (lookahead == 'l') ADVANCE(427); + END_STATE(); + case 344: + if (lookahead == 'l') ADVANCE(72); + END_STATE(); + case 345: + if (lookahead == 'l') ADVANCE(234); + END_STATE(); + case 346: + if (lookahead == 'l') ADVANCE(609); + END_STATE(); + case 347: + if (lookahead == 'l') ADVANCE(325); + END_STATE(); + case 348: + if (lookahead == 'l') ADVANCE(42); + END_STATE(); + case 349: + if (lookahead == 'l') ADVANCE(175); + END_STATE(); + case 350: + if (lookahead == 'l') ADVANCE(43); + END_STATE(); + case 351: + if (lookahead == 'l') ADVANCE(177); + END_STATE(); + case 352: + if (lookahead == 'l') ADVANCE(555); + END_STATE(); + case 353: + if (lookahead == 'l') ADVANCE(215); + END_STATE(); + case 354: + if (lookahead == 'l') ADVANCE(202); + END_STATE(); + case 355: + if (lookahead == 'l') ADVANCE(187); + END_STATE(); + case 356: + if (lookahead == 'l') ADVANCE(188); + END_STATE(); + case 357: + if (lookahead == 'l') ADVANCE(189); + END_STATE(); + case 358: + if (lookahead == 'l') ADVANCE(230); + if (lookahead == 'r') ADVANCE(526); + END_STATE(); + case 359: + if (lookahead == 'l') ADVANCE(434); + END_STATE(); + case 360: + if (lookahead == 'l') ADVANCE(160); + END_STATE(); + case 361: + if (lookahead == 'l') ADVANCE(320); + END_STATE(); + case 362: + if (lookahead == 'l') ADVANCE(232); + END_STATE(); + case 363: + if (lookahead == 'l') ADVANCE(438); + if (lookahead == 'r') ADVANCE(92); + END_STATE(); + case 364: + if (lookahead == 'l') ADVANCE(80); + END_STATE(); + case 365: + if (lookahead == 'l') ADVANCE(440); + if (lookahead == 'r') ADVANCE(96); + END_STATE(); + case 366: + if (lookahead == 'l') ADVANCE(595); + END_STATE(); + case 367: + if (lookahead == 'l') ADVANCE(326); + END_STATE(); + case 368: + if (lookahead == 'l') ADVANCE(594); + if (lookahead == 'r') ADVANCE(542); + END_STATE(); + case 369: + if (lookahead == 'm') ADVANCE(769); + END_STATE(); + case 370: + if (lookahead == 'm') ADVANCE(710); + END_STATE(); + case 371: + if (lookahead == 'm') ADVANCE(800); + END_STATE(); + case 372: + if (lookahead == 'm') ADVANCE(803); + END_STATE(); + case 373: + if (lookahead == 'm') ADVANCE(466); + END_STATE(); + case 374: + if (lookahead == 'm') ADVANCE(112); + END_STATE(); + case 375: + if (lookahead == 'm') ADVANCE(383); + END_STATE(); + case 376: + if (lookahead == 'm') ADVANCE(348); + END_STATE(); + case 377: + if (lookahead == 'm') ADVANCE(174); + if (lookahead == 't') ADVANCE(351); + END_STATE(); + case 378: + if (lookahead == 'm') ADVANCE(350); + END_STATE(); + case 379: + if (lookahead == 'm') ADVANCE(83); + END_STATE(); + case 380: + if (lookahead == 'm') ADVANCE(84); + END_STATE(); + case 381: + if (lookahead == 'm') ADVANCE(85); + END_STATE(); + case 382: + if (lookahead == 'm') ADVANCE(236); + END_STATE(); + case 383: + if (lookahead == 'm') ADVANCE(237); + END_STATE(); + case 384: + if (lookahead == 'm') ADVANCE(239); + END_STATE(); + case 385: + if (lookahead == 'm') ADVANCE(384); + END_STATE(); + case 386: + if (lookahead == 'n') ADVANCE(663); + if (lookahead == 'r') ADVANCE(323); + if (lookahead == 's') ADVANCE(666); + END_STATE(); + case 387: + if (lookahead == 'n') ADVANCE(663); + if (lookahead == 's') ADVANCE(666); + END_STATE(); + case 388: + if (lookahead == 'n') ADVANCE(272); + END_STATE(); + case 389: + if (lookahead == 'n') ADVANCE(103); + END_STATE(); + case 390: + if (lookahead == 'n') ADVANCE(746); + END_STATE(); + case 391: + if (lookahead == 'n') ADVANCE(148); + END_STATE(); + case 392: + if (lookahead == 'n') ADVANCE(26); + END_STATE(); + case 393: + if (lookahead == 'n') ADVANCE(48); + END_STATE(); + case 394: + if (lookahead == 'n') ADVANCE(154); + END_STATE(); + case 395: + if (lookahead == 'n') ADVANCE(277); + if (lookahead == 'p') ADVANCE(579); + END_STATE(); + case 396: + if (lookahead == 'n') ADVANCE(593); + END_STATE(); + case 397: + if (lookahead == 'n') ADVANCE(127); + END_STATE(); + case 398: + if (lookahead == 'n') ADVANCE(274); + END_STATE(); + case 399: + if (lookahead == 'n') ADVANCE(172); + END_STATE(); + case 400: + if (lookahead == 'n') ADVANCE(437); + if (lookahead == 'r') ADVANCE(339); + END_STATE(); + case 401: + if (lookahead == 'n') ADVANCE(437); + if (lookahead == 'r') ADVANCE(341); + END_STATE(); + case 402: + if (lookahead == 'n') ADVANCE(268); + END_STATE(); + case 403: + if (lookahead == 'n') ADVANCE(155); + END_STATE(); + case 404: + if (lookahead == 'n') ADVANCE(423); + END_STATE(); + case 405: + if (lookahead == 'n') ADVANCE(604); + END_STATE(); + case 406: + if (lookahead == 'n') ADVANCE(128); + END_STATE(); + case 407: + if (lookahead == 'n') ADVANCE(176); + END_STATE(); + case 408: + if (lookahead == 'n') ADVANCE(553); + END_STATE(); + case 409: + if (lookahead == 'n') ADVANCE(554); + END_STATE(); + case 410: + if (lookahead == 'n') ADVANCE(584); + END_STATE(); + case 411: + if (lookahead == 'n') ADVANCE(559); + END_STATE(); + case 412: + if (lookahead == 'n') ADVANCE(562); + END_STATE(); + case 413: + if (lookahead == 'n') ADVANCE(563); + END_STATE(); + case 414: + if (lookahead == 'n') ADVANCE(218); + END_STATE(); + case 415: + if (lookahead == 'n') ADVANCE(194); + END_STATE(); + case 416: + if (lookahead == 'n') ADVANCE(123); + END_STATE(); + case 417: + if (lookahead == 'n') ADVANCE(275); + END_STATE(); + case 418: + if (lookahead == 'n') ADVANCE(132); + END_STATE(); + case 419: + if (lookahead == 'n') ADVANCE(137); + END_STATE(); + case 420: + if (lookahead == 'n') ADVANCE(450); + END_STATE(); + case 421: + if (lookahead == 'n') ADVANCE(164); + if (lookahead == 'x') ADVANCE(590); + END_STATE(); + case 422: + if (lookahead == 'o') ADVANCE(549); + END_STATE(); + case 423: + if (lookahead == 'o') ADVANCE(737); + END_STATE(); + case 424: + if (lookahead == 'o') ADVANCE(297); + if (lookahead == 's') ADVANCE(433); + END_STATE(); + case 425: + if (lookahead == 'o') ADVANCE(613); + END_STATE(); + case 426: + if (lookahead == 'o') ADVANCE(653); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(654); + END_STATE(); + case 427: + if (lookahead == 'o') ADVANCE(116); + END_STATE(); + case 428: + if (lookahead == 'o') ADVANCE(533); + END_STATE(); + case 429: + if (lookahead == 'o') ADVANCE(370); + END_STATE(); + case 430: + if (lookahead == 'o') ADVANCE(75); + END_STATE(); + case 431: + if (lookahead == 'o') ADVANCE(481); + END_STATE(); + case 432: + if (lookahead == 'o') ADVANCE(375); + END_STATE(); + case 433: + if (lookahead == 'o') ADVANCE(393); + END_STATE(); + case 434: + if (lookahead == 'o') ADVANCE(117); + END_STATE(); + case 435: + if (lookahead == 'o') ADVANCE(601); + END_STATE(); + case 436: + if (lookahead == 'o') ADVANCE(159); + END_STATE(); + case 437: + if (lookahead == 'o') ADVANCE(484); + END_STATE(); + case 438: + if (lookahead == 'o') ADVANCE(120); + END_STATE(); + case 439: + if (lookahead == 'o') ADVANCE(610); + END_STATE(); + case 440: + if (lookahead == 'o') ADVANCE(122); + END_STATE(); + case 441: + if (lookahead == 'o') ADVANCE(205); + END_STATE(); + case 442: + if (lookahead == 'o') ADVANCE(255); + END_STATE(); + case 443: + if (lookahead == 'o') ADVANCE(488); + END_STATE(); + case 444: + if (lookahead == 'o') ADVANCE(503); + END_STATE(); + case 445: + if (lookahead == 'o') ADVANCE(485); + END_STATE(); + case 446: + if (lookahead == 'o') ADVANCE(548); + END_STATE(); + case 447: + if (lookahead == 'o') ADVANCE(334); + END_STATE(); + case 448: + if (lookahead == 'o') ADVANCE(407); + END_STATE(); + case 449: + if (lookahead == 'o') ADVANCE(497); + END_STATE(); + case 450: + if (lookahead == 'o') ADVANCE(414); + END_STATE(); + case 451: + if (lookahead == 'o') ADVANCE(161); + END_STATE(); + case 452: + if (lookahead == 'o') ADVANCE(508); + END_STATE(); + case 453: + if (lookahead == 'o') ADVANCE(509); + END_STATE(); + case 454: + if (lookahead == 'o') ADVANCE(385); + END_STATE(); + case 455: + if (lookahead == 'o') ADVANCE(244); + END_STATE(); + case 456: + if (lookahead == 'p') ADVANCE(785); + END_STATE(); + case 457: + if (lookahead == 'p') ADVANCE(86); + END_STATE(); + case 458: + if (lookahead == 'p') ADVANCE(261); + END_STATE(); + case 459: + if (lookahead == 'p') ADVANCE(550); + END_STATE(); + case 460: + if (lookahead == 'p') ADVANCE(33); + END_STATE(); + case 461: + if (lookahead == 'p') ADVANCE(178); + END_STATE(); + case 462: + if (lookahead == 'p') ADVANCE(561); + END_STATE(); + case 463: + if (lookahead == 'p') ADVANCE(184); + END_STATE(); + case 464: + if (lookahead == 'p') ADVANCE(190); + END_STATE(); + case 465: + if (lookahead == 'p') ADVANCE(193); + END_STATE(); + case 466: + if (lookahead == 'p') ADVANCE(364); + END_STATE(); + case 467: + if (lookahead == 'p') ADVANCE(98); + END_STATE(); + case 468: + if (lookahead == 'q') ADVANCE(713); + END_STATE(); + case 469: + if (lookahead == 'r') ADVANCE(656); + END_STATE(); + case 470: + if (lookahead == 'r') ADVANCE(757); + END_STATE(); + case 471: + if (lookahead == 'r') ADVANCE(108); + END_STATE(); + case 472: + if (lookahead == 'r') ADVANCE(704); + END_STATE(); + case 473: + if (lookahead == 'r') ADVANCE(760); + END_STATE(); + case 474: + if (lookahead == 'r') ADVANCE(754); + END_STATE(); + case 475: + if (lookahead == 'r') ADVANCE(755); + END_STATE(); + case 476: + if (lookahead == 'r') ADVANCE(701); + END_STATE(); + case 477: + if (lookahead == 'r') ADVANCE(339); + END_STATE(); + case 478: + if (lookahead == 'r') ADVANCE(619); + END_STATE(); + case 479: + if (lookahead == 'r') ADVANCE(319); + END_STATE(); + case 480: + if (lookahead == 'r') ADVANCE(257); + END_STATE(); + case 481: + if (lookahead == 'r') ADVANCE(150); + END_STATE(); + case 482: + if (lookahead == 'r') ADVANCE(290); + END_STATE(); + case 483: + if (lookahead == 'r') ADVANCE(30); + END_STATE(); + case 484: + if (lookahead == 'r') ADVANCE(165); + END_STATE(); + case 485: + if (lookahead == 'r') ADVANCE(197); + END_STATE(); + case 486: + if (lookahead == 'r') ADVANCE(197); + if (lookahead == 'w') ADVANCE(211); + END_STATE(); + case 487: + if (lookahead == 'r') ADVANCE(88); + END_STATE(); + case 488: + if (lookahead == 'r') ADVANCE(379); + END_STATE(); + case 489: + if (lookahead == 'r') ADVANCE(435); + END_STATE(); + case 490: + if (lookahead == 'r') ADVANCE(311); + END_STATE(); + case 491: + if (lookahead == 'r') ADVANCE(321); + END_STATE(); + case 492: + if (lookahead == 'r') ADVANCE(518); + END_STATE(); + case 493: + if (lookahead == 'r') ADVANCE(307); + END_STATE(); + case 494: + if (lookahead == 'r') ADVANCE(521); + END_STATE(); + case 495: + if (lookahead == 'r') ADVANCE(582); + END_STATE(); + case 496: + if (lookahead == 'r') ADVANCE(229); + END_STATE(); + case 497: + if (lookahead == 'r') ADVANCE(557); + END_STATE(); + case 498: + if (lookahead == 'r') ADVANCE(213); + END_STATE(); + case 499: + if (lookahead == 'r') ADVANCE(588); + END_STATE(); + case 500: + if (lookahead == 'r') ADVANCE(540); + END_STATE(); + case 501: + if (lookahead == 'r') ADVANCE(71); + END_STATE(); + case 502: + if (lookahead == 'r') ADVANCE(605); + END_STATE(); + case 503: + if (lookahead == 'r') ADVANCE(158); + END_STATE(); + case 504: + if (lookahead == 'r') ADVANCE(316); + END_STATE(); + case 505: + if (lookahead == 'r') ADVANCE(537); + END_STATE(); + case 506: + if (lookahead == 'r') ADVANCE(134); + END_STATE(); + case 507: + if (lookahead == 'r') ADVANCE(109); + END_STATE(); + case 508: + if (lookahead == 'r') ADVANCE(380); + END_STATE(); + case 509: + if (lookahead == 'r') ADVANCE(381); + END_STATE(); + case 510: + if (lookahead == 'r') ADVANCE(327); + END_STATE(); + case 511: + if (lookahead == 's') ADVANCE(480); + if (lookahead == 'y') ADVANCE(135); + END_STATE(); + case 512: + if (lookahead == 's') ADVANCE(753); + END_STATE(); + case 513: + if (lookahead == 's') ADVANCE(686); + END_STATE(); + case 514: + if (lookahead == 's') ADVANCE(788); + END_STATE(); + case 515: + if (lookahead == 's') ADVANCE(717); + END_STATE(); + case 516: + if (lookahead == 's') ADVANCE(674); + END_STATE(); + case 517: + if (lookahead == 's') ADVANCE(700); + END_STATE(); + case 518: + if (lookahead == 's') ADVANCE(702); + END_STATE(); + case 519: + if (lookahead == 's') ADVANCE(789); + END_STATE(); + case 520: + if (lookahead == 's') ADVANCE(749); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(654); + END_STATE(); + case 521: + if (lookahead == 's') ADVANCE(38); + END_STATE(); + case 522: + if (lookahead == 's') ADVANCE(39); + END_STATE(); + case 523: + if (lookahead == 's') ADVANCE(283); + END_STATE(); + case 524: + if (lookahead == 's') ADVANCE(551); + END_STATE(); + case 525: + if (lookahead == 's') ADVANCE(138); + END_STATE(); + case 526: + if (lookahead == 's') ADVANCE(552); + END_STATE(); + case 527: + if (lookahead == 's') ADVANCE(404); + END_STATE(); + case 528: + if (lookahead == 's') ADVANCE(293); + END_STATE(); + case 529: + if (lookahead == 's') ADVANCE(35); + END_STATE(); + case 530: + if (lookahead == 's') ADVANCE(291); + END_STATE(); + case 531: + if (lookahead == 's') ADVANCE(567); + END_STATE(); + case 532: + if (lookahead == 's') ADVANCE(514); + END_STATE(); + case 533: + if (lookahead == 's') ADVANCE(242); + END_STATE(); + case 534: + if (lookahead == 's') ADVANCE(570); + END_STATE(); + case 535: + if (lookahead == 's') ADVANCE(519); + END_STATE(); + case 536: + if (lookahead == 's') ADVANCE(587); + END_STATE(); + case 537: + if (lookahead == 's') ADVANCE(556); + END_STATE(); + case 538: + if (lookahead == 's') ADVANCE(558); + END_STATE(); + case 539: + if (lookahead == 's') ADVANCE(565); + END_STATE(); + case 540: + if (lookahead == 's') ADVANCE(219); + END_STATE(); + case 541: + if (lookahead == 's') ADVANCE(449); + END_STATE(); + case 542: + if (lookahead == 's') ADVANCE(586); + END_STATE(); + case 543: + if (lookahead == 's') ADVANCE(140); + END_STATE(); + case 544: + if (lookahead == 's') ADVANCE(142); + END_STATE(); + case 545: + if (lookahead == 's') ADVANCE(143); + END_STATE(); + case 546: + if (lookahead == 't') ADVANCE(25); + END_STATE(); + case 547: + if (lookahead == 't') ADVANCE(47); + END_STATE(); + case 548: + if (lookahead == 't') ADVANCE(664); + END_STATE(); + case 549: + if (lookahead == 't') ADVANCE(664); + if (lookahead == 'w') ADVANCE(777); + END_STATE(); + case 550: + if (lookahead == 't') ADVANCE(616); + END_STATE(); + case 551: + if (lookahead == 't') ADVANCE(697); + END_STATE(); + case 552: + if (lookahead == 't') ADVANCE(688); + END_STATE(); + case 553: + if (lookahead == 't') ADVANCE(709); + END_STATE(); + case 554: + if (lookahead == 't') ADVANCE(750); + END_STATE(); + case 555: + if (lookahead == 't') ADVANCE(31); + END_STATE(); + case 556: + if (lookahead == 't') ADVANCE(675); + END_STATE(); + case 557: + if (lookahead == 't') ADVANCE(32); + END_STATE(); + case 558: + if (lookahead == 't') ADVANCE(705); + END_STATE(); + case 559: + if (lookahead == 't') ADVANCE(734); + END_STATE(); + case 560: + if (lookahead == 't') ADVANCE(690); + END_STATE(); + case 561: + if (lookahead == 't') ADVANCE(696); + END_STATE(); + case 562: + if (lookahead == 't') ADVANCE(797); + END_STATE(); + case 563: + if (lookahead == 't') ADVANCE(798); + END_STATE(); + case 564: + if (lookahead == 't') ADVANCE(687); + END_STATE(); + case 565: + if (lookahead == 't') ADVANCE(729); + END_STATE(); + case 566: + if (lookahead == 't') ADVANCE(278); + END_STATE(); + case 567: + if (lookahead == 't') ADVANCE(27); + END_STATE(); + case 568: + if (lookahead == 't') ADVANCE(279); + END_STATE(); + case 569: + if (lookahead == 't') ADVANCE(541); + END_STATE(); + case 570: + if (lookahead == 't') ADVANCE(28); + END_STATE(); + case 571: + if (lookahead == 't') ADVANCE(170); + END_STATE(); + case 572: + if (lookahead == 't') ADVANCE(118); + END_STATE(); + case 573: + if (lookahead == 't') ADVANCE(280); + END_STATE(); + case 574: + if (lookahead == 't') ADVANCE(264); + END_STATE(); + case 575: + if (lookahead == 't') ADVANCE(441); + END_STATE(); + case 576: + if (lookahead == 't') ADVANCE(34); + END_STATE(); + case 577: + if (lookahead == 't') ADVANCE(376); + END_STATE(); + case 578: + if (lookahead == 't') ADVANCE(37); + END_STATE(); + case 579: + if (lookahead == 't') ADVANCE(68); + END_STATE(); + case 580: + if (lookahead == 't') ADVANCE(301); + END_STATE(); + case 581: + if (lookahead == 't') ADVANCE(447); + END_STATE(); + case 582: + if (lookahead == 't') ADVANCE(310); + END_STATE(); + case 583: + if (lookahead == 't') ADVANCE(73); + END_STATE(); + case 584: + if (lookahead == 't') ADVANCE(303); + END_STATE(); + case 585: + if (lookahead == 't') ADVANCE(305); + END_STATE(); + case 586: + if (lookahead == 't') ADVANCE(442); + END_STATE(); + case 587: + if (lookahead == 't') ADVANCE(504); + END_STATE(); + case 588: + if (lookahead == 't') ADVANCE(315); + END_STATE(); + case 589: + if (lookahead == 't') ADVANCE(198); + END_STATE(); + case 590: + if (lookahead == 't') ADVANCE(210); + END_STATE(); + case 591: + if (lookahead == 't') ADVANCE(378); + END_STATE(); + case 592: + if (lookahead == 't') ADVANCE(228); + END_STATE(); + case 593: + if (lookahead == 't') ADVANCE(217); + END_STATE(); + case 594: + if (lookahead == 't') ADVANCE(223); + END_STATE(); + case 595: + if (lookahead == 't') ADVANCE(225); + END_STATE(); + case 596: + if (lookahead == 't') ADVANCE(455); + END_STATE(); + case 597: + if (lookahead == 'u') ADVANCE(575); + END_STATE(); + case 598: + if (lookahead == 'u') ADVANCE(267); + END_STATE(); + case 599: + if (lookahead == 'u') ADVANCE(374); + END_STATE(); + case 600: + if (lookahead == 'u') ADVANCE(352); + END_STATE(); + case 601: + if (lookahead == 'u') ADVANCE(456); + END_STATE(); + case 602: + if (lookahead == 'u') ADVANCE(487); + END_STATE(); + case 603: + if (lookahead == 'u') ADVANCE(416); + END_STATE(); + case 604: + if (lookahead == 'u') ADVANCE(382); + END_STATE(); + case 605: + if (lookahead == 'u') ADVANCE(406); + END_STATE(); + case 606: + if (lookahead == 'u') ADVANCE(208); + END_STATE(); + case 607: + if (lookahead == 'u') ADVANCE(531); + END_STATE(); + case 608: + if (lookahead == 'u') ADVANCE(534); + END_STATE(); + case 609: + if (lookahead == 'u') ADVANCE(162); + END_STATE(); + case 610: + if (lookahead == 'u') ADVANCE(411); + END_STATE(); + case 611: + if (lookahead == 'u') ADVANCE(596); + END_STATE(); + case 612: + if (lookahead == 'v') ADVANCE(227); + END_STATE(); + case 613: + if (lookahead == 'w') ADVANCE(777); + END_STATE(); + case 614: + if (lookahead == 'w') ADVANCE(211); + END_STATE(); + case 615: + if (lookahead == 'y') ADVANCE(786); + END_STATE(); + case 616: + if (lookahead == 'y') ADVANCE(759); + END_STATE(); + case 617: + if (lookahead == 'y') ADVANCE(715); + END_STATE(); + case 618: + if (lookahead == 'y') ADVANCE(36); + END_STATE(); + case 619: + if (lookahead == 'y') ADVANCE(536); + END_STATE(); + case 620: + if (lookahead == 'y') ADVANCE(139); + END_STATE(); + case 621: + if (lookahead == 'z') ADVANCE(243); + END_STATE(); + case 622: + if (lookahead == 'z') ADVANCE(182); + END_STATE(); + case 623: + if (lookahead == 'z') ADVANCE(191); + END_STATE(); + case 624: + if (lookahead == '}') ADVANCE(672); + END_STATE(); + case 625: + if (lookahead == '}') ADVANCE(742); + END_STATE(); + case 626: + if (lookahead == '}') ADVANCE(668); + END_STATE(); + case 627: + if (lookahead == '\t' || + lookahead == ' ') SKIP(627); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(646); + END_STATE(); + case 628: + if (lookahead == '"' || + lookahead == '\\') ADVANCE(12); + END_STATE(); + case 629: + if (lookahead == '\'' || + lookahead == '\\') ADVANCE(20); + END_STATE(); + case 630: + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(643); + END_STATE(); + case 631: + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(644); + END_STATE(); + case 632: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(654); + END_STATE(); + case 633: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(646); + END_STATE(); + case 634: + if (lookahead != 0 && + lookahead != '#' && + lookahead != '%' && + lookahead != '{' && + lookahead != '}') ADVANCE(640); + END_STATE(); + case 635: + if (lookahead != 0 && + lookahead != '}') ADVANCE(671); + END_STATE(); + case 636: + if (eof) ADVANCE(638); + ADVANCE_MAP( + '!', 45, + '"', 12, + '#', 624, + '%', 625, + '\'', 20, + ',', 758, + '-', 22, + '.', 630, + '<', 659, + '=', 784, + '>', 660, + 'a', 146, + 'b', 775, + 'c', 54, + 'd', 61, + 'e', 335, + 'f', 288, + 'g', 199, + 'i', 246, + 'j', 424, + 'l', 56, + 'm', 58, + 'n', 422, + 'o', 249, + 'p', 773, + 'q', 606, + 'r', 63, + 's', 59, + 't', 169, + 'u', 400, + 'v', 200, + 'w', 771, + 'y', 196, + '{', 13, + '}', 626, + ); + if (lookahead == '\t' || + lookahead == ' ') SKIP(636); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(642); + END_STATE(); + case 637: + if (eof) ADVANCE(638); + if (lookahead == '{') ADVANCE(14); + if (lookahead == '\t' || + lookahead == ' ') ADVANCE(639); + if (lookahead != 0) ADVANCE(640); + END_STATE(); + case 638: + ACCEPT_TOKEN(ts_builtin_sym_end); + END_STATE(); + case 639: + ACCEPT_TOKEN(sym_content); + if (lookahead == '{') ADVANCE(14); + if (lookahead == '\t' || + lookahead == ' ') ADVANCE(639); + if (lookahead != 0) ADVANCE(640); + END_STATE(); + case 640: + ACCEPT_TOKEN(sym_content); + if (lookahead == '{') ADVANCE(634); + if (lookahead != 0) ADVANCE(640); + END_STATE(); + case 641: + ACCEPT_TOKEN(anon_sym_PIPE); + END_STATE(); + case 642: + ACCEPT_TOKEN(sym_number); + if (lookahead == '.') ADVANCE(643); + if (lookahead == 'E' || + lookahead == 'e') ADVANCE(21); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(642); + END_STATE(); + case 643: + ACCEPT_TOKEN(sym_number); + if (lookahead == 'E' || + lookahead == 'e') ADVANCE(21); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(643); + END_STATE(); + case 644: + ACCEPT_TOKEN(sym_number); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(644); + END_STATE(); + case 645: + ACCEPT_TOKEN(sym_string); + END_STATE(); + case 646: + ACCEPT_TOKEN(sym_attribute); + if (lookahead == '.') ADVANCE(633); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(646); + END_STATE(); + case 647: + ACCEPT_TOKEN(anon_sym_DOT); + END_STATE(); + case 648: + ACCEPT_TOKEN(anon_sym_DOT); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(643); + END_STATE(); + case 649: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(651); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(654); + END_STATE(); + case 650: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'l') ADVANCE(649); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(654); + END_STATE(); + case 651: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'n') ADVANCE(652); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(654); + END_STATE(); + case 652: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 't') ADVANCE(751); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(654); + END_STATE(); + case 653: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 't') ADVANCE(665); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(654); + END_STATE(); + case 654: + ACCEPT_TOKEN(sym_identifier); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(654); + END_STATE(); + case 655: + ACCEPT_TOKEN(anon_sym_and); + END_STATE(); + case 656: + ACCEPT_TOKEN(anon_sym_or); + END_STATE(); + case 657: + ACCEPT_TOKEN(anon_sym_EQ_EQ); + END_STATE(); + case 658: + ACCEPT_TOKEN(anon_sym_BANG_EQ); + END_STATE(); + case 659: + ACCEPT_TOKEN(anon_sym_LT); + if (lookahead == '=') ADVANCE(661); + END_STATE(); + case 660: + ACCEPT_TOKEN(anon_sym_GT); + if (lookahead == '=') ADVANCE(662); + END_STATE(); + case 661: + ACCEPT_TOKEN(anon_sym_LT_EQ); + END_STATE(); + case 662: + ACCEPT_TOKEN(anon_sym_GT_EQ); + END_STATE(); + case 663: + ACCEPT_TOKEN(anon_sym_in); + END_STATE(); + case 664: + ACCEPT_TOKEN(anon_sym_not); + END_STATE(); + case 665: + ACCEPT_TOKEN(anon_sym_not); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(654); + END_STATE(); + case 666: + ACCEPT_TOKEN(anon_sym_is); + END_STATE(); + case 667: + ACCEPT_TOKEN(anon_sym_LBRACE_LBRACE); + END_STATE(); + case 668: + ACCEPT_TOKEN(anon_sym_RBRACE_RBRACE); + END_STATE(); + case 669: + ACCEPT_TOKEN(anon_sym_LBRACE_POUND); + END_STATE(); + case 670: + ACCEPT_TOKEN(aux_sym_template_comment_token1); + if (lookahead == '#') ADVANCE(635); + if (lookahead == '\t' || + lookahead == ' ') ADVANCE(670); + if (lookahead != 0) ADVANCE(671); + END_STATE(); + case 671: + ACCEPT_TOKEN(aux_sym_template_comment_token1); + if (lookahead == '#') ADVANCE(635); + if (lookahead != 0) ADVANCE(671); + END_STATE(); + case 672: + ACCEPT_TOKEN(anon_sym_POUND_RBRACE); + END_STATE(); + case 673: + ACCEPT_TOKEN(anon_sym_add_COLON); + END_STATE(); + case 674: + ACCEPT_TOKEN(anon_sym_addslashes); + END_STATE(); + case 675: + ACCEPT_TOKEN(anon_sym_capfirst); + END_STATE(); + case 676: + ACCEPT_TOKEN(anon_sym_center_COLON); + END_STATE(); + case 677: + ACCEPT_TOKEN(anon_sym_cut_COLON); + END_STATE(); + case 678: + ACCEPT_TOKEN(anon_sym_date_COLON); + END_STATE(); + case 679: + ACCEPT_TOKEN(anon_sym_date); + if (lookahead == ':') ADVANCE(678); + END_STATE(); + case 680: + ACCEPT_TOKEN(anon_sym_default_COLON); + END_STATE(); + case 681: + ACCEPT_TOKEN(anon_sym_default_if_none_COLON); + END_STATE(); + case 682: + ACCEPT_TOKEN(anon_sym_dictsort_COLON); + END_STATE(); + case 683: + ACCEPT_TOKEN(anon_sym_dictsortreversed_COLON); + END_STATE(); + case 684: + ACCEPT_TOKEN(anon_sym_divisibleby_COLON); + END_STATE(); + case 685: + ACCEPT_TOKEN(anon_sym_escape); + if (lookahead == 'j') ADVANCE(513); + END_STATE(); + case 686: + ACCEPT_TOKEN(anon_sym_escapejs); + END_STATE(); + case 687: + ACCEPT_TOKEN(anon_sym_filesizeformat); + END_STATE(); + case 688: + ACCEPT_TOKEN(anon_sym_first); + END_STATE(); + case 689: + ACCEPT_TOKEN(anon_sym_floatformat_COLON); + END_STATE(); + case 690: + ACCEPT_TOKEN(anon_sym_floatformat); + if (lookahead == ':') ADVANCE(689); + END_STATE(); + case 691: + ACCEPT_TOKEN(anon_sym_force_escape); + END_STATE(); + case 692: + ACCEPT_TOKEN(anon_sym_get_digit_COLON); + END_STATE(); + case 693: + ACCEPT_TOKEN(anon_sym_iriencode); + END_STATE(); + case 694: + ACCEPT_TOKEN(anon_sym_join_COLON); + END_STATE(); + case 695: + ACCEPT_TOKEN(anon_sym_json_script_COLON); + END_STATE(); + case 696: + ACCEPT_TOKEN(anon_sym_json_script); + if (lookahead == ':') ADVANCE(695); + END_STATE(); + case 697: + ACCEPT_TOKEN(anon_sym_last); + END_STATE(); + case 698: + ACCEPT_TOKEN(anon_sym_length); + if (lookahead == '_') ADVANCE(308); + END_STATE(); + case 699: + ACCEPT_TOKEN(anon_sym_length_is_COLON); + END_STATE(); + case 700: + ACCEPT_TOKEN(anon_sym_linebreaks); + if (lookahead == 'b') ADVANCE(476); + END_STATE(); + case 701: + ACCEPT_TOKEN(anon_sym_linebreaksbr); + END_STATE(); + case 702: + ACCEPT_TOKEN(anon_sym_linenumbers); + END_STATE(); + case 703: + ACCEPT_TOKEN(anon_sym_ljust_COLON); + END_STATE(); + case 704: + ACCEPT_TOKEN(anon_sym_lower); + END_STATE(); + case 705: + ACCEPT_TOKEN(anon_sym_make_list); + END_STATE(); + case 706: + ACCEPT_TOKEN(anon_sym_phone2numeric); + END_STATE(); + case 707: + ACCEPT_TOKEN(anon_sym_pluralize_COLON); + END_STATE(); + case 708: + ACCEPT_TOKEN(anon_sym_pluralize); + if (lookahead == ':') ADVANCE(707); + END_STATE(); + case 709: + ACCEPT_TOKEN(anon_sym_pprint); + END_STATE(); + case 710: + ACCEPT_TOKEN(anon_sym_random); + END_STATE(); + case 711: + ACCEPT_TOKEN(anon_sym_rjust_COLON); + END_STATE(); + case 712: + ACCEPT_TOKEN(anon_sym_safe); + if (lookahead == 's') ADVANCE(179); + END_STATE(); + case 713: + ACCEPT_TOKEN(anon_sym_safeseq); + END_STATE(); + case 714: + ACCEPT_TOKEN(anon_sym_slice_COLON); + END_STATE(); + case 715: + ACCEPT_TOKEN(anon_sym_slugify); + END_STATE(); + case 716: + ACCEPT_TOKEN(anon_sym_stringformat_COLON); + END_STATE(); + case 717: + ACCEPT_TOKEN(anon_sym_striptags); + END_STATE(); + case 718: + ACCEPT_TOKEN(anon_sym_time_COLON); + END_STATE(); + case 719: + ACCEPT_TOKEN(anon_sym_time); + if (lookahead == ':') ADVANCE(718); + if (lookahead == 's') ADVANCE(312); + if (lookahead == 'u') ADVANCE(410); + END_STATE(); + case 720: + ACCEPT_TOKEN(anon_sym_timesince_COLON); + END_STATE(); + case 721: + ACCEPT_TOKEN(anon_sym_timesince); + if (lookahead == ':') ADVANCE(720); + END_STATE(); + case 722: + ACCEPT_TOKEN(anon_sym_timeuntil_COLON); + END_STATE(); + case 723: + ACCEPT_TOKEN(anon_sym_timeuntil); + if (lookahead == ':') ADVANCE(722); + END_STATE(); + case 724: + ACCEPT_TOKEN(anon_sym_title); + END_STATE(); + case 725: + ACCEPT_TOKEN(anon_sym_truncatechars_COLON); + END_STATE(); + case 726: + ACCEPT_TOKEN(anon_sym_truncatechars_html_COLON); + END_STATE(); + case 727: + ACCEPT_TOKEN(anon_sym_truncatewords_COLON); + END_STATE(); + case 728: + ACCEPT_TOKEN(anon_sym_truncatewords_html_COLON); + END_STATE(); + case 729: + ACCEPT_TOKEN(anon_sym_unordered_list); + END_STATE(); + case 730: + ACCEPT_TOKEN(anon_sym_urlencode_COLON); + END_STATE(); + case 731: + ACCEPT_TOKEN(anon_sym_urlencode); + if (lookahead == ':') ADVANCE(730); + END_STATE(); + case 732: + ACCEPT_TOKEN(anon_sym_urlize); + if (lookahead == 't') ADVANCE(502); + END_STATE(); + case 733: + ACCEPT_TOKEN(anon_sym_urlizetrunc_COLON); + END_STATE(); + case 734: + ACCEPT_TOKEN(anon_sym_wordcount); + END_STATE(); + case 735: + ACCEPT_TOKEN(anon_sym_wordwrap_COLON); + END_STATE(); + case 736: + ACCEPT_TOKEN(anon_sym_yesno_COLON); + END_STATE(); + case 737: + ACCEPT_TOKEN(anon_sym_yesno); + if (lookahead == ':') ADVANCE(736); + END_STATE(); + case 738: + ACCEPT_TOKEN(anon_sym_LBRACE_PERCENT); + END_STATE(); + case 739: + ACCEPT_TOKEN(anon_sym_autoescape); + END_STATE(); + case 740: + ACCEPT_TOKEN(anon_sym_on); + END_STATE(); + case 741: + ACCEPT_TOKEN(anon_sym_off); + END_STATE(); + case 742: + ACCEPT_TOKEN(anon_sym_PERCENT_RBRACE); + END_STATE(); + case 743: + ACCEPT_TOKEN(anon_sym_endautoescape); + END_STATE(); + case 744: + ACCEPT_TOKEN(anon_sym_block); + END_STATE(); + case 745: + ACCEPT_TOKEN(anon_sym_endblock); + END_STATE(); + case 746: + ACCEPT_TOKEN(anon_sym_csrf_token); + END_STATE(); + case 747: + ACCEPT_TOKEN(anon_sym_cycle); + END_STATE(); + case 748: + ACCEPT_TOKEN(anon_sym_as); + END_STATE(); + case 749: + ACCEPT_TOKEN(anon_sym_as); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(654); + END_STATE(); + case 750: + ACCEPT_TOKEN(anon_sym_silent); + END_STATE(); + case 751: + ACCEPT_TOKEN(anon_sym_silent); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(654); + END_STATE(); + case 752: + ACCEPT_TOKEN(anon_sym_debug); + END_STATE(); + case 753: + ACCEPT_TOKEN(anon_sym_extends); + END_STATE(); + case 754: + ACCEPT_TOKEN(anon_sym_filter); + END_STATE(); + case 755: + ACCEPT_TOKEN(anon_sym_endfilter); + END_STATE(); + case 756: + ACCEPT_TOKEN(anon_sym_firstof); + END_STATE(); + case 757: + ACCEPT_TOKEN(anon_sym_for); + END_STATE(); + case 758: + ACCEPT_TOKEN(anon_sym_COMMA); + END_STATE(); + case 759: + ACCEPT_TOKEN(anon_sym_empty); + END_STATE(); + case 760: + ACCEPT_TOKEN(anon_sym_endfor); + END_STATE(); + case 761: + ACCEPT_TOKEN(anon_sym_if); + if (lookahead == 'c') ADVANCE(282); + END_STATE(); + case 762: + ACCEPT_TOKEN(anon_sym_elif); + END_STATE(); + case 763: + ACCEPT_TOKEN(anon_sym_else); + END_STATE(); + case 764: + ACCEPT_TOKEN(anon_sym_endif); + END_STATE(); + case 765: + ACCEPT_TOKEN(anon_sym_endif); + if (lookahead == 'c') ADVANCE(287); + END_STATE(); + case 766: + ACCEPT_TOKEN(anon_sym_ifchanged); + END_STATE(); + case 767: + ACCEPT_TOKEN(anon_sym_endifchanged); + END_STATE(); + case 768: + ACCEPT_TOKEN(anon_sym_include); + END_STATE(); + case 769: + ACCEPT_TOKEN(anon_sym_lorem); + END_STATE(); + case 770: + ACCEPT_TOKEN(anon_sym_w); + END_STATE(); + case 771: + ACCEPT_TOKEN(anon_sym_w); + if (lookahead == 'o') ADVANCE(481); + END_STATE(); + case 772: + ACCEPT_TOKEN(anon_sym_p); + END_STATE(); + case 773: + ACCEPT_TOKEN(anon_sym_p); + if (lookahead == 'h') ADVANCE(448); + if (lookahead == 'l') ADVANCE(602); + if (lookahead == 'p') ADVANCE(479); + END_STATE(); + case 774: + ACCEPT_TOKEN(anon_sym_b); + END_STATE(); + case 775: + ACCEPT_TOKEN(anon_sym_b); + if (lookahead == 'l') ADVANCE(427); + if (lookahead == 'y') ADVANCE(786); + END_STATE(); + case 776: + ACCEPT_TOKEN(anon_sym_b); + if (lookahead == 'y') ADVANCE(786); + END_STATE(); + case 777: + ACCEPT_TOKEN(anon_sym_now); + END_STATE(); + case 778: + ACCEPT_TOKEN(anon_sym_partial); + if (lookahead == 'd') ADVANCE(221); + END_STATE(); + case 779: + ACCEPT_TOKEN(anon_sym_partialdef); + END_STATE(); + case 780: + ACCEPT_TOKEN(anon_sym_inline); + END_STATE(); + case 781: + ACCEPT_TOKEN(anon_sym_endpartialdef); + END_STATE(); + case 782: + ACCEPT_TOKEN(anon_sym_querystring); + END_STATE(); + case 783: + ACCEPT_TOKEN(anon_sym_EQ); + END_STATE(); + case 784: + ACCEPT_TOKEN(anon_sym_EQ); + if (lookahead == '=') ADVANCE(657); + END_STATE(); + case 785: + ACCEPT_TOKEN(anon_sym_regroup); + END_STATE(); + case 786: + ACCEPT_TOKEN(anon_sym_by); + END_STATE(); + case 787: + ACCEPT_TOKEN(anon_sym_resetcycle); + END_STATE(); + case 788: + ACCEPT_TOKEN(anon_sym_spaceless); + END_STATE(); + case 789: + ACCEPT_TOKEN(anon_sym_endspaceless); + END_STATE(); + case 790: + ACCEPT_TOKEN(anon_sym_templatetag); + END_STATE(); + case 791: + ACCEPT_TOKEN(anon_sym_openblock); + END_STATE(); + case 792: + ACCEPT_TOKEN(anon_sym_closeblock); + END_STATE(); + case 793: + ACCEPT_TOKEN(anon_sym_openvariable); + END_STATE(); + case 794: + ACCEPT_TOKEN(anon_sym_closevariable); + END_STATE(); + case 795: + ACCEPT_TOKEN(anon_sym_openbrace); + END_STATE(); + case 796: + ACCEPT_TOKEN(anon_sym_closebrace); + END_STATE(); + case 797: + ACCEPT_TOKEN(anon_sym_opencomment); + END_STATE(); + case 798: + ACCEPT_TOKEN(anon_sym_closecomment); + END_STATE(); + case 799: + ACCEPT_TOKEN(anon_sym_url); + END_STATE(); + case 800: + ACCEPT_TOKEN(anon_sym_verbatim); + END_STATE(); + case 801: + ACCEPT_TOKEN(aux_sym_verbatim_group_token1); + if (lookahead == '\t' || + lookahead == ' ') ADVANCE(801); + if (lookahead != 0 && + lookahead != '\t' && + lookahead != '\n') ADVANCE(802); + END_STATE(); + case 802: + ACCEPT_TOKEN(aux_sym_verbatim_group_token1); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(802); + END_STATE(); + case 803: + ACCEPT_TOKEN(anon_sym_endverbatim); + END_STATE(); + case 804: + ACCEPT_TOKEN(anon_sym_with); + END_STATE(); + case 805: + ACCEPT_TOKEN(anon_sym_endwith); + END_STATE(); + default: + return false; + } +} + +static const TSLexerMode ts_lex_modes[STATE_COUNT] = { + [0] = {.lex_state = 0, .external_lex_state = 1}, + [1] = {.lex_state = 637}, + [2] = {.lex_state = 1}, + [3] = {.lex_state = 1}, + [4] = {.lex_state = 1}, + [5] = {.lex_state = 1}, + [6] = {.lex_state = 1}, + [7] = {.lex_state = 1}, + [8] = {.lex_state = 1}, + [9] = {.lex_state = 1}, + [10] = {.lex_state = 1}, + [11] = {.lex_state = 1}, + [12] = {.lex_state = 1}, + [13] = {.lex_state = 1}, + [14] = {.lex_state = 1}, + [15] = {.lex_state = 1}, + [16] = {.lex_state = 1}, + [17] = {.lex_state = 1}, + [18] = {.lex_state = 637}, + [19] = {.lex_state = 637}, + [20] = {.lex_state = 637}, + [21] = {.lex_state = 637}, + [22] = {.lex_state = 637}, + [23] = {.lex_state = 637}, + [24] = {.lex_state = 637}, + [25] = {.lex_state = 637}, + [26] = {.lex_state = 637}, + [27] = {.lex_state = 637}, + [28] = {.lex_state = 637}, + [29] = {.lex_state = 637}, + [30] = {.lex_state = 637}, + [31] = {.lex_state = 637}, + [32] = {.lex_state = 637}, + [33] = {.lex_state = 637}, + [34] = {.lex_state = 637}, + [35] = {.lex_state = 637}, + [36] = {.lex_state = 637}, + [37] = {.lex_state = 637}, + [38] = {.lex_state = 637}, + [39] = {.lex_state = 637}, + [40] = {.lex_state = 637}, + [41] = {.lex_state = 637}, + [42] = {.lex_state = 637}, + [43] = {.lex_state = 637}, + [44] = {.lex_state = 637}, + [45] = {.lex_state = 637}, + [46] = {.lex_state = 637}, + [47] = {.lex_state = 637}, + [48] = {.lex_state = 637}, + [49] = {.lex_state = 637}, + [50] = {.lex_state = 637}, + [51] = {.lex_state = 637}, + [52] = {.lex_state = 637}, + [53] = {.lex_state = 637}, + [54] = {.lex_state = 637}, + [55] = {.lex_state = 637}, + [56] = {.lex_state = 637}, + [57] = {.lex_state = 637}, + [58] = {.lex_state = 637}, + [59] = {.lex_state = 637}, + [60] = {.lex_state = 637}, + [61] = {.lex_state = 637}, + [62] = {.lex_state = 637}, + [63] = {.lex_state = 17}, + [64] = {.lex_state = 17}, + [65] = {.lex_state = 17}, + [66] = {.lex_state = 17}, + [67] = {.lex_state = 17}, + [68] = {.lex_state = 17}, + [69] = {.lex_state = 17}, + [70] = {.lex_state = 17}, + [71] = {.lex_state = 17}, + [72] = {.lex_state = 17}, + [73] = {.lex_state = 17}, + [74] = {.lex_state = 17}, + [75] = {.lex_state = 17}, + [76] = {.lex_state = 17}, + [77] = {.lex_state = 17}, + [78] = {.lex_state = 17}, + [79] = {.lex_state = 17}, + [80] = {.lex_state = 17}, + [81] = {.lex_state = 17}, + [82] = {.lex_state = 17}, + [83] = {.lex_state = 17}, + [84] = {.lex_state = 101}, + [85] = {.lex_state = 17}, + [86] = {.lex_state = 17}, + [87] = {.lex_state = 17}, + [88] = {.lex_state = 17}, + [89] = {.lex_state = 17}, + [90] = {.lex_state = 17}, + [91] = {.lex_state = 17}, + [92] = {.lex_state = 17}, + [93] = {.lex_state = 17}, + [94] = {.lex_state = 101}, + [95] = {.lex_state = 17}, + [96] = {.lex_state = 17}, + [97] = {.lex_state = 17}, + [98] = {.lex_state = 17}, + [99] = {.lex_state = 101}, + [100] = {.lex_state = 17}, + [101] = {.lex_state = 101}, + [102] = {.lex_state = 17}, + [103] = {.lex_state = 17}, + [104] = {.lex_state = 17}, + [105] = {.lex_state = 2}, + [106] = {.lex_state = 2}, + [107] = {.lex_state = 2}, + [108] = {.lex_state = 2}, + [109] = {.lex_state = 2}, + [110] = {.lex_state = 2}, + [111] = {.lex_state = 2}, + [112] = {.lex_state = 2}, + [113] = {.lex_state = 2}, + [114] = {.lex_state = 2}, + [115] = {.lex_state = 2}, + [116] = {.lex_state = 2}, + [117] = {.lex_state = 1}, + [118] = {.lex_state = 1}, + [119] = {.lex_state = 1}, + [120] = {.lex_state = 1}, + [121] = {.lex_state = 1}, + [122] = {.lex_state = 1}, + [123] = {.lex_state = 1}, + [124] = {.lex_state = 7}, + [125] = {.lex_state = 7}, + [126] = {.lex_state = 5}, + [127] = {.lex_state = 7}, + [128] = {.lex_state = 5}, + [129] = {.lex_state = 5}, + [130] = {.lex_state = 5}, + [131] = {.lex_state = 5}, + [132] = {.lex_state = 5}, + [133] = {.lex_state = 5}, + [134] = {.lex_state = 6}, + [135] = {.lex_state = 11}, + [136] = {.lex_state = 6}, + [137] = {.lex_state = 11}, + [138] = {.lex_state = 6}, + [139] = {.lex_state = 6}, + [140] = {.lex_state = 11}, + [141] = {.lex_state = 6}, + [142] = {.lex_state = 7}, + [143] = {.lex_state = 0}, + [144] = {.lex_state = 6}, + [145] = {.lex_state = 7}, + [146] = {.lex_state = 7}, + [147] = {.lex_state = 7}, + [148] = {.lex_state = 6}, + [149] = {.lex_state = 0}, + [150] = {.lex_state = 7}, + [151] = {.lex_state = 7}, + [152] = {.lex_state = 5}, + [153] = {.lex_state = 11}, + [154] = {.lex_state = 7}, + [155] = {.lex_state = 7}, + [156] = {.lex_state = 6}, + [157] = {.lex_state = 7}, + [158] = {.lex_state = 7}, + [159] = {.lex_state = 6}, + [160] = {.lex_state = 5}, + [161] = {.lex_state = 6}, + [162] = {.lex_state = 6}, + [163] = {.lex_state = 6}, + [164] = {.lex_state = 5}, + [165] = {.lex_state = 5}, + [166] = {.lex_state = 5}, + [167] = {.lex_state = 6}, + [168] = {.lex_state = 6}, + [169] = {.lex_state = 6}, + [170] = {.lex_state = 7}, + [171] = {.lex_state = 6}, + [172] = {.lex_state = 6}, + [173] = {.lex_state = 7}, + [174] = {.lex_state = 6}, + [175] = {.lex_state = 6}, + [176] = {.lex_state = 6}, + [177] = {.lex_state = 6}, + [178] = {.lex_state = 6}, + [179] = {.lex_state = 6}, + [180] = {.lex_state = 6}, + [181] = {.lex_state = 6}, + [182] = {.lex_state = 6}, + [183] = {.lex_state = 6}, + [184] = {.lex_state = 6}, + [185] = {.lex_state = 5}, + [186] = {.lex_state = 6}, + [187] = {.lex_state = 6}, + [188] = {.lex_state = 5}, + [189] = {.lex_state = 5}, + [190] = {.lex_state = 6}, + [191] = {.lex_state = 6}, + [192] = {.lex_state = 6}, + [193] = {.lex_state = 6}, + [194] = {.lex_state = 6}, + [195] = {.lex_state = 6}, + [196] = {.lex_state = 6}, + [197] = {.lex_state = 6}, + [198] = {.lex_state = 6}, + [199] = {.lex_state = 5}, + [200] = {.lex_state = 5}, + [201] = {.lex_state = 5}, + [202] = {.lex_state = 5}, + [203] = {.lex_state = 637}, + [204] = {.lex_state = 637}, + [205] = {.lex_state = 637}, + [206] = {.lex_state = 637}, + [207] = {.lex_state = 637}, + [208] = {.lex_state = 637}, + [209] = {.lex_state = 15}, + [210] = {.lex_state = 5}, + [211] = {.lex_state = 637}, + [212] = {.lex_state = 637}, + [213] = {.lex_state = 637}, + [214] = {.lex_state = 5}, + [215] = {.lex_state = 5}, + [216] = {.lex_state = 637}, + [217] = {.lex_state = 637}, + [218] = {.lex_state = 637}, + [219] = {.lex_state = 637}, + [220] = {.lex_state = 637}, + [221] = {.lex_state = 637}, + [222] = {.lex_state = 637}, + [223] = {.lex_state = 5}, + [224] = {.lex_state = 637}, + [225] = {.lex_state = 637}, + [226] = {.lex_state = 637}, + [227] = {.lex_state = 637}, + [228] = {.lex_state = 637}, + [229] = {.lex_state = 637}, + [230] = {.lex_state = 637}, + [231] = {.lex_state = 637}, + [232] = {.lex_state = 637}, + [233] = {.lex_state = 637}, + [234] = {.lex_state = 637}, + [235] = {.lex_state = 637}, + [236] = {.lex_state = 637}, + [237] = {.lex_state = 637}, + [238] = {.lex_state = 637}, + [239] = {.lex_state = 637}, + [240] = {.lex_state = 637}, + [241] = {.lex_state = 637}, + [242] = {.lex_state = 637}, + [243] = {.lex_state = 637}, + [244] = {.lex_state = 637}, + [245] = {.lex_state = 637}, + [246] = {.lex_state = 637}, + [247] = {.lex_state = 637}, + [248] = {.lex_state = 637}, + [249] = {.lex_state = 637}, + [250] = {.lex_state = 637}, + [251] = {.lex_state = 637}, + [252] = {.lex_state = 637}, + [253] = {.lex_state = 6}, + [254] = {.lex_state = 637}, + [255] = {.lex_state = 637}, + [256] = {.lex_state = 637}, + [257] = {.lex_state = 637}, + [258] = {.lex_state = 637}, + [259] = {.lex_state = 637}, + [260] = {.lex_state = 637}, + [261] = {.lex_state = 6}, + [262] = {.lex_state = 6}, + [263] = {.lex_state = 637}, + [264] = {.lex_state = 637}, + [265] = {.lex_state = 637}, + [266] = {.lex_state = 637}, + [267] = {.lex_state = 637}, + [268] = {.lex_state = 637}, + [269] = {.lex_state = 6}, + [270] = {.lex_state = 637}, + [271] = {.lex_state = 637}, + [272] = {.lex_state = 637}, + [273] = {.lex_state = 637}, + [274] = {.lex_state = 637}, + [275] = {.lex_state = 637}, + [276] = {.lex_state = 637}, + [277] = {.lex_state = 6}, + [278] = {.lex_state = 637}, + [279] = {.lex_state = 637}, + [280] = {.lex_state = 637}, + [281] = {.lex_state = 637}, + [282] = {.lex_state = 6}, + [283] = {.lex_state = 637}, + [284] = {.lex_state = 637}, + [285] = {.lex_state = 6}, + [286] = {.lex_state = 637}, + [287] = {.lex_state = 637}, + [288] = {.lex_state = 0}, + [289] = {.lex_state = 11}, + [290] = {.lex_state = 637}, + [291] = {.lex_state = 637}, + [292] = {.lex_state = 1}, + [293] = {.lex_state = 637}, + [294] = {.lex_state = 637}, + [295] = {.lex_state = 637}, + [296] = {.lex_state = 637}, + [297] = {.lex_state = 637}, + [298] = {.lex_state = 637}, + [299] = {.lex_state = 637}, + [300] = {.lex_state = 637}, + [301] = {.lex_state = 637}, + [302] = {.lex_state = 637}, + [303] = {.lex_state = 637}, + [304] = {.lex_state = 637}, + [305] = {.lex_state = 637}, + [306] = {.lex_state = 5}, + [307] = {.lex_state = 637}, + [308] = {.lex_state = 637}, + [309] = {.lex_state = 637}, + [310] = {.lex_state = 637}, + [311] = {.lex_state = 637}, + [312] = {.lex_state = 637}, + [313] = {.lex_state = 637}, + [314] = {.lex_state = 637}, + [315] = {.lex_state = 637}, + [316] = {.lex_state = 637}, + [317] = {.lex_state = 637}, + [318] = {.lex_state = 637}, + [319] = {.lex_state = 637}, + [320] = {.lex_state = 637}, + [321] = {.lex_state = 637}, + [322] = {.lex_state = 637}, + [323] = {.lex_state = 637}, + [324] = {.lex_state = 637}, + [325] = {.lex_state = 637}, + [326] = {.lex_state = 637}, + [327] = {.lex_state = 637}, + [328] = {.lex_state = 637}, + [329] = {.lex_state = 637}, + [330] = {.lex_state = 637}, + [331] = {.lex_state = 637}, + [332] = {.lex_state = 637}, + [333] = {.lex_state = 637}, + [334] = {.lex_state = 637}, + [335] = {.lex_state = 6}, + [336] = {.lex_state = 637}, + [337] = {.lex_state = 637}, + [338] = {.lex_state = 637}, + [339] = {.lex_state = 637}, + [340] = {.lex_state = 637}, + [341] = {.lex_state = 637}, + [342] = {.lex_state = 637}, + [343] = {.lex_state = 637}, + [344] = {.lex_state = 637}, + [345] = {.lex_state = 637}, + [346] = {.lex_state = 637}, + [347] = {.lex_state = 637}, + [348] = {.lex_state = 637}, + [349] = {.lex_state = 637}, + [350] = {.lex_state = 637}, + [351] = {.lex_state = 637}, + [352] = {.lex_state = 637}, + [353] = {.lex_state = 637}, + [354] = {.lex_state = 637}, + [355] = {.lex_state = 637}, + [356] = {.lex_state = 637}, + [357] = {.lex_state = 637}, + [358] = {.lex_state = 637}, + [359] = {.lex_state = 637}, + [360] = {.lex_state = 637}, + [361] = {.lex_state = 637}, + [362] = {.lex_state = 637}, + [363] = {.lex_state = 0}, + [364] = {.lex_state = 6}, + [365] = {.lex_state = 16}, + [366] = {.lex_state = 11}, + [367] = {.lex_state = 6}, + [368] = {.lex_state = 6}, + [369] = {.lex_state = 6}, + [370] = {.lex_state = 11}, + [371] = {.lex_state = 6}, + [372] = {.lex_state = 5}, + [373] = {.lex_state = 6}, + [374] = {.lex_state = 0}, + [375] = {.lex_state = 6}, + [376] = {.lex_state = 5}, + [377] = {.lex_state = 5}, + [378] = {.lex_state = 637}, + [379] = {.lex_state = 0}, + [380] = {.lex_state = 1}, + [381] = {.lex_state = 1}, + [382] = {.lex_state = 0}, + [383] = {.lex_state = 5}, + [384] = {.lex_state = 6}, + [385] = {.lex_state = 0}, + [386] = {.lex_state = 6}, + [387] = {.lex_state = 6}, + [388] = {.lex_state = 6}, + [389] = {.lex_state = 6}, + [390] = {.lex_state = 1}, + [391] = {.lex_state = 102}, + [392] = {.lex_state = 0}, + [393] = {.lex_state = 1}, + [394] = {.lex_state = 1}, + [395] = {.lex_state = 1}, + [396] = {.lex_state = 6}, + [397] = {.lex_state = 6}, + [398] = {.lex_state = 6}, + [399] = {.lex_state = 6}, + [400] = {.lex_state = 102}, + [401] = {.lex_state = 6}, + [402] = {.lex_state = 6}, + [403] = {.lex_state = 0}, + [404] = {.lex_state = 0}, + [405] = {.lex_state = 0}, + [406] = {.lex_state = 0}, + [407] = {.lex_state = 6}, + [408] = {.lex_state = 6}, + [409] = {.lex_state = 0}, + [410] = {.lex_state = 0}, + [411] = {.lex_state = 0}, + [412] = {.lex_state = 0}, + [413] = {.lex_state = 6}, + [414] = {.lex_state = 0}, + [415] = {.lex_state = 0}, + [416] = {.lex_state = 0}, + [417] = {.lex_state = 6}, + [418] = {.lex_state = 0}, + [419] = {.lex_state = 0}, + [420] = {.lex_state = 0}, + [421] = {.lex_state = 6}, + [422] = {.lex_state = 6}, + [423] = {.lex_state = 0}, + [424] = {.lex_state = 0}, + [425] = {.lex_state = 0}, + [426] = {.lex_state = 0}, + [427] = {.lex_state = 0}, + [428] = {.lex_state = 17}, + [429] = {.lex_state = 0}, + [430] = {.lex_state = 0}, + [431] = {.lex_state = 0}, + [432] = {.lex_state = 6}, + [433] = {.lex_state = 0}, + [434] = {.lex_state = 6}, + [435] = {.lex_state = 17}, + [436] = {.lex_state = 0}, + [437] = {.lex_state = 0}, + [438] = {.lex_state = 0}, + [439] = {.lex_state = 0}, + [440] = {.lex_state = 0, .external_lex_state = 2}, + [441] = {.lex_state = 0}, + [442] = {.lex_state = 0}, + [443] = {.lex_state = 0}, + [444] = {.lex_state = 0}, + [445] = {.lex_state = 0}, + [446] = {.lex_state = 0}, + [447] = {.lex_state = 0}, + [448] = {.lex_state = 0}, + [449] = {.lex_state = 6}, + [450] = {.lex_state = 0}, + [451] = {.lex_state = 0}, + [452] = {.lex_state = 0}, + [453] = {.lex_state = 0}, + [454] = {.lex_state = 0}, + [455] = {.lex_state = 0}, + [456] = {.lex_state = 0}, + [457] = {.lex_state = 670}, + [458] = {.lex_state = 0}, + [459] = {.lex_state = 101}, + [460] = {.lex_state = 6}, + [461] = {.lex_state = 0}, + [462] = {.lex_state = 0}, + [463] = {.lex_state = 0, .external_lex_state = 3}, + [464] = {.lex_state = 0}, + [465] = {.lex_state = 6}, + [466] = {.lex_state = 0}, + [467] = {.lex_state = 0}, + [468] = {.lex_state = 0}, + [469] = {.lex_state = 6}, + [470] = {.lex_state = 0}, + [471] = {.lex_state = 0}, + [472] = {.lex_state = 0}, + [473] = {.lex_state = 0}, + [474] = {.lex_state = 0}, + [475] = {.lex_state = 0}, + [476] = {.lex_state = 0}, + [477] = {.lex_state = 0}, + [478] = {.lex_state = 0}, + [479] = {.lex_state = 0}, + [480] = {.lex_state = 0}, + [481] = {.lex_state = 0}, + [482] = {.lex_state = 0}, + [483] = {.lex_state = 0}, + [484] = {.lex_state = 0}, + [485] = {.lex_state = 17}, + [486] = {.lex_state = 0}, + [487] = {.lex_state = 627}, + [488] = {.lex_state = 0}, + [489] = {.lex_state = 0, .external_lex_state = 2}, + [490] = {.lex_state = 0}, + [491] = {.lex_state = 0, .external_lex_state = 4}, + [492] = {.lex_state = 0}, + [493] = {.lex_state = 0}, + [494] = {.lex_state = 0}, + [495] = {.lex_state = 0}, + [496] = {.lex_state = 0}, + [497] = {.lex_state = 0}, + [498] = {.lex_state = 0}, + [499] = {.lex_state = 0}, + [500] = {.lex_state = 0}, + [501] = {.lex_state = 0}, + [502] = {.lex_state = 0}, + [503] = {.lex_state = 0, .external_lex_state = 5}, + [504] = {.lex_state = 0}, + [505] = {.lex_state = 17}, + [506] = {.lex_state = 0}, + [507] = {.lex_state = 0}, + [508] = {.lex_state = 101}, + [509] = {.lex_state = 0}, + [510] = {.lex_state = 0}, + [511] = {.lex_state = 0}, + [512] = {.lex_state = 0}, + [513] = {.lex_state = 1}, + [514] = {.lex_state = 0}, + [515] = {.lex_state = 0}, + [516] = {.lex_state = 0}, + [517] = {.lex_state = 0}, + [518] = {.lex_state = 0}, + [519] = {.lex_state = 0}, + [520] = {.lex_state = 0}, + [521] = {.lex_state = 0}, + [522] = {.lex_state = 0}, + [523] = {.lex_state = 0}, + [524] = {.lex_state = 0}, + [525] = {.lex_state = 0}, + [526] = {.lex_state = 0}, + [527] = {.lex_state = 0}, + [528] = {.lex_state = 0}, + [529] = {.lex_state = 0}, + [530] = {.lex_state = 0}, + [531] = {.lex_state = 0}, + [532] = {.lex_state = 0}, + [533] = {.lex_state = 0}, + [534] = {.lex_state = 0}, + [535] = {.lex_state = 0}, + [536] = {.lex_state = 0}, + [537] = {.lex_state = 0}, + [538] = {.lex_state = 0}, + [539] = {.lex_state = 0}, + [540] = {.lex_state = 0}, + [541] = {.lex_state = 0}, + [542] = {.lex_state = 0}, + [543] = {.lex_state = 0}, + [544] = {.lex_state = 0}, + [545] = {.lex_state = 0}, + [546] = {.lex_state = 0}, + [547] = {.lex_state = 0}, + [548] = {.lex_state = 0}, + [549] = {.lex_state = 0}, + [550] = {.lex_state = 0}, + [551] = {.lex_state = 0}, + [552] = {.lex_state = 0}, + [553] = {.lex_state = 0}, + [554] = {.lex_state = 0}, + [555] = {.lex_state = 0}, + [556] = {.lex_state = 0}, + [557] = {.lex_state = 0}, + [558] = {.lex_state = 0}, + [559] = {.lex_state = 0}, + [560] = {.lex_state = 627}, + [561] = {.lex_state = 0}, + [562] = {.lex_state = 627}, + [563] = {.lex_state = 0}, + [564] = {.lex_state = 0}, + [565] = {.lex_state = 0}, + [566] = {.lex_state = 0}, + [567] = {.lex_state = 0}, + [568] = {.lex_state = 670}, + [569] = {.lex_state = 0}, + [570] = {.lex_state = 0}, + [571] = {.lex_state = 0}, + [572] = {.lex_state = 0}, + [573] = {.lex_state = 0}, + [574] = {.lex_state = 0}, + [575] = {.lex_state = 0, .external_lex_state = 3}, + [576] = {.lex_state = 0}, + [577] = {.lex_state = 6}, + [578] = {.lex_state = 0}, + [579] = {.lex_state = 0}, + [580] = {.lex_state = 0}, + [581] = {.lex_state = 6}, + [582] = {.lex_state = 6}, + [583] = {.lex_state = 0}, + [584] = {.lex_state = 6}, + [585] = {.lex_state = 627}, + [586] = {.lex_state = 0}, + [587] = {.lex_state = 6}, + [588] = {.lex_state = 0}, + [589] = {.lex_state = 0, .external_lex_state = 6}, + [590] = {.lex_state = 6}, + [591] = {.lex_state = 101}, + [592] = {.lex_state = 0}, + [593] = {.lex_state = 0}, + [594] = {.lex_state = 6}, + [595] = {.lex_state = 6}, + [596] = {.lex_state = 0}, + [597] = {.lex_state = 0, .external_lex_state = 2}, + [598] = {.lex_state = 0}, + [599] = {.lex_state = 627}, + [600] = {.lex_state = 0}, + [601] = {.lex_state = 101}, + [602] = {.lex_state = 0, .external_lex_state = 3}, + [603] = {.lex_state = 6}, + [604] = {.lex_state = 0}, + [605] = {.lex_state = 0, .external_lex_state = 2}, + [606] = {.lex_state = 0, .external_lex_state = 7}, + [607] = {.lex_state = 0}, + [608] = {.lex_state = 0, .external_lex_state = 3}, + [609] = {.lex_state = 0, .external_lex_state = 6}, + [610] = {.lex_state = 1}, + [611] = {.lex_state = 0}, + [612] = {.lex_state = 0}, + [613] = {.lex_state = 0, .external_lex_state = 3}, + [614] = {.lex_state = 0}, + [615] = {.lex_state = 1}, + [616] = {.lex_state = 0}, + [617] = {.lex_state = 0}, + [618] = {.lex_state = 0}, + [619] = {.lex_state = 1}, + [620] = {.lex_state = 0}, + [621] = {.lex_state = 1}, + [622] = {.lex_state = 0}, + [623] = {.lex_state = 0}, + [624] = {.lex_state = 0}, + [625] = {.lex_state = 1}, + [626] = {.lex_state = 0}, + [627] = {.lex_state = 0}, + [628] = {.lex_state = 0}, + [629] = {.lex_state = 0}, + [630] = {.lex_state = 0}, + [631] = {.lex_state = 6}, + [632] = {.lex_state = 0}, + [633] = {.lex_state = 0}, + [634] = {.lex_state = 1}, + [635] = {.lex_state = 0}, + [636] = {.lex_state = 0}, + [637] = {.lex_state = 0}, + [638] = {.lex_state = 17}, + [639] = {.lex_state = 0}, + [640] = {.lex_state = 0}, + [641] = {.lex_state = 0}, + [642] = {.lex_state = 627}, + [643] = {.lex_state = 0}, + [644] = {.lex_state = 0}, + [645] = {.lex_state = 0}, + [646] = {.lex_state = 0}, + [647] = {.lex_state = 0}, + [648] = {.lex_state = 0}, + [649] = {.lex_state = 0}, + [650] = {.lex_state = 0}, + [651] = {.lex_state = 0}, + [652] = {.lex_state = 0, .external_lex_state = 3}, + [653] = {.lex_state = 0}, + [654] = {.lex_state = 0}, + [655] = {.lex_state = 0}, + [656] = {.lex_state = 0}, + [657] = {.lex_state = 0}, + [658] = {.lex_state = 0}, + [659] = {.lex_state = 0}, + [660] = {.lex_state = 0}, + [661] = {.lex_state = 0}, + [662] = {.lex_state = 0}, + [663] = {.lex_state = 0}, + [664] = {.lex_state = 0}, + [665] = {.lex_state = 0}, + [666] = {.lex_state = 0}, + [667] = {.lex_state = 0}, + [668] = {.lex_state = 0}, + [669] = {.lex_state = 0}, + [670] = {.lex_state = 0}, + [671] = {.lex_state = 0}, + [672] = {.lex_state = 0}, + [673] = {.lex_state = 0}, + [674] = {.lex_state = 0}, + [675] = {.lex_state = 0}, + [676] = {.lex_state = 0}, + [677] = {.lex_state = 6}, + [678] = {.lex_state = 0}, + [679] = {.lex_state = 0}, + [680] = {.lex_state = 0}, + [681] = {.lex_state = 0}, + [682] = {.lex_state = 0}, + [683] = {.lex_state = 0}, + [684] = {.lex_state = 0}, + [685] = {.lex_state = 1}, + [686] = {.lex_state = 6}, + [687] = {.lex_state = 0}, + [688] = {.lex_state = 0}, + [689] = {.lex_state = 0}, + [690] = {.lex_state = 0}, + [691] = {.lex_state = 0}, + [692] = {.lex_state = 0}, + [693] = {.lex_state = 0}, + [694] = {.lex_state = 0}, + [695] = {.lex_state = 0}, + [696] = {.lex_state = 0}, + [697] = {.lex_state = 0}, + [698] = {.lex_state = 0}, + [699] = {.lex_state = 0}, + [700] = {.lex_state = 0}, + [701] = {.lex_state = 0}, + [702] = {.lex_state = 0}, + [703] = {.lex_state = 1}, + [704] = {.lex_state = 0}, + [705] = {.lex_state = 0}, + [706] = {.lex_state = 0}, + [707] = {.lex_state = 1}, + [708] = {.lex_state = 801}, + [709] = {.lex_state = 0}, + [710] = {.lex_state = 801}, + [711] = {.lex_state = 0}, + [712] = {.lex_state = 0, .external_lex_state = 5}, + [713] = {.lex_state = 0, .external_lex_state = 7}, + [714] = {.lex_state = 0}, + [715] = {.lex_state = 0}, + [716] = {.lex_state = 0}, + [717] = {.lex_state = 6}, + [718] = {.lex_state = 0, .external_lex_state = 4}, + [719] = {.lex_state = 0}, +}; + +static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { + [STATE(0)] = { + [ts_builtin_sym_end] = ACTIONS(1), + [anon_sym_PIPE] = ACTIONS(1), + [sym_number] = ACTIONS(1), + [sym_string] = ACTIONS(1), + [anon_sym_DOT] = ACTIONS(1), + [anon_sym_and] = ACTIONS(1), + [anon_sym_or] = ACTIONS(1), + [anon_sym_EQ_EQ] = ACTIONS(1), + [anon_sym_BANG_EQ] = ACTIONS(1), + [anon_sym_LT] = ACTIONS(1), + [anon_sym_GT] = ACTIONS(1), + [anon_sym_LT_EQ] = ACTIONS(1), + [anon_sym_GT_EQ] = ACTIONS(1), + [anon_sym_in] = ACTIONS(1), + [anon_sym_not] = ACTIONS(1), + [anon_sym_is] = ACTIONS(1), + [anon_sym_LBRACE_LBRACE] = ACTIONS(1), + [anon_sym_RBRACE_RBRACE] = ACTIONS(1), + [anon_sym_LBRACE_POUND] = ACTIONS(1), + [anon_sym_POUND_RBRACE] = ACTIONS(1), + [anon_sym_add_COLON] = ACTIONS(1), + [anon_sym_addslashes] = ACTIONS(1), + [anon_sym_capfirst] = ACTIONS(1), + [anon_sym_center_COLON] = ACTIONS(1), + [anon_sym_cut_COLON] = ACTIONS(1), + [anon_sym_date_COLON] = ACTIONS(1), + [anon_sym_date] = ACTIONS(1), + [anon_sym_default_COLON] = ACTIONS(1), + [anon_sym_default_if_none_COLON] = ACTIONS(1), + [anon_sym_dictsort_COLON] = ACTIONS(1), + [anon_sym_dictsortreversed_COLON] = ACTIONS(1), + [anon_sym_divisibleby_COLON] = ACTIONS(1), + [anon_sym_escape] = ACTIONS(1), + [anon_sym_escapejs] = ACTIONS(1), + [anon_sym_filesizeformat] = ACTIONS(1), + [anon_sym_first] = ACTIONS(1), + [anon_sym_floatformat_COLON] = ACTIONS(1), + [anon_sym_floatformat] = ACTIONS(1), + [anon_sym_get_digit_COLON] = ACTIONS(1), + [anon_sym_iriencode] = ACTIONS(1), + [anon_sym_join_COLON] = ACTIONS(1), + [anon_sym_json_script_COLON] = ACTIONS(1), + [anon_sym_json_script] = ACTIONS(1), + [anon_sym_last] = ACTIONS(1), + [anon_sym_length] = ACTIONS(1), + [anon_sym_length_is_COLON] = ACTIONS(1), + [anon_sym_linebreaks] = ACTIONS(1), + [anon_sym_linebreaksbr] = ACTIONS(1), + [anon_sym_linenumbers] = ACTIONS(1), + [anon_sym_ljust_COLON] = ACTIONS(1), + [anon_sym_lower] = ACTIONS(1), + [anon_sym_make_list] = ACTIONS(1), + [anon_sym_phone2numeric] = ACTIONS(1), + [anon_sym_pluralize_COLON] = ACTIONS(1), + [anon_sym_pluralize] = ACTIONS(1), + [anon_sym_pprint] = ACTIONS(1), + [anon_sym_random] = ACTIONS(1), + [anon_sym_rjust_COLON] = ACTIONS(1), + [anon_sym_safe] = ACTIONS(1), + [anon_sym_safeseq] = ACTIONS(1), + [anon_sym_slice_COLON] = ACTIONS(1), + [anon_sym_slugify] = ACTIONS(1), + [anon_sym_stringformat_COLON] = ACTIONS(1), + [anon_sym_striptags] = ACTIONS(1), + [anon_sym_time_COLON] = ACTIONS(1), + [anon_sym_time] = ACTIONS(1), + [anon_sym_timesince_COLON] = ACTIONS(1), + [anon_sym_timesince] = ACTIONS(1), + [anon_sym_timeuntil_COLON] = ACTIONS(1), + [anon_sym_timeuntil] = ACTIONS(1), + [anon_sym_title] = ACTIONS(1), + [anon_sym_truncatechars_COLON] = ACTIONS(1), + [anon_sym_truncatechars_html_COLON] = ACTIONS(1), + [anon_sym_truncatewords_COLON] = ACTIONS(1), + [anon_sym_truncatewords_html_COLON] = ACTIONS(1), + [anon_sym_unordered_list] = ACTIONS(1), + [anon_sym_wordcount] = ACTIONS(1), + [anon_sym_wordwrap_COLON] = ACTIONS(1), + [anon_sym_yesno_COLON] = ACTIONS(1), + [anon_sym_yesno] = ACTIONS(1), + [anon_sym_LBRACE_PERCENT] = ACTIONS(1), + [anon_sym_autoescape] = ACTIONS(1), + [anon_sym_on] = ACTIONS(1), + [anon_sym_off] = ACTIONS(1), + [anon_sym_PERCENT_RBRACE] = ACTIONS(1), + [anon_sym_endautoescape] = ACTIONS(1), + [anon_sym_block] = ACTIONS(1), + [anon_sym_endblock] = ACTIONS(1), + [anon_sym_csrf_token] = ACTIONS(1), + [anon_sym_cycle] = ACTIONS(1), + [anon_sym_as] = ACTIONS(1), + [anon_sym_silent] = ACTIONS(1), + [anon_sym_debug] = ACTIONS(1), + [anon_sym_extends] = ACTIONS(1), + [anon_sym_filter] = ACTIONS(1), + [anon_sym_endfilter] = ACTIONS(1), + [anon_sym_for] = ACTIONS(1), + [anon_sym_COMMA] = ACTIONS(1), + [anon_sym_empty] = ACTIONS(1), + [anon_sym_endfor] = ACTIONS(1), + [anon_sym_if] = ACTIONS(1), + [anon_sym_elif] = ACTIONS(1), + [anon_sym_else] = ACTIONS(1), + [anon_sym_endif] = ACTIONS(1), + [anon_sym_ifchanged] = ACTIONS(1), + [anon_sym_endifchanged] = ACTIONS(1), + [anon_sym_lorem] = ACTIONS(1), + [anon_sym_w] = ACTIONS(1), + [anon_sym_p] = ACTIONS(1), + [anon_sym_b] = ACTIONS(1), + [anon_sym_now] = ACTIONS(1), + [anon_sym_endpartialdef] = ACTIONS(1), + [anon_sym_querystring] = ACTIONS(1), + [anon_sym_EQ] = ACTIONS(1), + [anon_sym_regroup] = ACTIONS(1), + [anon_sym_by] = ACTIONS(1), + [anon_sym_resetcycle] = ACTIONS(1), + [anon_sym_spaceless] = ACTIONS(1), + [anon_sym_endspaceless] = ACTIONS(1), + [anon_sym_templatetag] = ACTIONS(1), + [anon_sym_openblock] = ACTIONS(1), + [anon_sym_closeblock] = ACTIONS(1), + [anon_sym_openvariable] = ACTIONS(1), + [anon_sym_closevariable] = ACTIONS(1), + [anon_sym_openbrace] = ACTIONS(1), + [anon_sym_closebrace] = ACTIONS(1), + [anon_sym_opencomment] = ACTIONS(1), + [anon_sym_closecomment] = ACTIONS(1), + [anon_sym_url] = ACTIONS(1), + [anon_sym_verbatim] = ACTIONS(1), + [anon_sym_endverbatim] = ACTIONS(1), + [anon_sym_endwith] = ACTIONS(1), + [sym_pop_block] = ACTIONS(1), + [sym_pop_partial] = ACTIONS(1), + [sym_pop_verbatim] = ACTIONS(1), + [sym_push_block] = ACTIONS(1), + [sym_push_partial] = ACTIONS(1), + [sym_push_verbatim] = ACTIONS(1), + [sym_matcher_error] = ACTIONS(1), + }, + [STATE(1)] = { + [sym_template] = STATE(635), + [sym_template_tag] = STATE(49), + [sym_template_variable] = STATE(217), + [sym_template_comment] = STATE(217), + [sym_template_block_groups] = STATE(217), + [sym_autoescape_group] = STATE(205), + [sym_block_group] = STATE(205), + [sym_csrf_token] = STATE(205), + [sym_cycle] = STATE(205), + [sym_debug] = STATE(205), + [sym_extends] = STATE(205), + [sym_filter_group] = STATE(205), + [sym_firstof] = STATE(205), + [sym_for_group] = STATE(205), + [sym_if_group] = STATE(205), + [sym_ifchanged_group] = STATE(205), + [sym_include] = STATE(205), + [sym_lorem] = STATE(205), + [sym_now] = STATE(205), + [sym_partial] = STATE(205), + [sym_partialdef_group] = STATE(205), + [sym_query_string] = STATE(205), + [sym_regroup] = STATE(205), + [sym_reset_cycle] = STATE(205), + [sym_spaceless_group] = STATE(205), + [sym_template_tag_block] = STATE(205), + [sym_url_block] = STATE(205), + [sym_verbatim_group] = STATE(205), + [sym_with_group] = STATE(205), + [aux_sym_template_repeat1] = STATE(49), + [sym_content] = ACTIONS(3), + [anon_sym_LBRACE_LBRACE] = ACTIONS(5), + [anon_sym_LBRACE_POUND] = ACTIONS(7), + [anon_sym_LBRACE_PERCENT] = ACTIONS(9), + }, + [STATE(2)] = { + [sym_filter_expression] = STATE(681), + [sym_filter] = STATE(374), + [anon_sym_add_COLON] = ACTIONS(11), + [anon_sym_addslashes] = ACTIONS(13), + [anon_sym_capfirst] = ACTIONS(13), + [anon_sym_center_COLON] = ACTIONS(11), + [anon_sym_cut_COLON] = ACTIONS(11), + [anon_sym_date_COLON] = ACTIONS(11), + [anon_sym_date] = ACTIONS(15), + [anon_sym_default_COLON] = ACTIONS(11), + [anon_sym_default_if_none_COLON] = ACTIONS(11), + [anon_sym_dictsort_COLON] = ACTIONS(11), + [anon_sym_dictsortreversed_COLON] = ACTIONS(11), + [anon_sym_divisibleby_COLON] = ACTIONS(11), + [anon_sym_escape] = ACTIONS(15), + [anon_sym_escapejs] = ACTIONS(13), + [anon_sym_filesizeformat] = ACTIONS(13), + [anon_sym_first] = ACTIONS(13), + [anon_sym_floatformat_COLON] = ACTIONS(11), + [anon_sym_floatformat] = ACTIONS(15), + [anon_sym_force_escape] = ACTIONS(13), + [anon_sym_get_digit_COLON] = ACTIONS(11), + [anon_sym_iriencode] = ACTIONS(13), + [anon_sym_join_COLON] = ACTIONS(11), + [anon_sym_json_script_COLON] = ACTIONS(11), + [anon_sym_json_script] = ACTIONS(15), + [anon_sym_last] = ACTIONS(13), + [anon_sym_length] = ACTIONS(15), + [anon_sym_length_is_COLON] = ACTIONS(11), + [anon_sym_linebreaks] = ACTIONS(15), + [anon_sym_linebreaksbr] = ACTIONS(13), + [anon_sym_linenumbers] = ACTIONS(13), + [anon_sym_ljust_COLON] = ACTIONS(11), + [anon_sym_lower] = ACTIONS(13), + [anon_sym_make_list] = ACTIONS(13), + [anon_sym_phone2numeric] = ACTIONS(13), + [anon_sym_pluralize_COLON] = ACTIONS(11), + [anon_sym_pluralize] = ACTIONS(15), + [anon_sym_pprint] = ACTIONS(13), + [anon_sym_random] = ACTIONS(13), + [anon_sym_rjust_COLON] = ACTIONS(11), + [anon_sym_safe] = ACTIONS(15), + [anon_sym_safeseq] = ACTIONS(13), + [anon_sym_slice_COLON] = ACTIONS(11), + [anon_sym_slugify] = ACTIONS(13), + [anon_sym_stringformat_COLON] = ACTIONS(11), + [anon_sym_striptags] = ACTIONS(13), + [anon_sym_time_COLON] = ACTIONS(11), + [anon_sym_time] = ACTIONS(15), + [anon_sym_timesince_COLON] = ACTIONS(11), + [anon_sym_timesince] = ACTIONS(15), + [anon_sym_timeuntil_COLON] = ACTIONS(11), + [anon_sym_timeuntil] = ACTIONS(15), + [anon_sym_title] = ACTIONS(13), + [anon_sym_truncatechars_COLON] = ACTIONS(11), + [anon_sym_truncatechars_html_COLON] = ACTIONS(11), + [anon_sym_truncatewords_COLON] = ACTIONS(11), + [anon_sym_truncatewords_html_COLON] = ACTIONS(11), + [anon_sym_unordered_list] = ACTIONS(13), + [anon_sym_urlencode_COLON] = ACTIONS(11), + [anon_sym_urlencode] = ACTIONS(15), + [anon_sym_urlize] = ACTIONS(15), + [anon_sym_urlizetrunc_COLON] = ACTIONS(11), + [anon_sym_wordcount] = ACTIONS(13), + [anon_sym_wordwrap_COLON] = ACTIONS(11), + [anon_sym_yesno_COLON] = ACTIONS(11), + [anon_sym_yesno] = ACTIONS(15), + }, + [STATE(3)] = { + [sym_filter_expression] = STATE(558), + [sym_filter] = STATE(374), + [anon_sym_add_COLON] = ACTIONS(11), + [anon_sym_addslashes] = ACTIONS(13), + [anon_sym_capfirst] = ACTIONS(13), + [anon_sym_center_COLON] = ACTIONS(11), + [anon_sym_cut_COLON] = ACTIONS(11), + [anon_sym_date_COLON] = ACTIONS(11), + [anon_sym_date] = ACTIONS(15), + [anon_sym_default_COLON] = ACTIONS(11), + [anon_sym_default_if_none_COLON] = ACTIONS(11), + [anon_sym_dictsort_COLON] = ACTIONS(11), + [anon_sym_dictsortreversed_COLON] = ACTIONS(11), + [anon_sym_divisibleby_COLON] = ACTIONS(11), + [anon_sym_escape] = ACTIONS(15), + [anon_sym_escapejs] = ACTIONS(13), + [anon_sym_filesizeformat] = ACTIONS(13), + [anon_sym_first] = ACTIONS(13), + [anon_sym_floatformat_COLON] = ACTIONS(11), + [anon_sym_floatformat] = ACTIONS(15), + [anon_sym_force_escape] = ACTIONS(13), + [anon_sym_get_digit_COLON] = ACTIONS(11), + [anon_sym_iriencode] = ACTIONS(13), + [anon_sym_join_COLON] = ACTIONS(11), + [anon_sym_json_script_COLON] = ACTIONS(11), + [anon_sym_json_script] = ACTIONS(15), + [anon_sym_last] = ACTIONS(13), + [anon_sym_length] = ACTIONS(15), + [anon_sym_length_is_COLON] = ACTIONS(11), + [anon_sym_linebreaks] = ACTIONS(15), + [anon_sym_linebreaksbr] = ACTIONS(13), + [anon_sym_linenumbers] = ACTIONS(13), + [anon_sym_ljust_COLON] = ACTIONS(11), + [anon_sym_lower] = ACTIONS(13), + [anon_sym_make_list] = ACTIONS(13), + [anon_sym_phone2numeric] = ACTIONS(13), + [anon_sym_pluralize_COLON] = ACTIONS(11), + [anon_sym_pluralize] = ACTIONS(15), + [anon_sym_pprint] = ACTIONS(13), + [anon_sym_random] = ACTIONS(13), + [anon_sym_rjust_COLON] = ACTIONS(11), + [anon_sym_safe] = ACTIONS(15), + [anon_sym_safeseq] = ACTIONS(13), + [anon_sym_slice_COLON] = ACTIONS(11), + [anon_sym_slugify] = ACTIONS(13), + [anon_sym_stringformat_COLON] = ACTIONS(11), + [anon_sym_striptags] = ACTIONS(13), + [anon_sym_time_COLON] = ACTIONS(11), + [anon_sym_time] = ACTIONS(15), + [anon_sym_timesince_COLON] = ACTIONS(11), + [anon_sym_timesince] = ACTIONS(15), + [anon_sym_timeuntil_COLON] = ACTIONS(11), + [anon_sym_timeuntil] = ACTIONS(15), + [anon_sym_title] = ACTIONS(13), + [anon_sym_truncatechars_COLON] = ACTIONS(11), + [anon_sym_truncatechars_html_COLON] = ACTIONS(11), + [anon_sym_truncatewords_COLON] = ACTIONS(11), + [anon_sym_truncatewords_html_COLON] = ACTIONS(11), + [anon_sym_unordered_list] = ACTIONS(13), + [anon_sym_urlencode_COLON] = ACTIONS(11), + [anon_sym_urlencode] = ACTIONS(15), + [anon_sym_urlize] = ACTIONS(15), + [anon_sym_urlizetrunc_COLON] = ACTIONS(11), + [anon_sym_wordcount] = ACTIONS(13), + [anon_sym_wordwrap_COLON] = ACTIONS(11), + [anon_sym_yesno_COLON] = ACTIONS(11), + [anon_sym_yesno] = ACTIONS(15), + }, + [STATE(4)] = { + [sym_filter_expression] = STATE(173), + [sym_filter] = STATE(374), + [anon_sym_add_COLON] = ACTIONS(11), + [anon_sym_addslashes] = ACTIONS(13), + [anon_sym_capfirst] = ACTIONS(13), + [anon_sym_center_COLON] = ACTIONS(11), + [anon_sym_cut_COLON] = ACTIONS(11), + [anon_sym_date_COLON] = ACTIONS(11), + [anon_sym_date] = ACTIONS(15), + [anon_sym_default_COLON] = ACTIONS(11), + [anon_sym_default_if_none_COLON] = ACTIONS(11), + [anon_sym_dictsort_COLON] = ACTIONS(11), + [anon_sym_dictsortreversed_COLON] = ACTIONS(11), + [anon_sym_divisibleby_COLON] = ACTIONS(11), + [anon_sym_escape] = ACTIONS(15), + [anon_sym_escapejs] = ACTIONS(13), + [anon_sym_filesizeformat] = ACTIONS(13), + [anon_sym_first] = ACTIONS(13), + [anon_sym_floatformat_COLON] = ACTIONS(11), + [anon_sym_floatformat] = ACTIONS(15), + [anon_sym_force_escape] = ACTIONS(13), + [anon_sym_get_digit_COLON] = ACTIONS(11), + [anon_sym_iriencode] = ACTIONS(13), + [anon_sym_join_COLON] = ACTIONS(11), + [anon_sym_json_script_COLON] = ACTIONS(11), + [anon_sym_json_script] = ACTIONS(15), + [anon_sym_last] = ACTIONS(13), + [anon_sym_length] = ACTIONS(15), + [anon_sym_length_is_COLON] = ACTIONS(11), + [anon_sym_linebreaks] = ACTIONS(15), + [anon_sym_linebreaksbr] = ACTIONS(13), + [anon_sym_linenumbers] = ACTIONS(13), + [anon_sym_ljust_COLON] = ACTIONS(11), + [anon_sym_lower] = ACTIONS(13), + [anon_sym_make_list] = ACTIONS(13), + [anon_sym_phone2numeric] = ACTIONS(13), + [anon_sym_pluralize_COLON] = ACTIONS(11), + [anon_sym_pluralize] = ACTIONS(15), + [anon_sym_pprint] = ACTIONS(13), + [anon_sym_random] = ACTIONS(13), + [anon_sym_rjust_COLON] = ACTIONS(11), + [anon_sym_safe] = ACTIONS(15), + [anon_sym_safeseq] = ACTIONS(13), + [anon_sym_slice_COLON] = ACTIONS(11), + [anon_sym_slugify] = ACTIONS(13), + [anon_sym_stringformat_COLON] = ACTIONS(11), + [anon_sym_striptags] = ACTIONS(13), + [anon_sym_time_COLON] = ACTIONS(11), + [anon_sym_time] = ACTIONS(15), + [anon_sym_timesince_COLON] = ACTIONS(11), + [anon_sym_timesince] = ACTIONS(15), + [anon_sym_timeuntil_COLON] = ACTIONS(11), + [anon_sym_timeuntil] = ACTIONS(15), + [anon_sym_title] = ACTIONS(13), + [anon_sym_truncatechars_COLON] = ACTIONS(11), + [anon_sym_truncatechars_html_COLON] = ACTIONS(11), + [anon_sym_truncatewords_COLON] = ACTIONS(11), + [anon_sym_truncatewords_html_COLON] = ACTIONS(11), + [anon_sym_unordered_list] = ACTIONS(13), + [anon_sym_urlencode_COLON] = ACTIONS(11), + [anon_sym_urlencode] = ACTIONS(15), + [anon_sym_urlize] = ACTIONS(15), + [anon_sym_urlizetrunc_COLON] = ACTIONS(11), + [anon_sym_wordcount] = ACTIONS(13), + [anon_sym_wordwrap_COLON] = ACTIONS(11), + [anon_sym_yesno_COLON] = ACTIONS(11), + [anon_sym_yesno] = ACTIONS(15), + }, + [STATE(5)] = { + [sym_filter_expression] = STATE(173), + [sym_filter] = STATE(158), + [anon_sym_add_COLON] = ACTIONS(17), + [anon_sym_addslashes] = ACTIONS(13), + [anon_sym_capfirst] = ACTIONS(13), + [anon_sym_center_COLON] = ACTIONS(17), + [anon_sym_cut_COLON] = ACTIONS(17), + [anon_sym_date_COLON] = ACTIONS(17), + [anon_sym_date] = ACTIONS(15), + [anon_sym_default_COLON] = ACTIONS(17), + [anon_sym_default_if_none_COLON] = ACTIONS(17), + [anon_sym_dictsort_COLON] = ACTIONS(17), + [anon_sym_dictsortreversed_COLON] = ACTIONS(17), + [anon_sym_divisibleby_COLON] = ACTIONS(17), + [anon_sym_escape] = ACTIONS(15), + [anon_sym_escapejs] = ACTIONS(13), + [anon_sym_filesizeformat] = ACTIONS(13), + [anon_sym_first] = ACTIONS(13), + [anon_sym_floatformat_COLON] = ACTIONS(17), + [anon_sym_floatformat] = ACTIONS(15), + [anon_sym_force_escape] = ACTIONS(13), + [anon_sym_get_digit_COLON] = ACTIONS(17), + [anon_sym_iriencode] = ACTIONS(13), + [anon_sym_join_COLON] = ACTIONS(17), + [anon_sym_json_script_COLON] = ACTIONS(17), + [anon_sym_json_script] = ACTIONS(15), + [anon_sym_last] = ACTIONS(13), + [anon_sym_length] = ACTIONS(15), + [anon_sym_length_is_COLON] = ACTIONS(17), + [anon_sym_linebreaks] = ACTIONS(15), + [anon_sym_linebreaksbr] = ACTIONS(13), + [anon_sym_linenumbers] = ACTIONS(13), + [anon_sym_ljust_COLON] = ACTIONS(17), + [anon_sym_lower] = ACTIONS(13), + [anon_sym_make_list] = ACTIONS(13), + [anon_sym_phone2numeric] = ACTIONS(13), + [anon_sym_pluralize_COLON] = ACTIONS(17), + [anon_sym_pluralize] = ACTIONS(15), + [anon_sym_pprint] = ACTIONS(13), + [anon_sym_random] = ACTIONS(13), + [anon_sym_rjust_COLON] = ACTIONS(17), + [anon_sym_safe] = ACTIONS(15), + [anon_sym_safeseq] = ACTIONS(13), + [anon_sym_slice_COLON] = ACTIONS(17), + [anon_sym_slugify] = ACTIONS(13), + [anon_sym_stringformat_COLON] = ACTIONS(17), + [anon_sym_striptags] = ACTIONS(13), + [anon_sym_time_COLON] = ACTIONS(17), + [anon_sym_time] = ACTIONS(15), + [anon_sym_timesince_COLON] = ACTIONS(17), + [anon_sym_timesince] = ACTIONS(15), + [anon_sym_timeuntil_COLON] = ACTIONS(17), + [anon_sym_timeuntil] = ACTIONS(15), + [anon_sym_title] = ACTIONS(13), + [anon_sym_truncatechars_COLON] = ACTIONS(17), + [anon_sym_truncatechars_html_COLON] = ACTIONS(17), + [anon_sym_truncatewords_COLON] = ACTIONS(17), + [anon_sym_truncatewords_html_COLON] = ACTIONS(17), + [anon_sym_unordered_list] = ACTIONS(13), + [anon_sym_urlencode_COLON] = ACTIONS(17), + [anon_sym_urlencode] = ACTIONS(15), + [anon_sym_urlize] = ACTIONS(15), + [anon_sym_urlizetrunc_COLON] = ACTIONS(17), + [anon_sym_wordcount] = ACTIONS(13), + [anon_sym_wordwrap_COLON] = ACTIONS(17), + [anon_sym_yesno_COLON] = ACTIONS(17), + [anon_sym_yesno] = ACTIONS(15), + }, + [STATE(6)] = { + [sym_filter_expression] = STATE(364), + [sym_filter] = STATE(373), + [anon_sym_add_COLON] = ACTIONS(19), + [anon_sym_addslashes] = ACTIONS(21), + [anon_sym_capfirst] = ACTIONS(21), + [anon_sym_center_COLON] = ACTIONS(19), + [anon_sym_cut_COLON] = ACTIONS(19), + [anon_sym_date_COLON] = ACTIONS(19), + [anon_sym_date] = ACTIONS(23), + [anon_sym_default_COLON] = ACTIONS(19), + [anon_sym_default_if_none_COLON] = ACTIONS(19), + [anon_sym_dictsort_COLON] = ACTIONS(19), + [anon_sym_dictsortreversed_COLON] = ACTIONS(19), + [anon_sym_divisibleby_COLON] = ACTIONS(19), + [anon_sym_escape] = ACTIONS(23), + [anon_sym_escapejs] = ACTIONS(21), + [anon_sym_filesizeformat] = ACTIONS(21), + [anon_sym_first] = ACTIONS(21), + [anon_sym_floatformat_COLON] = ACTIONS(19), + [anon_sym_floatformat] = ACTIONS(23), + [anon_sym_force_escape] = ACTIONS(21), + [anon_sym_get_digit_COLON] = ACTIONS(19), + [anon_sym_iriencode] = ACTIONS(21), + [anon_sym_join_COLON] = ACTIONS(19), + [anon_sym_json_script_COLON] = ACTIONS(19), + [anon_sym_json_script] = ACTIONS(23), + [anon_sym_last] = ACTIONS(21), + [anon_sym_length] = ACTIONS(23), + [anon_sym_length_is_COLON] = ACTIONS(19), + [anon_sym_linebreaks] = ACTIONS(23), + [anon_sym_linebreaksbr] = ACTIONS(21), + [anon_sym_linenumbers] = ACTIONS(21), + [anon_sym_ljust_COLON] = ACTIONS(19), + [anon_sym_lower] = ACTIONS(21), + [anon_sym_make_list] = ACTIONS(21), + [anon_sym_phone2numeric] = ACTIONS(21), + [anon_sym_pluralize_COLON] = ACTIONS(19), + [anon_sym_pluralize] = ACTIONS(23), + [anon_sym_pprint] = ACTIONS(21), + [anon_sym_random] = ACTIONS(21), + [anon_sym_rjust_COLON] = ACTIONS(19), + [anon_sym_safe] = ACTIONS(23), + [anon_sym_safeseq] = ACTIONS(21), + [anon_sym_slice_COLON] = ACTIONS(19), + [anon_sym_slugify] = ACTIONS(21), + [anon_sym_stringformat_COLON] = ACTIONS(19), + [anon_sym_striptags] = ACTIONS(21), + [anon_sym_time_COLON] = ACTIONS(19), + [anon_sym_time] = ACTIONS(23), + [anon_sym_timesince_COLON] = ACTIONS(19), + [anon_sym_timesince] = ACTIONS(23), + [anon_sym_timeuntil_COLON] = ACTIONS(19), + [anon_sym_timeuntil] = ACTIONS(23), + [anon_sym_title] = ACTIONS(21), + [anon_sym_truncatechars_COLON] = ACTIONS(19), + [anon_sym_truncatechars_html_COLON] = ACTIONS(19), + [anon_sym_truncatewords_COLON] = ACTIONS(19), + [anon_sym_truncatewords_html_COLON] = ACTIONS(19), + [anon_sym_unordered_list] = ACTIONS(21), + [anon_sym_urlencode_COLON] = ACTIONS(19), + [anon_sym_urlencode] = ACTIONS(23), + [anon_sym_urlize] = ACTIONS(23), + [anon_sym_urlizetrunc_COLON] = ACTIONS(19), + [anon_sym_wordcount] = ACTIONS(21), + [anon_sym_wordwrap_COLON] = ACTIONS(19), + [anon_sym_yesno_COLON] = ACTIONS(19), + [anon_sym_yesno] = ACTIONS(23), + }, + [STATE(7)] = { + [sym_filter_expression] = STATE(116), + [sym_filter] = STATE(105), + [anon_sym_add_COLON] = ACTIONS(25), + [anon_sym_addslashes] = ACTIONS(27), + [anon_sym_capfirst] = ACTIONS(27), + [anon_sym_center_COLON] = ACTIONS(25), + [anon_sym_cut_COLON] = ACTIONS(25), + [anon_sym_date_COLON] = ACTIONS(25), + [anon_sym_date] = ACTIONS(29), + [anon_sym_default_COLON] = ACTIONS(25), + [anon_sym_default_if_none_COLON] = ACTIONS(25), + [anon_sym_dictsort_COLON] = ACTIONS(25), + [anon_sym_dictsortreversed_COLON] = ACTIONS(25), + [anon_sym_divisibleby_COLON] = ACTIONS(25), + [anon_sym_escape] = ACTIONS(29), + [anon_sym_escapejs] = ACTIONS(27), + [anon_sym_filesizeformat] = ACTIONS(27), + [anon_sym_first] = ACTIONS(27), + [anon_sym_floatformat_COLON] = ACTIONS(25), + [anon_sym_floatformat] = ACTIONS(29), + [anon_sym_force_escape] = ACTIONS(27), + [anon_sym_get_digit_COLON] = ACTIONS(25), + [anon_sym_iriencode] = ACTIONS(27), + [anon_sym_join_COLON] = ACTIONS(25), + [anon_sym_json_script_COLON] = ACTIONS(25), + [anon_sym_json_script] = ACTIONS(29), + [anon_sym_last] = ACTIONS(27), + [anon_sym_length] = ACTIONS(29), + [anon_sym_length_is_COLON] = ACTIONS(25), + [anon_sym_linebreaks] = ACTIONS(29), + [anon_sym_linebreaksbr] = ACTIONS(27), + [anon_sym_linenumbers] = ACTIONS(27), + [anon_sym_ljust_COLON] = ACTIONS(25), + [anon_sym_lower] = ACTIONS(27), + [anon_sym_make_list] = ACTIONS(27), + [anon_sym_phone2numeric] = ACTIONS(27), + [anon_sym_pluralize_COLON] = ACTIONS(25), + [anon_sym_pluralize] = ACTIONS(29), + [anon_sym_pprint] = ACTIONS(27), + [anon_sym_random] = ACTIONS(27), + [anon_sym_rjust_COLON] = ACTIONS(25), + [anon_sym_safe] = ACTIONS(29), + [anon_sym_safeseq] = ACTIONS(27), + [anon_sym_slice_COLON] = ACTIONS(25), + [anon_sym_slugify] = ACTIONS(27), + [anon_sym_stringformat_COLON] = ACTIONS(25), + [anon_sym_striptags] = ACTIONS(27), + [anon_sym_time_COLON] = ACTIONS(25), + [anon_sym_time] = ACTIONS(29), + [anon_sym_timesince_COLON] = ACTIONS(25), + [anon_sym_timesince] = ACTIONS(29), + [anon_sym_timeuntil_COLON] = ACTIONS(25), + [anon_sym_timeuntil] = ACTIONS(29), + [anon_sym_title] = ACTIONS(27), + [anon_sym_truncatechars_COLON] = ACTIONS(25), + [anon_sym_truncatechars_html_COLON] = ACTIONS(25), + [anon_sym_truncatewords_COLON] = ACTIONS(25), + [anon_sym_truncatewords_html_COLON] = ACTIONS(25), + [anon_sym_unordered_list] = ACTIONS(27), + [anon_sym_urlencode_COLON] = ACTIONS(25), + [anon_sym_urlencode] = ACTIONS(29), + [anon_sym_urlize] = ACTIONS(29), + [anon_sym_urlizetrunc_COLON] = ACTIONS(25), + [anon_sym_wordcount] = ACTIONS(27), + [anon_sym_wordwrap_COLON] = ACTIONS(25), + [anon_sym_yesno_COLON] = ACTIONS(25), + [anon_sym_yesno] = ACTIONS(29), + }, + [STATE(8)] = { + [sym_filter_expression] = STATE(210), + [sym_filter] = STATE(223), + [anon_sym_add_COLON] = ACTIONS(31), + [anon_sym_addslashes] = ACTIONS(33), + [anon_sym_capfirst] = ACTIONS(33), + [anon_sym_center_COLON] = ACTIONS(31), + [anon_sym_cut_COLON] = ACTIONS(31), + [anon_sym_date_COLON] = ACTIONS(31), + [anon_sym_date] = ACTIONS(35), + [anon_sym_default_COLON] = ACTIONS(31), + [anon_sym_default_if_none_COLON] = ACTIONS(31), + [anon_sym_dictsort_COLON] = ACTIONS(31), + [anon_sym_dictsortreversed_COLON] = ACTIONS(31), + [anon_sym_divisibleby_COLON] = ACTIONS(31), + [anon_sym_escape] = ACTIONS(35), + [anon_sym_escapejs] = ACTIONS(33), + [anon_sym_filesizeformat] = ACTIONS(33), + [anon_sym_first] = ACTIONS(33), + [anon_sym_floatformat_COLON] = ACTIONS(31), + [anon_sym_floatformat] = ACTIONS(35), + [anon_sym_force_escape] = ACTIONS(33), + [anon_sym_get_digit_COLON] = ACTIONS(31), + [anon_sym_iriencode] = ACTIONS(33), + [anon_sym_join_COLON] = ACTIONS(31), + [anon_sym_json_script_COLON] = ACTIONS(31), + [anon_sym_json_script] = ACTIONS(35), + [anon_sym_last] = ACTIONS(33), + [anon_sym_length] = ACTIONS(35), + [anon_sym_length_is_COLON] = ACTIONS(31), + [anon_sym_linebreaks] = ACTIONS(35), + [anon_sym_linebreaksbr] = ACTIONS(33), + [anon_sym_linenumbers] = ACTIONS(33), + [anon_sym_ljust_COLON] = ACTIONS(31), + [anon_sym_lower] = ACTIONS(33), + [anon_sym_make_list] = ACTIONS(33), + [anon_sym_phone2numeric] = ACTIONS(33), + [anon_sym_pluralize_COLON] = ACTIONS(31), + [anon_sym_pluralize] = ACTIONS(35), + [anon_sym_pprint] = ACTIONS(33), + [anon_sym_random] = ACTIONS(33), + [anon_sym_rjust_COLON] = ACTIONS(31), + [anon_sym_safe] = ACTIONS(35), + [anon_sym_safeseq] = ACTIONS(33), + [anon_sym_slice_COLON] = ACTIONS(31), + [anon_sym_slugify] = ACTIONS(33), + [anon_sym_stringformat_COLON] = ACTIONS(31), + [anon_sym_striptags] = ACTIONS(33), + [anon_sym_time_COLON] = ACTIONS(31), + [anon_sym_time] = ACTIONS(35), + [anon_sym_timesince_COLON] = ACTIONS(31), + [anon_sym_timesince] = ACTIONS(35), + [anon_sym_timeuntil_COLON] = ACTIONS(31), + [anon_sym_timeuntil] = ACTIONS(35), + [anon_sym_title] = ACTIONS(33), + [anon_sym_truncatechars_COLON] = ACTIONS(31), + [anon_sym_truncatechars_html_COLON] = ACTIONS(31), + [anon_sym_truncatewords_COLON] = ACTIONS(31), + [anon_sym_truncatewords_html_COLON] = ACTIONS(31), + [anon_sym_unordered_list] = ACTIONS(33), + [anon_sym_urlencode_COLON] = ACTIONS(31), + [anon_sym_urlencode] = ACTIONS(35), + [anon_sym_urlize] = ACTIONS(35), + [anon_sym_urlizetrunc_COLON] = ACTIONS(31), + [anon_sym_wordcount] = ACTIONS(33), + [anon_sym_wordwrap_COLON] = ACTIONS(31), + [anon_sym_yesno_COLON] = ACTIONS(31), + [anon_sym_yesno] = ACTIONS(35), + }, + [STATE(9)] = { + [sym_filter_expression] = STATE(210), + [sym_filter] = STATE(160), + [anon_sym_add_COLON] = ACTIONS(37), + [anon_sym_addslashes] = ACTIONS(33), + [anon_sym_capfirst] = ACTIONS(33), + [anon_sym_center_COLON] = ACTIONS(37), + [anon_sym_cut_COLON] = ACTIONS(37), + [anon_sym_date_COLON] = ACTIONS(37), + [anon_sym_date] = ACTIONS(35), + [anon_sym_default_COLON] = ACTIONS(37), + [anon_sym_default_if_none_COLON] = ACTIONS(37), + [anon_sym_dictsort_COLON] = ACTIONS(37), + [anon_sym_dictsortreversed_COLON] = ACTIONS(37), + [anon_sym_divisibleby_COLON] = ACTIONS(37), + [anon_sym_escape] = ACTIONS(35), + [anon_sym_escapejs] = ACTIONS(33), + [anon_sym_filesizeformat] = ACTIONS(33), + [anon_sym_first] = ACTIONS(33), + [anon_sym_floatformat_COLON] = ACTIONS(37), + [anon_sym_floatformat] = ACTIONS(35), + [anon_sym_force_escape] = ACTIONS(33), + [anon_sym_get_digit_COLON] = ACTIONS(37), + [anon_sym_iriencode] = ACTIONS(33), + [anon_sym_join_COLON] = ACTIONS(37), + [anon_sym_json_script_COLON] = ACTIONS(37), + [anon_sym_json_script] = ACTIONS(35), + [anon_sym_last] = ACTIONS(33), + [anon_sym_length] = ACTIONS(35), + [anon_sym_length_is_COLON] = ACTIONS(37), + [anon_sym_linebreaks] = ACTIONS(35), + [anon_sym_linebreaksbr] = ACTIONS(33), + [anon_sym_linenumbers] = ACTIONS(33), + [anon_sym_ljust_COLON] = ACTIONS(37), + [anon_sym_lower] = ACTIONS(33), + [anon_sym_make_list] = ACTIONS(33), + [anon_sym_phone2numeric] = ACTIONS(33), + [anon_sym_pluralize_COLON] = ACTIONS(37), + [anon_sym_pluralize] = ACTIONS(35), + [anon_sym_pprint] = ACTIONS(33), + [anon_sym_random] = ACTIONS(33), + [anon_sym_rjust_COLON] = ACTIONS(37), + [anon_sym_safe] = ACTIONS(35), + [anon_sym_safeseq] = ACTIONS(33), + [anon_sym_slice_COLON] = ACTIONS(37), + [anon_sym_slugify] = ACTIONS(33), + [anon_sym_stringformat_COLON] = ACTIONS(37), + [anon_sym_striptags] = ACTIONS(33), + [anon_sym_time_COLON] = ACTIONS(37), + [anon_sym_time] = ACTIONS(35), + [anon_sym_timesince_COLON] = ACTIONS(37), + [anon_sym_timesince] = ACTIONS(35), + [anon_sym_timeuntil_COLON] = ACTIONS(37), + [anon_sym_timeuntil] = ACTIONS(35), + [anon_sym_title] = ACTIONS(33), + [anon_sym_truncatechars_COLON] = ACTIONS(37), + [anon_sym_truncatechars_html_COLON] = ACTIONS(37), + [anon_sym_truncatewords_COLON] = ACTIONS(37), + [anon_sym_truncatewords_html_COLON] = ACTIONS(37), + [anon_sym_unordered_list] = ACTIONS(33), + [anon_sym_urlencode_COLON] = ACTIONS(37), + [anon_sym_urlencode] = ACTIONS(35), + [anon_sym_urlize] = ACTIONS(35), + [anon_sym_urlizetrunc_COLON] = ACTIONS(37), + [anon_sym_wordcount] = ACTIONS(33), + [anon_sym_wordwrap_COLON] = ACTIONS(37), + [anon_sym_yesno_COLON] = ACTIONS(37), + [anon_sym_yesno] = ACTIONS(35), + }, + [STATE(10)] = { + [sym_filter_expression] = STATE(364), + [sym_filter] = STATE(193), + [anon_sym_add_COLON] = ACTIONS(39), + [anon_sym_addslashes] = ACTIONS(21), + [anon_sym_capfirst] = ACTIONS(21), + [anon_sym_center_COLON] = ACTIONS(39), + [anon_sym_cut_COLON] = ACTIONS(39), + [anon_sym_date_COLON] = ACTIONS(39), + [anon_sym_date] = ACTIONS(23), + [anon_sym_default_COLON] = ACTIONS(39), + [anon_sym_default_if_none_COLON] = ACTIONS(39), + [anon_sym_dictsort_COLON] = ACTIONS(39), + [anon_sym_dictsortreversed_COLON] = ACTIONS(39), + [anon_sym_divisibleby_COLON] = ACTIONS(39), + [anon_sym_escape] = ACTIONS(23), + [anon_sym_escapejs] = ACTIONS(21), + [anon_sym_filesizeformat] = ACTIONS(21), + [anon_sym_first] = ACTIONS(21), + [anon_sym_floatformat_COLON] = ACTIONS(39), + [anon_sym_floatformat] = ACTIONS(23), + [anon_sym_force_escape] = ACTIONS(21), + [anon_sym_get_digit_COLON] = ACTIONS(39), + [anon_sym_iriencode] = ACTIONS(21), + [anon_sym_join_COLON] = ACTIONS(39), + [anon_sym_json_script_COLON] = ACTIONS(39), + [anon_sym_json_script] = ACTIONS(23), + [anon_sym_last] = ACTIONS(21), + [anon_sym_length] = ACTIONS(23), + [anon_sym_length_is_COLON] = ACTIONS(39), + [anon_sym_linebreaks] = ACTIONS(23), + [anon_sym_linebreaksbr] = ACTIONS(21), + [anon_sym_linenumbers] = ACTIONS(21), + [anon_sym_ljust_COLON] = ACTIONS(39), + [anon_sym_lower] = ACTIONS(21), + [anon_sym_make_list] = ACTIONS(21), + [anon_sym_phone2numeric] = ACTIONS(21), + [anon_sym_pluralize_COLON] = ACTIONS(39), + [anon_sym_pluralize] = ACTIONS(23), + [anon_sym_pprint] = ACTIONS(21), + [anon_sym_random] = ACTIONS(21), + [anon_sym_rjust_COLON] = ACTIONS(39), + [anon_sym_safe] = ACTIONS(23), + [anon_sym_safeseq] = ACTIONS(21), + [anon_sym_slice_COLON] = ACTIONS(39), + [anon_sym_slugify] = ACTIONS(21), + [anon_sym_stringformat_COLON] = ACTIONS(39), + [anon_sym_striptags] = ACTIONS(21), + [anon_sym_time_COLON] = ACTIONS(39), + [anon_sym_time] = ACTIONS(23), + [anon_sym_timesince_COLON] = ACTIONS(39), + [anon_sym_timesince] = ACTIONS(23), + [anon_sym_timeuntil_COLON] = ACTIONS(39), + [anon_sym_timeuntil] = ACTIONS(23), + [anon_sym_title] = ACTIONS(21), + [anon_sym_truncatechars_COLON] = ACTIONS(39), + [anon_sym_truncatechars_html_COLON] = ACTIONS(39), + [anon_sym_truncatewords_COLON] = ACTIONS(39), + [anon_sym_truncatewords_html_COLON] = ACTIONS(39), + [anon_sym_unordered_list] = ACTIONS(21), + [anon_sym_urlencode_COLON] = ACTIONS(39), + [anon_sym_urlencode] = ACTIONS(23), + [anon_sym_urlize] = ACTIONS(23), + [anon_sym_urlizetrunc_COLON] = ACTIONS(39), + [anon_sym_wordcount] = ACTIONS(21), + [anon_sym_wordwrap_COLON] = ACTIONS(39), + [anon_sym_yesno_COLON] = ACTIONS(39), + [anon_sym_yesno] = ACTIONS(23), + }, + [STATE(11)] = { + [sym_filter] = STATE(151), + [anon_sym_add_COLON] = ACTIONS(11), + [anon_sym_addslashes] = ACTIONS(13), + [anon_sym_capfirst] = ACTIONS(13), + [anon_sym_center_COLON] = ACTIONS(11), + [anon_sym_cut_COLON] = ACTIONS(11), + [anon_sym_date_COLON] = ACTIONS(11), + [anon_sym_date] = ACTIONS(15), + [anon_sym_default_COLON] = ACTIONS(11), + [anon_sym_default_if_none_COLON] = ACTIONS(11), + [anon_sym_dictsort_COLON] = ACTIONS(11), + [anon_sym_dictsortreversed_COLON] = ACTIONS(11), + [anon_sym_divisibleby_COLON] = ACTIONS(11), + [anon_sym_escape] = ACTIONS(15), + [anon_sym_escapejs] = ACTIONS(13), + [anon_sym_filesizeformat] = ACTIONS(13), + [anon_sym_first] = ACTIONS(13), + [anon_sym_floatformat_COLON] = ACTIONS(11), + [anon_sym_floatformat] = ACTIONS(15), + [anon_sym_force_escape] = ACTIONS(13), + [anon_sym_get_digit_COLON] = ACTIONS(11), + [anon_sym_iriencode] = ACTIONS(13), + [anon_sym_join_COLON] = ACTIONS(11), + [anon_sym_json_script_COLON] = ACTIONS(11), + [anon_sym_json_script] = ACTIONS(15), + [anon_sym_last] = ACTIONS(13), + [anon_sym_length] = ACTIONS(15), + [anon_sym_length_is_COLON] = ACTIONS(11), + [anon_sym_linebreaks] = ACTIONS(15), + [anon_sym_linebreaksbr] = ACTIONS(13), + [anon_sym_linenumbers] = ACTIONS(13), + [anon_sym_ljust_COLON] = ACTIONS(11), + [anon_sym_lower] = ACTIONS(13), + [anon_sym_make_list] = ACTIONS(13), + [anon_sym_phone2numeric] = ACTIONS(13), + [anon_sym_pluralize_COLON] = ACTIONS(11), + [anon_sym_pluralize] = ACTIONS(15), + [anon_sym_pprint] = ACTIONS(13), + [anon_sym_random] = ACTIONS(13), + [anon_sym_rjust_COLON] = ACTIONS(11), + [anon_sym_safe] = ACTIONS(15), + [anon_sym_safeseq] = ACTIONS(13), + [anon_sym_slice_COLON] = ACTIONS(11), + [anon_sym_slugify] = ACTIONS(13), + [anon_sym_stringformat_COLON] = ACTIONS(11), + [anon_sym_striptags] = ACTIONS(13), + [anon_sym_time_COLON] = ACTIONS(11), + [anon_sym_time] = ACTIONS(15), + [anon_sym_timesince_COLON] = ACTIONS(11), + [anon_sym_timesince] = ACTIONS(15), + [anon_sym_timeuntil_COLON] = ACTIONS(11), + [anon_sym_timeuntil] = ACTIONS(15), + [anon_sym_title] = ACTIONS(13), + [anon_sym_truncatechars_COLON] = ACTIONS(11), + [anon_sym_truncatechars_html_COLON] = ACTIONS(11), + [anon_sym_truncatewords_COLON] = ACTIONS(11), + [anon_sym_truncatewords_html_COLON] = ACTIONS(11), + [anon_sym_unordered_list] = ACTIONS(13), + [anon_sym_urlencode_COLON] = ACTIONS(11), + [anon_sym_urlencode] = ACTIONS(15), + [anon_sym_urlize] = ACTIONS(15), + [anon_sym_urlizetrunc_COLON] = ACTIONS(11), + [anon_sym_wordcount] = ACTIONS(13), + [anon_sym_wordwrap_COLON] = ACTIONS(11), + [anon_sym_yesno_COLON] = ACTIONS(11), + [anon_sym_yesno] = ACTIONS(15), + }, + [STATE(12)] = { + [sym_filter] = STATE(151), + [anon_sym_add_COLON] = ACTIONS(17), + [anon_sym_addslashes] = ACTIONS(13), + [anon_sym_capfirst] = ACTIONS(13), + [anon_sym_center_COLON] = ACTIONS(17), + [anon_sym_cut_COLON] = ACTIONS(17), + [anon_sym_date_COLON] = ACTIONS(17), + [anon_sym_date] = ACTIONS(15), + [anon_sym_default_COLON] = ACTIONS(17), + [anon_sym_default_if_none_COLON] = ACTIONS(17), + [anon_sym_dictsort_COLON] = ACTIONS(17), + [anon_sym_dictsortreversed_COLON] = ACTIONS(17), + [anon_sym_divisibleby_COLON] = ACTIONS(17), + [anon_sym_escape] = ACTIONS(15), + [anon_sym_escapejs] = ACTIONS(13), + [anon_sym_filesizeformat] = ACTIONS(13), + [anon_sym_first] = ACTIONS(13), + [anon_sym_floatformat_COLON] = ACTIONS(17), + [anon_sym_floatformat] = ACTIONS(15), + [anon_sym_force_escape] = ACTIONS(13), + [anon_sym_get_digit_COLON] = ACTIONS(17), + [anon_sym_iriencode] = ACTIONS(13), + [anon_sym_join_COLON] = ACTIONS(17), + [anon_sym_json_script_COLON] = ACTIONS(17), + [anon_sym_json_script] = ACTIONS(15), + [anon_sym_last] = ACTIONS(13), + [anon_sym_length] = ACTIONS(15), + [anon_sym_length_is_COLON] = ACTIONS(17), + [anon_sym_linebreaks] = ACTIONS(15), + [anon_sym_linebreaksbr] = ACTIONS(13), + [anon_sym_linenumbers] = ACTIONS(13), + [anon_sym_ljust_COLON] = ACTIONS(17), + [anon_sym_lower] = ACTIONS(13), + [anon_sym_make_list] = ACTIONS(13), + [anon_sym_phone2numeric] = ACTIONS(13), + [anon_sym_pluralize_COLON] = ACTIONS(17), + [anon_sym_pluralize] = ACTIONS(15), + [anon_sym_pprint] = ACTIONS(13), + [anon_sym_random] = ACTIONS(13), + [anon_sym_rjust_COLON] = ACTIONS(17), + [anon_sym_safe] = ACTIONS(15), + [anon_sym_safeseq] = ACTIONS(13), + [anon_sym_slice_COLON] = ACTIONS(17), + [anon_sym_slugify] = ACTIONS(13), + [anon_sym_stringformat_COLON] = ACTIONS(17), + [anon_sym_striptags] = ACTIONS(13), + [anon_sym_time_COLON] = ACTIONS(17), + [anon_sym_time] = ACTIONS(15), + [anon_sym_timesince_COLON] = ACTIONS(17), + [anon_sym_timesince] = ACTIONS(15), + [anon_sym_timeuntil_COLON] = ACTIONS(17), + [anon_sym_timeuntil] = ACTIONS(15), + [anon_sym_title] = ACTIONS(13), + [anon_sym_truncatechars_COLON] = ACTIONS(17), + [anon_sym_truncatechars_html_COLON] = ACTIONS(17), + [anon_sym_truncatewords_COLON] = ACTIONS(17), + [anon_sym_truncatewords_html_COLON] = ACTIONS(17), + [anon_sym_unordered_list] = ACTIONS(13), + [anon_sym_urlencode_COLON] = ACTIONS(17), + [anon_sym_urlencode] = ACTIONS(15), + [anon_sym_urlize] = ACTIONS(15), + [anon_sym_urlizetrunc_COLON] = ACTIONS(17), + [anon_sym_wordcount] = ACTIONS(13), + [anon_sym_wordwrap_COLON] = ACTIONS(17), + [anon_sym_yesno_COLON] = ACTIONS(17), + [anon_sym_yesno] = ACTIONS(15), + }, + [STATE(13)] = { + [sym_filter] = STATE(202), + [anon_sym_add_COLON] = ACTIONS(37), + [anon_sym_addslashes] = ACTIONS(33), + [anon_sym_capfirst] = ACTIONS(33), + [anon_sym_center_COLON] = ACTIONS(37), + [anon_sym_cut_COLON] = ACTIONS(37), + [anon_sym_date_COLON] = ACTIONS(37), + [anon_sym_date] = ACTIONS(35), + [anon_sym_default_COLON] = ACTIONS(37), + [anon_sym_default_if_none_COLON] = ACTIONS(37), + [anon_sym_dictsort_COLON] = ACTIONS(37), + [anon_sym_dictsortreversed_COLON] = ACTIONS(37), + [anon_sym_divisibleby_COLON] = ACTIONS(37), + [anon_sym_escape] = ACTIONS(35), + [anon_sym_escapejs] = ACTIONS(33), + [anon_sym_filesizeformat] = ACTIONS(33), + [anon_sym_first] = ACTIONS(33), + [anon_sym_floatformat_COLON] = ACTIONS(37), + [anon_sym_floatformat] = ACTIONS(35), + [anon_sym_force_escape] = ACTIONS(33), + [anon_sym_get_digit_COLON] = ACTIONS(37), + [anon_sym_iriencode] = ACTIONS(33), + [anon_sym_join_COLON] = ACTIONS(37), + [anon_sym_json_script_COLON] = ACTIONS(37), + [anon_sym_json_script] = ACTIONS(35), + [anon_sym_last] = ACTIONS(33), + [anon_sym_length] = ACTIONS(35), + [anon_sym_length_is_COLON] = ACTIONS(37), + [anon_sym_linebreaks] = ACTIONS(35), + [anon_sym_linebreaksbr] = ACTIONS(33), + [anon_sym_linenumbers] = ACTIONS(33), + [anon_sym_ljust_COLON] = ACTIONS(37), + [anon_sym_lower] = ACTIONS(33), + [anon_sym_make_list] = ACTIONS(33), + [anon_sym_phone2numeric] = ACTIONS(33), + [anon_sym_pluralize_COLON] = ACTIONS(37), + [anon_sym_pluralize] = ACTIONS(35), + [anon_sym_pprint] = ACTIONS(33), + [anon_sym_random] = ACTIONS(33), + [anon_sym_rjust_COLON] = ACTIONS(37), + [anon_sym_safe] = ACTIONS(35), + [anon_sym_safeseq] = ACTIONS(33), + [anon_sym_slice_COLON] = ACTIONS(37), + [anon_sym_slugify] = ACTIONS(33), + [anon_sym_stringformat_COLON] = ACTIONS(37), + [anon_sym_striptags] = ACTIONS(33), + [anon_sym_time_COLON] = ACTIONS(37), + [anon_sym_time] = ACTIONS(35), + [anon_sym_timesince_COLON] = ACTIONS(37), + [anon_sym_timesince] = ACTIONS(35), + [anon_sym_timeuntil_COLON] = ACTIONS(37), + [anon_sym_timeuntil] = ACTIONS(35), + [anon_sym_title] = ACTIONS(33), + [anon_sym_truncatechars_COLON] = ACTIONS(37), + [anon_sym_truncatechars_html_COLON] = ACTIONS(37), + [anon_sym_truncatewords_COLON] = ACTIONS(37), + [anon_sym_truncatewords_html_COLON] = ACTIONS(37), + [anon_sym_unordered_list] = ACTIONS(33), + [anon_sym_urlencode_COLON] = ACTIONS(37), + [anon_sym_urlencode] = ACTIONS(35), + [anon_sym_urlize] = ACTIONS(35), + [anon_sym_urlizetrunc_COLON] = ACTIONS(37), + [anon_sym_wordcount] = ACTIONS(33), + [anon_sym_wordwrap_COLON] = ACTIONS(37), + [anon_sym_yesno_COLON] = ACTIONS(37), + [anon_sym_yesno] = ACTIONS(35), + }, + [STATE(14)] = { + [sym_filter] = STATE(112), + [anon_sym_add_COLON] = ACTIONS(25), + [anon_sym_addslashes] = ACTIONS(27), + [anon_sym_capfirst] = ACTIONS(27), + [anon_sym_center_COLON] = ACTIONS(25), + [anon_sym_cut_COLON] = ACTIONS(25), + [anon_sym_date_COLON] = ACTIONS(25), + [anon_sym_date] = ACTIONS(29), + [anon_sym_default_COLON] = ACTIONS(25), + [anon_sym_default_if_none_COLON] = ACTIONS(25), + [anon_sym_dictsort_COLON] = ACTIONS(25), + [anon_sym_dictsortreversed_COLON] = ACTIONS(25), + [anon_sym_divisibleby_COLON] = ACTIONS(25), + [anon_sym_escape] = ACTIONS(29), + [anon_sym_escapejs] = ACTIONS(27), + [anon_sym_filesizeformat] = ACTIONS(27), + [anon_sym_first] = ACTIONS(27), + [anon_sym_floatformat_COLON] = ACTIONS(25), + [anon_sym_floatformat] = ACTIONS(29), + [anon_sym_force_escape] = ACTIONS(27), + [anon_sym_get_digit_COLON] = ACTIONS(25), + [anon_sym_iriencode] = ACTIONS(27), + [anon_sym_join_COLON] = ACTIONS(25), + [anon_sym_json_script_COLON] = ACTIONS(25), + [anon_sym_json_script] = ACTIONS(29), + [anon_sym_last] = ACTIONS(27), + [anon_sym_length] = ACTIONS(29), + [anon_sym_length_is_COLON] = ACTIONS(25), + [anon_sym_linebreaks] = ACTIONS(29), + [anon_sym_linebreaksbr] = ACTIONS(27), + [anon_sym_linenumbers] = ACTIONS(27), + [anon_sym_ljust_COLON] = ACTIONS(25), + [anon_sym_lower] = ACTIONS(27), + [anon_sym_make_list] = ACTIONS(27), + [anon_sym_phone2numeric] = ACTIONS(27), + [anon_sym_pluralize_COLON] = ACTIONS(25), + [anon_sym_pluralize] = ACTIONS(29), + [anon_sym_pprint] = ACTIONS(27), + [anon_sym_random] = ACTIONS(27), + [anon_sym_rjust_COLON] = ACTIONS(25), + [anon_sym_safe] = ACTIONS(29), + [anon_sym_safeseq] = ACTIONS(27), + [anon_sym_slice_COLON] = ACTIONS(25), + [anon_sym_slugify] = ACTIONS(27), + [anon_sym_stringformat_COLON] = ACTIONS(25), + [anon_sym_striptags] = ACTIONS(27), + [anon_sym_time_COLON] = ACTIONS(25), + [anon_sym_time] = ACTIONS(29), + [anon_sym_timesince_COLON] = ACTIONS(25), + [anon_sym_timesince] = ACTIONS(29), + [anon_sym_timeuntil_COLON] = ACTIONS(25), + [anon_sym_timeuntil] = ACTIONS(29), + [anon_sym_title] = ACTIONS(27), + [anon_sym_truncatechars_COLON] = ACTIONS(25), + [anon_sym_truncatechars_html_COLON] = ACTIONS(25), + [anon_sym_truncatewords_COLON] = ACTIONS(25), + [anon_sym_truncatewords_html_COLON] = ACTIONS(25), + [anon_sym_unordered_list] = ACTIONS(27), + [anon_sym_urlencode_COLON] = ACTIONS(25), + [anon_sym_urlencode] = ACTIONS(29), + [anon_sym_urlize] = ACTIONS(29), + [anon_sym_urlizetrunc_COLON] = ACTIONS(25), + [anon_sym_wordcount] = ACTIONS(27), + [anon_sym_wordwrap_COLON] = ACTIONS(25), + [anon_sym_yesno_COLON] = ACTIONS(25), + [anon_sym_yesno] = ACTIONS(29), + }, + [STATE(15)] = { + [sym_filter] = STATE(202), + [anon_sym_add_COLON] = ACTIONS(31), + [anon_sym_addslashes] = ACTIONS(33), + [anon_sym_capfirst] = ACTIONS(33), + [anon_sym_center_COLON] = ACTIONS(31), + [anon_sym_cut_COLON] = ACTIONS(31), + [anon_sym_date_COLON] = ACTIONS(31), + [anon_sym_date] = ACTIONS(35), + [anon_sym_default_COLON] = ACTIONS(31), + [anon_sym_default_if_none_COLON] = ACTIONS(31), + [anon_sym_dictsort_COLON] = ACTIONS(31), + [anon_sym_dictsortreversed_COLON] = ACTIONS(31), + [anon_sym_divisibleby_COLON] = ACTIONS(31), + [anon_sym_escape] = ACTIONS(35), + [anon_sym_escapejs] = ACTIONS(33), + [anon_sym_filesizeformat] = ACTIONS(33), + [anon_sym_first] = ACTIONS(33), + [anon_sym_floatformat_COLON] = ACTIONS(31), + [anon_sym_floatformat] = ACTIONS(35), + [anon_sym_force_escape] = ACTIONS(33), + [anon_sym_get_digit_COLON] = ACTIONS(31), + [anon_sym_iriencode] = ACTIONS(33), + [anon_sym_join_COLON] = ACTIONS(31), + [anon_sym_json_script_COLON] = ACTIONS(31), + [anon_sym_json_script] = ACTIONS(35), + [anon_sym_last] = ACTIONS(33), + [anon_sym_length] = ACTIONS(35), + [anon_sym_length_is_COLON] = ACTIONS(31), + [anon_sym_linebreaks] = ACTIONS(35), + [anon_sym_linebreaksbr] = ACTIONS(33), + [anon_sym_linenumbers] = ACTIONS(33), + [anon_sym_ljust_COLON] = ACTIONS(31), + [anon_sym_lower] = ACTIONS(33), + [anon_sym_make_list] = ACTIONS(33), + [anon_sym_phone2numeric] = ACTIONS(33), + [anon_sym_pluralize_COLON] = ACTIONS(31), + [anon_sym_pluralize] = ACTIONS(35), + [anon_sym_pprint] = ACTIONS(33), + [anon_sym_random] = ACTIONS(33), + [anon_sym_rjust_COLON] = ACTIONS(31), + [anon_sym_safe] = ACTIONS(35), + [anon_sym_safeseq] = ACTIONS(33), + [anon_sym_slice_COLON] = ACTIONS(31), + [anon_sym_slugify] = ACTIONS(33), + [anon_sym_stringformat_COLON] = ACTIONS(31), + [anon_sym_striptags] = ACTIONS(33), + [anon_sym_time_COLON] = ACTIONS(31), + [anon_sym_time] = ACTIONS(35), + [anon_sym_timesince_COLON] = ACTIONS(31), + [anon_sym_timesince] = ACTIONS(35), + [anon_sym_timeuntil_COLON] = ACTIONS(31), + [anon_sym_timeuntil] = ACTIONS(35), + [anon_sym_title] = ACTIONS(33), + [anon_sym_truncatechars_COLON] = ACTIONS(31), + [anon_sym_truncatechars_html_COLON] = ACTIONS(31), + [anon_sym_truncatewords_COLON] = ACTIONS(31), + [anon_sym_truncatewords_html_COLON] = ACTIONS(31), + [anon_sym_unordered_list] = ACTIONS(33), + [anon_sym_urlencode_COLON] = ACTIONS(31), + [anon_sym_urlencode] = ACTIONS(35), + [anon_sym_urlize] = ACTIONS(35), + [anon_sym_urlizetrunc_COLON] = ACTIONS(31), + [anon_sym_wordcount] = ACTIONS(33), + [anon_sym_wordwrap_COLON] = ACTIONS(31), + [anon_sym_yesno_COLON] = ACTIONS(31), + [anon_sym_yesno] = ACTIONS(35), + }, + [STATE(16)] = { + [sym_filter] = STATE(285), + [anon_sym_add_COLON] = ACTIONS(19), + [anon_sym_addslashes] = ACTIONS(21), + [anon_sym_capfirst] = ACTIONS(21), + [anon_sym_center_COLON] = ACTIONS(19), + [anon_sym_cut_COLON] = ACTIONS(19), + [anon_sym_date_COLON] = ACTIONS(19), + [anon_sym_date] = ACTIONS(23), + [anon_sym_default_COLON] = ACTIONS(19), + [anon_sym_default_if_none_COLON] = ACTIONS(19), + [anon_sym_dictsort_COLON] = ACTIONS(19), + [anon_sym_dictsortreversed_COLON] = ACTIONS(19), + [anon_sym_divisibleby_COLON] = ACTIONS(19), + [anon_sym_escape] = ACTIONS(23), + [anon_sym_escapejs] = ACTIONS(21), + [anon_sym_filesizeformat] = ACTIONS(21), + [anon_sym_first] = ACTIONS(21), + [anon_sym_floatformat_COLON] = ACTIONS(19), + [anon_sym_floatformat] = ACTIONS(23), + [anon_sym_force_escape] = ACTIONS(21), + [anon_sym_get_digit_COLON] = ACTIONS(19), + [anon_sym_iriencode] = ACTIONS(21), + [anon_sym_join_COLON] = ACTIONS(19), + [anon_sym_json_script_COLON] = ACTIONS(19), + [anon_sym_json_script] = ACTIONS(23), + [anon_sym_last] = ACTIONS(21), + [anon_sym_length] = ACTIONS(23), + [anon_sym_length_is_COLON] = ACTIONS(19), + [anon_sym_linebreaks] = ACTIONS(23), + [anon_sym_linebreaksbr] = ACTIONS(21), + [anon_sym_linenumbers] = ACTIONS(21), + [anon_sym_ljust_COLON] = ACTIONS(19), + [anon_sym_lower] = ACTIONS(21), + [anon_sym_make_list] = ACTIONS(21), + [anon_sym_phone2numeric] = ACTIONS(21), + [anon_sym_pluralize_COLON] = ACTIONS(19), + [anon_sym_pluralize] = ACTIONS(23), + [anon_sym_pprint] = ACTIONS(21), + [anon_sym_random] = ACTIONS(21), + [anon_sym_rjust_COLON] = ACTIONS(19), + [anon_sym_safe] = ACTIONS(23), + [anon_sym_safeseq] = ACTIONS(21), + [anon_sym_slice_COLON] = ACTIONS(19), + [anon_sym_slugify] = ACTIONS(21), + [anon_sym_stringformat_COLON] = ACTIONS(19), + [anon_sym_striptags] = ACTIONS(21), + [anon_sym_time_COLON] = ACTIONS(19), + [anon_sym_time] = ACTIONS(23), + [anon_sym_timesince_COLON] = ACTIONS(19), + [anon_sym_timesince] = ACTIONS(23), + [anon_sym_timeuntil_COLON] = ACTIONS(19), + [anon_sym_timeuntil] = ACTIONS(23), + [anon_sym_title] = ACTIONS(21), + [anon_sym_truncatechars_COLON] = ACTIONS(19), + [anon_sym_truncatechars_html_COLON] = ACTIONS(19), + [anon_sym_truncatewords_COLON] = ACTIONS(19), + [anon_sym_truncatewords_html_COLON] = ACTIONS(19), + [anon_sym_unordered_list] = ACTIONS(21), + [anon_sym_urlencode_COLON] = ACTIONS(19), + [anon_sym_urlencode] = ACTIONS(23), + [anon_sym_urlize] = ACTIONS(23), + [anon_sym_urlizetrunc_COLON] = ACTIONS(19), + [anon_sym_wordcount] = ACTIONS(21), + [anon_sym_wordwrap_COLON] = ACTIONS(19), + [anon_sym_yesno_COLON] = ACTIONS(19), + [anon_sym_yesno] = ACTIONS(23), + }, + [STATE(17)] = { + [sym_filter] = STATE(285), + [anon_sym_add_COLON] = ACTIONS(39), + [anon_sym_addslashes] = ACTIONS(21), + [anon_sym_capfirst] = ACTIONS(21), + [anon_sym_center_COLON] = ACTIONS(39), + [anon_sym_cut_COLON] = ACTIONS(39), + [anon_sym_date_COLON] = ACTIONS(39), + [anon_sym_date] = ACTIONS(23), + [anon_sym_default_COLON] = ACTIONS(39), + [anon_sym_default_if_none_COLON] = ACTIONS(39), + [anon_sym_dictsort_COLON] = ACTIONS(39), + [anon_sym_dictsortreversed_COLON] = ACTIONS(39), + [anon_sym_divisibleby_COLON] = ACTIONS(39), + [anon_sym_escape] = ACTIONS(23), + [anon_sym_escapejs] = ACTIONS(21), + [anon_sym_filesizeformat] = ACTIONS(21), + [anon_sym_first] = ACTIONS(21), + [anon_sym_floatformat_COLON] = ACTIONS(39), + [anon_sym_floatformat] = ACTIONS(23), + [anon_sym_force_escape] = ACTIONS(21), + [anon_sym_get_digit_COLON] = ACTIONS(39), + [anon_sym_iriencode] = ACTIONS(21), + [anon_sym_join_COLON] = ACTIONS(39), + [anon_sym_json_script_COLON] = ACTIONS(39), + [anon_sym_json_script] = ACTIONS(23), + [anon_sym_last] = ACTIONS(21), + [anon_sym_length] = ACTIONS(23), + [anon_sym_length_is_COLON] = ACTIONS(39), + [anon_sym_linebreaks] = ACTIONS(23), + [anon_sym_linebreaksbr] = ACTIONS(21), + [anon_sym_linenumbers] = ACTIONS(21), + [anon_sym_ljust_COLON] = ACTIONS(39), + [anon_sym_lower] = ACTIONS(21), + [anon_sym_make_list] = ACTIONS(21), + [anon_sym_phone2numeric] = ACTIONS(21), + [anon_sym_pluralize_COLON] = ACTIONS(39), + [anon_sym_pluralize] = ACTIONS(23), + [anon_sym_pprint] = ACTIONS(21), + [anon_sym_random] = ACTIONS(21), + [anon_sym_rjust_COLON] = ACTIONS(39), + [anon_sym_safe] = ACTIONS(23), + [anon_sym_safeseq] = ACTIONS(21), + [anon_sym_slice_COLON] = ACTIONS(39), + [anon_sym_slugify] = ACTIONS(21), + [anon_sym_stringformat_COLON] = ACTIONS(39), + [anon_sym_striptags] = ACTIONS(21), + [anon_sym_time_COLON] = ACTIONS(39), + [anon_sym_time] = ACTIONS(23), + [anon_sym_timesince_COLON] = ACTIONS(39), + [anon_sym_timesince] = ACTIONS(23), + [anon_sym_timeuntil_COLON] = ACTIONS(39), + [anon_sym_timeuntil] = ACTIONS(23), + [anon_sym_title] = ACTIONS(21), + [anon_sym_truncatechars_COLON] = ACTIONS(39), + [anon_sym_truncatechars_html_COLON] = ACTIONS(39), + [anon_sym_truncatewords_COLON] = ACTIONS(39), + [anon_sym_truncatewords_html_COLON] = ACTIONS(39), + [anon_sym_unordered_list] = ACTIONS(21), + [anon_sym_urlencode_COLON] = ACTIONS(39), + [anon_sym_urlencode] = ACTIONS(23), + [anon_sym_urlize] = ACTIONS(23), + [anon_sym_urlizetrunc_COLON] = ACTIONS(39), + [anon_sym_wordcount] = ACTIONS(21), + [anon_sym_wordwrap_COLON] = ACTIONS(39), + [anon_sym_yesno_COLON] = ACTIONS(39), + [anon_sym_yesno] = ACTIONS(23), + }, +}; + +static const uint16_t ts_small_parse_table[] = { + [0] = 9, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(47), 1, + anon_sym_LBRACE_PERCENT, + STATE(406), 1, + aux_sym_if_group_repeat1, + STATE(429), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [54] = 9, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(49), 1, + anon_sym_LBRACE_PERCENT, + STATE(423), 1, + sym_template, + STATE(424), 1, + aux_sym_if_group_repeat1, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [108] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(51), 1, + anon_sym_LBRACE_PERCENT, + STATE(668), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [159] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(53), 1, + anon_sym_LBRACE_PERCENT, + STATE(466), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [210] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(55), 1, + anon_sym_LBRACE_PERCENT, + STATE(506), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [261] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(57), 1, + anon_sym_LBRACE_PERCENT, + STATE(623), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [312] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(59), 1, + anon_sym_LBRACE_PERCENT, + STATE(632), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [363] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(61), 1, + anon_sym_LBRACE_PERCENT, + STATE(678), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [414] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(64), 1, + anon_sym_LBRACE_PERCENT, + STATE(690), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [465] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(66), 1, + anon_sym_LBRACE_PERCENT, + STATE(711), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [516] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(68), 1, + anon_sym_LBRACE_PERCENT, + STATE(486), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [567] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(70), 1, + anon_sym_LBRACE_PERCENT, + STATE(567), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [618] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(72), 1, + anon_sym_LBRACE_PERCENT, + STATE(633), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [669] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(74), 1, + anon_sym_LBRACE_PERCENT, + STATE(640), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [720] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(76), 1, + anon_sym_LBRACE_PERCENT, + STATE(468), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [771] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(78), 1, + anon_sym_LBRACE_PERCENT, + STATE(659), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [822] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(80), 1, + anon_sym_LBRACE_PERCENT, + STATE(653), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [873] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(82), 1, + anon_sym_LBRACE_PERCENT, + STATE(442), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [924] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(84), 1, + anon_sym_LBRACE_PERCENT, + STATE(630), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [975] = 8, + ACTIONS(86), 1, + ts_builtin_sym_end, + ACTIONS(88), 1, + sym_content, + ACTIONS(91), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(94), 1, + anon_sym_LBRACE_POUND, + ACTIONS(97), 1, + anon_sym_LBRACE_PERCENT, + STATE(37), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(217), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(205), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [1026] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(100), 1, + anon_sym_LBRACE_PERCENT, + STATE(564), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [1077] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(102), 1, + anon_sym_LBRACE_PERCENT, + STATE(559), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [1128] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(104), 1, + anon_sym_LBRACE_PERCENT, + STATE(694), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [1179] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(106), 1, + anon_sym_LBRACE_PERCENT, + STATE(579), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [1230] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(108), 1, + anon_sym_LBRACE_PERCENT, + STATE(639), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [1281] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(110), 1, + anon_sym_LBRACE_PERCENT, + STATE(641), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [1332] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(112), 1, + anon_sym_LBRACE_PERCENT, + STATE(643), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [1383] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(114), 1, + anon_sym_LBRACE_PERCENT, + STATE(645), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [1434] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(116), 1, + anon_sym_LBRACE_PERCENT, + STATE(648), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [1485] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(118), 1, + anon_sym_LBRACE_PERCENT, + STATE(650), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [1536] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(120), 1, + anon_sym_LBRACE_PERCENT, + STATE(657), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [1587] = 8, + ACTIONS(5), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(7), 1, + anon_sym_LBRACE_POUND, + ACTIONS(9), 1, + anon_sym_LBRACE_PERCENT, + ACTIONS(122), 1, + ts_builtin_sym_end, + ACTIONS(124), 1, + sym_content, + STATE(37), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(217), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(205), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [1638] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(126), 1, + anon_sym_LBRACE_PERCENT, + STATE(661), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [1689] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(128), 1, + anon_sym_LBRACE_PERCENT, + STATE(662), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [1740] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(130), 1, + anon_sym_LBRACE_PERCENT, + STATE(666), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [1791] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(132), 1, + anon_sym_LBRACE_PERCENT, + STATE(669), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [1842] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(134), 1, + anon_sym_LBRACE_PERCENT, + STATE(672), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [1893] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(136), 1, + anon_sym_LBRACE_PERCENT, + STATE(673), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [1944] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(138), 1, + anon_sym_LBRACE_PERCENT, + STATE(674), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [1995] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(140), 1, + anon_sym_LBRACE_PERCENT, + STATE(676), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [2046] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(142), 1, + anon_sym_LBRACE_PERCENT, + STATE(687), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [2097] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(144), 1, + anon_sym_LBRACE_PERCENT, + STATE(689), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [2148] = 8, + ACTIONS(41), 1, + sym_content, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(146), 1, + anon_sym_LBRACE_PERCENT, + STATE(600), 1, + sym_template, + STATE(61), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [2199] = 7, + ACTIONS(43), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(45), 1, + anon_sym_LBRACE_POUND, + ACTIONS(148), 1, + sym_content, + ACTIONS(150), 1, + anon_sym_LBRACE_PERCENT, + STATE(62), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [2247] = 7, + ACTIONS(153), 1, + sym_content, + ACTIONS(156), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(159), 1, + anon_sym_LBRACE_POUND, + ACTIONS(162), 1, + anon_sym_LBRACE_PERCENT, + STATE(62), 2, + sym_template_tag, + aux_sym_template_repeat1, + STATE(290), 3, + sym_template_variable, + sym_template_comment, + sym_template_block_groups, + STATE(291), 24, + sym_autoescape_group, + sym_block_group, + sym_csrf_token, + sym_cycle, + sym_debug, + sym_extends, + sym_filter_group, + sym_firstof, + sym_for_group, + sym_if_group, + sym_ifchanged_group, + sym_include, + sym_lorem, + sym_now, + sym_partial, + sym_partialdef_group, + sym_query_string, + sym_regroup, + sym_reset_cycle, + sym_spaceless_group, + sym_template_tag_block, + sym_url_block, + sym_verbatim_group, + sym_with_group, + [2295] = 27, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(185), 1, + anon_sym_elif, + ACTIONS(187), 1, + anon_sym_else, + ACTIONS(189), 1, + anon_sym_endif, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + [2377] = 27, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(185), 1, + anon_sym_elif, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(219), 1, + anon_sym_else, + ACTIONS(221), 1, + anon_sym_endif, + [2459] = 26, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(223), 1, + anon_sym_empty, + ACTIONS(225), 1, + anon_sym_endfor, + [2538] = 26, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(227), 1, + anon_sym_empty, + ACTIONS(229), 1, + anon_sym_endfor, + [2617] = 26, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(231), 1, + anon_sym_empty, + ACTIONS(233), 1, + anon_sym_endfor, + [2696] = 26, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(235), 1, + anon_sym_empty, + ACTIONS(237), 1, + anon_sym_endfor, + [2775] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(239), 1, + anon_sym_endpartialdef, + [2851] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(241), 1, + anon_sym_endfor, + [2927] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(243), 1, + anon_sym_endwith, + [3003] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(245), 1, + anon_sym_endif, + [3079] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(247), 1, + anon_sym_endif, + [3155] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(249), 1, + anon_sym_endif, + [3231] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(251), 1, + anon_sym_endfor, + [3307] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(253), 1, + anon_sym_endif, + [3383] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(255), 1, + anon_sym_endfor, + [3459] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(257), 1, + anon_sym_endfor, + [3535] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(259), 1, + anon_sym_endfor, + [3611] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(261), 1, + anon_sym_endif, + [3687] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(263), 1, + anon_sym_endif, + [3763] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(265), 1, + anon_sym_endfor, + [3839] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(267), 1, + anon_sym_endfor, + [3915] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(269), 1, + anon_sym_endifchanged, + [3991] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(271), 1, + anon_sym_endpartialdef, + [4067] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(273), 1, + anon_sym_endfor, + [4143] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(275), 1, + anon_sym_endblock, + [4219] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(277), 1, + anon_sym_endpartialdef, + [4295] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(279), 1, + anon_sym_endspaceless, + [4371] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(281), 1, + anon_sym_endpartialdef, + [4447] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(283), 1, + anon_sym_endautoescape, + [4523] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(285), 1, + anon_sym_endblock, + [4599] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(287), 1, + anon_sym_endfilter, + [4675] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(289), 1, + anon_sym_endifchanged, + [4751] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(291), 1, + anon_sym_endspaceless, + [4827] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(293), 1, + anon_sym_endautoescape, + [4903] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(295), 1, + anon_sym_endfilter, + [4979] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(297), 1, + anon_sym_endif, + [5055] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(299), 1, + anon_sym_endifchanged, + [5131] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(301), 1, + anon_sym_endwith, + [5207] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(303), 1, + anon_sym_endifchanged, + [5283] = 25, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + ACTIONS(305), 1, + anon_sym_endif, + [5359] = 24, + ACTIONS(307), 1, + anon_sym_autoescape, + ACTIONS(309), 1, + anon_sym_block, + ACTIONS(311), 1, + anon_sym_csrf_token, + ACTIONS(313), 1, + anon_sym_cycle, + ACTIONS(315), 1, + anon_sym_debug, + ACTIONS(317), 1, + anon_sym_extends, + ACTIONS(319), 1, + anon_sym_filter, + ACTIONS(321), 1, + anon_sym_firstof, + ACTIONS(323), 1, + anon_sym_for, + ACTIONS(325), 1, + anon_sym_if, + ACTIONS(327), 1, + anon_sym_ifchanged, + ACTIONS(329), 1, + anon_sym_include, + ACTIONS(331), 1, + anon_sym_lorem, + ACTIONS(333), 1, + anon_sym_now, + ACTIONS(335), 1, + anon_sym_partial, + ACTIONS(337), 1, + anon_sym_partialdef, + ACTIONS(339), 1, + anon_sym_querystring, + ACTIONS(341), 1, + anon_sym_regroup, + ACTIONS(343), 1, + anon_sym_resetcycle, + ACTIONS(345), 1, + anon_sym_spaceless, + ACTIONS(347), 1, + anon_sym_templatetag, + ACTIONS(349), 1, + anon_sym_url, + ACTIONS(351), 1, + anon_sym_verbatim, + ACTIONS(353), 1, + anon_sym_with, + [5432] = 24, + ACTIONS(165), 1, + anon_sym_autoescape, + ACTIONS(167), 1, + anon_sym_block, + ACTIONS(169), 1, + anon_sym_csrf_token, + ACTIONS(171), 1, + anon_sym_cycle, + ACTIONS(173), 1, + anon_sym_debug, + ACTIONS(175), 1, + anon_sym_extends, + ACTIONS(177), 1, + anon_sym_filter, + ACTIONS(179), 1, + anon_sym_firstof, + ACTIONS(181), 1, + anon_sym_for, + ACTIONS(183), 1, + anon_sym_if, + ACTIONS(191), 1, + anon_sym_ifchanged, + ACTIONS(193), 1, + anon_sym_include, + ACTIONS(195), 1, + anon_sym_lorem, + ACTIONS(197), 1, + anon_sym_now, + ACTIONS(199), 1, + anon_sym_partial, + ACTIONS(201), 1, + anon_sym_partialdef, + ACTIONS(203), 1, + anon_sym_querystring, + ACTIONS(205), 1, + anon_sym_regroup, + ACTIONS(207), 1, + anon_sym_resetcycle, + ACTIONS(209), 1, + anon_sym_spaceless, + ACTIONS(211), 1, + anon_sym_templatetag, + ACTIONS(213), 1, + anon_sym_url, + ACTIONS(215), 1, + anon_sym_verbatim, + ACTIONS(217), 1, + anon_sym_with, + [5505] = 4, + ACTIONS(355), 1, + anon_sym_PIPE, + STATE(108), 1, + aux_sym_filter_expression_repeat1, + ACTIONS(359), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_b, + ACTIONS(357), 13, + anon_sym_and, + anon_sym_or, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_in, + anon_sym_not, + anon_sym_is, + anon_sym_PERCENT_RBRACE, + anon_sym_w, + anon_sym_p, + anon_sym_by, + [5532] = 3, + ACTIONS(363), 1, + anon_sym_DOT, + ACTIONS(365), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_b, + ACTIONS(361), 14, + anon_sym_PIPE, + anon_sym_and, + anon_sym_or, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_in, + anon_sym_not, + anon_sym_is, + anon_sym_PERCENT_RBRACE, + anon_sym_w, + anon_sym_p, + anon_sym_by, + [5557] = 4, + ACTIONS(367), 1, + anon_sym_PIPE, + STATE(107), 1, + aux_sym_filter_expression_repeat1, + ACTIONS(372), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_b, + ACTIONS(370), 13, + anon_sym_and, + anon_sym_or, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_in, + anon_sym_not, + anon_sym_is, + anon_sym_PERCENT_RBRACE, + anon_sym_w, + anon_sym_p, + anon_sym_by, + [5584] = 4, + ACTIONS(355), 1, + anon_sym_PIPE, + STATE(107), 1, + aux_sym_filter_expression_repeat1, + ACTIONS(376), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_b, + ACTIONS(374), 13, + anon_sym_and, + anon_sym_or, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_in, + anon_sym_not, + anon_sym_is, + anon_sym_PERCENT_RBRACE, + anon_sym_w, + anon_sym_p, + anon_sym_by, + [5611] = 2, + ACTIONS(380), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_b, + ACTIONS(378), 14, + anon_sym_PIPE, + anon_sym_and, + anon_sym_or, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_in, + anon_sym_not, + anon_sym_is, + anon_sym_PERCENT_RBRACE, + anon_sym_w, + anon_sym_p, + anon_sym_by, + [5633] = 3, + ACTIONS(382), 1, + anon_sym_PIPE, + ACTIONS(386), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_b, + ACTIONS(384), 13, + anon_sym_and, + anon_sym_or, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_in, + anon_sym_not, + anon_sym_is, + anon_sym_PERCENT_RBRACE, + anon_sym_w, + anon_sym_p, + anon_sym_by, + [5657] = 2, + ACTIONS(390), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_b, + ACTIONS(388), 14, + anon_sym_PIPE, + anon_sym_and, + anon_sym_or, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_in, + anon_sym_not, + anon_sym_is, + anon_sym_PERCENT_RBRACE, + anon_sym_w, + anon_sym_p, + anon_sym_by, + [5679] = 2, + ACTIONS(372), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_b, + ACTIONS(370), 14, + anon_sym_PIPE, + anon_sym_and, + anon_sym_or, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_in, + anon_sym_not, + anon_sym_is, + anon_sym_PERCENT_RBRACE, + anon_sym_w, + anon_sym_p, + anon_sym_by, + [5701] = 2, + ACTIONS(394), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_b, + ACTIONS(392), 14, + anon_sym_PIPE, + anon_sym_and, + anon_sym_or, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_in, + anon_sym_not, + anon_sym_is, + anon_sym_PERCENT_RBRACE, + anon_sym_w, + anon_sym_p, + anon_sym_by, + [5723] = 2, + ACTIONS(398), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_b, + ACTIONS(396), 14, + anon_sym_PIPE, + anon_sym_and, + anon_sym_or, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_in, + anon_sym_not, + anon_sym_is, + anon_sym_PERCENT_RBRACE, + anon_sym_w, + anon_sym_p, + anon_sym_by, + [5745] = 2, + ACTIONS(402), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_b, + ACTIONS(400), 14, + anon_sym_PIPE, + anon_sym_and, + anon_sym_or, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_in, + anon_sym_not, + anon_sym_is, + anon_sym_PERCENT_RBRACE, + anon_sym_w, + anon_sym_p, + anon_sym_by, + [5767] = 2, + ACTIONS(406), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_b, + ACTIONS(404), 13, + anon_sym_and, + anon_sym_or, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_in, + anon_sym_not, + anon_sym_is, + anon_sym_PERCENT_RBRACE, + anon_sym_w, + anon_sym_p, + anon_sym_by, + [5788] = 7, + ACTIONS(412), 1, + anon_sym_not, + ACTIONS(414), 1, + anon_sym_is, + ACTIONS(416), 1, + anon_sym_PERCENT_RBRACE, + STATE(121), 1, + aux_sym_predicate_repeat1, + STATE(153), 1, + sym_binaryOperator, + ACTIONS(410), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(408), 7, + anon_sym_and, + anon_sym_or, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_in, + [5817] = 7, + ACTIONS(412), 1, + anon_sym_not, + ACTIONS(414), 1, + anon_sym_is, + ACTIONS(418), 1, + anon_sym_PERCENT_RBRACE, + STATE(119), 1, + aux_sym_predicate_repeat1, + STATE(153), 1, + sym_binaryOperator, + ACTIONS(410), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(408), 7, + anon_sym_and, + anon_sym_or, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_in, + [5846] = 7, + ACTIONS(426), 1, + anon_sym_not, + ACTIONS(429), 1, + anon_sym_is, + ACTIONS(432), 1, + anon_sym_PERCENT_RBRACE, + STATE(119), 1, + aux_sym_predicate_repeat1, + STATE(153), 1, + sym_binaryOperator, + ACTIONS(423), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(420), 7, + anon_sym_and, + anon_sym_or, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_in, + [5875] = 7, + ACTIONS(412), 1, + anon_sym_not, + ACTIONS(414), 1, + anon_sym_is, + ACTIONS(434), 1, + anon_sym_PERCENT_RBRACE, + STATE(118), 1, + aux_sym_predicate_repeat1, + STATE(153), 1, + sym_binaryOperator, + ACTIONS(410), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(408), 7, + anon_sym_and, + anon_sym_or, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_in, + [5904] = 7, + ACTIONS(412), 1, + anon_sym_not, + ACTIONS(414), 1, + anon_sym_is, + ACTIONS(434), 1, + anon_sym_PERCENT_RBRACE, + STATE(119), 1, + aux_sym_predicate_repeat1, + STATE(153), 1, + sym_binaryOperator, + ACTIONS(410), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(408), 7, + anon_sym_and, + anon_sym_or, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_in, + [5933] = 2, + ACTIONS(438), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(436), 10, + anon_sym_and, + anon_sym_or, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_in, + anon_sym_not, + anon_sym_is, + anon_sym_PERCENT_RBRACE, + [5950] = 2, + ACTIONS(440), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(432), 10, + anon_sym_and, + anon_sym_or, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_in, + anon_sym_not, + anon_sym_is, + anon_sym_PERCENT_RBRACE, + [5967] = 8, + ACTIONS(444), 1, + sym_identifier, + ACTIONS(446), 1, + anon_sym_PERCENT_RBRACE, + ACTIONS(448), 1, + anon_sym_as, + ACTIONS(450), 1, + anon_sym_silent, + STATE(170), 1, + sym_value, + ACTIONS(442), 2, + sym_number, + sym_string, + STATE(125), 2, + sym_filtered_value, + aux_sym_cycle_repeat1, + STATE(155), 2, + sym_literal, + sym_variable_attribute, + [5995] = 7, + ACTIONS(455), 1, + sym_identifier, + ACTIONS(458), 1, + anon_sym_PERCENT_RBRACE, + STATE(170), 1, + sym_value, + ACTIONS(452), 2, + sym_number, + sym_string, + ACTIONS(460), 2, + anon_sym_as, + anon_sym_silent, + STATE(125), 2, + sym_filtered_value, + aux_sym_cycle_repeat1, + STATE(155), 2, + sym_literal, + sym_variable_attribute, + [6021] = 8, + ACTIONS(464), 1, + sym_identifier, + ACTIONS(466), 1, + anon_sym_PERCENT_RBRACE, + ACTIONS(468), 1, + anon_sym_as, + STATE(185), 1, + sym_value, + STATE(377), 1, + aux_sym_query_string_repeat2, + ACTIONS(462), 2, + sym_number, + sym_string, + STATE(131), 2, + sym_filtered_value, + aux_sym_cycle_repeat1, + STATE(200), 2, + sym_literal, + sym_variable_attribute, + [6049] = 8, + ACTIONS(444), 1, + sym_identifier, + ACTIONS(470), 1, + anon_sym_PERCENT_RBRACE, + ACTIONS(472), 1, + anon_sym_as, + ACTIONS(474), 1, + anon_sym_silent, + STATE(170), 1, + sym_value, + ACTIONS(442), 2, + sym_number, + sym_string, + STATE(125), 2, + sym_filtered_value, + aux_sym_cycle_repeat1, + STATE(155), 2, + sym_literal, + sym_variable_attribute, + [6077] = 8, + ACTIONS(464), 1, + sym_identifier, + ACTIONS(476), 1, + anon_sym_PERCENT_RBRACE, + ACTIONS(478), 1, + anon_sym_as, + STATE(185), 1, + sym_value, + STATE(372), 1, + aux_sym_query_string_repeat2, + ACTIONS(462), 2, + sym_number, + sym_string, + STATE(129), 2, + sym_filtered_value, + aux_sym_cycle_repeat1, + STATE(200), 2, + sym_literal, + sym_variable_attribute, + [6105] = 7, + ACTIONS(480), 1, + sym_identifier, + ACTIONS(482), 1, + anon_sym_PERCENT_RBRACE, + ACTIONS(484), 1, + anon_sym_as, + STATE(185), 1, + sym_value, + ACTIONS(462), 2, + sym_number, + sym_string, + STATE(130), 2, + sym_filtered_value, + aux_sym_cycle_repeat1, + STATE(200), 2, + sym_literal, + sym_variable_attribute, + [6130] = 7, + ACTIONS(458), 1, + anon_sym_PERCENT_RBRACE, + ACTIONS(460), 1, + anon_sym_as, + ACTIONS(489), 1, + sym_identifier, + STATE(185), 1, + sym_value, + ACTIONS(486), 2, + sym_number, + sym_string, + STATE(130), 2, + sym_filtered_value, + aux_sym_cycle_repeat1, + STATE(200), 2, + sym_literal, + sym_variable_attribute, + [6155] = 7, + ACTIONS(480), 1, + sym_identifier, + ACTIONS(492), 1, + anon_sym_PERCENT_RBRACE, + ACTIONS(494), 1, + anon_sym_as, + STATE(185), 1, + sym_value, + ACTIONS(462), 2, + sym_number, + sym_string, + STATE(130), 2, + sym_filtered_value, + aux_sym_cycle_repeat1, + STATE(200), 2, + sym_literal, + sym_variable_attribute, + [6180] = 7, + ACTIONS(480), 1, + sym_identifier, + ACTIONS(496), 1, + anon_sym_PERCENT_RBRACE, + ACTIONS(498), 1, + anon_sym_as, + STATE(185), 1, + sym_value, + ACTIONS(462), 2, + sym_number, + sym_string, + STATE(130), 2, + sym_filtered_value, + aux_sym_cycle_repeat1, + STATE(200), 2, + sym_literal, + sym_variable_attribute, + [6205] = 7, + ACTIONS(480), 1, + sym_identifier, + ACTIONS(500), 1, + anon_sym_PERCENT_RBRACE, + ACTIONS(502), 1, + anon_sym_as, + STATE(185), 1, + sym_value, + ACTIONS(462), 2, + sym_number, + sym_string, + STATE(130), 2, + sym_filtered_value, + aux_sym_cycle_repeat1, + STATE(200), 2, + sym_literal, + sym_variable_attribute, + [6230] = 6, + ACTIONS(506), 1, + sym_identifier, + ACTIONS(508), 1, + anon_sym_PERCENT_RBRACE, + STATE(261), 1, + sym_value, + ACTIONS(504), 2, + sym_number, + sym_string, + STATE(136), 2, + sym_filtered_value, + aux_sym_cycle_repeat1, + STATE(262), 2, + sym_literal, + sym_variable_attribute, + [6252] = 7, + ACTIONS(512), 1, + sym_identifier, + ACTIONS(514), 1, + anon_sym_not, + STATE(110), 1, + sym_value, + STATE(117), 1, + sym_filtered_value, + STATE(682), 1, + sym_predicate, + ACTIONS(510), 2, + sym_number, + sym_string, + STATE(111), 2, + sym_literal, + sym_variable_attribute, + [6276] = 6, + ACTIONS(458), 1, + anon_sym_PERCENT_RBRACE, + ACTIONS(519), 1, + sym_identifier, + STATE(261), 1, + sym_value, + ACTIONS(516), 2, + sym_number, + sym_string, + STATE(136), 2, + sym_filtered_value, + aux_sym_cycle_repeat1, + STATE(262), 2, + sym_literal, + sym_variable_attribute, + [6298] = 7, + ACTIONS(512), 1, + sym_identifier, + ACTIONS(514), 1, + anon_sym_not, + STATE(110), 1, + sym_value, + STATE(117), 1, + sym_filtered_value, + STATE(561), 1, + sym_predicate, + ACTIONS(510), 2, + sym_number, + sym_string, + STATE(111), 2, + sym_literal, + sym_variable_attribute, + [6322] = 6, + ACTIONS(506), 1, + sym_identifier, + ACTIONS(522), 1, + anon_sym_PERCENT_RBRACE, + STATE(261), 1, + sym_value, + ACTIONS(504), 2, + sym_number, + sym_string, + STATE(141), 2, + sym_filtered_value, + aux_sym_cycle_repeat1, + STATE(262), 2, + sym_literal, + sym_variable_attribute, + [6344] = 6, + ACTIONS(506), 1, + sym_identifier, + ACTIONS(524), 1, + anon_sym_PERCENT_RBRACE, + STATE(261), 1, + sym_value, + ACTIONS(504), 2, + sym_number, + sym_string, + STATE(134), 2, + sym_filtered_value, + aux_sym_cycle_repeat1, + STATE(262), 2, + sym_literal, + sym_variable_attribute, + [6366] = 7, + ACTIONS(512), 1, + sym_identifier, + ACTIONS(514), 1, + anon_sym_not, + STATE(110), 1, + sym_value, + STATE(117), 1, + sym_filtered_value, + STATE(612), 1, + sym_predicate, + ACTIONS(510), 2, + sym_number, + sym_string, + STATE(111), 2, + sym_literal, + sym_variable_attribute, + [6390] = 6, + ACTIONS(506), 1, + sym_identifier, + ACTIONS(526), 1, + anon_sym_PERCENT_RBRACE, + STATE(261), 1, + sym_value, + ACTIONS(504), 2, + sym_number, + sym_string, + STATE(136), 2, + sym_filtered_value, + aux_sym_cycle_repeat1, + STATE(262), 2, + sym_literal, + sym_variable_attribute, + [6412] = 2, + ACTIONS(398), 3, + sym_identifier, + anon_sym_as, + anon_sym_silent, + ACTIONS(396), 5, + anon_sym_PIPE, + sym_number, + sym_string, + anon_sym_RBRACE_RBRACE, + anon_sym_PERCENT_RBRACE, + [6425] = 1, + ACTIONS(528), 8, + anon_sym_openblock, + anon_sym_closeblock, + anon_sym_openvariable, + anon_sym_closevariable, + anon_sym_openbrace, + anon_sym_closebrace, + anon_sym_opencomment, + anon_sym_closecomment, + [6436] = 5, + ACTIONS(530), 1, + sym_identifier, + STATE(185), 1, + sym_value, + ACTIONS(462), 2, + sym_number, + sym_string, + STATE(133), 2, + sym_filtered_value, + aux_sym_cycle_repeat1, + STATE(200), 2, + sym_literal, + sym_variable_attribute, + [6455] = 4, + ACTIONS(532), 1, + anon_sym_PIPE, + STATE(146), 1, + aux_sym_filter_expression_repeat1, + ACTIONS(374), 3, + sym_number, + sym_string, + anon_sym_PERCENT_RBRACE, + ACTIONS(376), 3, + sym_identifier, + anon_sym_as, + anon_sym_silent, + [6472] = 4, + ACTIONS(534), 1, + anon_sym_PIPE, + STATE(146), 1, + aux_sym_filter_expression_repeat1, + ACTIONS(370), 3, + sym_number, + sym_string, + anon_sym_PERCENT_RBRACE, + ACTIONS(372), 3, + sym_identifier, + anon_sym_as, + anon_sym_silent, + [6489] = 2, + ACTIONS(380), 3, + sym_identifier, + anon_sym_as, + anon_sym_silent, + ACTIONS(378), 5, + anon_sym_PIPE, + sym_number, + sym_string, + anon_sym_RBRACE_RBRACE, + anon_sym_PERCENT_RBRACE, + [6502] = 5, + ACTIONS(530), 1, + sym_identifier, + STATE(185), 1, + sym_value, + ACTIONS(462), 2, + sym_number, + sym_string, + STATE(132), 2, + sym_filtered_value, + aux_sym_cycle_repeat1, + STATE(200), 2, + sym_literal, + sym_variable_attribute, + [6521] = 1, + ACTIONS(537), 8, + anon_sym_openblock, + anon_sym_closeblock, + anon_sym_openvariable, + anon_sym_closevariable, + anon_sym_openbrace, + anon_sym_closebrace, + anon_sym_opencomment, + anon_sym_closecomment, + [6532] = 2, + ACTIONS(402), 3, + sym_identifier, + anon_sym_as, + anon_sym_silent, + ACTIONS(400), 5, + anon_sym_PIPE, + sym_number, + sym_string, + anon_sym_RBRACE_RBRACE, + anon_sym_PERCENT_RBRACE, + [6545] = 2, + ACTIONS(372), 3, + sym_identifier, + anon_sym_as, + anon_sym_silent, + ACTIONS(370), 5, + anon_sym_PIPE, + sym_number, + sym_string, + anon_sym_RBRACE_RBRACE, + anon_sym_PERCENT_RBRACE, + [6558] = 4, + ACTIONS(539), 1, + anon_sym_DOT, + ACTIONS(541), 1, + anon_sym_EQ, + ACTIONS(365), 2, + sym_identifier, + anon_sym_as, + ACTIONS(361), 4, + anon_sym_PIPE, + sym_number, + sym_string, + anon_sym_PERCENT_RBRACE, + [6575] = 6, + ACTIONS(512), 1, + sym_identifier, + ACTIONS(543), 1, + anon_sym_not, + STATE(110), 1, + sym_value, + STATE(123), 1, + sym_filtered_value, + ACTIONS(510), 2, + sym_number, + sym_string, + STATE(111), 2, + sym_literal, + sym_variable_attribute, + [6596] = 2, + ACTIONS(394), 3, + sym_identifier, + anon_sym_as, + anon_sym_silent, + ACTIONS(392), 5, + anon_sym_PIPE, + sym_number, + sym_string, + anon_sym_RBRACE_RBRACE, + anon_sym_PERCENT_RBRACE, + [6609] = 2, + ACTIONS(390), 3, + sym_identifier, + anon_sym_as, + anon_sym_silent, + ACTIONS(388), 5, + anon_sym_PIPE, + sym_number, + sym_string, + anon_sym_RBRACE_RBRACE, + anon_sym_PERCENT_RBRACE, + [6622] = 5, + ACTIONS(545), 1, + sym_identifier, + STATE(170), 1, + sym_value, + ACTIONS(442), 2, + sym_number, + sym_string, + STATE(124), 2, + sym_filtered_value, + aux_sym_cycle_repeat1, + STATE(155), 2, + sym_literal, + sym_variable_attribute, + [6641] = 3, + ACTIONS(547), 1, + anon_sym_DOT, + ACTIONS(365), 3, + sym_identifier, + anon_sym_as, + anon_sym_silent, + ACTIONS(361), 4, + anon_sym_PIPE, + sym_number, + sym_string, + anon_sym_PERCENT_RBRACE, + [6656] = 4, + ACTIONS(532), 1, + anon_sym_PIPE, + STATE(145), 1, + aux_sym_filter_expression_repeat1, + ACTIONS(357), 3, + sym_number, + sym_string, + anon_sym_PERCENT_RBRACE, + ACTIONS(359), 3, + sym_identifier, + anon_sym_as, + anon_sym_silent, + [6673] = 5, + ACTIONS(545), 1, + sym_identifier, + STATE(170), 1, + sym_value, + ACTIONS(442), 2, + sym_number, + sym_string, + STATE(127), 2, + sym_filtered_value, + aux_sym_cycle_repeat1, + STATE(155), 2, + sym_literal, + sym_variable_attribute, + [6692] = 4, + ACTIONS(549), 1, + anon_sym_PIPE, + STATE(165), 1, + aux_sym_filter_expression_repeat1, + ACTIONS(359), 2, + sym_identifier, + anon_sym_as, + ACTIONS(357), 3, + sym_number, + sym_string, + anon_sym_PERCENT_RBRACE, + [6708] = 5, + ACTIONS(551), 1, + sym_identifier, + STATE(403), 1, + sym_value, + STATE(688), 1, + sym_filtered_value, + ACTIONS(442), 2, + sym_number, + sym_string, + STATE(155), 2, + sym_literal, + sym_variable_attribute, + [6726] = 5, + ACTIONS(551), 1, + sym_identifier, + STATE(403), 1, + sym_value, + STATE(702), 1, + sym_filtered_value, + ACTIONS(442), 2, + sym_number, + sym_string, + STATE(155), 2, + sym_literal, + sym_variable_attribute, + [6744] = 5, + ACTIONS(551), 1, + sym_identifier, + STATE(403), 1, + sym_value, + STATE(470), 1, + sym_filtered_value, + ACTIONS(442), 2, + sym_number, + sym_string, + STATE(155), 2, + sym_literal, + sym_variable_attribute, + [6762] = 3, + ACTIONS(539), 1, + anon_sym_DOT, + ACTIONS(365), 2, + sym_identifier, + anon_sym_as, + ACTIONS(361), 4, + anon_sym_PIPE, + sym_number, + sym_string, + anon_sym_PERCENT_RBRACE, + [6776] = 4, + ACTIONS(549), 1, + anon_sym_PIPE, + STATE(166), 1, + aux_sym_filter_expression_repeat1, + ACTIONS(376), 2, + sym_identifier, + anon_sym_as, + ACTIONS(374), 3, + sym_number, + sym_string, + anon_sym_PERCENT_RBRACE, + [6792] = 4, + ACTIONS(553), 1, + anon_sym_PIPE, + STATE(166), 1, + aux_sym_filter_expression_repeat1, + ACTIONS(372), 2, + sym_identifier, + anon_sym_as, + ACTIONS(370), 3, + sym_number, + sym_string, + anon_sym_PERCENT_RBRACE, + [6808] = 5, + ACTIONS(556), 1, + sym_identifier, + STATE(396), 1, + sym_value, + STATE(417), 1, + sym_filtered_value, + ACTIONS(504), 2, + sym_number, + sym_string, + STATE(262), 2, + sym_literal, + sym_variable_attribute, + [6826] = 5, + ACTIONS(558), 1, + sym_identifier, + STATE(376), 1, + sym_value, + STATE(383), 1, + sym_filtered_value, + ACTIONS(462), 2, + sym_number, + sym_string, + STATE(200), 2, + sym_literal, + sym_variable_attribute, + [6844] = 5, + ACTIONS(551), 1, + sym_identifier, + STATE(403), 1, + sym_value, + STATE(481), 1, + sym_filtered_value, + ACTIONS(442), 2, + sym_number, + sym_string, + STATE(155), 2, + sym_literal, + sym_variable_attribute, + [6862] = 3, + ACTIONS(560), 1, + anon_sym_PIPE, + ACTIONS(384), 3, + sym_number, + sym_string, + anon_sym_PERCENT_RBRACE, + ACTIONS(386), 3, + sym_identifier, + anon_sym_as, + anon_sym_silent, + [6876] = 5, + ACTIONS(551), 1, + sym_identifier, + STATE(403), 1, + sym_value, + STATE(490), 1, + sym_filtered_value, + ACTIONS(442), 2, + sym_number, + sym_string, + STATE(155), 2, + sym_literal, + sym_variable_attribute, + [6894] = 5, + ACTIONS(551), 1, + sym_identifier, + STATE(403), 1, + sym_value, + STATE(493), 1, + sym_filtered_value, + ACTIONS(442), 2, + sym_number, + sym_string, + STATE(155), 2, + sym_literal, + sym_variable_attribute, + [6912] = 2, + ACTIONS(406), 3, + sym_identifier, + anon_sym_as, + anon_sym_silent, + ACTIONS(404), 4, + sym_number, + sym_string, + anon_sym_RBRACE_RBRACE, + anon_sym_PERCENT_RBRACE, + [6924] = 5, + ACTIONS(551), 1, + sym_identifier, + STATE(403), 1, + sym_value, + STATE(644), 1, + sym_filtered_value, + ACTIONS(442), 2, + sym_number, + sym_string, + STATE(155), 2, + sym_literal, + sym_variable_attribute, + [6942] = 5, + ACTIONS(556), 1, + sym_identifier, + STATE(396), 1, + sym_value, + STATE(413), 1, + sym_filtered_value, + ACTIONS(504), 2, + sym_number, + sym_string, + STATE(262), 2, + sym_literal, + sym_variable_attribute, + [6960] = 5, + ACTIONS(562), 1, + sym_identifier, + STATE(110), 1, + sym_value, + STATE(391), 1, + sym_filtered_value, + ACTIONS(510), 2, + sym_number, + sym_string, + STATE(111), 2, + sym_literal, + sym_variable_attribute, + [6978] = 5, + ACTIONS(562), 1, + sym_identifier, + STATE(110), 1, + sym_value, + STATE(400), 1, + sym_filtered_value, + ACTIONS(510), 2, + sym_number, + sym_string, + STATE(111), 2, + sym_literal, + sym_variable_attribute, + [6996] = 5, + ACTIONS(551), 1, + sym_identifier, + STATE(403), 1, + sym_value, + STATE(448), 1, + sym_filtered_value, + ACTIONS(442), 2, + sym_number, + sym_string, + STATE(155), 2, + sym_literal, + sym_variable_attribute, + [7014] = 5, + ACTIONS(562), 1, + sym_identifier, + STATE(110), 1, + sym_value, + STATE(703), 1, + sym_filtered_value, + ACTIONS(510), 2, + sym_number, + sym_string, + STATE(111), 2, + sym_literal, + sym_variable_attribute, + [7032] = 5, + ACTIONS(562), 1, + sym_identifier, + STATE(110), 1, + sym_value, + STATE(122), 1, + sym_filtered_value, + ACTIONS(510), 2, + sym_number, + sym_string, + STATE(111), 2, + sym_literal, + sym_variable_attribute, + [7050] = 5, + ACTIONS(551), 1, + sym_identifier, + STATE(403), 1, + sym_value, + STATE(455), 1, + sym_filtered_value, + ACTIONS(442), 2, + sym_number, + sym_string, + STATE(155), 2, + sym_literal, + sym_variable_attribute, + [7068] = 5, + ACTIONS(562), 1, + sym_identifier, + STATE(110), 1, + sym_value, + STATE(634), 1, + sym_filtered_value, + ACTIONS(510), 2, + sym_number, + sym_string, + STATE(111), 2, + sym_literal, + sym_variable_attribute, + [7086] = 5, + ACTIONS(562), 1, + sym_identifier, + STATE(110), 1, + sym_value, + STATE(120), 1, + sym_filtered_value, + ACTIONS(510), 2, + sym_number, + sym_string, + STATE(111), 2, + sym_literal, + sym_variable_attribute, + [7104] = 5, + ACTIONS(551), 1, + sym_identifier, + STATE(403), 1, + sym_value, + STATE(692), 1, + sym_filtered_value, + ACTIONS(442), 2, + sym_number, + sym_string, + STATE(155), 2, + sym_literal, + sym_variable_attribute, + [7122] = 3, + ACTIONS(564), 1, + anon_sym_PIPE, + ACTIONS(386), 2, + sym_identifier, + anon_sym_as, + ACTIONS(384), 3, + sym_number, + sym_string, + anon_sym_PERCENT_RBRACE, + [7135] = 4, + ACTIONS(545), 1, + sym_identifier, + STATE(142), 1, + sym_value, + ACTIONS(442), 2, + sym_number, + sym_string, + STATE(155), 2, + sym_literal, + sym_variable_attribute, + [7150] = 4, + ACTIONS(530), 1, + sym_identifier, + STATE(199), 1, + sym_value, + ACTIONS(462), 2, + sym_number, + sym_string, + STATE(200), 2, + sym_literal, + sym_variable_attribute, + [7165] = 2, + ACTIONS(402), 2, + sym_identifier, + anon_sym_as, + ACTIONS(400), 4, + anon_sym_PIPE, + sym_number, + sym_string, + anon_sym_PERCENT_RBRACE, + [7176] = 2, + ACTIONS(394), 2, + sym_identifier, + anon_sym_as, + ACTIONS(392), 4, + anon_sym_PIPE, + sym_number, + sym_string, + anon_sym_PERCENT_RBRACE, + [7187] = 2, + ACTIONS(566), 1, + anon_sym_DOT, + ACTIONS(361), 5, + anon_sym_PIPE, + sym_number, + sym_string, + sym_identifier, + anon_sym_PERCENT_RBRACE, + [7198] = 4, + ACTIONS(562), 1, + sym_identifier, + STATE(114), 1, + sym_value, + ACTIONS(510), 2, + sym_number, + sym_string, + STATE(111), 2, + sym_literal, + sym_variable_attribute, + [7213] = 4, + ACTIONS(551), 1, + sym_identifier, + STATE(142), 1, + sym_value, + ACTIONS(442), 2, + sym_number, + sym_string, + STATE(155), 2, + sym_literal, + sym_variable_attribute, + [7228] = 3, + ACTIONS(568), 1, + anon_sym_PIPE, + STATE(195), 1, + aux_sym_filter_expression_repeat1, + ACTIONS(357), 4, + sym_number, + sym_string, + sym_identifier, + anon_sym_PERCENT_RBRACE, + [7241] = 4, + ACTIONS(506), 1, + sym_identifier, + STATE(282), 1, + sym_value, + ACTIONS(504), 2, + sym_number, + sym_string, + STATE(262), 2, + sym_literal, + sym_variable_attribute, + [7256] = 3, + ACTIONS(568), 1, + anon_sym_PIPE, + STATE(196), 1, + aux_sym_filter_expression_repeat1, + ACTIONS(374), 4, + sym_number, + sym_string, + sym_identifier, + anon_sym_PERCENT_RBRACE, + [7269] = 3, + ACTIONS(570), 1, + anon_sym_PIPE, + STATE(196), 1, + aux_sym_filter_expression_repeat1, + ACTIONS(370), 4, + sym_number, + sym_string, + sym_identifier, + anon_sym_PERCENT_RBRACE, + [7282] = 4, + ACTIONS(556), 1, + sym_identifier, + STATE(282), 1, + sym_value, + ACTIONS(504), 2, + sym_number, + sym_string, + STATE(262), 2, + sym_literal, + sym_variable_attribute, + [7297] = 4, + ACTIONS(558), 1, + sym_identifier, + STATE(199), 1, + sym_value, + ACTIONS(462), 2, + sym_number, + sym_string, + STATE(200), 2, + sym_literal, + sym_variable_attribute, + [7312] = 2, + ACTIONS(398), 2, + sym_identifier, + anon_sym_as, + ACTIONS(396), 4, + anon_sym_PIPE, + sym_number, + sym_string, + anon_sym_PERCENT_RBRACE, + [7323] = 2, + ACTIONS(390), 2, + sym_identifier, + anon_sym_as, + ACTIONS(388), 4, + anon_sym_PIPE, + sym_number, + sym_string, + anon_sym_PERCENT_RBRACE, + [7334] = 2, + ACTIONS(380), 2, + sym_identifier, + anon_sym_as, + ACTIONS(378), 4, + anon_sym_PIPE, + sym_number, + sym_string, + anon_sym_PERCENT_RBRACE, + [7345] = 2, + ACTIONS(372), 2, + sym_identifier, + anon_sym_as, + ACTIONS(370), 4, + anon_sym_PIPE, + sym_number, + sym_string, + anon_sym_PERCENT_RBRACE, + [7356] = 2, + ACTIONS(573), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(575), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7366] = 2, + ACTIONS(577), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(579), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7376] = 2, + ACTIONS(581), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(583), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7386] = 2, + ACTIONS(585), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(587), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7396] = 2, + ACTIONS(589), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(591), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7406] = 2, + ACTIONS(593), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(595), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7416] = 3, + ACTIONS(597), 1, + anon_sym_DOT, + ACTIONS(361), 2, + anon_sym_PIPE, + anon_sym_PERCENT_RBRACE, + ACTIONS(365), 2, + sym_identifier, + anon_sym_as, + [7428] = 2, + ACTIONS(406), 2, + sym_identifier, + anon_sym_as, + ACTIONS(404), 3, + sym_number, + sym_string, + anon_sym_PERCENT_RBRACE, + [7438] = 2, + ACTIONS(599), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(601), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7448] = 2, + ACTIONS(603), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(605), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7458] = 2, + ACTIONS(607), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(609), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7468] = 4, + ACTIONS(374), 1, + anon_sym_PERCENT_RBRACE, + ACTIONS(611), 1, + anon_sym_PIPE, + STATE(215), 1, + aux_sym_filter_expression_repeat1, + ACTIONS(376), 2, + sym_identifier, + anon_sym_as, + [7482] = 4, + ACTIONS(370), 1, + anon_sym_PERCENT_RBRACE, + ACTIONS(613), 1, + anon_sym_PIPE, + STATE(215), 1, + aux_sym_filter_expression_repeat1, + ACTIONS(372), 2, + sym_identifier, + anon_sym_as, + [7496] = 2, + ACTIONS(616), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(618), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7506] = 2, + ACTIONS(620), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(622), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7516] = 2, + ACTIONS(624), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(626), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7526] = 2, + ACTIONS(628), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(630), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7536] = 2, + ACTIONS(632), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(634), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7546] = 2, + ACTIONS(636), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(638), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7556] = 2, + ACTIONS(640), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(642), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7566] = 4, + ACTIONS(357), 1, + anon_sym_PERCENT_RBRACE, + ACTIONS(611), 1, + anon_sym_PIPE, + STATE(214), 1, + aux_sym_filter_expression_repeat1, + ACTIONS(359), 2, + sym_identifier, + anon_sym_as, + [7580] = 2, + ACTIONS(644), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(646), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7590] = 2, + ACTIONS(648), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(650), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7600] = 2, + ACTIONS(652), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(654), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7610] = 2, + ACTIONS(656), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(658), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7620] = 2, + ACTIONS(660), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(662), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7630] = 2, + ACTIONS(664), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(666), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7640] = 2, + ACTIONS(668), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(670), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7650] = 2, + ACTIONS(672), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(674), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7660] = 2, + ACTIONS(676), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(678), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7670] = 2, + ACTIONS(680), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(682), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7680] = 2, + ACTIONS(684), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(686), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7690] = 2, + ACTIONS(688), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(690), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7700] = 2, + ACTIONS(692), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(694), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7710] = 2, + ACTIONS(696), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(698), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7720] = 2, + ACTIONS(700), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(702), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7730] = 2, + ACTIONS(704), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(706), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7740] = 2, + ACTIONS(708), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(710), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7750] = 2, + ACTIONS(712), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(714), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7760] = 2, + ACTIONS(716), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(718), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7770] = 2, + ACTIONS(720), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(722), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7780] = 2, + ACTIONS(724), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(726), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7790] = 2, + ACTIONS(728), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(730), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7800] = 2, + ACTIONS(732), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(734), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7810] = 2, + ACTIONS(736), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(738), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7820] = 2, + ACTIONS(740), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(742), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7830] = 2, + ACTIONS(744), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(746), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7840] = 2, + ACTIONS(748), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(750), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7850] = 2, + ACTIONS(752), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(754), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7860] = 2, + ACTIONS(756), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(758), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7870] = 1, + ACTIONS(378), 5, + anon_sym_PIPE, + sym_number, + sym_string, + sym_identifier, + anon_sym_PERCENT_RBRACE, + [7878] = 2, + ACTIONS(760), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(762), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7888] = 2, + ACTIONS(764), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(766), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7898] = 2, + ACTIONS(768), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(770), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7908] = 2, + ACTIONS(772), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(774), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7918] = 2, + ACTIONS(776), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(778), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7928] = 2, + ACTIONS(780), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(782), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7938] = 2, + ACTIONS(784), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(786), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7948] = 2, + ACTIONS(788), 1, + anon_sym_PIPE, + ACTIONS(384), 4, + sym_number, + sym_string, + sym_identifier, + anon_sym_PERCENT_RBRACE, + [7958] = 1, + ACTIONS(388), 5, + anon_sym_PIPE, + sym_number, + sym_string, + sym_identifier, + anon_sym_PERCENT_RBRACE, + [7966] = 2, + ACTIONS(790), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(792), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7976] = 2, + ACTIONS(794), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(796), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7986] = 2, + ACTIONS(798), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(800), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [7996] = 2, + ACTIONS(802), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(804), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8006] = 2, + ACTIONS(806), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(808), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8016] = 2, + ACTIONS(810), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(812), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8026] = 1, + ACTIONS(400), 5, + anon_sym_PIPE, + sym_number, + sym_string, + sym_identifier, + anon_sym_PERCENT_RBRACE, + [8034] = 2, + ACTIONS(814), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(816), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8044] = 2, + ACTIONS(818), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(820), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8054] = 2, + ACTIONS(822), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(824), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8064] = 2, + ACTIONS(826), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(828), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8074] = 2, + ACTIONS(830), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(832), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8084] = 2, + ACTIONS(834), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(836), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8094] = 2, + ACTIONS(838), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(840), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8104] = 1, + ACTIONS(392), 5, + anon_sym_PIPE, + sym_number, + sym_string, + sym_identifier, + anon_sym_PERCENT_RBRACE, + [8112] = 2, + ACTIONS(842), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(844), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8122] = 2, + ACTIONS(846), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(848), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8132] = 2, + ACTIONS(850), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(852), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8142] = 2, + ACTIONS(854), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(856), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8152] = 1, + ACTIONS(396), 5, + anon_sym_PIPE, + sym_number, + sym_string, + sym_identifier, + anon_sym_PERCENT_RBRACE, + [8160] = 2, + ACTIONS(858), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(860), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8170] = 2, + ACTIONS(862), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(864), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8180] = 1, + ACTIONS(370), 5, + anon_sym_PIPE, + sym_number, + sym_string, + sym_identifier, + anon_sym_PERCENT_RBRACE, + [8188] = 2, + ACTIONS(866), 2, + ts_builtin_sym_end, + sym_content, + ACTIONS(868), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8198] = 2, + ACTIONS(688), 1, + sym_content, + ACTIONS(690), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8207] = 3, + ACTIONS(870), 1, + anon_sym_PIPE, + STATE(288), 1, + aux_sym_filter_expression_repeat1, + ACTIONS(370), 2, + anon_sym_RBRACE_RBRACE, + anon_sym_PERCENT_RBRACE, + [8218] = 2, + ACTIONS(873), 2, + sym_number, + sym_string, + ACTIONS(875), 2, + sym_identifier, + anon_sym_not, + [8227] = 2, + ACTIONS(620), 1, + sym_content, + ACTIONS(622), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8236] = 2, + ACTIONS(581), 1, + sym_content, + ACTIONS(583), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8245] = 2, + ACTIONS(877), 1, + anon_sym_DOT, + ACTIONS(361), 3, + anon_sym_PIPE, + anon_sym_RBRACE_RBRACE, + anon_sym_PERCENT_RBRACE, + [8254] = 2, + ACTIONS(696), 1, + sym_content, + ACTIONS(698), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8263] = 2, + ACTIONS(616), 1, + sym_content, + ACTIONS(618), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8272] = 2, + ACTIONS(672), 1, + sym_content, + ACTIONS(674), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8281] = 2, + ACTIONS(744), 1, + sym_content, + ACTIONS(746), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8290] = 2, + ACTIONS(822), 1, + sym_content, + ACTIONS(824), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8299] = 2, + ACTIONS(603), 1, + sym_content, + ACTIONS(605), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8308] = 2, + ACTIONS(756), 1, + sym_content, + ACTIONS(758), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8317] = 2, + ACTIONS(780), 1, + sym_content, + ACTIONS(782), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8326] = 2, + ACTIONS(736), 1, + sym_content, + ACTIONS(738), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8335] = 2, + ACTIONS(636), 1, + sym_content, + ACTIONS(638), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8344] = 2, + ACTIONS(692), 1, + sym_content, + ACTIONS(694), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8353] = 2, + ACTIONS(607), 1, + sym_content, + ACTIONS(609), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8362] = 2, + ACTIONS(660), 1, + sym_content, + ACTIONS(662), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8371] = 4, + ACTIONS(879), 1, + sym_identifier, + ACTIONS(882), 1, + anon_sym_PERCENT_RBRACE, + ACTIONS(884), 1, + anon_sym_as, + STATE(306), 1, + aux_sym_query_string_repeat2, + [8384] = 2, + ACTIONS(668), 1, + sym_content, + ACTIONS(670), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8393] = 2, + ACTIONS(680), 1, + sym_content, + ACTIONS(682), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8402] = 2, + ACTIONS(724), 1, + sym_content, + ACTIONS(726), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8411] = 2, + ACTIONS(768), 1, + sym_content, + ACTIONS(770), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8420] = 2, + ACTIONS(866), 1, + sym_content, + ACTIONS(868), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8429] = 2, + ACTIONS(764), 1, + sym_content, + ACTIONS(766), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8438] = 2, + ACTIONS(790), 1, + sym_content, + ACTIONS(792), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8447] = 2, + ACTIONS(589), 1, + sym_content, + ACTIONS(591), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8456] = 2, + ACTIONS(593), 1, + sym_content, + ACTIONS(595), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8465] = 2, + ACTIONS(664), 1, + sym_content, + ACTIONS(666), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8474] = 2, + ACTIONS(676), 1, + sym_content, + ACTIONS(678), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8483] = 2, + ACTIONS(684), 1, + sym_content, + ACTIONS(686), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8492] = 2, + ACTIONS(732), 1, + sym_content, + ACTIONS(734), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8501] = 2, + ACTIONS(858), 1, + sym_content, + ACTIONS(860), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8510] = 2, + ACTIONS(862), 1, + sym_content, + ACTIONS(864), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8519] = 2, + ACTIONS(577), 1, + sym_content, + ACTIONS(579), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8528] = 2, + ACTIONS(585), 1, + sym_content, + ACTIONS(587), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8537] = 2, + ACTIONS(599), 1, + sym_content, + ACTIONS(601), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8546] = 2, + ACTIONS(624), 1, + sym_content, + ACTIONS(626), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8555] = 2, + ACTIONS(628), 1, + sym_content, + ACTIONS(630), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8564] = 2, + ACTIONS(632), 1, + sym_content, + ACTIONS(634), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8573] = 2, + ACTIONS(640), 1, + sym_content, + ACTIONS(642), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8582] = 2, + ACTIONS(644), 1, + sym_content, + ACTIONS(646), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8591] = 2, + ACTIONS(648), 1, + sym_content, + ACTIONS(650), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8600] = 2, + ACTIONS(652), 1, + sym_content, + ACTIONS(654), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8609] = 2, + ACTIONS(656), 1, + sym_content, + ACTIONS(658), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8618] = 2, + ACTIONS(700), 1, + sym_content, + ACTIONS(702), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8627] = 2, + ACTIONS(704), 1, + sym_content, + ACTIONS(706), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8636] = 4, + ACTIONS(886), 1, + sym_identifier, + ACTIONS(888), 1, + anon_sym_PERCENT_RBRACE, + STATE(397), 1, + aux_sym_query_string_repeat1, + STATE(398), 1, + aux_sym_query_string_repeat2, + [8649] = 2, + ACTIONS(712), 1, + sym_content, + ACTIONS(714), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8658] = 2, + ACTIONS(716), 1, + sym_content, + ACTIONS(718), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8667] = 2, + ACTIONS(720), 1, + sym_content, + ACTIONS(722), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8676] = 2, + ACTIONS(728), 1, + sym_content, + ACTIONS(730), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8685] = 2, + ACTIONS(740), 1, + sym_content, + ACTIONS(742), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8694] = 2, + ACTIONS(748), 1, + sym_content, + ACTIONS(750), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8703] = 2, + ACTIONS(752), 1, + sym_content, + ACTIONS(754), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8712] = 2, + ACTIONS(760), 1, + sym_content, + ACTIONS(762), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8721] = 2, + ACTIONS(772), 1, + sym_content, + ACTIONS(774), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8730] = 2, + ACTIONS(776), 1, + sym_content, + ACTIONS(778), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8739] = 2, + ACTIONS(784), 1, + sym_content, + ACTIONS(786), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8748] = 2, + ACTIONS(794), 1, + sym_content, + ACTIONS(796), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8757] = 2, + ACTIONS(798), 1, + sym_content, + ACTIONS(800), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8766] = 2, + ACTIONS(802), 1, + sym_content, + ACTIONS(804), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8775] = 2, + ACTIONS(806), 1, + sym_content, + ACTIONS(808), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8784] = 2, + ACTIONS(810), 1, + sym_content, + ACTIONS(812), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8793] = 2, + ACTIONS(814), 1, + sym_content, + ACTIONS(816), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8802] = 2, + ACTIONS(818), 1, + sym_content, + ACTIONS(820), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8811] = 2, + ACTIONS(573), 1, + sym_content, + ACTIONS(575), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8820] = 2, + ACTIONS(826), 1, + sym_content, + ACTIONS(828), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8829] = 2, + ACTIONS(830), 1, + sym_content, + ACTIONS(832), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8838] = 2, + ACTIONS(834), 1, + sym_content, + ACTIONS(836), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8847] = 2, + ACTIONS(838), 1, + sym_content, + ACTIONS(840), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8856] = 2, + ACTIONS(842), 1, + sym_content, + ACTIONS(844), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8865] = 2, + ACTIONS(846), 1, + sym_content, + ACTIONS(848), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8874] = 2, + ACTIONS(850), 1, + sym_content, + ACTIONS(852), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8883] = 2, + ACTIONS(854), 1, + sym_content, + ACTIONS(856), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [8892] = 3, + ACTIONS(890), 1, + anon_sym_PIPE, + STATE(288), 1, + aux_sym_filter_expression_repeat1, + ACTIONS(374), 2, + anon_sym_RBRACE_RBRACE, + anon_sym_PERCENT_RBRACE, + [8903] = 1, + ACTIONS(404), 4, + sym_number, + sym_string, + sym_identifier, + anon_sym_PERCENT_RBRACE, + [8910] = 2, + ACTIONS(892), 1, + anon_sym_DOT, + ACTIONS(361), 3, + anon_sym_PIPE, + sym_identifier, + anon_sym_PERCENT_RBRACE, + [8919] = 2, + ACTIONS(894), 2, + sym_number, + sym_string, + ACTIONS(896), 2, + sym_identifier, + anon_sym_not, + [8928] = 3, + ACTIONS(898), 1, + anon_sym_PIPE, + STATE(368), 1, + aux_sym_filter_expression_repeat1, + ACTIONS(374), 2, + sym_identifier, + anon_sym_PERCENT_RBRACE, + [8939] = 3, + ACTIONS(900), 1, + anon_sym_PIPE, + STATE(368), 1, + aux_sym_filter_expression_repeat1, + ACTIONS(370), 2, + sym_identifier, + anon_sym_PERCENT_RBRACE, + [8950] = 4, + ACTIONS(886), 1, + sym_identifier, + ACTIONS(903), 1, + anon_sym_PERCENT_RBRACE, + STATE(371), 1, + aux_sym_query_string_repeat1, + STATE(386), 1, + aux_sym_query_string_repeat2, + [8963] = 3, + ACTIONS(896), 1, + sym_identifier, + ACTIONS(905), 1, + anon_sym_not, + ACTIONS(894), 2, + sym_number, + sym_string, + [8974] = 4, + ACTIONS(886), 1, + sym_identifier, + ACTIONS(907), 1, + anon_sym_PERCENT_RBRACE, + STATE(387), 1, + aux_sym_query_string_repeat2, + STATE(397), 1, + aux_sym_query_string_repeat1, + [8987] = 4, + ACTIONS(482), 1, + anon_sym_PERCENT_RBRACE, + ACTIONS(484), 1, + anon_sym_as, + ACTIONS(909), 1, + sym_identifier, + STATE(306), 1, + aux_sym_query_string_repeat2, + [9000] = 3, + ACTIONS(898), 1, + anon_sym_PIPE, + STATE(367), 1, + aux_sym_filter_expression_repeat1, + ACTIONS(357), 2, + sym_identifier, + anon_sym_PERCENT_RBRACE, + [9011] = 3, + ACTIONS(890), 1, + anon_sym_PIPE, + STATE(363), 1, + aux_sym_filter_expression_repeat1, + ACTIONS(357), 2, + anon_sym_RBRACE_RBRACE, + anon_sym_PERCENT_RBRACE, + [9022] = 4, + ACTIONS(886), 1, + sym_identifier, + ACTIONS(911), 1, + anon_sym_PERCENT_RBRACE, + STATE(335), 1, + aux_sym_query_string_repeat1, + STATE(388), 1, + aux_sym_query_string_repeat2, + [9035] = 3, + ACTIONS(384), 1, + anon_sym_PERCENT_RBRACE, + ACTIONS(913), 1, + anon_sym_PIPE, + ACTIONS(386), 2, + sym_identifier, + anon_sym_as, + [9046] = 4, + ACTIONS(492), 1, + anon_sym_PERCENT_RBRACE, + ACTIONS(494), 1, + anon_sym_as, + ACTIONS(909), 1, + sym_identifier, + STATE(306), 1, + aux_sym_query_string_repeat2, + [9059] = 2, + ACTIONS(708), 1, + sym_content, + ACTIONS(710), 3, + anon_sym_LBRACE_LBRACE, + anon_sym_LBRACE_POUND, + anon_sym_LBRACE_PERCENT, + [9068] = 3, + ACTIONS(915), 1, + anon_sym_in, + ACTIONS(917), 1, + anon_sym_COMMA, + STATE(385), 1, + aux_sym_for_group_repeat1, + [9078] = 3, + ACTIONS(185), 1, + anon_sym_elif, + ACTIONS(919), 1, + anon_sym_else, + ACTIONS(921), 1, + anon_sym_endif, + [9088] = 3, + ACTIONS(185), 1, + anon_sym_elif, + ACTIONS(923), 1, + anon_sym_else, + ACTIONS(925), 1, + anon_sym_endif, + [9098] = 3, + ACTIONS(917), 1, + anon_sym_COMMA, + ACTIONS(927), 1, + anon_sym_in, + STATE(385), 1, + aux_sym_for_group_repeat1, + [9108] = 2, + ACTIONS(931), 1, + anon_sym_PERCENT_RBRACE, + ACTIONS(929), 2, + sym_identifier, + anon_sym_as, + [9116] = 3, + ACTIONS(933), 1, + sym_identifier, + ACTIONS(936), 1, + anon_sym_PERCENT_RBRACE, + STATE(384), 1, + aux_sym_with_group_repeat1, + [9126] = 3, + ACTIONS(938), 1, + anon_sym_in, + ACTIONS(940), 1, + anon_sym_COMMA, + STATE(385), 1, + aux_sym_for_group_repeat1, + [9136] = 3, + ACTIONS(907), 1, + anon_sym_PERCENT_RBRACE, + ACTIONS(943), 1, + sym_identifier, + STATE(399), 1, + aux_sym_query_string_repeat2, + [9146] = 3, + ACTIONS(943), 1, + sym_identifier, + ACTIONS(945), 1, + anon_sym_PERCENT_RBRACE, + STATE(399), 1, + aux_sym_query_string_repeat2, + [9156] = 3, + ACTIONS(888), 1, + anon_sym_PERCENT_RBRACE, + ACTIONS(943), 1, + sym_identifier, + STATE(399), 1, + aux_sym_query_string_repeat2, + [9166] = 3, + ACTIONS(947), 1, + sym_identifier, + ACTIONS(949), 1, + anon_sym_PERCENT_RBRACE, + STATE(384), 1, + aux_sym_with_group_repeat1, + [9176] = 3, + ACTIONS(185), 1, + anon_sym_elif, + ACTIONS(951), 1, + anon_sym_else, + ACTIONS(953), 1, + anon_sym_endif, + [9186] = 1, + ACTIONS(955), 3, + anon_sym_w, + anon_sym_p, + anon_sym_b, + [9192] = 3, + ACTIONS(917), 1, + anon_sym_COMMA, + ACTIONS(957), 1, + anon_sym_in, + STATE(382), 1, + aux_sym_for_group_repeat1, + [9202] = 3, + ACTIONS(185), 1, + anon_sym_elif, + ACTIONS(959), 1, + anon_sym_else, + ACTIONS(961), 1, + anon_sym_endif, + [9212] = 3, + ACTIONS(185), 1, + anon_sym_elif, + ACTIONS(963), 1, + anon_sym_else, + ACTIONS(965), 1, + anon_sym_endif, + [9222] = 3, + ACTIONS(185), 1, + anon_sym_elif, + ACTIONS(967), 1, + anon_sym_else, + ACTIONS(969), 1, + anon_sym_endif, + [9232] = 2, + ACTIONS(971), 1, + anon_sym_PIPE, + ACTIONS(384), 2, + sym_identifier, + anon_sym_PERCENT_RBRACE, + [9240] = 3, + ACTIONS(973), 1, + sym_identifier, + ACTIONS(976), 1, + anon_sym_PERCENT_RBRACE, + STATE(397), 1, + aux_sym_query_string_repeat1, + [9250] = 3, + ACTIONS(943), 1, + sym_identifier, + ACTIONS(978), 1, + anon_sym_PERCENT_RBRACE, + STATE(399), 1, + aux_sym_query_string_repeat2, + [9260] = 3, + ACTIONS(882), 1, + anon_sym_PERCENT_RBRACE, + ACTIONS(980), 1, + sym_identifier, + STATE(399), 1, + aux_sym_query_string_repeat2, + [9270] = 1, + ACTIONS(983), 3, + anon_sym_w, + anon_sym_p, + anon_sym_b, + [9276] = 3, + ACTIONS(947), 1, + sym_identifier, + ACTIONS(985), 1, + anon_sym_PERCENT_RBRACE, + STATE(384), 1, + aux_sym_with_group_repeat1, + [9286] = 2, + ACTIONS(989), 1, + anon_sym_EQ, + ACTIONS(987), 2, + sym_identifier, + anon_sym_PERCENT_RBRACE, + [9294] = 2, + ACTIONS(991), 1, + anon_sym_PIPE, + ACTIONS(384), 2, + anon_sym_RBRACE_RBRACE, + anon_sym_PERCENT_RBRACE, + [9302] = 3, + ACTIONS(917), 1, + anon_sym_COMMA, + ACTIONS(993), 1, + anon_sym_in, + STATE(379), 1, + aux_sym_for_group_repeat1, + [9312] = 2, + ACTIONS(995), 1, + anon_sym_empty, + ACTIONS(997), 1, + anon_sym_endfor, + [9319] = 2, + ACTIONS(999), 1, + anon_sym_LBRACE_PERCENT, + STATE(433), 1, + aux_sym_if_group_repeat1, + [9326] = 1, + ACTIONS(1001), 2, + sym_string, + sym_identifier, + [9331] = 2, + ACTIONS(1003), 1, + sym_identifier, + ACTIONS(1005), 1, + anon_sym_PERCENT_RBRACE, + [9338] = 1, + ACTIONS(1007), 2, + anon_sym_in, + anon_sym_COMMA, + [9343] = 2, + ACTIONS(1009), 1, + anon_sym_random, + ACTIONS(1011), 1, + anon_sym_PERCENT_RBRACE, + [9350] = 1, + ACTIONS(1013), 2, + anon_sym_on, + anon_sym_off, + [9355] = 2, + ACTIONS(1015), 1, + anon_sym_PERCENT_RBRACE, + ACTIONS(1017), 1, + anon_sym_as, + [9362] = 1, + ACTIONS(1019), 2, + sym_identifier, + anon_sym_PERCENT_RBRACE, + [9367] = 2, + ACTIONS(1021), 1, + anon_sym_empty, + ACTIONS(1023), 1, + anon_sym_endfor, + [9374] = 2, + ACTIONS(1025), 1, + anon_sym_empty, + ACTIONS(1027), 1, + anon_sym_endfor, + [9381] = 2, + ACTIONS(1029), 1, + anon_sym_empty, + ACTIONS(1031), 1, + anon_sym_endfor, + [9388] = 1, + ACTIONS(931), 2, + sym_identifier, + anon_sym_PERCENT_RBRACE, + [9393] = 2, + ACTIONS(1033), 1, + anon_sym_PERCENT_RBRACE, + ACTIONS(1035), 1, + anon_sym_as, + [9400] = 2, + ACTIONS(1037), 1, + anon_sym_LBRACE_PERCENT, + STATE(433), 1, + aux_sym_if_group_repeat1, + [9407] = 2, + ACTIONS(1039), 1, + anon_sym_random, + ACTIONS(1041), 1, + anon_sym_PERCENT_RBRACE, + [9414] = 2, + ACTIONS(947), 1, + sym_identifier, + STATE(389), 1, + aux_sym_with_group_repeat1, + [9421] = 1, + ACTIONS(1043), 2, + sym_string, + sym_identifier, + [9426] = 2, + ACTIONS(1045), 1, + anon_sym_LBRACE_PERCENT, + STATE(425), 1, + aux_sym_if_group_repeat1, + [9433] = 2, + ACTIONS(1047), 1, + anon_sym_LBRACE_PERCENT, + STATE(433), 1, + aux_sym_if_group_repeat1, + [9440] = 2, + ACTIONS(1049), 1, + anon_sym_LBRACE_PERCENT, + STATE(433), 1, + aux_sym_if_group_repeat1, + [9447] = 2, + ACTIONS(1051), 1, + anon_sym_PERCENT_RBRACE, + ACTIONS(1053), 1, + anon_sym_silent, + [9454] = 2, + ACTIONS(1055), 1, + anon_sym_PERCENT_RBRACE, + ACTIONS(1057), 1, + anon_sym_as, + [9461] = 2, + ACTIONS(1059), 1, + anon_sym_PERCENT_RBRACE, + ACTIONS(1061), 1, + anon_sym_inline, + [9468] = 2, + ACTIONS(1063), 1, + anon_sym_LBRACE_PERCENT, + STATE(419), 1, + aux_sym_if_group_repeat1, + [9475] = 2, + ACTIONS(1065), 1, + anon_sym_PERCENT_RBRACE, + ACTIONS(1067), 1, + anon_sym_as, + [9482] = 1, + ACTIONS(1069), 2, + anon_sym_on, + anon_sym_off, + [9487] = 2, + ACTIONS(1071), 1, + sym_identifier, + ACTIONS(1073), 1, + anon_sym_PERCENT_RBRACE, + [9494] = 2, + ACTIONS(1075), 1, + anon_sym_LBRACE_PERCENT, + STATE(433), 1, + aux_sym_if_group_repeat1, + [9501] = 2, + ACTIONS(947), 1, + sym_identifier, + STATE(401), 1, + aux_sym_with_group_repeat1, + [9508] = 2, + ACTIONS(1078), 1, + anon_sym_PERCENT_RBRACE, + ACTIONS(1080), 1, + anon_sym_inline, + [9515] = 2, + ACTIONS(1082), 1, + anon_sym_PERCENT_RBRACE, + ACTIONS(1084), 1, + anon_sym_silent, + [9522] = 1, + ACTIONS(1086), 1, + anon_sym_PERCENT_RBRACE, + [9526] = 1, + ACTIONS(1088), 1, + anon_sym_PERCENT_RBRACE, + [9530] = 1, + ACTIONS(1090), 1, + anon_sym_endautoescape, + [9534] = 1, + ACTIONS(1092), 1, + sym_pop_block, + [9538] = 1, + ACTIONS(1094), 1, + anon_sym_endblock, + [9542] = 1, + ACTIONS(1096), 1, + anon_sym_LBRACE_PERCENT, + [9546] = 1, + ACTIONS(1098), 1, + anon_sym_PERCENT_RBRACE, + [9550] = 1, + ACTIONS(1100), 1, + anon_sym_PERCENT_RBRACE, + [9554] = 1, + ACTIONS(1102), 1, + anon_sym_endfilter, + [9558] = 1, + ACTIONS(1104), 1, + anon_sym_PERCENT_RBRACE, + [9562] = 1, + ACTIONS(1106), 1, + anon_sym_PERCENT_RBRACE, + [9566] = 1, + ACTIONS(1108), 1, + anon_sym_PERCENT_RBRACE, + [9570] = 1, + ACTIONS(1110), 1, + sym_identifier, + [9574] = 1, + ACTIONS(1112), 1, + anon_sym_PERCENT_RBRACE, + [9578] = 1, + ACTIONS(1114), 1, + anon_sym_PERCENT_RBRACE, + [9582] = 1, + ACTIONS(1116), 1, + anon_sym_PERCENT_RBRACE, + [9586] = 1, + ACTIONS(1118), 1, + anon_sym_PERCENT_RBRACE, + [9590] = 1, + ACTIONS(1120), 1, + anon_sym_endfor, + [9594] = 1, + ACTIONS(1122), 1, + anon_sym_RBRACE_RBRACE, + [9598] = 1, + ACTIONS(1124), 1, + anon_sym_PERCENT_RBRACE, + [9602] = 1, + ACTIONS(1126), 1, + aux_sym_template_comment_token1, + [9606] = 1, + ACTIONS(1128), 1, + anon_sym_PERCENT_RBRACE, + [9610] = 1, + ACTIONS(1130), 1, + anon_sym_endifchanged, + [9614] = 1, + ACTIONS(1132), 1, + sym_identifier, + [9618] = 1, + ACTIONS(1134), 1, + anon_sym_endfor, + [9622] = 1, + ACTIONS(1136), 1, + anon_sym_POUND_RBRACE, + [9626] = 1, + ACTIONS(1138), 1, + sym_pop_partial, + [9630] = 1, + ACTIONS(281), 1, + anon_sym_endpartialdef, + [9634] = 1, + ACTIONS(1140), 1, + sym_identifier, + [9638] = 1, + ACTIONS(1142), 1, + anon_sym_LBRACE_PERCENT, + [9642] = 1, + ACTIONS(1144), 1, + anon_sym_PERCENT_RBRACE, + [9646] = 1, + ACTIONS(1146), 1, + anon_sym_LBRACE_PERCENT, + [9650] = 1, + ACTIONS(1148), 1, + sym_identifier, + [9654] = 1, + ACTIONS(1150), 1, + anon_sym_PERCENT_RBRACE, + [9658] = 1, + ACTIONS(1152), 1, + anon_sym_PERCENT_RBRACE, + [9662] = 1, + ACTIONS(1154), 1, + anon_sym_PERCENT_RBRACE, + [9666] = 1, + ACTIONS(1156), 1, + anon_sym_PERCENT_RBRACE, + [9670] = 1, + ACTIONS(1158), 1, + anon_sym_endverbatim, + [9674] = 1, + ACTIONS(1160), 1, + anon_sym_PERCENT_RBRACE, + [9678] = 1, + ACTIONS(1162), 1, + anon_sym_PERCENT_RBRACE, + [9682] = 1, + ACTIONS(1164), 1, + anon_sym_PERCENT_RBRACE, + [9686] = 1, + ACTIONS(1166), 1, + anon_sym_endwith, + [9690] = 1, + ACTIONS(1168), 1, + anon_sym_in, + [9694] = 1, + ACTIONS(1170), 1, + anon_sym_PERCENT_RBRACE, + [9698] = 1, + ACTIONS(1172), 1, + anon_sym_RBRACE_RBRACE, + [9702] = 1, + ACTIONS(1174), 1, + anon_sym_POUND_RBRACE, + [9706] = 1, + ACTIONS(1176), 1, + anon_sym_PERCENT_RBRACE, + [9710] = 1, + ACTIONS(1178), 1, + anon_sym_PERCENT_RBRACE, + [9714] = 1, + ACTIONS(1180), 1, + anon_sym_EQ, + [9718] = 1, + ACTIONS(1182), 1, + anon_sym_LBRACE_PERCENT, + [9722] = 1, + ACTIONS(1184), 1, + sym_attribute, + [9726] = 1, + ACTIONS(1186), 1, + anon_sym_PERCENT_RBRACE, + [9730] = 1, + ACTIONS(1188), 1, + sym_pop_block, + [9734] = 1, + ACTIONS(1190), 1, + anon_sym_PERCENT_RBRACE, + [9738] = 1, + ACTIONS(1192), 1, + sym_push_verbatim, + [9742] = 1, + ACTIONS(1194), 1, + anon_sym_PERCENT_RBRACE, + [9746] = 1, + ACTIONS(1196), 1, + anon_sym_PERCENT_RBRACE, + [9750] = 1, + ACTIONS(1198), 1, + anon_sym_PERCENT_RBRACE, + [9754] = 1, + ACTIONS(1200), 1, + anon_sym_PERCENT_RBRACE, + [9758] = 1, + ACTIONS(1202), 1, + anon_sym_PERCENT_RBRACE, + [9762] = 1, + ACTIONS(1204), 1, + anon_sym_PERCENT_RBRACE, + [9766] = 1, + ACTIONS(1206), 1, + anon_sym_PERCENT_RBRACE, + [9770] = 1, + ACTIONS(1208), 1, + anon_sym_PERCENT_RBRACE, + [9774] = 1, + ACTIONS(1210), 1, + anon_sym_PERCENT_RBRACE, + [9778] = 1, + ACTIONS(1212), 1, + anon_sym_PERCENT_RBRACE, + [9782] = 1, + ACTIONS(1214), 1, + anon_sym_endfor, + [9786] = 1, + ACTIONS(1216), 1, + sym_push_block, + [9790] = 1, + ACTIONS(1218), 1, + anon_sym_PERCENT_RBRACE, + [9794] = 1, + ACTIONS(541), 1, + anon_sym_EQ, + [9798] = 1, + ACTIONS(1220), 1, + anon_sym_LBRACE_PERCENT, + [9802] = 1, + ACTIONS(1222), 1, + anon_sym_PERCENT_RBRACE, + [9806] = 1, + ACTIONS(303), 1, + anon_sym_endifchanged, + [9810] = 1, + ACTIONS(1224), 1, + anon_sym_PERCENT_RBRACE, + [9814] = 1, + ACTIONS(1226), 1, + anon_sym_PERCENT_RBRACE, + [9818] = 1, + ACTIONS(1228), 1, + anon_sym_PERCENT_RBRACE, + [9822] = 1, + ACTIONS(1230), 1, + anon_sym_PERCENT_RBRACE, + [9826] = 1, + ACTIONS(1232), 1, + anon_sym_endif, + [9830] = 1, + ACTIONS(1234), 1, + anon_sym_PERCENT_RBRACE, + [9834] = 1, + ACTIONS(1236), 1, + anon_sym_PERCENT_RBRACE, + [9838] = 1, + ACTIONS(1238), 1, + anon_sym_PERCENT_RBRACE, + [9842] = 1, + ACTIONS(1240), 1, + anon_sym_PERCENT_RBRACE, + [9846] = 1, + ACTIONS(1242), 1, + anon_sym_PERCENT_RBRACE, + [9850] = 1, + ACTIONS(1244), 1, + anon_sym_PERCENT_RBRACE, + [9854] = 1, + ACTIONS(1246), 1, + anon_sym_PERCENT_RBRACE, + [9858] = 1, + ACTIONS(1248), 1, + anon_sym_PERCENT_RBRACE, + [9862] = 1, + ACTIONS(1250), 1, + anon_sym_PERCENT_RBRACE, + [9866] = 1, + ACTIONS(1252), 1, + anon_sym_PERCENT_RBRACE, + [9870] = 1, + ACTIONS(1254), 1, + anon_sym_PERCENT_RBRACE, + [9874] = 1, + ACTIONS(1256), 1, + anon_sym_PERCENT_RBRACE, + [9878] = 1, + ACTIONS(1258), 1, + anon_sym_PERCENT_RBRACE, + [9882] = 1, + ACTIONS(1260), 1, + anon_sym_PERCENT_RBRACE, + [9886] = 1, + ACTIONS(1262), 1, + anon_sym_PERCENT_RBRACE, + [9890] = 1, + ACTIONS(1264), 1, + anon_sym_PERCENT_RBRACE, + [9894] = 1, + ACTIONS(1266), 1, + anon_sym_PERCENT_RBRACE, + [9898] = 1, + ACTIONS(1268), 1, + anon_sym_PERCENT_RBRACE, + [9902] = 1, + ACTIONS(1270), 1, + anon_sym_PERCENT_RBRACE, + [9906] = 1, + ACTIONS(1272), 1, + anon_sym_PERCENT_RBRACE, + [9910] = 1, + ACTIONS(1274), 1, + anon_sym_PERCENT_RBRACE, + [9914] = 1, + ACTIONS(1276), 1, + anon_sym_PERCENT_RBRACE, + [9918] = 1, + ACTIONS(1278), 1, + anon_sym_PERCENT_RBRACE, + [9922] = 1, + ACTIONS(1280), 1, + anon_sym_PERCENT_RBRACE, + [9926] = 1, + ACTIONS(1282), 1, + anon_sym_PERCENT_RBRACE, + [9930] = 1, + ACTIONS(1284), 1, + anon_sym_PERCENT_RBRACE, + [9934] = 1, + ACTIONS(1286), 1, + anon_sym_PERCENT_RBRACE, + [9938] = 1, + ACTIONS(1288), 1, + anon_sym_PERCENT_RBRACE, + [9942] = 1, + ACTIONS(1290), 1, + anon_sym_PERCENT_RBRACE, + [9946] = 1, + ACTIONS(1292), 1, + anon_sym_PERCENT_RBRACE, + [9950] = 1, + ACTIONS(1294), 1, + anon_sym_PERCENT_RBRACE, + [9954] = 1, + ACTIONS(1296), 1, + anon_sym_PERCENT_RBRACE, + [9958] = 1, + ACTIONS(1298), 1, + anon_sym_PERCENT_RBRACE, + [9962] = 1, + ACTIONS(1300), 1, + anon_sym_PERCENT_RBRACE, + [9966] = 1, + ACTIONS(1302), 1, + anon_sym_PERCENT_RBRACE, + [9970] = 1, + ACTIONS(1304), 1, + anon_sym_PERCENT_RBRACE, + [9974] = 1, + ACTIONS(1306), 1, + anon_sym_PERCENT_RBRACE, + [9978] = 1, + ACTIONS(1308), 1, + anon_sym_PERCENT_RBRACE, + [9982] = 1, + ACTIONS(1310), 1, + anon_sym_PERCENT_RBRACE, + [9986] = 1, + ACTIONS(1312), 1, + anon_sym_PERCENT_RBRACE, + [9990] = 1, + ACTIONS(1314), 1, + anon_sym_PERCENT_RBRACE, + [9994] = 1, + ACTIONS(1316), 1, + anon_sym_PERCENT_RBRACE, + [9998] = 1, + ACTIONS(1318), 1, + anon_sym_PERCENT_RBRACE, + [10002] = 1, + ACTIONS(1320), 1, + anon_sym_PERCENT_RBRACE, + [10006] = 1, + ACTIONS(1322), 1, + anon_sym_PERCENT_RBRACE, + [10010] = 1, + ACTIONS(1324), 1, + anon_sym_LBRACE_PERCENT, + [10014] = 1, + ACTIONS(1326), 1, + sym_attribute, + [10018] = 1, + ACTIONS(1328), 1, + anon_sym_PERCENT_RBRACE, + [10022] = 1, + ACTIONS(1330), 1, + sym_attribute, + [10026] = 1, + ACTIONS(1332), 1, + anon_sym_PERCENT_RBRACE, + [10030] = 1, + ACTIONS(1334), 1, + anon_sym_LBRACE_PERCENT, + [10034] = 1, + ACTIONS(1336), 1, + anon_sym_PERCENT_RBRACE, + [10038] = 1, + ACTIONS(1338), 1, + anon_sym_PERCENT_RBRACE, + [10042] = 1, + ACTIONS(1340), 1, + anon_sym_LBRACE_PERCENT, + [10046] = 1, + ACTIONS(1342), 1, + aux_sym_template_comment_token1, + [10050] = 1, + ACTIONS(1344), 1, + anon_sym_PERCENT_RBRACE, + [10054] = 1, + ACTIONS(1346), 1, + anon_sym_PERCENT_RBRACE, + [10058] = 1, + ACTIONS(185), 1, + anon_sym_elif, + [10062] = 1, + ACTIONS(1348), 1, + sym_string, + [10066] = 1, + ACTIONS(1350), 1, + anon_sym_PERCENT_RBRACE, + [10070] = 1, + ACTIONS(1352), 1, + anon_sym_PERCENT_RBRACE, + [10074] = 1, + ACTIONS(1354), 1, + sym_pop_partial, + [10078] = 1, + ACTIONS(1356), 1, + sym_string, + [10082] = 1, + ACTIONS(1358), 1, + sym_identifier, + [10086] = 1, + ACTIONS(1360), 1, + anon_sym_endpartialdef, + [10090] = 1, + ACTIONS(1362), 1, + anon_sym_LBRACE_PERCENT, + [10094] = 1, + ACTIONS(1364), 1, + anon_sym_PERCENT_RBRACE, + [10098] = 1, + ACTIONS(1366), 1, + sym_identifier, + [10102] = 1, + ACTIONS(1368), 1, + sym_identifier, + [10106] = 1, + ACTIONS(1370), 1, + anon_sym_PERCENT_RBRACE, + [10110] = 1, + ACTIONS(1372), 1, + sym_identifier, + [10114] = 1, + ACTIONS(1374), 1, + sym_attribute, + [10118] = 1, + ACTIONS(1376), 1, + anon_sym_PERCENT_RBRACE, + [10122] = 1, + ACTIONS(1378), 1, + sym_identifier, + [10126] = 1, + ACTIONS(1380), 1, + anon_sym_PERCENT_RBRACE, + [10130] = 1, + ACTIONS(1382), 1, + sym_pop_verbatim, + [10134] = 1, + ACTIONS(1384), 1, + sym_identifier, + [10138] = 1, + ACTIONS(299), 1, + anon_sym_endifchanged, + [10142] = 1, + ACTIONS(1386), 1, + anon_sym_PERCENT_RBRACE, + [10146] = 1, + ACTIONS(1388), 1, + anon_sym_PERCENT_RBRACE, + [10150] = 1, + ACTIONS(1390), 1, + sym_identifier, + [10154] = 1, + ACTIONS(1392), 1, + sym_identifier, + [10158] = 1, + ACTIONS(1394), 1, + anon_sym_endautoescape, + [10162] = 1, + ACTIONS(1396), 1, + sym_pop_block, + [10166] = 1, + ACTIONS(1398), 1, + anon_sym_endfilter, + [10170] = 1, + ACTIONS(1400), 1, + sym_attribute, + [10174] = 1, + ACTIONS(1402), 1, + anon_sym_LBRACE_PERCENT, + [10178] = 1, + ACTIONS(1404), 1, + anon_sym_endifchanged, + [10182] = 1, + ACTIONS(1406), 1, + sym_pop_partial, + [10186] = 1, + ACTIONS(1408), 1, + sym_identifier, + [10190] = 1, + ACTIONS(1410), 1, + anon_sym_endwith, + [10194] = 1, + ACTIONS(1412), 1, + sym_pop_block, + [10198] = 1, + ACTIONS(1414), 1, + sym_push_partial, + [10202] = 1, + ACTIONS(1416), 1, + anon_sym_PERCENT_RBRACE, + [10206] = 1, + ACTIONS(1418), 1, + sym_pop_partial, + [10210] = 1, + ACTIONS(1420), 1, + sym_pop_verbatim, + [10214] = 1, + ACTIONS(1422), 1, + anon_sym_endif, + [10218] = 1, + ACTIONS(1424), 1, + anon_sym_PERCENT_RBRACE, + [10222] = 1, + ACTIONS(1426), 1, + anon_sym_PERCENT_RBRACE, + [10226] = 1, + ACTIONS(1428), 1, + sym_pop_partial, + [10230] = 1, + ACTIONS(1430), 1, + anon_sym_PERCENT_RBRACE, + [10234] = 1, + ACTIONS(1432), 1, + anon_sym_endif, + [10238] = 1, + ACTIONS(1434), 1, + anon_sym_PERCENT_RBRACE, + [10242] = 1, + ACTIONS(1436), 1, + anon_sym_PERCENT_RBRACE, + [10246] = 1, + ACTIONS(1438), 1, + anon_sym_PERCENT_RBRACE, + [10250] = 1, + ACTIONS(1440), 1, + anon_sym_endif, + [10254] = 1, + ACTIONS(1442), 1, + anon_sym_PERCENT_RBRACE, + [10258] = 1, + ACTIONS(1444), 1, + anon_sym_endif, + [10262] = 1, + ACTIONS(1446), 1, + anon_sym_endfor, + [10266] = 1, + ACTIONS(1448), 1, + anon_sym_LBRACE_PERCENT, + [10270] = 1, + ACTIONS(1450), 1, + anon_sym_endfor, + [10274] = 1, + ACTIONS(1452), 1, + anon_sym_endif, + [10278] = 1, + ACTIONS(1454), 1, + anon_sym_endfor, + [10282] = 1, + ACTIONS(1456), 1, + anon_sym_endfor, + [10286] = 1, + ACTIONS(1458), 1, + anon_sym_PERCENT_RBRACE, + [10290] = 1, + ACTIONS(1460), 1, + anon_sym_endfor, + [10294] = 1, + ACTIONS(1462), 1, + anon_sym_LBRACE_PERCENT, + [10298] = 1, + ACTIONS(1464), 1, + sym_identifier, + [10302] = 1, + ACTIONS(1466), 1, + anon_sym_LBRACE_PERCENT, + [10306] = 1, + ACTIONS(1468), 1, + anon_sym_LBRACE_PERCENT, + [10310] = 1, + ACTIONS(1470), 1, + anon_sym_by, + [10314] = 1, + ACTIONS(1472), 1, + ts_builtin_sym_end, + [10318] = 1, + ACTIONS(1474), 1, + anon_sym_PERCENT_RBRACE, + [10322] = 1, + ACTIONS(1476), 1, + anon_sym_PERCENT_RBRACE, + [10326] = 1, + ACTIONS(989), 1, + anon_sym_EQ, + [10330] = 1, + ACTIONS(1478), 1, + anon_sym_LBRACE_PERCENT, + [10334] = 1, + ACTIONS(1480), 1, + anon_sym_LBRACE_PERCENT, + [10338] = 1, + ACTIONS(1482), 1, + anon_sym_LBRACE_PERCENT, + [10342] = 1, + ACTIONS(1484), 1, + sym_attribute, + [10346] = 1, + ACTIONS(1486), 1, + anon_sym_LBRACE_PERCENT, + [10350] = 1, + ACTIONS(1488), 1, + anon_sym_PERCENT_RBRACE, + [10354] = 1, + ACTIONS(1490), 1, + anon_sym_LBRACE_PERCENT, + [10358] = 1, + ACTIONS(1492), 1, + anon_sym_PERCENT_RBRACE, + [10362] = 1, + ACTIONS(1494), 1, + anon_sym_endspaceless, + [10366] = 1, + ACTIONS(1496), 1, + anon_sym_LBRACE_PERCENT, + [10370] = 1, + ACTIONS(1498), 1, + anon_sym_PERCENT_RBRACE, + [10374] = 1, + ACTIONS(1500), 1, + anon_sym_LBRACE_PERCENT, + [10378] = 1, + ACTIONS(1502), 1, + anon_sym_endblock, + [10382] = 1, + ACTIONS(1504), 1, + sym_pop_partial, + [10386] = 1, + ACTIONS(1506), 1, + anon_sym_LBRACE_PERCENT, + [10390] = 1, + ACTIONS(239), 1, + anon_sym_endpartialdef, + [10394] = 1, + ACTIONS(1508), 1, + anon_sym_PERCENT_RBRACE, + [10398] = 1, + ACTIONS(1510), 1, + anon_sym_endverbatim, + [10402] = 1, + ACTIONS(1512), 1, + anon_sym_LBRACE_PERCENT, + [10406] = 1, + ACTIONS(1514), 1, + anon_sym_PERCENT_RBRACE, + [10410] = 1, + ACTIONS(1516), 1, + anon_sym_LBRACE_PERCENT, + [10414] = 1, + ACTIONS(1518), 1, + anon_sym_endpartialdef, + [10418] = 1, + ACTIONS(1520), 1, + anon_sym_LBRACE_PERCENT, + [10422] = 1, + ACTIONS(1522), 1, + anon_sym_LBRACE_PERCENT, + [10426] = 1, + ACTIONS(1524), 1, + anon_sym_PERCENT_RBRACE, + [10430] = 1, + ACTIONS(1526), 1, + anon_sym_PERCENT_RBRACE, + [10434] = 1, + ACTIONS(1528), 1, + anon_sym_PERCENT_RBRACE, + [10438] = 1, + ACTIONS(1530), 1, + anon_sym_LBRACE_PERCENT, + [10442] = 1, + ACTIONS(1532), 1, + anon_sym_PERCENT_RBRACE, + [10446] = 1, + ACTIONS(1534), 1, + anon_sym_LBRACE_PERCENT, + [10450] = 1, + ACTIONS(1536), 1, + anon_sym_LBRACE_PERCENT, + [10454] = 1, + ACTIONS(1538), 1, + anon_sym_PERCENT_RBRACE, + [10458] = 1, + ACTIONS(1540), 1, + anon_sym_PERCENT_RBRACE, + [10462] = 1, + ACTIONS(1542), 1, + anon_sym_LBRACE_PERCENT, + [10466] = 1, + ACTIONS(1544), 1, + anon_sym_LBRACE_PERCENT, + [10470] = 1, + ACTIONS(1546), 1, + anon_sym_LBRACE_PERCENT, + [10474] = 1, + ACTIONS(1548), 1, + anon_sym_PERCENT_RBRACE, + [10478] = 1, + ACTIONS(1550), 1, + anon_sym_LBRACE_PERCENT, + [10482] = 1, + ACTIONS(1552), 1, + sym_identifier, + [10486] = 1, + ACTIONS(1554), 1, + anon_sym_LBRACE_PERCENT, + [10490] = 1, + ACTIONS(1556), 1, + anon_sym_PERCENT_RBRACE, + [10494] = 1, + ACTIONS(1558), 1, + anon_sym_PERCENT_RBRACE, + [10498] = 1, + ACTIONS(1560), 1, + anon_sym_PERCENT_RBRACE, + [10502] = 1, + ACTIONS(1562), 1, + anon_sym_PERCENT_RBRACE, + [10506] = 1, + ACTIONS(1564), 1, + anon_sym_PERCENT_RBRACE, + [10510] = 1, + ACTIONS(1566), 1, + anon_sym_LBRACE_PERCENT, + [10514] = 1, + ACTIONS(1568), 1, + anon_sym_endif, + [10518] = 1, + ACTIONS(1570), 1, + sym_identifier, + [10522] = 1, + ACTIONS(1572), 1, + anon_sym_LBRACE_PERCENT, + [10526] = 1, + ACTIONS(1574), 1, + anon_sym_PERCENT_RBRACE, + [10530] = 1, + ACTIONS(1576), 1, + anon_sym_LBRACE_PERCENT, + [10534] = 1, + ACTIONS(1578), 1, + anon_sym_LBRACE_PERCENT, + [10538] = 1, + ACTIONS(1580), 1, + anon_sym_LBRACE_PERCENT, + [10542] = 1, + ACTIONS(1582), 1, + anon_sym_PERCENT_RBRACE, + [10546] = 1, + ACTIONS(1584), 1, + anon_sym_PERCENT_RBRACE, + [10550] = 1, + ACTIONS(1586), 1, + anon_sym_LBRACE_PERCENT, + [10554] = 1, + ACTIONS(1588), 1, + anon_sym_PERCENT_RBRACE, + [10558] = 1, + ACTIONS(1590), 1, + anon_sym_PERCENT_RBRACE, + [10562] = 1, + ACTIONS(1592), 1, + anon_sym_PERCENT_RBRACE, + [10566] = 1, + ACTIONS(1594), 1, + anon_sym_PERCENT_RBRACE, + [10570] = 1, + ACTIONS(1596), 1, + anon_sym_PERCENT_RBRACE, + [10574] = 1, + ACTIONS(1598), 1, + anon_sym_PERCENT_RBRACE, + [10578] = 1, + ACTIONS(1600), 1, + anon_sym_PERCENT_RBRACE, + [10582] = 1, + ACTIONS(1602), 1, + anon_sym_PERCENT_RBRACE, + [10586] = 1, + ACTIONS(1604), 1, + anon_sym_by, + [10590] = 1, + ACTIONS(1606), 1, + anon_sym_PERCENT_RBRACE, + [10594] = 1, + ACTIONS(1608), 1, + anon_sym_PERCENT_RBRACE, + [10598] = 1, + ACTIONS(1610), 1, + anon_sym_PERCENT_RBRACE, + [10602] = 1, + ACTIONS(1612), 1, + anon_sym_endif, + [10606] = 1, + ACTIONS(1614), 1, + aux_sym_verbatim_group_token1, + [10610] = 1, + ACTIONS(1616), 1, + anon_sym_PERCENT_RBRACE, + [10614] = 1, + ACTIONS(1618), 1, + aux_sym_verbatim_group_token1, + [10618] = 1, + ACTIONS(1620), 1, + anon_sym_LBRACE_PERCENT, + [10622] = 1, + ACTIONS(1622), 1, + sym_push_block, + [10626] = 1, + ACTIONS(1624), 1, + sym_push_partial, + [10630] = 1, + ACTIONS(1626), 1, + anon_sym_PERCENT_RBRACE, + [10634] = 1, + ACTIONS(1628), 1, + anon_sym_PERCENT_RBRACE, + [10638] = 1, + ACTIONS(1630), 1, + anon_sym_PERCENT_RBRACE, + [10642] = 1, + ACTIONS(1632), 1, + sym_identifier, + [10646] = 1, + ACTIONS(1634), 1, + sym_push_verbatim, + [10650] = 1, + ACTIONS(1636), 1, + anon_sym_endspaceless, +}; + +static const uint32_t ts_small_parse_table_map[] = { + [SMALL_STATE(18)] = 0, + [SMALL_STATE(19)] = 54, + [SMALL_STATE(20)] = 108, + [SMALL_STATE(21)] = 159, + [SMALL_STATE(22)] = 210, + [SMALL_STATE(23)] = 261, + [SMALL_STATE(24)] = 312, + [SMALL_STATE(25)] = 363, + [SMALL_STATE(26)] = 414, + [SMALL_STATE(27)] = 465, + [SMALL_STATE(28)] = 516, + [SMALL_STATE(29)] = 567, + [SMALL_STATE(30)] = 618, + [SMALL_STATE(31)] = 669, + [SMALL_STATE(32)] = 720, + [SMALL_STATE(33)] = 771, + [SMALL_STATE(34)] = 822, + [SMALL_STATE(35)] = 873, + [SMALL_STATE(36)] = 924, + [SMALL_STATE(37)] = 975, + [SMALL_STATE(38)] = 1026, + [SMALL_STATE(39)] = 1077, + [SMALL_STATE(40)] = 1128, + [SMALL_STATE(41)] = 1179, + [SMALL_STATE(42)] = 1230, + [SMALL_STATE(43)] = 1281, + [SMALL_STATE(44)] = 1332, + [SMALL_STATE(45)] = 1383, + [SMALL_STATE(46)] = 1434, + [SMALL_STATE(47)] = 1485, + [SMALL_STATE(48)] = 1536, + [SMALL_STATE(49)] = 1587, + [SMALL_STATE(50)] = 1638, + [SMALL_STATE(51)] = 1689, + [SMALL_STATE(52)] = 1740, + [SMALL_STATE(53)] = 1791, + [SMALL_STATE(54)] = 1842, + [SMALL_STATE(55)] = 1893, + [SMALL_STATE(56)] = 1944, + [SMALL_STATE(57)] = 1995, + [SMALL_STATE(58)] = 2046, + [SMALL_STATE(59)] = 2097, + [SMALL_STATE(60)] = 2148, + [SMALL_STATE(61)] = 2199, + [SMALL_STATE(62)] = 2247, + [SMALL_STATE(63)] = 2295, + [SMALL_STATE(64)] = 2377, + [SMALL_STATE(65)] = 2459, + [SMALL_STATE(66)] = 2538, + [SMALL_STATE(67)] = 2617, + [SMALL_STATE(68)] = 2696, + [SMALL_STATE(69)] = 2775, + [SMALL_STATE(70)] = 2851, + [SMALL_STATE(71)] = 2927, + [SMALL_STATE(72)] = 3003, + [SMALL_STATE(73)] = 3079, + [SMALL_STATE(74)] = 3155, + [SMALL_STATE(75)] = 3231, + [SMALL_STATE(76)] = 3307, + [SMALL_STATE(77)] = 3383, + [SMALL_STATE(78)] = 3459, + [SMALL_STATE(79)] = 3535, + [SMALL_STATE(80)] = 3611, + [SMALL_STATE(81)] = 3687, + [SMALL_STATE(82)] = 3763, + [SMALL_STATE(83)] = 3839, + [SMALL_STATE(84)] = 3915, + [SMALL_STATE(85)] = 3991, + [SMALL_STATE(86)] = 4067, + [SMALL_STATE(87)] = 4143, + [SMALL_STATE(88)] = 4219, + [SMALL_STATE(89)] = 4295, + [SMALL_STATE(90)] = 4371, + [SMALL_STATE(91)] = 4447, + [SMALL_STATE(92)] = 4523, + [SMALL_STATE(93)] = 4599, + [SMALL_STATE(94)] = 4675, + [SMALL_STATE(95)] = 4751, + [SMALL_STATE(96)] = 4827, + [SMALL_STATE(97)] = 4903, + [SMALL_STATE(98)] = 4979, + [SMALL_STATE(99)] = 5055, + [SMALL_STATE(100)] = 5131, + [SMALL_STATE(101)] = 5207, + [SMALL_STATE(102)] = 5283, + [SMALL_STATE(103)] = 5359, + [SMALL_STATE(104)] = 5432, + [SMALL_STATE(105)] = 5505, + [SMALL_STATE(106)] = 5532, + [SMALL_STATE(107)] = 5557, + [SMALL_STATE(108)] = 5584, + [SMALL_STATE(109)] = 5611, + [SMALL_STATE(110)] = 5633, + [SMALL_STATE(111)] = 5657, + [SMALL_STATE(112)] = 5679, + [SMALL_STATE(113)] = 5701, + [SMALL_STATE(114)] = 5723, + [SMALL_STATE(115)] = 5745, + [SMALL_STATE(116)] = 5767, + [SMALL_STATE(117)] = 5788, + [SMALL_STATE(118)] = 5817, + [SMALL_STATE(119)] = 5846, + [SMALL_STATE(120)] = 5875, + [SMALL_STATE(121)] = 5904, + [SMALL_STATE(122)] = 5933, + [SMALL_STATE(123)] = 5950, + [SMALL_STATE(124)] = 5967, + [SMALL_STATE(125)] = 5995, + [SMALL_STATE(126)] = 6021, + [SMALL_STATE(127)] = 6049, + [SMALL_STATE(128)] = 6077, + [SMALL_STATE(129)] = 6105, + [SMALL_STATE(130)] = 6130, + [SMALL_STATE(131)] = 6155, + [SMALL_STATE(132)] = 6180, + [SMALL_STATE(133)] = 6205, + [SMALL_STATE(134)] = 6230, + [SMALL_STATE(135)] = 6252, + [SMALL_STATE(136)] = 6276, + [SMALL_STATE(137)] = 6298, + [SMALL_STATE(138)] = 6322, + [SMALL_STATE(139)] = 6344, + [SMALL_STATE(140)] = 6366, + [SMALL_STATE(141)] = 6390, + [SMALL_STATE(142)] = 6412, + [SMALL_STATE(143)] = 6425, + [SMALL_STATE(144)] = 6436, + [SMALL_STATE(145)] = 6455, + [SMALL_STATE(146)] = 6472, + [SMALL_STATE(147)] = 6489, + [SMALL_STATE(148)] = 6502, + [SMALL_STATE(149)] = 6521, + [SMALL_STATE(150)] = 6532, + [SMALL_STATE(151)] = 6545, + [SMALL_STATE(152)] = 6558, + [SMALL_STATE(153)] = 6575, + [SMALL_STATE(154)] = 6596, + [SMALL_STATE(155)] = 6609, + [SMALL_STATE(156)] = 6622, + [SMALL_STATE(157)] = 6641, + [SMALL_STATE(158)] = 6656, + [SMALL_STATE(159)] = 6673, + [SMALL_STATE(160)] = 6692, + [SMALL_STATE(161)] = 6708, + [SMALL_STATE(162)] = 6726, + [SMALL_STATE(163)] = 6744, + [SMALL_STATE(164)] = 6762, + [SMALL_STATE(165)] = 6776, + [SMALL_STATE(166)] = 6792, + [SMALL_STATE(167)] = 6808, + [SMALL_STATE(168)] = 6826, + [SMALL_STATE(169)] = 6844, + [SMALL_STATE(170)] = 6862, + [SMALL_STATE(171)] = 6876, + [SMALL_STATE(172)] = 6894, + [SMALL_STATE(173)] = 6912, + [SMALL_STATE(174)] = 6924, + [SMALL_STATE(175)] = 6942, + [SMALL_STATE(176)] = 6960, + [SMALL_STATE(177)] = 6978, + [SMALL_STATE(178)] = 6996, + [SMALL_STATE(179)] = 7014, + [SMALL_STATE(180)] = 7032, + [SMALL_STATE(181)] = 7050, + [SMALL_STATE(182)] = 7068, + [SMALL_STATE(183)] = 7086, + [SMALL_STATE(184)] = 7104, + [SMALL_STATE(185)] = 7122, + [SMALL_STATE(186)] = 7135, + [SMALL_STATE(187)] = 7150, + [SMALL_STATE(188)] = 7165, + [SMALL_STATE(189)] = 7176, + [SMALL_STATE(190)] = 7187, + [SMALL_STATE(191)] = 7198, + [SMALL_STATE(192)] = 7213, + [SMALL_STATE(193)] = 7228, + [SMALL_STATE(194)] = 7241, + [SMALL_STATE(195)] = 7256, + [SMALL_STATE(196)] = 7269, + [SMALL_STATE(197)] = 7282, + [SMALL_STATE(198)] = 7297, + [SMALL_STATE(199)] = 7312, + [SMALL_STATE(200)] = 7323, + [SMALL_STATE(201)] = 7334, + [SMALL_STATE(202)] = 7345, + [SMALL_STATE(203)] = 7356, + [SMALL_STATE(204)] = 7366, + [SMALL_STATE(205)] = 7376, + [SMALL_STATE(206)] = 7386, + [SMALL_STATE(207)] = 7396, + [SMALL_STATE(208)] = 7406, + [SMALL_STATE(209)] = 7416, + [SMALL_STATE(210)] = 7428, + [SMALL_STATE(211)] = 7438, + [SMALL_STATE(212)] = 7448, + [SMALL_STATE(213)] = 7458, + [SMALL_STATE(214)] = 7468, + [SMALL_STATE(215)] = 7482, + [SMALL_STATE(216)] = 7496, + [SMALL_STATE(217)] = 7506, + [SMALL_STATE(218)] = 7516, + [SMALL_STATE(219)] = 7526, + [SMALL_STATE(220)] = 7536, + [SMALL_STATE(221)] = 7546, + [SMALL_STATE(222)] = 7556, + [SMALL_STATE(223)] = 7566, + [SMALL_STATE(224)] = 7580, + [SMALL_STATE(225)] = 7590, + [SMALL_STATE(226)] = 7600, + [SMALL_STATE(227)] = 7610, + [SMALL_STATE(228)] = 7620, + [SMALL_STATE(229)] = 7630, + [SMALL_STATE(230)] = 7640, + [SMALL_STATE(231)] = 7650, + [SMALL_STATE(232)] = 7660, + [SMALL_STATE(233)] = 7670, + [SMALL_STATE(234)] = 7680, + [SMALL_STATE(235)] = 7690, + [SMALL_STATE(236)] = 7700, + [SMALL_STATE(237)] = 7710, + [SMALL_STATE(238)] = 7720, + [SMALL_STATE(239)] = 7730, + [SMALL_STATE(240)] = 7740, + [SMALL_STATE(241)] = 7750, + [SMALL_STATE(242)] = 7760, + [SMALL_STATE(243)] = 7770, + [SMALL_STATE(244)] = 7780, + [SMALL_STATE(245)] = 7790, + [SMALL_STATE(246)] = 7800, + [SMALL_STATE(247)] = 7810, + [SMALL_STATE(248)] = 7820, + [SMALL_STATE(249)] = 7830, + [SMALL_STATE(250)] = 7840, + [SMALL_STATE(251)] = 7850, + [SMALL_STATE(252)] = 7860, + [SMALL_STATE(253)] = 7870, + [SMALL_STATE(254)] = 7878, + [SMALL_STATE(255)] = 7888, + [SMALL_STATE(256)] = 7898, + [SMALL_STATE(257)] = 7908, + [SMALL_STATE(258)] = 7918, + [SMALL_STATE(259)] = 7928, + [SMALL_STATE(260)] = 7938, + [SMALL_STATE(261)] = 7948, + [SMALL_STATE(262)] = 7958, + [SMALL_STATE(263)] = 7966, + [SMALL_STATE(264)] = 7976, + [SMALL_STATE(265)] = 7986, + [SMALL_STATE(266)] = 7996, + [SMALL_STATE(267)] = 8006, + [SMALL_STATE(268)] = 8016, + [SMALL_STATE(269)] = 8026, + [SMALL_STATE(270)] = 8034, + [SMALL_STATE(271)] = 8044, + [SMALL_STATE(272)] = 8054, + [SMALL_STATE(273)] = 8064, + [SMALL_STATE(274)] = 8074, + [SMALL_STATE(275)] = 8084, + [SMALL_STATE(276)] = 8094, + [SMALL_STATE(277)] = 8104, + [SMALL_STATE(278)] = 8112, + [SMALL_STATE(279)] = 8122, + [SMALL_STATE(280)] = 8132, + [SMALL_STATE(281)] = 8142, + [SMALL_STATE(282)] = 8152, + [SMALL_STATE(283)] = 8160, + [SMALL_STATE(284)] = 8170, + [SMALL_STATE(285)] = 8180, + [SMALL_STATE(286)] = 8188, + [SMALL_STATE(287)] = 8198, + [SMALL_STATE(288)] = 8207, + [SMALL_STATE(289)] = 8218, + [SMALL_STATE(290)] = 8227, + [SMALL_STATE(291)] = 8236, + [SMALL_STATE(292)] = 8245, + [SMALL_STATE(293)] = 8254, + [SMALL_STATE(294)] = 8263, + [SMALL_STATE(295)] = 8272, + [SMALL_STATE(296)] = 8281, + [SMALL_STATE(297)] = 8290, + [SMALL_STATE(298)] = 8299, + [SMALL_STATE(299)] = 8308, + [SMALL_STATE(300)] = 8317, + [SMALL_STATE(301)] = 8326, + [SMALL_STATE(302)] = 8335, + [SMALL_STATE(303)] = 8344, + [SMALL_STATE(304)] = 8353, + [SMALL_STATE(305)] = 8362, + [SMALL_STATE(306)] = 8371, + [SMALL_STATE(307)] = 8384, + [SMALL_STATE(308)] = 8393, + [SMALL_STATE(309)] = 8402, + [SMALL_STATE(310)] = 8411, + [SMALL_STATE(311)] = 8420, + [SMALL_STATE(312)] = 8429, + [SMALL_STATE(313)] = 8438, + [SMALL_STATE(314)] = 8447, + [SMALL_STATE(315)] = 8456, + [SMALL_STATE(316)] = 8465, + [SMALL_STATE(317)] = 8474, + [SMALL_STATE(318)] = 8483, + [SMALL_STATE(319)] = 8492, + [SMALL_STATE(320)] = 8501, + [SMALL_STATE(321)] = 8510, + [SMALL_STATE(322)] = 8519, + [SMALL_STATE(323)] = 8528, + [SMALL_STATE(324)] = 8537, + [SMALL_STATE(325)] = 8546, + [SMALL_STATE(326)] = 8555, + [SMALL_STATE(327)] = 8564, + [SMALL_STATE(328)] = 8573, + [SMALL_STATE(329)] = 8582, + [SMALL_STATE(330)] = 8591, + [SMALL_STATE(331)] = 8600, + [SMALL_STATE(332)] = 8609, + [SMALL_STATE(333)] = 8618, + [SMALL_STATE(334)] = 8627, + [SMALL_STATE(335)] = 8636, + [SMALL_STATE(336)] = 8649, + [SMALL_STATE(337)] = 8658, + [SMALL_STATE(338)] = 8667, + [SMALL_STATE(339)] = 8676, + [SMALL_STATE(340)] = 8685, + [SMALL_STATE(341)] = 8694, + [SMALL_STATE(342)] = 8703, + [SMALL_STATE(343)] = 8712, + [SMALL_STATE(344)] = 8721, + [SMALL_STATE(345)] = 8730, + [SMALL_STATE(346)] = 8739, + [SMALL_STATE(347)] = 8748, + [SMALL_STATE(348)] = 8757, + [SMALL_STATE(349)] = 8766, + [SMALL_STATE(350)] = 8775, + [SMALL_STATE(351)] = 8784, + [SMALL_STATE(352)] = 8793, + [SMALL_STATE(353)] = 8802, + [SMALL_STATE(354)] = 8811, + [SMALL_STATE(355)] = 8820, + [SMALL_STATE(356)] = 8829, + [SMALL_STATE(357)] = 8838, + [SMALL_STATE(358)] = 8847, + [SMALL_STATE(359)] = 8856, + [SMALL_STATE(360)] = 8865, + [SMALL_STATE(361)] = 8874, + [SMALL_STATE(362)] = 8883, + [SMALL_STATE(363)] = 8892, + [SMALL_STATE(364)] = 8903, + [SMALL_STATE(365)] = 8910, + [SMALL_STATE(366)] = 8919, + [SMALL_STATE(367)] = 8928, + [SMALL_STATE(368)] = 8939, + [SMALL_STATE(369)] = 8950, + [SMALL_STATE(370)] = 8963, + [SMALL_STATE(371)] = 8974, + [SMALL_STATE(372)] = 8987, + [SMALL_STATE(373)] = 9000, + [SMALL_STATE(374)] = 9011, + [SMALL_STATE(375)] = 9022, + [SMALL_STATE(376)] = 9035, + [SMALL_STATE(377)] = 9046, + [SMALL_STATE(378)] = 9059, + [SMALL_STATE(379)] = 9068, + [SMALL_STATE(380)] = 9078, + [SMALL_STATE(381)] = 9088, + [SMALL_STATE(382)] = 9098, + [SMALL_STATE(383)] = 9108, + [SMALL_STATE(384)] = 9116, + [SMALL_STATE(385)] = 9126, + [SMALL_STATE(386)] = 9136, + [SMALL_STATE(387)] = 9146, + [SMALL_STATE(388)] = 9156, + [SMALL_STATE(389)] = 9166, + [SMALL_STATE(390)] = 9176, + [SMALL_STATE(391)] = 9186, + [SMALL_STATE(392)] = 9192, + [SMALL_STATE(393)] = 9202, + [SMALL_STATE(394)] = 9212, + [SMALL_STATE(395)] = 9222, + [SMALL_STATE(396)] = 9232, + [SMALL_STATE(397)] = 9240, + [SMALL_STATE(398)] = 9250, + [SMALL_STATE(399)] = 9260, + [SMALL_STATE(400)] = 9270, + [SMALL_STATE(401)] = 9276, + [SMALL_STATE(402)] = 9286, + [SMALL_STATE(403)] = 9294, + [SMALL_STATE(404)] = 9302, + [SMALL_STATE(405)] = 9312, + [SMALL_STATE(406)] = 9319, + [SMALL_STATE(407)] = 9326, + [SMALL_STATE(408)] = 9331, + [SMALL_STATE(409)] = 9338, + [SMALL_STATE(410)] = 9343, + [SMALL_STATE(411)] = 9350, + [SMALL_STATE(412)] = 9355, + [SMALL_STATE(413)] = 9362, + [SMALL_STATE(414)] = 9367, + [SMALL_STATE(415)] = 9374, + [SMALL_STATE(416)] = 9381, + [SMALL_STATE(417)] = 9388, + [SMALL_STATE(418)] = 9393, + [SMALL_STATE(419)] = 9400, + [SMALL_STATE(420)] = 9407, + [SMALL_STATE(421)] = 9414, + [SMALL_STATE(422)] = 9421, + [SMALL_STATE(423)] = 9426, + [SMALL_STATE(424)] = 9433, + [SMALL_STATE(425)] = 9440, + [SMALL_STATE(426)] = 9447, + [SMALL_STATE(427)] = 9454, + [SMALL_STATE(428)] = 9461, + [SMALL_STATE(429)] = 9468, + [SMALL_STATE(430)] = 9475, + [SMALL_STATE(431)] = 9482, + [SMALL_STATE(432)] = 9487, + [SMALL_STATE(433)] = 9494, + [SMALL_STATE(434)] = 9501, + [SMALL_STATE(435)] = 9508, + [SMALL_STATE(436)] = 9515, + [SMALL_STATE(437)] = 9522, + [SMALL_STATE(438)] = 9526, + [SMALL_STATE(439)] = 9530, + [SMALL_STATE(440)] = 9534, + [SMALL_STATE(441)] = 9538, + [SMALL_STATE(442)] = 9542, + [SMALL_STATE(443)] = 9546, + [SMALL_STATE(444)] = 9550, + [SMALL_STATE(445)] = 9554, + [SMALL_STATE(446)] = 9558, + [SMALL_STATE(447)] = 9562, + [SMALL_STATE(448)] = 9566, + [SMALL_STATE(449)] = 9570, + [SMALL_STATE(450)] = 9574, + [SMALL_STATE(451)] = 9578, + [SMALL_STATE(452)] = 9582, + [SMALL_STATE(453)] = 9586, + [SMALL_STATE(454)] = 9590, + [SMALL_STATE(455)] = 9594, + [SMALL_STATE(456)] = 9598, + [SMALL_STATE(457)] = 9602, + [SMALL_STATE(458)] = 9606, + [SMALL_STATE(459)] = 9610, + [SMALL_STATE(460)] = 9614, + [SMALL_STATE(461)] = 9618, + [SMALL_STATE(462)] = 9622, + [SMALL_STATE(463)] = 9626, + [SMALL_STATE(464)] = 9630, + [SMALL_STATE(465)] = 9634, + [SMALL_STATE(466)] = 9638, + [SMALL_STATE(467)] = 9642, + [SMALL_STATE(468)] = 9646, + [SMALL_STATE(469)] = 9650, + [SMALL_STATE(470)] = 9654, + [SMALL_STATE(471)] = 9658, + [SMALL_STATE(472)] = 9662, + [SMALL_STATE(473)] = 9666, + [SMALL_STATE(474)] = 9670, + [SMALL_STATE(475)] = 9674, + [SMALL_STATE(476)] = 9678, + [SMALL_STATE(477)] = 9682, + [SMALL_STATE(478)] = 9686, + [SMALL_STATE(479)] = 9690, + [SMALL_STATE(480)] = 9694, + [SMALL_STATE(481)] = 9698, + [SMALL_STATE(482)] = 9702, + [SMALL_STATE(483)] = 9706, + [SMALL_STATE(484)] = 9710, + [SMALL_STATE(485)] = 9714, + [SMALL_STATE(486)] = 9718, + [SMALL_STATE(487)] = 9722, + [SMALL_STATE(488)] = 9726, + [SMALL_STATE(489)] = 9730, + [SMALL_STATE(490)] = 9734, + [SMALL_STATE(491)] = 9738, + [SMALL_STATE(492)] = 9742, + [SMALL_STATE(493)] = 9746, + [SMALL_STATE(494)] = 9750, + [SMALL_STATE(495)] = 9754, + [SMALL_STATE(496)] = 9758, + [SMALL_STATE(497)] = 9762, + [SMALL_STATE(498)] = 9766, + [SMALL_STATE(499)] = 9770, + [SMALL_STATE(500)] = 9774, + [SMALL_STATE(501)] = 9778, + [SMALL_STATE(502)] = 9782, + [SMALL_STATE(503)] = 9786, + [SMALL_STATE(504)] = 9790, + [SMALL_STATE(505)] = 9794, + [SMALL_STATE(506)] = 9798, + [SMALL_STATE(507)] = 9802, + [SMALL_STATE(508)] = 9806, + [SMALL_STATE(509)] = 9810, + [SMALL_STATE(510)] = 9814, + [SMALL_STATE(511)] = 9818, + [SMALL_STATE(512)] = 9822, + [SMALL_STATE(513)] = 9826, + [SMALL_STATE(514)] = 9830, + [SMALL_STATE(515)] = 9834, + [SMALL_STATE(516)] = 9838, + [SMALL_STATE(517)] = 9842, + [SMALL_STATE(518)] = 9846, + [SMALL_STATE(519)] = 9850, + [SMALL_STATE(520)] = 9854, + [SMALL_STATE(521)] = 9858, + [SMALL_STATE(522)] = 9862, + [SMALL_STATE(523)] = 9866, + [SMALL_STATE(524)] = 9870, + [SMALL_STATE(525)] = 9874, + [SMALL_STATE(526)] = 9878, + [SMALL_STATE(527)] = 9882, + [SMALL_STATE(528)] = 9886, + [SMALL_STATE(529)] = 9890, + [SMALL_STATE(530)] = 9894, + [SMALL_STATE(531)] = 9898, + [SMALL_STATE(532)] = 9902, + [SMALL_STATE(533)] = 9906, + [SMALL_STATE(534)] = 9910, + [SMALL_STATE(535)] = 9914, + [SMALL_STATE(536)] = 9918, + [SMALL_STATE(537)] = 9922, + [SMALL_STATE(538)] = 9926, + [SMALL_STATE(539)] = 9930, + [SMALL_STATE(540)] = 9934, + [SMALL_STATE(541)] = 9938, + [SMALL_STATE(542)] = 9942, + [SMALL_STATE(543)] = 9946, + [SMALL_STATE(544)] = 9950, + [SMALL_STATE(545)] = 9954, + [SMALL_STATE(546)] = 9958, + [SMALL_STATE(547)] = 9962, + [SMALL_STATE(548)] = 9966, + [SMALL_STATE(549)] = 9970, + [SMALL_STATE(550)] = 9974, + [SMALL_STATE(551)] = 9978, + [SMALL_STATE(552)] = 9982, + [SMALL_STATE(553)] = 9986, + [SMALL_STATE(554)] = 9990, + [SMALL_STATE(555)] = 9994, + [SMALL_STATE(556)] = 9998, + [SMALL_STATE(557)] = 10002, + [SMALL_STATE(558)] = 10006, + [SMALL_STATE(559)] = 10010, + [SMALL_STATE(560)] = 10014, + [SMALL_STATE(561)] = 10018, + [SMALL_STATE(562)] = 10022, + [SMALL_STATE(563)] = 10026, + [SMALL_STATE(564)] = 10030, + [SMALL_STATE(565)] = 10034, + [SMALL_STATE(566)] = 10038, + [SMALL_STATE(567)] = 10042, + [SMALL_STATE(568)] = 10046, + [SMALL_STATE(569)] = 10050, + [SMALL_STATE(570)] = 10054, + [SMALL_STATE(571)] = 10058, + [SMALL_STATE(572)] = 10062, + [SMALL_STATE(573)] = 10066, + [SMALL_STATE(574)] = 10070, + [SMALL_STATE(575)] = 10074, + [SMALL_STATE(576)] = 10078, + [SMALL_STATE(577)] = 10082, + [SMALL_STATE(578)] = 10086, + [SMALL_STATE(579)] = 10090, + [SMALL_STATE(580)] = 10094, + [SMALL_STATE(581)] = 10098, + [SMALL_STATE(582)] = 10102, + [SMALL_STATE(583)] = 10106, + [SMALL_STATE(584)] = 10110, + [SMALL_STATE(585)] = 10114, + [SMALL_STATE(586)] = 10118, + [SMALL_STATE(587)] = 10122, + [SMALL_STATE(588)] = 10126, + [SMALL_STATE(589)] = 10130, + [SMALL_STATE(590)] = 10134, + [SMALL_STATE(591)] = 10138, + [SMALL_STATE(592)] = 10142, + [SMALL_STATE(593)] = 10146, + [SMALL_STATE(594)] = 10150, + [SMALL_STATE(595)] = 10154, + [SMALL_STATE(596)] = 10158, + [SMALL_STATE(597)] = 10162, + [SMALL_STATE(598)] = 10166, + [SMALL_STATE(599)] = 10170, + [SMALL_STATE(600)] = 10174, + [SMALL_STATE(601)] = 10178, + [SMALL_STATE(602)] = 10182, + [SMALL_STATE(603)] = 10186, + [SMALL_STATE(604)] = 10190, + [SMALL_STATE(605)] = 10194, + [SMALL_STATE(606)] = 10198, + [SMALL_STATE(607)] = 10202, + [SMALL_STATE(608)] = 10206, + [SMALL_STATE(609)] = 10210, + [SMALL_STATE(610)] = 10214, + [SMALL_STATE(611)] = 10218, + [SMALL_STATE(612)] = 10222, + [SMALL_STATE(613)] = 10226, + [SMALL_STATE(614)] = 10230, + [SMALL_STATE(615)] = 10234, + [SMALL_STATE(616)] = 10238, + [SMALL_STATE(617)] = 10242, + [SMALL_STATE(618)] = 10246, + [SMALL_STATE(619)] = 10250, + [SMALL_STATE(620)] = 10254, + [SMALL_STATE(621)] = 10258, + [SMALL_STATE(622)] = 10262, + [SMALL_STATE(623)] = 10266, + [SMALL_STATE(624)] = 10270, + [SMALL_STATE(625)] = 10274, + [SMALL_STATE(626)] = 10278, + [SMALL_STATE(627)] = 10282, + [SMALL_STATE(628)] = 10286, + [SMALL_STATE(629)] = 10290, + [SMALL_STATE(630)] = 10294, + [SMALL_STATE(631)] = 10298, + [SMALL_STATE(632)] = 10302, + [SMALL_STATE(633)] = 10306, + [SMALL_STATE(634)] = 10310, + [SMALL_STATE(635)] = 10314, + [SMALL_STATE(636)] = 10318, + [SMALL_STATE(637)] = 10322, + [SMALL_STATE(638)] = 10326, + [SMALL_STATE(639)] = 10330, + [SMALL_STATE(640)] = 10334, + [SMALL_STATE(641)] = 10338, + [SMALL_STATE(642)] = 10342, + [SMALL_STATE(643)] = 10346, + [SMALL_STATE(644)] = 10350, + [SMALL_STATE(645)] = 10354, + [SMALL_STATE(646)] = 10358, + [SMALL_STATE(647)] = 10362, + [SMALL_STATE(648)] = 10366, + [SMALL_STATE(649)] = 10370, + [SMALL_STATE(650)] = 10374, + [SMALL_STATE(651)] = 10378, + [SMALL_STATE(652)] = 10382, + [SMALL_STATE(653)] = 10386, + [SMALL_STATE(654)] = 10390, + [SMALL_STATE(655)] = 10394, + [SMALL_STATE(656)] = 10398, + [SMALL_STATE(657)] = 10402, + [SMALL_STATE(658)] = 10406, + [SMALL_STATE(659)] = 10410, + [SMALL_STATE(660)] = 10414, + [SMALL_STATE(661)] = 10418, + [SMALL_STATE(662)] = 10422, + [SMALL_STATE(663)] = 10426, + [SMALL_STATE(664)] = 10430, + [SMALL_STATE(665)] = 10434, + [SMALL_STATE(666)] = 10438, + [SMALL_STATE(667)] = 10442, + [SMALL_STATE(668)] = 10446, + [SMALL_STATE(669)] = 10450, + [SMALL_STATE(670)] = 10454, + [SMALL_STATE(671)] = 10458, + [SMALL_STATE(672)] = 10462, + [SMALL_STATE(673)] = 10466, + [SMALL_STATE(674)] = 10470, + [SMALL_STATE(675)] = 10474, + [SMALL_STATE(676)] = 10478, + [SMALL_STATE(677)] = 10482, + [SMALL_STATE(678)] = 10486, + [SMALL_STATE(679)] = 10490, + [SMALL_STATE(680)] = 10494, + [SMALL_STATE(681)] = 10498, + [SMALL_STATE(682)] = 10502, + [SMALL_STATE(683)] = 10506, + [SMALL_STATE(684)] = 10510, + [SMALL_STATE(685)] = 10514, + [SMALL_STATE(686)] = 10518, + [SMALL_STATE(687)] = 10522, + [SMALL_STATE(688)] = 10526, + [SMALL_STATE(689)] = 10530, + [SMALL_STATE(690)] = 10534, + [SMALL_STATE(691)] = 10538, + [SMALL_STATE(692)] = 10542, + [SMALL_STATE(693)] = 10546, + [SMALL_STATE(694)] = 10550, + [SMALL_STATE(695)] = 10554, + [SMALL_STATE(696)] = 10558, + [SMALL_STATE(697)] = 10562, + [SMALL_STATE(698)] = 10566, + [SMALL_STATE(699)] = 10570, + [SMALL_STATE(700)] = 10574, + [SMALL_STATE(701)] = 10578, + [SMALL_STATE(702)] = 10582, + [SMALL_STATE(703)] = 10586, + [SMALL_STATE(704)] = 10590, + [SMALL_STATE(705)] = 10594, + [SMALL_STATE(706)] = 10598, + [SMALL_STATE(707)] = 10602, + [SMALL_STATE(708)] = 10606, + [SMALL_STATE(709)] = 10610, + [SMALL_STATE(710)] = 10614, + [SMALL_STATE(711)] = 10618, + [SMALL_STATE(712)] = 10622, + [SMALL_STATE(713)] = 10626, + [SMALL_STATE(714)] = 10630, + [SMALL_STATE(715)] = 10634, + [SMALL_STATE(716)] = 10638, + [SMALL_STATE(717)] = 10642, + [SMALL_STATE(718)] = 10646, + [SMALL_STATE(719)] = 10650, +}; + +static const TSParseActionEntry ts_parse_actions[] = { + [0] = {.entry = {.count = 0, .reusable = false}}, + [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), + [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [5] = {.entry = {.count = 1, .reusable = false}}, SHIFT(181), + [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(457), + [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(103), + [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), + [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(150), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), + [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197), + [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(269), + [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), + [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(115), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), + [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(188), + [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), + [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(169), + [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(568), + [47] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63), + [49] = {.entry = {.count = 1, .reusable = false}}, SHIFT(64), + [51] = {.entry = {.count = 1, .reusable = false}}, SHIFT(74), + [53] = {.entry = {.count = 1, .reusable = false}}, SHIFT(90), + [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), + [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), + [59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(80), + [61] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_group_repeat1, 4, 0, 1), SHIFT_REPEAT(104), + [64] = {.entry = {.count = 1, .reusable = false}}, SHIFT(102), + [66] = {.entry = {.count = 1, .reusable = false}}, SHIFT(98), + [68] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), + [70] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), + [72] = {.entry = {.count = 1, .reusable = false}}, SHIFT(82), + [74] = {.entry = {.count = 1, .reusable = false}}, SHIFT(83), + [76] = {.entry = {.count = 1, .reusable = false}}, SHIFT(86), + [78] = {.entry = {.count = 1, .reusable = false}}, SHIFT(89), + [80] = {.entry = {.count = 1, .reusable = false}}, SHIFT(91), + [82] = {.entry = {.count = 1, .reusable = false}}, SHIFT(92), + [84] = {.entry = {.count = 1, .reusable = false}}, SHIFT(93), + [86] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_repeat1, 2, 0, 0), + [88] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_repeat1, 2, 0, 0), SHIFT_REPEAT(37), + [91] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_template_repeat1, 2, 0, 0), SHIFT_REPEAT(181), + [94] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_template_repeat1, 2, 0, 0), SHIFT_REPEAT(457), + [97] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_template_repeat1, 2, 0, 0), SHIFT_REPEAT(103), + [100] = {.entry = {.count = 1, .reusable = false}}, SHIFT(84), + [102] = {.entry = {.count = 1, .reusable = false}}, SHIFT(101), + [104] = {.entry = {.count = 1, .reusable = false}}, SHIFT(69), + [106] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71), + [108] = {.entry = {.count = 1, .reusable = false}}, SHIFT(94), + [110] = {.entry = {.count = 1, .reusable = false}}, SHIFT(95), + [112] = {.entry = {.count = 1, .reusable = false}}, SHIFT(96), + [114] = {.entry = {.count = 1, .reusable = false}}, SHIFT(97), + [116] = {.entry = {.count = 1, .reusable = false}}, SHIFT(99), + [118] = {.entry = {.count = 1, .reusable = false}}, SHIFT(100), + [120] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), + [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template, 1, 0, 0), + [124] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [126] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67), + [128] = {.entry = {.count = 1, .reusable = false}}, SHIFT(72), + [130] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73), + [132] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75), + [134] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), + [136] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77), + [138] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), + [140] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79), + [142] = {.entry = {.count = 1, .reusable = false}}, SHIFT(87), + [144] = {.entry = {.count = 1, .reusable = false}}, SHIFT(88), + [146] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85), + [148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [150] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_template, 1, 0, 0), SHIFT(104), + [153] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_repeat1, 2, 0, 0), SHIFT_REPEAT(62), + [156] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_template_repeat1, 2, 0, 0), SHIFT_REPEAT(169), + [159] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_template_repeat1, 2, 0, 0), SHIFT_REPEAT(568), + [162] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_template_repeat1, 2, 0, 0), SHIFT_REPEAT(104), + [165] = {.entry = {.count = 1, .reusable = true}}, SHIFT(431), + [167] = {.entry = {.count = 1, .reusable = true}}, SHIFT(712), + [169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(483), + [171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), + [173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(484), + [175] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171), + [177] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), + [181] = {.entry = {.count = 1, .reusable = true}}, SHIFT(717), + [183] = {.entry = {.count = 1, .reusable = false}}, SHIFT(135), + [185] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), + [187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(451), + [189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(452), + [191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), + [193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), + [195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), + [197] = {.entry = {.count = 1, .reusable = true}}, SHIFT(576), + [199] = {.entry = {.count = 1, .reusable = false}}, SHIFT(577), + [201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(713), + [203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(369), + [205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182), + [207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(408), + [209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(679), + [211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), + [213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(407), + [215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(718), + [217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(434), + [219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(693), + [221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(519), + [223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(616), + [225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(617), + [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(697), + [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(534), + [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(700), + [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(539), + [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(671), + [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(675), + [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(608), + [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(618), + [243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(477), + [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(540), + [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(544), + [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(545), + [251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(546), + [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(548), + [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(551), + [257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(552), + [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(556), + [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(683), + [263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(705), + [265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(453), + [267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(456), + [269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(507), + [271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(463), + [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(497), + [275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(597), + [277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(602), + [279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(646), + [281] = {.entry = {.count = 1, .reusable = true}}, SHIFT(575), + [283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(438), + [285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(440), + [287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(444), + [289] = {.entry = {.count = 1, .reusable = true}}, SHIFT(510), + [291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(514), + [293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(516), + [295] = {.entry = {.count = 1, .reusable = true}}, SHIFT(518), + [297] = {.entry = {.count = 1, .reusable = true}}, SHIFT(607), + [299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(520), + [301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(523), + [303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(458), + [305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(504), + [307] = {.entry = {.count = 1, .reusable = true}}, SHIFT(411), + [309] = {.entry = {.count = 1, .reusable = true}}, SHIFT(503), + [311] = {.entry = {.count = 1, .reusable = true}}, SHIFT(628), + [313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), + [315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(586), + [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), + [319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), + [323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(449), + [325] = {.entry = {.count = 1, .reusable = false}}, SHIFT(140), + [327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), + [329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), + [331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177), + [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(572), + [335] = {.entry = {.count = 1, .reusable = false}}, SHIFT(590), + [337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(606), + [339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(375), + [341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), + [343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(432), + [345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(614), + [347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143), + [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(422), + [351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(491), + [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(421), + [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [357] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_filter_expression, 1, 0, 0), + [359] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_filter_expression, 1, 0, 0), + [361] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_attribute, 1, 0, 0), + [363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(560), + [365] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_attribute, 1, 0, 0), + [367] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_filter_expression_repeat1, 2, 0, 0), SHIFT_REPEAT(14), + [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_filter_expression_repeat1, 2, 0, 0), + [372] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_filter_expression_repeat1, 2, 0, 0), + [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_filter_expression, 2, 0, 0), + [376] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_filter_expression, 2, 0, 0), + [378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_literal, 1, 0, 0), + [380] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_literal, 1, 0, 0), + [382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [384] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_filtered_value, 1, 0, 0), + [386] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_filtered_value, 1, 0, 0), + [388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value, 1, 0, 0), + [390] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_value, 1, 0, 0), + [392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_attribute, 3, 0, 0), + [394] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_attribute, 3, 0, 0), + [396] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_filter, 2, 0, 0), + [398] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_filter, 2, 0, 0), + [400] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_filter, 1, 0, 0), + [402] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_filter, 1, 0, 0), + [404] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_filtered_value, 3, 0, 0), + [406] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_filtered_value, 3, 0, 0), + [408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(366), + [410] = {.entry = {.count = 1, .reusable = false}}, SHIFT(366), + [412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(479), + [414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(370), + [416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_predicate, 1, 0, 0), + [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_predicate, 3, 0, 0), + [420] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_predicate_repeat1, 2, 0, 0), SHIFT_REPEAT(366), + [423] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_predicate_repeat1, 2, 0, 0), SHIFT_REPEAT(366), + [426] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_predicate_repeat1, 2, 0, 0), SHIFT_REPEAT(479), + [429] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_predicate_repeat1, 2, 0, 0), SHIFT_REPEAT(370), + [432] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_predicate_repeat1, 2, 0, 0), + [434] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_predicate, 2, 0, 0), + [436] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_predicate_repeat1, 3, 0, 0), + [438] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_predicate_repeat1, 3, 0, 0), + [440] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_predicate_repeat1, 2, 0, 0), + [442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), + [444] = {.entry = {.count = 1, .reusable = false}}, SHIFT(157), + [446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(252), + [448] = {.entry = {.count = 1, .reusable = false}}, SHIFT(631), + [450] = {.entry = {.count = 1, .reusable = false}}, SHIFT(665), + [452] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_cycle_repeat1, 2, 0, 0), SHIFT_REPEAT(147), + [455] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_cycle_repeat1, 2, 0, 0), SHIFT_REPEAT(157), + [458] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_cycle_repeat1, 2, 0, 0), + [460] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_cycle_repeat1, 2, 0, 0), + [462] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), + [464] = {.entry = {.count = 1, .reusable = false}}, SHIFT(152), + [466] = {.entry = {.count = 1, .reusable = true}}, SHIFT(244), + [468] = {.entry = {.count = 1, .reusable = false}}, SHIFT(686), + [470] = {.entry = {.count = 1, .reusable = true}}, SHIFT(299), + [472] = {.entry = {.count = 1, .reusable = false}}, SHIFT(581), + [474] = {.entry = {.count = 1, .reusable = false}}, SHIFT(501), + [476] = {.entry = {.count = 1, .reusable = true}}, SHIFT(309), + [478] = {.entry = {.count = 1, .reusable = false}}, SHIFT(587), + [480] = {.entry = {.count = 1, .reusable = false}}, SHIFT(164), + [482] = {.entry = {.count = 1, .reusable = true}}, SHIFT(313), + [484] = {.entry = {.count = 1, .reusable = false}}, SHIFT(594), + [486] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_cycle_repeat1, 2, 0, 0), SHIFT_REPEAT(201), + [489] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_cycle_repeat1, 2, 0, 0), SHIFT_REPEAT(164), + [492] = {.entry = {.count = 1, .reusable = true}}, SHIFT(263), + [494] = {.entry = {.count = 1, .reusable = false}}, SHIFT(677), + [496] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247), + [498] = {.entry = {.count = 1, .reusable = false}}, SHIFT(460), + [500] = {.entry = {.count = 1, .reusable = true}}, SHIFT(301), + [502] = {.entry = {.count = 1, .reusable = false}}, SHIFT(582), + [504] = {.entry = {.count = 1, .reusable = true}}, SHIFT(253), + [506] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), + [508] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [510] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), + [512] = {.entry = {.count = 1, .reusable = false}}, SHIFT(106), + [514] = {.entry = {.count = 1, .reusable = false}}, SHIFT(183), + [516] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_cycle_repeat1, 2, 0, 0), SHIFT_REPEAT(253), + [519] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_cycle_repeat1, 2, 0, 0), SHIFT_REPEAT(190), + [522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [524] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [526] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [528] = {.entry = {.count = 1, .reusable = true}}, SHIFT(714), + [530] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), + [532] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [534] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_filter_expression_repeat1, 2, 0, 0), SHIFT_REPEAT(12), + [537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(499), + [539] = {.entry = {.count = 1, .reusable = false}}, SHIFT(487), + [541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168), + [543] = {.entry = {.count = 1, .reusable = false}}, SHIFT(180), + [545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), + [547] = {.entry = {.count = 1, .reusable = false}}, SHIFT(599), + [549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(292), + [553] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_filter_expression_repeat1, 2, 0, 0), SHIFT_REPEAT(13), + [556] = {.entry = {.count = 1, .reusable = true}}, SHIFT(365), + [558] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), + [560] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [562] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), + [564] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [566] = {.entry = {.count = 1, .reusable = false}}, SHIFT(562), + [568] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [570] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_filter_expression_repeat1, 2, 0, 0), SHIFT_REPEAT(17), + [573] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_group, 12, 0, 33), + [575] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_group, 12, 0, 33), + [577] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_autoescape_group, 7, 0, 11), + [579] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_autoescape_group, 7, 0, 11), + [581] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_block_groups, 1, 0, 0), + [583] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_block_groups, 1, 0, 0), + [585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cycle, 7, 0, 7), + [587] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cycle, 7, 0, 7), + [589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cycle, 6, 0, 7), + [591] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cycle, 6, 0, 7), + [593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_firstof, 6, 0, 1), + [595] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_firstof, 6, 0, 1), + [597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(487), + [599] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_filter_group, 7, 0, 11), + [601] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_filter_group, 7, 0, 11), + [603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reset_cycle, 3, 0, 1), + [605] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_reset_cycle, 3, 0, 1), + [607] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_partial, 4, 0, 2), + [609] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_partial, 4, 0, 2), + [611] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [613] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_filter_expression_repeat1, 2, 0, 0), SHIFT_REPEAT(15), + [616] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_comment, 3, 0, 0), + [618] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_comment, 3, 0, 0), + [620] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_tag, 1, 0, 0), + [622] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_tag, 1, 0, 0), + [624] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_group, 7, 0, 11), + [626] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_group, 7, 0, 11), + [628] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ifchanged_group, 7, 0, 11), + [630] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ifchanged_group, 7, 0, 11), + [632] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spaceless_group, 7, 0, 11), + [634] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_spaceless_group, 7, 0, 11), + [636] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_include, 4, 0, 1), + [638] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_include, 4, 0, 1), + [640] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_url_block, 7, 0, 12), + [642] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_url_block, 7, 0, 12), + [644] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_group, 7, 0, 13), + [646] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_group, 7, 0, 13), + [648] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_autoescape_group, 8, 0, 14), + [650] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_autoescape_group, 8, 0, 14), + [652] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block_group, 8, 0, 15), + [654] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block_group, 8, 0, 15), + [656] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_filter_group, 8, 0, 14), + [658] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_filter_group, 8, 0, 14), + [660] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_query_string, 4, 0, 1), + [662] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_query_string, 4, 0, 1), + [664] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ifchanged_group, 6, 0, 9), + [666] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ifchanged_group, 6, 0, 9), + [668] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reset_cycle, 4, 0, 1), + [670] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_reset_cycle, 4, 0, 1), + [672] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_csrf_token, 3, 0, 1), + [674] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_csrf_token, 3, 0, 1), + [676] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lorem, 6, 0, 1), + [678] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_lorem, 6, 0, 1), + [680] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_tag_block, 4, 0, 1), + [682] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_tag_block, 4, 0, 1), + [684] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_now, 6, 0, 10), + [686] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_now, 6, 0, 10), + [688] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_group, 8, 0, 14), + [690] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_group, 8, 0, 14), + [692] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_now, 4, 0, 1), + [694] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_now, 4, 0, 1), + [696] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_variable, 3, 0, 0), + [698] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_variable, 3, 0, 0), + [700] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_group, 8, 0, 16), + [702] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_group, 8, 0, 16), + [704] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ifchanged_group, 8, 0, 14), + [706] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ifchanged_group, 8, 0, 14), + [708] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_partialdef_group, 8, 0, 15), + [710] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_partialdef_group, 8, 0, 15), + [712] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_regroup, 8, 0, 17), + [714] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_regroup, 8, 0, 17), + [716] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_group, 8, 0, 18), + [718] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_group, 8, 0, 18), + [720] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block_group, 9, 0, 19), + [722] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block_group, 9, 0, 19), + [724] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_url_block, 4, 0, 1), + [726] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_url_block, 4, 0, 1), + [728] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_group, 9, 0, 20), + [730] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_group, 9, 0, 20), + [732] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_regroup, 6, 0, 1), + [734] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_regroup, 6, 0, 1), + [736] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_firstof, 4, 0, 1), + [738] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_firstof, 4, 0, 1), + [740] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_group, 9, 0, 21), + [742] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_group, 9, 0, 21), + [744] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_debug, 3, 0, 1), + [746] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_debug, 3, 0, 1), + [748] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_partialdef_group, 9, 0, 19), + [750] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_partialdef_group, 9, 0, 19), + [752] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_verbatim_group, 9, 0, 19), + [754] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_verbatim_group, 9, 0, 19), + [756] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cycle, 4, 0, 1), + [758] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cycle, 4, 0, 1), + [760] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_group, 10, 0, 22), + [762] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_group, 10, 0, 22), + [764] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_query_string, 5, 0, 1), + [766] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_query_string, 5, 0, 1), + [768] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cycle, 5, 0, 1), + [770] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cycle, 5, 0, 1), + [772] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_group, 10, 0, 23), + [774] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_group, 10, 0, 23), + [776] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_group, 10, 0, 24), + [778] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_group, 10, 0, 24), + [780] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_extends, 4, 0, 1), + [782] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_extends, 4, 0, 1), + [784] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_partialdef_group, 10, 0, 25), + [786] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_partialdef_group, 10, 0, 25), + [788] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [790] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_url_block, 5, 0, 1), + [792] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_url_block, 5, 0, 1), + [794] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_group, 11, 0, 26), + [796] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_group, 11, 0, 26), + [798] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_group, 11, 0, 27), + [800] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_group, 11, 0, 27), + [802] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_group, 11, 0, 28), + [804] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_group, 11, 0, 28), + [806] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_group, 11, 0, 29), + [808] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_group, 11, 0, 29), + [810] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_group, 12, 0, 30), + [812] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_group, 12, 0, 30), + [814] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_group, 12, 0, 31), + [816] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_group, 12, 0, 31), + [818] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_group, 12, 0, 32), + [820] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_group, 12, 0, 32), + [822] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_query_string, 3, 0, 1), + [824] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_query_string, 3, 0, 1), + [826] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_group, 13, 0, 34), + [828] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_group, 13, 0, 34), + [830] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_group, 13, 0, 35), + [832] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_group, 13, 0, 35), + [834] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_group, 13, 0, 36), + [836] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_group, 13, 0, 36), + [838] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_group, 13, 0, 37), + [840] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_group, 13, 0, 37), + [842] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_group, 14, 0, 38), + [844] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_group, 14, 0, 38), + [846] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_group, 14, 0, 39), + [848] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_group, 14, 0, 39), + [850] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_group, 14, 0, 40), + [852] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_group, 14, 0, 40), + [854] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_group, 15, 0, 41), + [856] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_group, 15, 0, 41), + [858] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spaceless_group, 6, 0, 9), + [860] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_spaceless_group, 6, 0, 9), + [862] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_url_block, 6, 0, 10), + [864] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_url_block, 6, 0, 10), + [866] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lorem, 5, 0, 1), + [868] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_lorem, 5, 0, 1), + [870] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_filter_expression_repeat1, 2, 0, 0), SHIFT_REPEAT(11), + [873] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binaryOperator, 2, 0, 0), + [875] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binaryOperator, 2, 0, 0), + [877] = {.entry = {.count = 1, .reusable = true}}, SHIFT(599), + [879] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_query_string_repeat2, 2, 0, 0), SHIFT_REPEAT(505), + [882] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_query_string_repeat2, 2, 0, 0), + [884] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_query_string_repeat2, 2, 0, 0), + [886] = {.entry = {.count = 1, .reusable = true}}, SHIFT(402), + [888] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228), + [890] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), + [892] = {.entry = {.count = 1, .reusable = true}}, SHIFT(562), + [894] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binaryOperator, 1, 0, 0), + [896] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binaryOperator, 1, 0, 0), + [898] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [900] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_filter_expression_repeat1, 2, 0, 0), SHIFT_REPEAT(16), + [903] = {.entry = {.count = 1, .reusable = true}}, SHIFT(297), + [905] = {.entry = {.count = 1, .reusable = false}}, SHIFT(289), + [907] = {.entry = {.count = 1, .reusable = true}}, SHIFT(305), + [909] = {.entry = {.count = 1, .reusable = false}}, SHIFT(505), + [911] = {.entry = {.count = 1, .reusable = true}}, SHIFT(272), + [913] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [915] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184), + [917] = {.entry = {.count = 1, .reusable = true}}, SHIFT(465), + [919] = {.entry = {.count = 1, .reusable = true}}, SHIFT(565), + [921] = {.entry = {.count = 1, .reusable = true}}, SHIFT(566), + [923] = {.entry = {.count = 1, .reusable = true}}, SHIFT(569), + [925] = {.entry = {.count = 1, .reusable = true}}, SHIFT(570), + [927] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178), + [929] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_query_string_repeat2, 3, 0, 0), + [931] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_query_string_repeat2, 3, 0, 0), + [933] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_with_group_repeat1, 2, 0, 3), SHIFT_REPEAT(485), + [936] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_with_group_repeat1, 2, 0, 3), + [938] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_for_group_repeat1, 2, 0, 5), + [940] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_for_group_repeat1, 2, 0, 5), SHIFT_REPEAT(465), + [943] = {.entry = {.count = 1, .reusable = true}}, SHIFT(638), + [945] = {.entry = {.count = 1, .reusable = true}}, SHIFT(312), + [947] = {.entry = {.count = 1, .reusable = true}}, SHIFT(485), + [949] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [951] = {.entry = {.count = 1, .reusable = true}}, SHIFT(636), + [953] = {.entry = {.count = 1, .reusable = true}}, SHIFT(637), + [955] = {.entry = {.count = 1, .reusable = true}}, SHIFT(420), + [957] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), + [959] = {.entry = {.count = 1, .reusable = true}}, SHIFT(695), + [961] = {.entry = {.count = 1, .reusable = true}}, SHIFT(437), + [963] = {.entry = {.count = 1, .reusable = true}}, SHIFT(696), + [965] = {.entry = {.count = 1, .reusable = true}}, SHIFT(528), + [967] = {.entry = {.count = 1, .reusable = true}}, SHIFT(698), + [969] = {.entry = {.count = 1, .reusable = true}}, SHIFT(535), + [971] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [973] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_query_string_repeat1, 2, 0, 0), SHIFT_REPEAT(397), + [976] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_query_string_repeat1, 2, 0, 0), + [978] = {.entry = {.count = 1, .reusable = true}}, SHIFT(255), + [980] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_query_string_repeat2, 2, 0, 0), SHIFT_REPEAT(638), + [983] = {.entry = {.count = 1, .reusable = true}}, SHIFT(410), + [985] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [987] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_query_string_repeat1, 1, 0, 0), + [989] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), + [991] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [993] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), + [995] = {.entry = {.count = 1, .reusable = true}}, SHIFT(467), + [997] = {.entry = {.count = 1, .reusable = true}}, SHIFT(472), + [999] = {.entry = {.count = 1, .reusable = true}}, SHIFT(381), + [1001] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), + [1003] = {.entry = {.count = 1, .reusable = true}}, SHIFT(498), + [1005] = {.entry = {.count = 1, .reusable = true}}, SHIFT(298), + [1007] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_for_group_repeat1, 2, 0, 4), + [1009] = {.entry = {.count = 1, .reusable = true}}, SHIFT(580), + [1011] = {.entry = {.count = 1, .reusable = true}}, SHIFT(286), + [1013] = {.entry = {.count = 1, .reusable = true}}, SHIFT(446), + [1015] = {.entry = {.count = 1, .reusable = true}}, SHIFT(303), + [1017] = {.entry = {.count = 1, .reusable = true}}, SHIFT(584), + [1019] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_with_group_repeat1, 3, 0, 6), + [1021] = {.entry = {.count = 1, .reusable = true}}, SHIFT(699), + [1023] = {.entry = {.count = 1, .reusable = true}}, SHIFT(538), + [1025] = {.entry = {.count = 1, .reusable = true}}, SHIFT(701), + [1027] = {.entry = {.count = 1, .reusable = true}}, SHIFT(542), + [1029] = {.entry = {.count = 1, .reusable = true}}, SHIFT(667), + [1031] = {.entry = {.count = 1, .reusable = true}}, SHIFT(670), + [1033] = {.entry = {.count = 1, .reusable = true}}, SHIFT(246), + [1035] = {.entry = {.count = 1, .reusable = true}}, SHIFT(469), + [1037] = {.entry = {.count = 1, .reusable = true}}, SHIFT(390), + [1039] = {.entry = {.count = 1, .reusable = true}}, SHIFT(511), + [1041] = {.entry = {.count = 1, .reusable = true}}, SHIFT(311), + [1043] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), + [1045] = {.entry = {.count = 1, .reusable = true}}, SHIFT(393), + [1047] = {.entry = {.count = 1, .reusable = true}}, SHIFT(394), + [1049] = {.entry = {.count = 1, .reusable = true}}, SHIFT(395), + [1051] = {.entry = {.count = 1, .reusable = true}}, SHIFT(314), + [1053] = {.entry = {.count = 1, .reusable = true}}, SHIFT(517), + [1055] = {.entry = {.count = 1, .reusable = true}}, SHIFT(236), + [1057] = {.entry = {.count = 1, .reusable = true}}, SHIFT(595), + [1059] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [1061] = {.entry = {.count = 1, .reusable = true}}, SHIFT(620), + [1063] = {.entry = {.count = 1, .reusable = true}}, SHIFT(380), + [1065] = {.entry = {.count = 1, .reusable = true}}, SHIFT(319), + [1067] = {.entry = {.count = 1, .reusable = true}}, SHIFT(603), + [1069] = {.entry = {.count = 1, .reusable = true}}, SHIFT(680), + [1071] = {.entry = {.count = 1, .reusable = true}}, SHIFT(563), + [1073] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), + [1075] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_if_group_repeat1, 2, 0, 8), SHIFT_REPEAT(571), + [1078] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [1080] = {.entry = {.count = 1, .reusable = true}}, SHIFT(709), + [1082] = {.entry = {.count = 1, .reusable = true}}, SHIFT(207), + [1084] = {.entry = {.count = 1, .reusable = true}}, SHIFT(443), + [1086] = {.entry = {.count = 1, .reusable = true}}, SHIFT(287), + [1088] = {.entry = {.count = 1, .reusable = true}}, SHIFT(204), + [1090] = {.entry = {.count = 1, .reusable = true}}, SHIFT(480), + [1092] = {.entry = {.count = 1, .reusable = true}}, SHIFT(488), + [1094] = {.entry = {.count = 1, .reusable = true}}, SHIFT(489), + [1096] = {.entry = {.count = 1, .reusable = true}}, SHIFT(441), + [1098] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), + [1100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), + [1102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(500), + [1104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [1106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [1108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [1110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(392), + [1112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(273), + [1114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [1116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218), + [1118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(274), + [1120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(492), + [1122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(237), + [1124] = {.entry = {.count = 1, .reusable = true}}, SHIFT(275), + [1126] = {.entry = {.count = 1, .reusable = true}}, SHIFT(462), + [1128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219), + [1130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(573), + [1132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(663), + [1134] = {.entry = {.count = 1, .reusable = true}}, SHIFT(496), + [1136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216), + [1138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(574), + [1140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(409), + [1142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(578), + [1144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [1146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(502), + [1148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(583), + [1150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(259), + [1152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220), + [1154] = {.entry = {.count = 1, .reusable = true}}, SHIFT(264), + [1156] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222), + [1158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(589), + [1160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(708), + [1162] = {.entry = {.count = 1, .reusable = true}}, SHIFT(276), + [1164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(224), + [1166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(592), + [1168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(289), + [1170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225), + [1172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(293), + [1174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(294), + [1176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(295), + [1178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(296), + [1180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), + [1182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(624), + [1184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), + [1186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(226), + [1188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(611), + [1190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(300), + [1192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(475), + [1194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(278), + [1196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(302), + [1198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(265), + [1200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(304), + [1202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(279), + [1204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(280), + [1206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(307), + [1208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(308), + [1210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227), + [1212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(310), + [1214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(527), + [1216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(447), + [1218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(266), + [1220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(416), + [1222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(229), + [1224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(315), + [1226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(316), + [1228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(317), + [1230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(318), + [1232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(704), + [1234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(320), + [1236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(321), + [1238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(322), + [1240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(323), + [1242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(324), + [1244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(325), + [1246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(326), + [1248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(327), + [1250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(328), + [1252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(329), + [1254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(330), + [1256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(331), + [1258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(332), + [1260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(281), + [1262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(333), + [1264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(334), + [1266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(378), + [1268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(336), + [1270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(337), + [1272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(338), + [1274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(339), + [1276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(340), + [1278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(341), + [1280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(342), + [1282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(343), + [1284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(344), + [1286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(345), + [1288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(346), + [1290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(347), + [1292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(348), + [1294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(349), + [1296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(350), + [1298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(351), + [1300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(352), + [1302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(353), + [1304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(354), + [1306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(355), + [1308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(356), + [1310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(357), + [1312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(358), + [1314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(359), + [1316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(360), + [1318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(361), + [1320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(362), + [1322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [1324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(459), + [1326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), + [1328] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [1330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(277), + [1332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(230), + [1334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(508), + [1336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [1338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(235), + [1340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(707), + [1342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(482), + [1344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [1346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238), + [1348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(427), + [1350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(239), + [1352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240), + [1354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(649), + [1356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(412), + [1358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(495), + [1360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(652), + [1362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(478), + [1364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232), + [1366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(426), + [1368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(509), + [1370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), + [1372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(512), + [1374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(430), + [1376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), + [1378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(515), + [1380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(234), + [1382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(658), + [1384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(664), + [1386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242), + [1388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(260), + [1390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(522), + [1392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(588), + [1394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(524), + [1396] = {.entry = {.count = 1, .reusable = true}}, SHIFT(525), + [1398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(526), + [1400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), + [1402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(464), + [1404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(529), + [1406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(530), + [1408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(531), + [1410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(532), + [1412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(533), + [1414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(428), + [1416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(267), + [1418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(536), + [1420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(537), + [1422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(716), + [1424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243), + [1426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [1428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(541), + [1430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [1432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(543), + [1434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [1436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(245), + [1438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(268), + [1440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(547), + [1442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [1444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(549), + [1446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(550), + [1448] = {.entry = {.count = 1, .reusable = true}}, SHIFT(405), + [1450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(450), + [1452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(553), + [1454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(554), + [1456] = {.entry = {.count = 1, .reusable = true}}, SHIFT(555), + [1458] = {.entry = {.count = 1, .reusable = true}}, SHIFT(231), + [1460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(557), + [1462] = {.entry = {.count = 1, .reusable = true}}, SHIFT(445), + [1464] = {.entry = {.count = 1, .reusable = true}}, SHIFT(436), + [1466] = {.entry = {.count = 1, .reusable = true}}, SHIFT(685), + [1468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(454), + [1470] = {.entry = {.count = 1, .reusable = true}}, SHIFT(585), + [1472] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [1474] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [1476] = {.entry = {.count = 1, .reusable = true}}, SHIFT(248), + [1478] = {.entry = {.count = 1, .reusable = true}}, SHIFT(591), + [1480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(461), + [1482] = {.entry = {.count = 1, .reusable = true}}, SHIFT(719), + [1484] = {.entry = {.count = 1, .reusable = true}}, SHIFT(418), + [1486] = {.entry = {.count = 1, .reusable = true}}, SHIFT(596), + [1488] = {.entry = {.count = 1, .reusable = true}}, SHIFT(221), + [1490] = {.entry = {.count = 1, .reusable = true}}, SHIFT(598), + [1492] = {.entry = {.count = 1, .reusable = true}}, SHIFT(283), + [1494] = {.entry = {.count = 1, .reusable = true}}, SHIFT(471), + [1496] = {.entry = {.count = 1, .reusable = true}}, SHIFT(601), + [1498] = {.entry = {.count = 1, .reusable = true}}, SHIFT(250), + [1500] = {.entry = {.count = 1, .reusable = true}}, SHIFT(604), + [1502] = {.entry = {.count = 1, .reusable = true}}, SHIFT(605), + [1504] = {.entry = {.count = 1, .reusable = true}}, SHIFT(593), + [1506] = {.entry = {.count = 1, .reusable = true}}, SHIFT(439), + [1508] = {.entry = {.count = 1, .reusable = true}}, SHIFT(284), + [1510] = {.entry = {.count = 1, .reusable = true}}, SHIFT(609), + [1512] = {.entry = {.count = 1, .reusable = true}}, SHIFT(414), + [1514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251), + [1516] = {.entry = {.count = 1, .reusable = true}}, SHIFT(647), + [1518] = {.entry = {.count = 1, .reusable = true}}, SHIFT(613), + [1520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(415), + [1522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(615), + [1524] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208), + [1526] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), + [1528] = {.entry = {.count = 1, .reusable = true}}, SHIFT(256), + [1530] = {.entry = {.count = 1, .reusable = true}}, SHIFT(619), + [1532] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [1534] = {.entry = {.count = 1, .reusable = true}}, SHIFT(621), + [1536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(622), + [1538] = {.entry = {.count = 1, .reusable = true}}, SHIFT(254), + [1540] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [1542] = {.entry = {.count = 1, .reusable = true}}, SHIFT(625), + [1544] = {.entry = {.count = 1, .reusable = true}}, SHIFT(626), + [1546] = {.entry = {.count = 1, .reusable = true}}, SHIFT(627), + [1548] = {.entry = {.count = 1, .reusable = true}}, SHIFT(257), + [1550] = {.entry = {.count = 1, .reusable = true}}, SHIFT(629), + [1552] = {.entry = {.count = 1, .reusable = true}}, SHIFT(473), + [1554] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_group_repeat1, 5, 0, 1), + [1556] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [1558] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [1560] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [1562] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [1564] = {.entry = {.count = 1, .reusable = true}}, SHIFT(258), + [1566] = {.entry = {.count = 1, .reusable = true}}, SHIFT(474), + [1568] = {.entry = {.count = 1, .reusable = true}}, SHIFT(494), + [1570] = {.entry = {.count = 1, .reusable = true}}, SHIFT(655), + [1572] = {.entry = {.count = 1, .reusable = true}}, SHIFT(651), + [1574] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [1576] = {.entry = {.count = 1, .reusable = true}}, SHIFT(654), + [1578] = {.entry = {.count = 1, .reusable = true}}, SHIFT(513), + [1580] = {.entry = {.count = 1, .reusable = true}}, SHIFT(656), + [1582] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [1584] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [1586] = {.entry = {.count = 1, .reusable = true}}, SHIFT(660), + [1588] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [1590] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [1592] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [1594] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [1596] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [1598] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [1600] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [1602] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [1604] = {.entry = {.count = 1, .reusable = true}}, SHIFT(642), + [1606] = {.entry = {.count = 1, .reusable = true}}, SHIFT(270), + [1608] = {.entry = {.count = 1, .reusable = true}}, SHIFT(271), + [1610] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [1612] = {.entry = {.count = 1, .reusable = true}}, SHIFT(476), + [1614] = {.entry = {.count = 1, .reusable = true}}, SHIFT(684), + [1616] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [1618] = {.entry = {.count = 1, .reusable = true}}, SHIFT(691), + [1620] = {.entry = {.count = 1, .reusable = true}}, SHIFT(610), + [1622] = {.entry = {.count = 1, .reusable = true}}, SHIFT(706), + [1624] = {.entry = {.count = 1, .reusable = true}}, SHIFT(435), + [1626] = {.entry = {.count = 1, .reusable = true}}, SHIFT(233), + [1628] = {.entry = {.count = 1, .reusable = true}}, SHIFT(710), + [1630] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203), + [1632] = {.entry = {.count = 1, .reusable = true}}, SHIFT(404), + [1634] = {.entry = {.count = 1, .reusable = true}}, SHIFT(715), + [1636] = {.entry = {.count = 1, .reusable = true}}, SHIFT(521), +}; + +enum ts_external_scanner_symbol_identifiers { + ts_external_token_pop_block = 0, + ts_external_token_pop_partial = 1, + ts_external_token_pop_verbatim = 2, + ts_external_token_push_block = 3, + ts_external_token_push_partial = 4, + ts_external_token_push_verbatim = 5, + ts_external_token_matcher_error = 6, +}; + +static const TSSymbol ts_external_scanner_symbol_map[EXTERNAL_TOKEN_COUNT] = { + [ts_external_token_pop_block] = sym_pop_block, + [ts_external_token_pop_partial] = sym_pop_partial, + [ts_external_token_pop_verbatim] = sym_pop_verbatim, + [ts_external_token_push_block] = sym_push_block, + [ts_external_token_push_partial] = sym_push_partial, + [ts_external_token_push_verbatim] = sym_push_verbatim, + [ts_external_token_matcher_error] = sym_matcher_error, +}; + +static const bool ts_external_scanner_states[8][EXTERNAL_TOKEN_COUNT] = { + [1] = { + [ts_external_token_pop_block] = true, + [ts_external_token_pop_partial] = true, + [ts_external_token_pop_verbatim] = true, + [ts_external_token_push_block] = true, + [ts_external_token_push_partial] = true, + [ts_external_token_push_verbatim] = true, + [ts_external_token_matcher_error] = true, + }, + [2] = { + [ts_external_token_pop_block] = true, + }, + [3] = { + [ts_external_token_pop_partial] = true, + }, + [4] = { + [ts_external_token_push_verbatim] = true, + }, + [5] = { + [ts_external_token_push_block] = true, + }, + [6] = { + [ts_external_token_pop_verbatim] = true, + }, + [7] = { + [ts_external_token_push_partial] = true, + }, +}; + +#ifdef __cplusplus +extern "C" { +#endif +void *tree_sitter_django_external_scanner_create(void); +void tree_sitter_django_external_scanner_destroy(void *); +bool tree_sitter_django_external_scanner_scan(void *, TSLexer *, const bool *); +unsigned tree_sitter_django_external_scanner_serialize(void *, char *); +void tree_sitter_django_external_scanner_deserialize(void *, const char *, unsigned); + +#ifdef TREE_SITTER_HIDE_SYMBOLS +#define TS_PUBLIC +#elif defined(_WIN32) +#define TS_PUBLIC __declspec(dllexport) +#else +#define TS_PUBLIC __attribute__((visibility("default"))) +#endif + +TS_PUBLIC const TSLanguage *tree_sitter_django(void) { + static const TSLanguage language = { + .abi_version = LANGUAGE_VERSION, + .symbol_count = SYMBOL_COUNT, + .alias_count = ALIAS_COUNT, + .token_count = TOKEN_COUNT, + .external_token_count = EXTERNAL_TOKEN_COUNT, + .state_count = STATE_COUNT, + .large_state_count = LARGE_STATE_COUNT, + .production_id_count = PRODUCTION_ID_COUNT, + .supertype_count = SUPERTYPE_COUNT, + .field_count = FIELD_COUNT, + .max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH, + .parse_table = &ts_parse_table[0][0], + .small_parse_table = ts_small_parse_table, + .small_parse_table_map = ts_small_parse_table_map, + .parse_actions = ts_parse_actions, + .symbol_names = ts_symbol_names, + .field_names = ts_field_names, + .field_map_slices = ts_field_map_slices, + .field_map_entries = ts_field_map_entries, + .supertype_map_slices = ts_supertype_map_slices, + .supertype_map_entries = ts_supertype_map_entries, + .supertype_symbols = ts_supertype_symbols, + .symbol_metadata = ts_symbol_metadata, + .public_symbol_map = ts_symbol_map, + .alias_map = ts_non_terminal_alias_map, + .alias_sequences = &ts_alias_sequences[0][0], + .lex_modes = (const void*)ts_lex_modes, + .lex_fn = ts_lex, + .external_scanner = { + &ts_external_scanner_states[0][0], + ts_external_scanner_symbol_map, + tree_sitter_django_external_scanner_create, + tree_sitter_django_external_scanner_destroy, + tree_sitter_django_external_scanner_scan, + tree_sitter_django_external_scanner_serialize, + tree_sitter_django_external_scanner_deserialize, + }, + .primary_state_ids = ts_primary_state_ids, + .name = "django", + .max_reserved_word_set_size = 0, + .metadata = { + .major_version = 0, + .minor_version = 0, + .patch_version = 1, + }, + }; + return &language; +} +#ifdef __cplusplus +} +#endif diff --git a/src/scanner.c b/src/scanner.c new file mode 100644 index 0000000..84822d1 --- /dev/null +++ b/src/scanner.c @@ -0,0 +1,430 @@ +#include "tree_sitter/parser.h" +#include "tree_sitter/alloc.h" +#include "tree_sitter/array.h" + +#define ERROR_SIZE 64 +#define STACK_COUNT 3 +#define NAME_SEP ' ' +#define STACK_SEP '\n' + +enum TokenType { + /* push name on stack to match with later */ + PopBlock, // [ name ] %} + PopPartial, // [ name ] %} + PopVerbatim, // [ name ] %} + /* pop name when done with it */ + PushBlock, // name %} + PushPartial, // name [ inline ] %} + PushVerbatim, // [ name ] %} + /* indicates that an error occurred */ + MatcherError, +}; + +typedef Array(int32_t) Name; +typedef Array(Name) Stack; + +struct Scanner { + bool has_error; + union { + Stack stacks [STACK_COUNT]; + char error [ERROR_SIZE]; + }; +}; + +static Stack* get_stack_for_token(struct Scanner *scanner, enum TokenType token) { + if (token >= MatcherError) { + return NULL; + } + return &scanner->stacks[token % STACK_COUNT]; +} + +static void reset_scanner(struct Scanner *const scanner) { + if (scanner->has_error) { + scanner->error[0] = '\0'; + scanner->has_error = false; + } else { + for (unsigned i = 0; i < STACK_COUNT; ++i) { + Stack *stack = &scanner->stacks[i]; + for (unsigned i = 0; i < stack->size; ++i) { + array_delete(array_get(stack, i)); + } + array_delete(stack); + } + } +} + +#define scanner_error(scanner, string) do {\ + struct Scanner *_scanner = scanner;\ + reset_scanner(_scanner);\ + _scanner->has_error = true;\ + _scanner->error[0] = '\0';\ + /*strncat(_scanner->error, string, ERROR_SIZE - 1);*/\ +} while(0) + +#define min(a, b)\ + ({\ + typeof(a) _a = (a);\ + typeof(b) _b = (b);\ + _a > _b ? _a : _b;\ + }) + +void * tree_sitter_django_external_scanner_create() { + return ts_calloc(1, sizeof(struct Scanner)); +} + +void tree_sitter_django_external_scanner_destroy(void *payload) { + struct Scanner *scanner = (struct Scanner*) payload; + reset_scanner(scanner); + ts_free(payload); +} + +static unsigned write_code(int32_t code, char *out) { + if (code <= 0x7F) { + // 1 byte: 0xxxxxxx + out[0] = code; + return 1; + } + else if (code <= 0x7FF) { + // 2 bytes: 110xxxxx 10xxxxxx + out[0] = (code >> 6) | 0xC0; + out[1] = (code & 0x3F) | 0x80; + return 2; + } + else if (code <= 0xFFFF) { + // 3 bytes: 1110xxxx 10xxxxxx 10xxxxxx + // Note: Code points U+D800 to U+DFFF are reserved for UTF-16 surrogates and are invalid + if (code >= 0xD800 && code <= 0xDFFF) { + return 0; + } + + out[0] = (code >> 12) | 0xE0; + out[1] = ((code >> 6) & 0x3F) | 0x80; + out[2] = (code & 0x3F) | 0x80; + return 3; + } + else if (code <= 0x10FFFF) { + // 4 bytes: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx + out[0] = (code >> 18) | 0xF0; + out[1] = ((code >> 12) & 0x3F) | 0x80; + out[2] = ((code >> 6) & 0x3F) | 0x80; + out[3] = (code & 0x3F) | 0x80; + return 4; + } + return 0; // Out of Unicode range +} + +unsigned tree_sitter_django_external_scanner_serialize( + void *payload, + char *const buffer +) { + struct Scanner *scanner = (struct Scanner*) payload; + +write_serialization_error:; + char *iter = buffer; + + iter += write_code(scanner->has_error + '0', iter); + if (scanner->has_error) { + for (int i = 0; i < ERROR_SIZE; ++i) { + char value = scanner->error[i]; + *(iter++) = value; + if (value == '\0') { + break; + } + } + } else { + // Ok scanner requires copying its stack + for (unsigned i = 0; i < STACK_COUNT; ++i) { + Stack *stack = &scanner->stacks[i]; + for (unsigned i = 0; i < stack->size; ++i) { + Name *name = array_get(stack, i); + for (unsigned j = 0; j < name->size; ++j) { + int32_t code = *array_get(name, j); + unsigned write_amt = write_code(code, iter); + if (write_amt == 0) { + scanner_error(scanner, "bad code from name"); + goto write_serialization_error; + } + iter += write_amt; + } + iter += write_code(NAME_SEP, iter); + } + iter += write_code(STACK_SEP, iter); + } + } + return iter - buffer; +} + +static unsigned read_code(const char *iter, int32_t *result) { + unsigned char byte0 = iter[0]; + if (byte0 <= 0x7F) { + // 1 byte: 0xxxxxxx + *result = byte0; + return 1; + } else if ((byte0 & 0xE0) == 0xC0) { + // 2 bytes: 110xxxxx 10xxxxxx + *result = ((byte0 & 0x1F) << 6) | (iter[1] & 0x3F); + return 2; + } else if ((byte0 & 0xF0) == 0xE0) { + // 3 bytes: 1110xxxx 10xxxxxx 10xxxxxx + *result = ((byte0 & 0x0F) << 12) | ((iter[1] & 0x3F) << 6) | (iter[2] & 0x3F); + return 3; + } else if ((byte0 & 0xF8) == 0xF0) { + // 4 bytes: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx + *result = ((byte0 & 0x07) << 18) | ((iter[1] & 0x3F) << 12) | ((iter[2] & 0x3F) << 6) | (iter[3] & 0x3F); + return 4; + } + return 0; // invalid UTF-8 leading byte +} + +static bool check_name_start_char(const int32_t letter) { + return 'a' <= letter && letter <= 'z' || 'A' <= letter && letter <= 'Z'; +} + +static bool check_name_char(const int32_t letter) { + return check_name_start_char(letter) || '0' <= letter && letter <= '9' || letter == '_'; +} + +void tree_sitter_django_external_scanner_deserialize( + void *payload, + const char *buffer, + unsigned length +) { + struct Scanner *scanner = (struct Scanner*) payload; + reset_scanner(scanner); + if (length == 0) { + return; + } + int32_t code; + unsigned bytes_read = read_code(buffer, &code); + if (!bytes_read) { + scanner_error(scanner, "received invalid utf8 byte"); + return; + } + if (bytes_read > length) { + scanner_error(scanner, "status code truncated by length"); + return; + } + buffer += bytes_read; + switch (code) { + default: + scanner_error(scanner, "received unrecognized scanner status"); + return; + case '1': { + scanner->has_error = true; + for (unsigned i = 0; i < length - bytes_read; ++i) { + char value = *(buffer++); + scanner->error[i] = value; + if (value == '\0') { + break; + } + } + return; + } + case '0': { + scanner->has_error = false; + const char *end = buffer + length - bytes_read; + Stack *stack = scanner->stacks; + Stack *stack_end = stack + STACK_COUNT; + Name *name = NULL; + + while (stack < stack_end) { + bytes_read = read_code(buffer, &code); + if (bytes_read == 0) { + scanner_error(scanner, "Bad utf8 byte"); + return; + } + buffer += bytes_read; + if (buffer > end) { + scanner_error(scanner, "Scanner truncated by length"); + return; + } + if (code == STACK_SEP) { + ++stack; + name = NULL; + continue; + } else if (code == NAME_SEP) { + if (name == NULL) { + scanner_error(scanner, "Empty name read"); + return; + } + name = NULL; + } else { + if (name == NULL) { + if (!check_name_start_char(code)) { + scanner_error(scanner, "Invalid name, must start with letter"); + return; + } + array_push(stack, (Name) array_new()); + name = array_back(stack); + } else if (!check_name_char(code)) { + scanner_error(scanner, "Invalid character in name"); + return; + } + array_push(name, code); + } + } + if (buffer != end) { + scanner_error(scanner, "Scanner deserialization finished with left over length"); + } + } + } +} + +static bool read_name(TSLexer *const lexer, Name *const name) { + if (name->size == 0) { + if (!check_name_start_char(lexer->lookahead)) { + return false; + } + array_push(name, lexer->lookahead); + lexer->advance(lexer, false); + } + while (check_name_char(lexer->lookahead)) { + array_push(name, lexer->lookahead); + lexer->advance(lexer, false); + } + return true; +} + +static unsigned check_name(TSLexer *const lexer, const Name *const name) { + for (unsigned i = 0; i < name->size; ++i) { + if (lexer->lookahead != name->contents[i]) { + return i; + } + lexer->advance(lexer, false); + } + return name->size; +} + +static bool check_close_block(TSLexer *const lexer) { + while (true) { + switch (lexer->lookahead) { + case ' ': + case '\t': + lexer->advance(lexer, false); + case '%': + lexer->advance(lexer, false); + return lexer->lookahead == '}'; + default: + return false; + } + } +} + +const char inline_chars[] = "inline"; + +static bool check_inline(TSLexer *const lexer) { + for (unsigned i = 0; i < sizeof(inline_chars) - 1; ++i) { + if (lexer->lookahead != inline_chars[i]) { + return false; + } + lexer->advance(lexer, false); + } + return check_close_block(lexer); +} + +bool tree_sitter_django_external_scanner_scan( + void *payload, + TSLexer *lexer, + const bool *valid_symbols +) { + struct Scanner *scanner = (struct Scanner*) payload; + if (scanner->has_error) { + lexer->log(lexer, "%s", scanner->error); + if (valid_symbols[MatcherError]) { + // scanner is an error state, flag problem by returning error token + lexer->result_symbol = MatcherError; + return true; + } + return false; + } + if (valid_symbols[MatcherError]) { + return false; + } + while (lexer->lookahead == ' ' || lexer->lookahead == '\t') { + lexer->advance(lexer, true); + } + bool is_empty = false; + if (lexer->lookahead == '%') { + lexer->mark_end(lexer); + lexer->advance(lexer, false); + if (lexer->lookahead != '}') { + return false; + } + is_empty = true; + } + + // save most matched name in case we need to reread characters + Name *most_matched_name; + unsigned most_matched_amt = 0; + for (unsigned token = PopBlock; token < PushBlock; ++token) { + Stack *stack = get_stack_for_token(scanner, token); + if (valid_symbols[token] && stack->size > 0) { + Name *name = array_back(stack); + if (is_empty) { + // we matched a close block without an id + array_delete(name); + array_pop(stack); + lexer->result_symbol = token; + return true; + } + if (most_matched_amt > name->size) { + continue; + } + if (most_matched_amt > 0) { + for (int i = 0; i < most_matched_amt; ++i) { + if (*array_get(most_matched_name, i) != *array_get(name, i)) { + continue; + } + } + } + unsigned match_amt = check_name(lexer, name) + most_matched_amt; + bool has_next_char = name->size ? check_name_char(lexer->lookahead) : check_name_start_char(lexer->lookahead); + if (match_amt == name->size && !has_next_char) { + // name matches and there are no remaining name chars from lexer + lexer->mark_end(lexer); + if (check_close_block(lexer)) { + array_delete(name); + array_pop(stack); + lexer->result_symbol = token; + return true; + } else { + // bad close block means no matches + return false; + } + } + most_matched_amt = match_amt; + most_matched_name = name; + } + } + for (unsigned token = PushBlock; token < MatcherError; ++token) { + if (valid_symbols[token]) { + Stack *stack = get_stack_for_token(scanner, token); + if (is_empty && token == PushVerbatim) { + // use empty string for name to indicate empty push + array_push(stack, (Name) array_new()); + lexer->result_symbol = token; + return true; + } + // do not push stack until we are done with most_matched_name + Name name = array_new(); + if (most_matched_amt > 0) { + array_extend(&name, most_matched_amt, most_matched_name); + } + if (read_name(lexer, &name)) { + // validate tokens after name + lexer->mark_end(lexer); + if (check_close_block(lexer) || token == PushPartial && check_inline(lexer)) { + array_push(stack, name); + lexer->result_symbol = token; + return true; + } + } + // undo failed push + array_delete(&name); + array_pop(stack); + // single failed push implies failure to match any push + return false; + } + } + return false; +} diff --git a/src/tree_sitter/alloc.h b/src/tree_sitter/alloc.h new file mode 100644 index 0000000..1abdd12 --- /dev/null +++ b/src/tree_sitter/alloc.h @@ -0,0 +1,54 @@ +#ifndef TREE_SITTER_ALLOC_H_ +#define TREE_SITTER_ALLOC_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +// Allow clients to override allocation functions +#ifdef TREE_SITTER_REUSE_ALLOCATOR + +extern void *(*ts_current_malloc)(size_t size); +extern void *(*ts_current_calloc)(size_t count, size_t size); +extern void *(*ts_current_realloc)(void *ptr, size_t size); +extern void (*ts_current_free)(void *ptr); + +#ifndef ts_malloc +#define ts_malloc ts_current_malloc +#endif +#ifndef ts_calloc +#define ts_calloc ts_current_calloc +#endif +#ifndef ts_realloc +#define ts_realloc ts_current_realloc +#endif +#ifndef ts_free +#define ts_free ts_current_free +#endif + +#else + +#ifndef ts_malloc +#define ts_malloc malloc +#endif +#ifndef ts_calloc +#define ts_calloc calloc +#endif +#ifndef ts_realloc +#define ts_realloc realloc +#endif +#ifndef ts_free +#define ts_free free +#endif + +#endif + +#ifdef __cplusplus +} +#endif + +#endif // TREE_SITTER_ALLOC_H_ diff --git a/src/tree_sitter/array.h b/src/tree_sitter/array.h new file mode 100644 index 0000000..eba3da4 --- /dev/null +++ b/src/tree_sitter/array.h @@ -0,0 +1,336 @@ +#ifndef TREE_SITTER_ARRAY_H_ +#define TREE_SITTER_ARRAY_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "./alloc.h" + +#include +#include +#include +#include +#include + +#ifdef _MSC_VER +#pragma warning(push) +#pragma warning(disable : 4101) +#elif defined(__GNUC__) || defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-variable" +#endif + +#define Array(T) \ + struct { \ + T *contents; \ + uint32_t size; \ + uint32_t capacity; \ + } + +/// Initialize an array. +#define array_init(self) \ + ((self)->size = 0, (self)->capacity = 0, (self)->contents = NULL) + +/// Create an empty array. +#define array_new() \ + { NULL, 0, 0 } + +/// Get a pointer to the element at a given `index` in the array. +#define array_get(self, _index) \ + (assert((uint32_t)(_index) < (self)->size), &(self)->contents[_index]) + +/// Get a pointer to the first element in the array. +#define array_front(self) array_get(self, 0) + +/// Get a pointer to the last element in the array. +#define array_back(self) array_get(self, (self)->size - 1) + +/// Clear the array, setting its size to zero. Note that this does not free any +/// memory allocated for the array's contents. +#define array_clear(self) ((self)->size = 0) + +#ifdef __cplusplus +#define _array__cast(self, expr) (decltype((self)->contents))(expr) +#else +#define _array__cast(self, expr) (expr) +#endif + +/// Reserve `new_capacity` elements of space in the array. If `new_capacity` is +/// less than the array's current capacity, this function has no effect. +#define array_reserve(self, new_capacity) \ + ((self)->contents = _array__cast(self, _array__reserve( \ + (void *)(self)->contents, &(self)->capacity, \ + array_elem_size(self), new_capacity)) \ + ) + +/// Free any memory allocated for this array. Note that this does not free any +/// memory allocated for the array's contents. +#define array_delete(self) \ + do { \ + if ((self)->contents) ts_free((self)->contents); \ + (self)->contents = NULL; \ + (self)->size = 0; \ + (self)->capacity = 0; \ + } while (0) + +/// Push a new `element` onto the end of the array. +#define array_push(self, element) \ + do { \ + (self)->contents = _array__cast(self, _array__grow( \ + (void *)(self)->contents, (self)->size, &(self)->capacity, \ + 1, array_elem_size(self) \ + )); \ + (self)->contents[(self)->size++] = (element); \ + } while(0) + +/// Increase the array's size by `count` elements. +/// New elements are zero-initialized. +#define array_grow_by(self, count) \ + do { \ + if ((count) == 0) break; \ + (self)->contents = _array__cast(self, _array__grow( \ + (self)->contents, (self)->size, &(self)->capacity, \ + count, array_elem_size(self) \ + )); \ + memset((self)->contents + (self)->size, 0, (count) * array_elem_size(self)); \ + (self)->size += (count); \ + } while (0) + +/// Append all elements from one array to the end of another. +#define array_push_all(self, other) \ + array_extend((self), (other)->size, (other)->contents) + +/// Append `count` elements to the end of the array, reading their values from the +/// `contents` pointer. +#define array_extend(self, count, other_contents) \ + ((self)->contents = _array__cast(self, _array__splice( \ + (void*)(self)->contents, &(self)->size, &(self)->capacity, \ + array_elem_size(self), (self)->size, 0, count, other_contents \ + ))) + +/// Remove `old_count` elements from the array starting at the given `index`. At +/// the same index, insert `new_count` new elements, reading their values from the +/// `new_contents` pointer. +#define array_splice(self, _index, old_count, new_count, new_contents) \ + ((self)->contents = _array__cast(self, _array__splice( \ + (void *)(self)->contents, &(self)->size, &(self)->capacity, \ + array_elem_size(self), _index, old_count, new_count, new_contents \ + ))) + +/// Insert one `element` into the array at the given `index`. +#define array_insert(self, _index, element) \ + ((self)->contents = _array__cast(self, _array__splice( \ + (void *)(self)->contents, &(self)->size, &(self)->capacity, \ + array_elem_size(self), _index, 0, 1, &(element) \ + ))) + +/// Remove one element from the array at the given `index`. +#define array_erase(self, _index) \ + _array__erase((void *)(self)->contents, &(self)->size, array_elem_size(self), _index) + +/// Pop the last element off the array, returning the element by value. +#define array_pop(self) ((self)->contents[--(self)->size]) + +/// Assign the contents of one array to another, reallocating if necessary. +#define array_assign(self, other) \ + ((self)->contents = _array__cast(self, _array__assign( \ + (void *)(self)->contents, &(self)->size, &(self)->capacity, \ + (const void *)(other)->contents, (other)->size, array_elem_size(self) \ + ))) + +/// Swap one array with another +#define array_swap(self, other) \ + do { \ + void *_array_swap_tmp = (void *)(self)->contents; \ + (self)->contents = (other)->contents; \ + (other)->contents = _array__cast(other, _array_swap_tmp); \ + _array__swap(&(self)->size, &(self)->capacity, \ + &(other)->size, &(other)->capacity); \ + } while (0) + +/// Get the size of the array contents +#define array_elem_size(self) (sizeof *(self)->contents) + +/// Search a sorted array for a given `needle` value, using the given `compare` +/// callback to determine the order. +/// +/// If an existing element is found to be equal to `needle`, then the `index` +/// out-parameter is set to the existing value's index, and the `exists` +/// out-parameter is set to true. Otherwise, `index` is set to an index where +/// `needle` should be inserted in order to preserve the sorting, and `exists` +/// is set to false. +#define array_search_sorted_with(self, compare, needle, _index, _exists) \ + _array__search_sorted(self, 0, compare, , needle, _index, _exists) + +/// Search a sorted array for a given `needle` value, using integer comparisons +/// of a given struct field (specified with a leading dot) to determine the order. +/// +/// See also `array_search_sorted_with`. +#define array_search_sorted_by(self, field, needle, _index, _exists) \ + _array__search_sorted(self, 0, _compare_int, field, needle, _index, _exists) + +/// Insert a given `value` into a sorted array, using the given `compare` +/// callback to determine the order. +#define array_insert_sorted_with(self, compare, value) \ + do { \ + unsigned _index, _exists; \ + array_search_sorted_with(self, compare, &(value), &_index, &_exists); \ + if (!_exists) array_insert(self, _index, value); \ + } while (0) + +/// Insert a given `value` into a sorted array, using integer comparisons of +/// a given struct field (specified with a leading dot) to determine the order. +/// +/// See also `array_search_sorted_by`. +#define array_insert_sorted_by(self, field, value) \ + do { \ + unsigned _index, _exists; \ + array_search_sorted_by(self, field, (value) field, &_index, &_exists); \ + if (!_exists) array_insert(self, _index, value); \ + } while (0) + +// Private + +// Pointers to individual `Array` fields (rather than the entire `Array` itself) +// are passed to the various `_array__*` functions below to address strict aliasing +// violations that arises when the _entire_ `Array` struct is passed as `Array(void)*`. +// +// The `Array` type itself was not altered as a solution in order to avoid breakage +// with existing consumers (in particular, parsers with external scanners). + +/// This is not what you're looking for, see `array_erase`. +static inline void _array__erase(void* self_contents, uint32_t *size, + size_t element_size, uint32_t index) { + assert(index < *size); + char *contents = (char *)self_contents; + memmove(contents + index * element_size, contents + (index + 1) * element_size, + (*size - index - 1) * element_size); + (*size)--; +} + +/// This is not what you're looking for, see `array_reserve`. +static inline void *_array__reserve(void *contents, uint32_t *capacity, + size_t element_size, uint32_t new_capacity) { + void *new_contents = contents; + if (new_capacity > *capacity) { + if (contents) { + new_contents = ts_realloc(contents, new_capacity * element_size); + } else { + new_contents = ts_malloc(new_capacity * element_size); + } + *capacity = new_capacity; + } + return new_contents; +} + +/// This is not what you're looking for, see `array_assign`. +static inline void *_array__assign(void* self_contents, uint32_t *self_size, uint32_t *self_capacity, + const void *other_contents, uint32_t other_size, size_t element_size) { + void *new_contents = _array__reserve(self_contents, self_capacity, element_size, other_size); + *self_size = other_size; + memcpy(new_contents, other_contents, *self_size * element_size); + return new_contents; +} + +/// This is not what you're looking for, see `array_swap`. +static inline void _array__swap(uint32_t *self_size, uint32_t *self_capacity, + uint32_t *other_size, uint32_t *other_capacity) { + uint32_t tmp_size = *self_size; + uint32_t tmp_capacity = *self_capacity; + *self_size = *other_size; + *self_capacity = *other_capacity; + *other_size = tmp_size; + *other_capacity = tmp_capacity; +} + +/// This is not what you're looking for, see `array_push` or `array_grow_by`. +static inline void *_array__grow(void *contents, uint32_t size, uint32_t *capacity, + uint32_t count, size_t element_size) { + void *new_contents = contents; + uint32_t new_size = size + count; + if (new_size > *capacity) { + uint32_t new_capacity = *capacity * 2; + if (new_capacity < 8) new_capacity = 8; + if (new_capacity < new_size) new_capacity = new_size; + new_contents = _array__reserve(contents, capacity, element_size, new_capacity); + } + return new_contents; +} + +/// This is not what you're looking for, see `array_splice`. +static inline void *_array__splice(void *self_contents, uint32_t *size, uint32_t *capacity, + size_t element_size, + uint32_t index, uint32_t old_count, + uint32_t new_count, const void *elements) { + uint32_t new_size = *size + new_count - old_count; + uint32_t old_end = index + old_count; + uint32_t new_end = index + new_count; + assert(old_end <= *size); + + void *new_contents = _array__reserve(self_contents, capacity, element_size, new_size); + + char *contents = (char *)new_contents; + if (*size > old_end) { + memmove( + contents + new_end * element_size, + contents + old_end * element_size, + (*size - old_end) * element_size + ); + } + if (new_count > 0) { + if (elements) { + memcpy( + (contents + index * element_size), + elements, + new_count * element_size + ); + } else { + memset( + (contents + index * element_size), + 0, + new_count * element_size + ); + } + } + *size += new_count - old_count; + + return new_contents; +} + +/// A binary search routine, based on Rust's `std::slice::binary_search_by`. +/// This is not what you're looking for, see `array_search_sorted_with` or `array_search_sorted_by`. +#define _array__search_sorted(self, start, compare, suffix, needle, _index, _exists) \ + do { \ + *(_index) = start; \ + *(_exists) = false; \ + uint32_t size = (self)->size - *(_index); \ + if (size == 0) break; \ + int comparison; \ + while (size > 1) { \ + uint32_t half_size = size / 2; \ + uint32_t mid_index = *(_index) + half_size; \ + comparison = compare(&((self)->contents[mid_index] suffix), (needle)); \ + if (comparison <= 0) *(_index) = mid_index; \ + size -= half_size; \ + } \ + comparison = compare(&((self)->contents[*(_index)] suffix), (needle)); \ + if (comparison == 0) *(_exists) = true; \ + else if (comparison < 0) *(_index) += 1; \ + } while (0) + +/// Helper macro for the `_sorted_by` routines below. This takes the left (existing) +/// parameter by reference in order to work with the generic sorting function above. +#define _compare_int(a, b) ((int)*(a) - (int)(b)) + +#ifdef _MSC_VER +#pragma warning(pop) +#elif defined(__GNUC__) || defined(__clang__) +#pragma GCC diagnostic pop +#endif + +#ifdef __cplusplus +} +#endif + +#endif // TREE_SITTER_ARRAY_H_ diff --git a/src/tree_sitter/parser.h b/src/tree_sitter/parser.h new file mode 100644 index 0000000..858107d --- /dev/null +++ b/src/tree_sitter/parser.h @@ -0,0 +1,286 @@ +#ifndef TREE_SITTER_PARSER_H_ +#define TREE_SITTER_PARSER_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +#define ts_builtin_sym_error ((TSSymbol)-1) +#define ts_builtin_sym_end 0 +#define TREE_SITTER_SERIALIZATION_BUFFER_SIZE 1024 + +#ifndef TREE_SITTER_API_H_ +typedef uint16_t TSStateId; +typedef uint16_t TSSymbol; +typedef uint16_t TSFieldId; +typedef struct TSLanguage TSLanguage; +typedef struct TSLanguageMetadata { + uint8_t major_version; + uint8_t minor_version; + uint8_t patch_version; +} TSLanguageMetadata; +#endif + +typedef struct { + TSFieldId field_id; + uint8_t child_index; + bool inherited; +} TSFieldMapEntry; + +// Used to index the field and supertype maps. +typedef struct { + uint16_t index; + uint16_t length; +} TSMapSlice; + +typedef struct { + bool visible; + bool named; + bool supertype; +} TSSymbolMetadata; + +typedef struct TSLexer TSLexer; + +struct TSLexer { + int32_t lookahead; + TSSymbol result_symbol; + void (*advance)(TSLexer *, bool); + void (*mark_end)(TSLexer *); + uint32_t (*get_column)(TSLexer *); + bool (*is_at_included_range_start)(const TSLexer *); + bool (*eof)(const TSLexer *); + void (*log)(const TSLexer *, const char *, ...); +}; + +typedef enum { + TSParseActionTypeShift, + TSParseActionTypeReduce, + TSParseActionTypeAccept, + TSParseActionTypeRecover, +} TSParseActionType; + +typedef union { + struct { + uint8_t type; + TSStateId state; + bool extra; + bool repetition; + } shift; + struct { + uint8_t type; + uint8_t child_count; + TSSymbol symbol; + int16_t dynamic_precedence; + uint16_t production_id; + } reduce; + uint8_t type; +} TSParseAction; + +typedef struct { + uint16_t lex_state; + uint16_t external_lex_state; +} TSLexMode; + +typedef struct { + uint16_t lex_state; + uint16_t external_lex_state; + uint16_t reserved_word_set_id; +} TSLexerMode; + +typedef union { + TSParseAction action; + struct { + uint8_t count; + bool reusable; + } entry; +} TSParseActionEntry; + +typedef struct { + int32_t start; + int32_t end; +} TSCharacterRange; + +struct TSLanguage { + uint32_t abi_version; + uint32_t symbol_count; + uint32_t alias_count; + uint32_t token_count; + uint32_t external_token_count; + uint32_t state_count; + uint32_t large_state_count; + uint32_t production_id_count; + uint32_t field_count; + uint16_t max_alias_sequence_length; + const uint16_t *parse_table; + const uint16_t *small_parse_table; + const uint32_t *small_parse_table_map; + const TSParseActionEntry *parse_actions; + const char * const *symbol_names; + const char * const *field_names; + const TSMapSlice *field_map_slices; + const TSFieldMapEntry *field_map_entries; + const TSSymbolMetadata *symbol_metadata; + const TSSymbol *public_symbol_map; + const uint16_t *alias_map; + const TSSymbol *alias_sequences; + const TSLexerMode *lex_modes; + bool (*lex_fn)(TSLexer *, TSStateId); + bool (*keyword_lex_fn)(TSLexer *, TSStateId); + TSSymbol keyword_capture_token; + struct { + const bool *states; + const TSSymbol *symbol_map; + void *(*create)(void); + void (*destroy)(void *); + bool (*scan)(void *, TSLexer *, const bool *symbol_whitelist); + unsigned (*serialize)(void *, char *); + void (*deserialize)(void *, const char *, unsigned); + } external_scanner; + const TSStateId *primary_state_ids; + const char *name; + const TSSymbol *reserved_words; + uint16_t max_reserved_word_set_size; + uint32_t supertype_count; + const TSSymbol *supertype_symbols; + const TSMapSlice *supertype_map_slices; + const TSSymbol *supertype_map_entries; + TSLanguageMetadata metadata; +}; + +static inline bool set_contains(const TSCharacterRange *ranges, uint32_t len, int32_t lookahead) { + uint32_t index = 0; + uint32_t size = len - index; + while (size > 1) { + uint32_t half_size = size / 2; + uint32_t mid_index = index + half_size; + const TSCharacterRange *range = &ranges[mid_index]; + if (lookahead >= range->start && lookahead <= range->end) { + return true; + } else if (lookahead > range->end) { + index = mid_index; + } + size -= half_size; + } + const TSCharacterRange *range = &ranges[index]; + return (lookahead >= range->start && lookahead <= range->end); +} + +/* + * Lexer Macros + */ + +#ifdef _MSC_VER +#define UNUSED __pragma(warning(suppress : 4101)) +#else +#define UNUSED __attribute__((unused)) +#endif + +#define START_LEXER() \ + bool result = false; \ + bool skip = false; \ + UNUSED \ + bool eof = false; \ + int32_t lookahead; \ + goto start; \ + next_state: \ + lexer->advance(lexer, skip); \ + start: \ + skip = false; \ + lookahead = lexer->lookahead; + +#define ADVANCE(state_value) \ + { \ + state = state_value; \ + goto next_state; \ + } + +#define ADVANCE_MAP(...) \ + { \ + static const uint16_t map[] = { __VA_ARGS__ }; \ + for (uint32_t i = 0; i < sizeof(map) / sizeof(map[0]); i += 2) { \ + if (map[i] == lookahead) { \ + state = map[i + 1]; \ + goto next_state; \ + } \ + } \ + } + +#define SKIP(state_value) \ + { \ + skip = true; \ + state = state_value; \ + goto next_state; \ + } + +#define ACCEPT_TOKEN(symbol_value) \ + result = true; \ + lexer->result_symbol = symbol_value; \ + lexer->mark_end(lexer); + +#define END_STATE() return result; + +/* + * Parse Table Macros + */ + +#define SMALL_STATE(id) ((id) - LARGE_STATE_COUNT) + +#define STATE(id) id + +#define ACTIONS(id) id + +#define SHIFT(state_value) \ + {{ \ + .shift = { \ + .type = TSParseActionTypeShift, \ + .state = (state_value) \ + } \ + }} + +#define SHIFT_REPEAT(state_value) \ + {{ \ + .shift = { \ + .type = TSParseActionTypeShift, \ + .state = (state_value), \ + .repetition = true \ + } \ + }} + +#define SHIFT_EXTRA() \ + {{ \ + .shift = { \ + .type = TSParseActionTypeShift, \ + .extra = true \ + } \ + }} + +#define REDUCE(symbol_name, children, precedence, prod_id) \ + {{ \ + .reduce = { \ + .type = TSParseActionTypeReduce, \ + .symbol = symbol_name, \ + .child_count = children, \ + .dynamic_precedence = precedence, \ + .production_id = prod_id \ + }, \ + }} + +#define RECOVER() \ + {{ \ + .type = TSParseActionTypeRecover \ + }} + +#define ACCEPT_INPUT() \ + {{ \ + .type = TSParseActionTypeAccept \ + }} + +#ifdef __cplusplus +} +#endif + +#endif // TREE_SITTER_PARSER_H_ diff --git a/test/corpus/autoescape.txt b/test/corpus/autoescape.txt new file mode 100644 index 0000000..76cfa5c --- /dev/null +++ b/test/corpus/autoescape.txt @@ -0,0 +1,22 @@ +================== +Autoescape +================== + +
+
    +
  • one
  • +{% autoescape off %} +
  • two
  • +{% endautoescape %} +
  • tree
  • +
+
+ +--- + +(template + (content) + (autoescape_group + (template + (content))) + (content)) diff --git a/test/corpus/block.txt b/test/corpus/block.txt new file mode 100644 index 0000000..e2bb6d8 --- /dev/null +++ b/test/corpus/block.txt @@ -0,0 +1,165 @@ +================== +Block +================== + +
+

This is a block

+{% block test %} +
+

Hello World

+
+{% endblock %} +
Goodbye
+
+ +--- + +(template + (content) + (block_group + (push_block) + (template + (content)) + (pop_block)) + (content)) + +================== +Block Matching End Tag +================== + +
+

This is a block

+{% block test %} +
+

Hello World

+
+{% endblock test %} +
Goodbye
+
+ +--- + +(template + (content) + (block_group + (push_block) + (template + (content)) + (pop_block)) + (content)) + +================== +Nested Blocks +================== + +
+

This is a block

+{% block test %} +
+{% block hello %} +

Hello World

+{% endblock %} +
+{% endblock %} +
Goodbye
+
+ +--- + +(template + (content) + (block_group + (push_block) + (template + (content) + (block_group + (push_block) + (template + (content)) + (pop_block)) + (content)) + (pop_block)) + (content)) + +--- + +(template + (content) + (block_group + (push_block) + (template + (content) + (block_group + (push_block) + (template + (content)) + (pop_block)) + (content)) + (pop_block)) + (content)) + +================== +Nested Blocks End Tag +================== + +
+

This is a block

+{% block test %} +
+{% block hello %} +

Hello World

+{% endblock hello %} +
+{% endblock test %} +
Goodbye
+
+ +--- + +(template + (content) + (block_group + (push_block) + (template + (content) + (block_group + (push_block) + (template + (content)) + (pop_block)) + (content)) + (pop_block)) + (content)) + +================== +Nested Blocks Mixed Tags +================== + +
+

This is a block

+{% block test %} +
+{% block hello %} +

Hello World

+{% endblock %} +
+{% endblock test %} +
Goodbye
+
+ +--- + +(template + (content) + (block_group + (push_block) + (template + (content) + (block_group + (push_block) + (template + (content)) + (pop_block)) + (content)) + (pop_block)) + (content)) diff --git a/test/corpus/csrf_token.txt b/test/corpus/csrf_token.txt new file mode 100644 index 0000000..184b398 --- /dev/null +++ b/test/corpus/csrf_token.txt @@ -0,0 +1,14 @@ +================== +Csrf Token +================== + +
+ {% csrf_token %} +
+ +--- + +(template + (content) + (csrf_token) + (content)) diff --git a/test/corpus/cycle.txt b/test/corpus/cycle.txt new file mode 100644 index 0000000..e0f4503 --- /dev/null +++ b/test/corpus/cycle.txt @@ -0,0 +1,93 @@ +================== +Cycle Basic +================== + + + + +
+ +--- + +(template + (content) + (cycle + (filtered_value + (value + (literal + (string)))) + (filtered_value + (value + (literal + (string))))) + (content)) + +================== +Cycle With As +================== + + + + +
+ +--- + +(template + (content) + (cycle + (filtered_value + (value + (literal + (string)))) + (filtered_value + (value + (literal + (string)))) + name: (identifier)) + (content)) + +================== +Cycle With As And Silent +================== + + + + +
+ +--- + +(template + (content) + (cycle + (filtered_value + (value + (literal + (string)))) + (filtered_value + (value + (literal + (string)))) + name: (identifier)) + (content)) + +================== +Cycle Referencing Existing Variable +================== + + + + +
+ +--- + +(template + (content) + (cycle + (filtered_value + (value + (variable_attribute + (identifier))))) + (content)) diff --git a/test/corpus/debug.txt b/test/corpus/debug.txt new file mode 100644 index 0000000..6f4156d --- /dev/null +++ b/test/corpus/debug.txt @@ -0,0 +1,14 @@ +================== +Debug +================== + +

+{% debug %} +

+ +--- + +(template + (content) + (debug) + (content)) diff --git a/test/corpus/extends.txt b/test/corpus/extends.txt new file mode 100644 index 0000000..5494454 --- /dev/null +++ b/test/corpus/extends.txt @@ -0,0 +1,35 @@ +================== +Extends With String +================== + +{% extends "base.html" %} +

Hello

+ +--- + +(template + (content) + (extends + (filtered_value + (value + (literal + (string))))) + (content)) + +================== +Extends With Variable +================== + +{% extends base_template %} +

Hello

+ +--- + +(template + (content) + (extends + (filtered_value + (value + (variable_attribute + (identifier))))) + (content)) diff --git a/test/highlights/example.html b/test/highlights/example.html new file mode 100644 index 0000000..f981d65 --- /dev/null +++ b/test/highlights/example.html @@ -0,0 +1,27 @@ + + {# hello this is an example file #} +
+

{{ page.title|title }}

+ +
+ +{% block content %} + +{% endblock %} + + + diff --git a/tree-sitter.json b/tree-sitter.json new file mode 100644 index 0000000..65bc8be --- /dev/null +++ b/tree-sitter.json @@ -0,0 +1,28 @@ +{ + "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/config.schema.json", + "grammars": [ + { + "name": "django", + "camelcase": "django", + "title": "Django Parser", + "scope": "source.django", + "file-types": ["html", "txt", "md"], + "injection-regex": "^django$", + "class-name": "TreeSitterDjango" + } + ], + "bindings": { + "node": true + }, + "metadata": { + "version": "0.0.1", + "description": "DJango grammar for tree-sitter", + "authors": [{ + "name": "Daniel Hanson", + "url": "https://github.com/danhanson" + }], + "links": { + "repository": "https://github.com/danhanson/tree-sitter-django" + } + } +}