diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index f3c4233..b313105 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -3,6 +3,7 @@ on: pull_request: push: + jobs: deno: name: Deno format and lint @@ -37,9 +38,25 @@ jobs: git diff pre-updates --exit-code || failed=true if ! [ "$failed" = "false" ]; then - echo '::error::Generated files are out of date!' - echo '::error::run `npm run gen` and commit the changes' - exit "$exitcode" + echo '::warning::Generated files are out of date!' + echo '::warning::run `npm run gen` and commit the changes' fi - run: npm test - # FIXME: also parse tests/*.just + + static-validation: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: taiki-e/install-action@just + - name: Verify Just can parse test files + shell: bash + run: | + # skip readme.just because it is broken but works for testing + find . -type f -iregex '.*[\./]just[^\./]*' | + grep -v readme.just | while read -r fname + do + echo checking "$fname" + just --list --unstable --justfile "$fname" + done + - name: Look for tests that contain errors + run: "! grep -r -E '(ERROR|MISSING|UNEXPECTED)' test" diff --git a/build-queries-nvim.py b/build-queries-nvim.py new file mode 100644 index 0000000..383a600 --- /dev/null +++ b/build-queries-nvim.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python3 +"""Generate NeoVim queries. + +Everything in `queries/` uses tree-sitter syntax, as defined at +. However, NVim +has a slightly different syntax. + +This file performs conversions so two sets of files don't need to be maintained. + + has a bit better +guide for these parameters than tree-sitter does. + +""" + +REPLACEMENTS = [ + ("@local.definition", "@definition.variable"), + ("@constants.builtin.boolean", "@boolean"), + ("@keyword.control.conditional", "@conditional"), + ("@variable.parameter", "@parameter"), + ("@comment.line", "@comment"), +] diff --git a/grammar.js b/grammar.js index 9e90595..51f3f5c 100644 --- a/grammar.js +++ b/grammar.js @@ -12,7 +12,10 @@ function array(item) { "array", seq( "[", - optional(seq(comma_sep1(array_item), optional(array_item))), + field( + "contents", + optional(seq(comma_sep1(array_item), optional(array_item))), + ), "]", ), ); @@ -20,8 +23,15 @@ function array(item) { module.exports = grammar({ name: "just", - - externals: ($) => [$.INDENT, $.DEDENT, $.NEWLINE, $.LINE], + externals: ($) => [$._indent, $._dedent, $._newline], + inline: ( + $, + ) => [ + $._dependency_with_args, + $._expression_braced, + $._expression_recurse, + ], + word: ($) => $.identifier, rules: { // justfile : item* EOF @@ -49,14 +59,25 @@ module.exports = grammar({ // eol : NEWLINE // | COMMENT NEWLINE - eol: ($) => choice($.NEWLINE, $.comment), + eol: ($) => choice($._newline, $.comment), // alias : 'alias' NAME ':=' NAME alias: ($) => - seq("alias", field("left", $.NAME), ":=", field("right", $.NAME)), + seq( + "alias", + field("left", $.identifier), + ":=", + field("right", $.identifier), + ), // assignment : NAME ':=' expression eol - assignment: ($) => seq($.NAME, ":=", $.expression, $.eol), + assignment: ($) => + seq( + field("left", $.identifier), + ":=", + field("right", $.expression), + $.eol, + ), // export : 'export' assignment export: ($) => seq("export", $.assignment), @@ -65,7 +86,7 @@ module.exports = grammar({ import: ($) => seq("import", optional("?"), $.string), // module : 'mod' '?'? string? - module: ($) => seq("mod", optional("?"), $.NAME, optional($.string)), + module: ($) => seq("mod", optional("?"), $.identifier, optional($.string)), // setting : 'set' 'dotenv-load' boolean? // | 'set' 'export' boolean? @@ -75,7 +96,7 @@ module.exports = grammar({ choice( seq( "set", - field("name", $.NAME), + field("left", $.identifier), field( "right", optional( @@ -100,24 +121,31 @@ module.exports = grammar({ // | value '/' expression // | value '+' expression // | value - expression: ($) => + expression: ($) => seq(optional("/"), $._expression_inner), + + _expression_inner: ($) => choice( - seq( - "if", - $.condition, - "{", - field("if", $.expression), - "}", - "else", - "{", - field("else", $.expression), - "}", - ), - seq($.value, "+", $.expression), - seq($.value, "/", $.expression), + $.if_expression, + prec.left(2, seq($._expression_recurse, "+", $._expression_recurse)), + prec.left(1, seq($._expression_recurse, "/", $._expression_recurse)), $.value, ), + // We can't mark `_expression_inner` inline because it causes an infinite + // loop at generation, so we just alias it. + _expression_recurse: ($) => alias($._expression_inner, "expression"), + + if_expression: ($) => + seq( + "if", + $.condition, + $._braced_expr, + repeat(seq("else", "if", $.condition, $._braced_expr)), + optional(seq("else", $._braced_expr)), + ), + + _braced_expr: ($) => seq("{", field("braced_body", $.expression), "}"), + // condition : expression '==' expression // | expression '!=' expression // | expression '=~' expression @@ -126,6 +154,8 @@ module.exports = grammar({ seq($.expression, "==", $.expression), seq($.expression, "!=", $.expression), seq($.expression, "=~", $.expression), + // verify whether this is valid + $.expression, ), // value : NAME '(' sequence? ')' @@ -136,108 +166,118 @@ module.exports = grammar({ // | '(' expression ')' value: ($) => prec.left( - 0, - choice($.call, $.cmd, $.NAME, $.string, seq("(", $.expression, ")")), + choice( + $.function_call, + $.command, + $.identifier, + $.string, + seq("(", $.expression, ")"), + ), + ), + + function_call: ($) => + seq( + field("name", $.identifier), + "(", + field("arguments", optional($.sequence)), + ")", ), - call: ($) => seq($.NAME, "(", optional($.sequence), ")"), + command: ($) => choice(seq($.backticked), seq($.indented_backticked)), - cmd: ($) => choice(seq($.BACKTICK), seq($.INDENTED_BACKTICK)), + // sequence : expression ',' sequence + // | expression ','? + sequence: ($) => comma_sep1($.expression), // string : STRING // | INDENTED_STRING // | RAW_STRING // | INDENTED_RAW_STRING string: ($) => - choice($.STRING, $.INDENTED_STRING, $.RAW_STRING, $.INDENTED_RAW_STRING), - - // sequence : expression ',' sequence - // | expression ','? - sequence: ($) => choice( - seq($.expression, ",", $.sequence), - seq($.expression, optional(",")), + $.basic_string, + $.basic_string_indented, + $.raw_string, + $.raw_string_indented, ), - attribute: ($) => seq("[", $.NAME, "]", $.eol), + attribute: ($) => + seq("[", field("contents", comma_sep1($.identifier)), "]", $.eol), + // A complete recipe // recipe : attribute? '@'? NAME parameter* variadic_parameters? ':' dependency* body? recipe: ($) => - seq(optional($.attribute), $.recipe_header, $.NEWLINE, optional($.body)), + seq( + repeat($.attribute), + $.recipe_header, + $._newline, + optional($.recipe_body), + ), recipe_header: ($) => seq( optional("@"), - $.NAME, + $.identifier, optional($.parameters), ":", - optional(" "), - optional($.dependencies), + repeat($.dependency), ), parameters: ($) => - seq(repeat1($.parameter), optional($.variadic_parameters)), + seq(repeat($.parameter), choice($.parameter, $.variadic_parameter)), // parameter : '$'? NAME // | '$'? NAME '=' value parameter: ($) => - choice( - seq(optional("$"), $.NAME), - seq(optional("$"), $.NAME, "=", $.value), + seq( + optional("$"), + field("param", $.identifier), + optional(seq("=", field("default", $.value))), ), // variadic_parameters : '*' parameter // | '+' parameter - variadic_parameters: ($) => - choice(seq("*", $.parameter), seq("+", $.parameter)), + variadic_parameter: ($) => + seq(field("kleene", choice("*", "+")), $.parameter), dependencies: ($) => repeat1($.dependency), // dependency : NAME // | '(' NAME expression* ')' - dependency: ($) => choice($.NAME, seq("(", $.depcall, ")")), + dependency: ($) => + choice( + field("recipe", $.identifier), + field("call", seq("(", $._dependency_with_args, ")")), + ), - depcall: ($) => seq($.NAME, repeat($.expression)), + // contents of `(recipe expression)` + _dependency_with_args: ($) => + seq( + field("recipe", $.identifier), + repeat(field("expression", $.expression)), + ), // body : INDENT line+ DEDENT - body: ($) => + recipe_body: ($) => seq( - $.INDENT, - choice($.shebang_recipe, optional($.recipe_body)), - $.DEDENT, + $._indent, + field("contents", seq(optional($.shebang), repeat($.recipe_line))), + $._dedent, ), - // seq($.INDENT, $.recipebody, $.DEDENT), - shebang_recipe: ($) => seq($.shebang, $.shebang_body), - shebang_body: ($) => repeat1($.line), - - shebang: ($) => + recipe_line: ($) => seq( - "#!", - /.*/, - // choice( - // seq(/.*\//, field("interpreter", $.TEXT)), - // seq("/usr/bin/env", field("interpreter", $.TEXT)), - // ), - $.NEWLINE, + optional($.recipe_line_prefix), + repeat(choice($.text, $.interpolation)), + $._newline, ), - recipe_body: ($) => repeat1($.line), + recipe_line_prefix: (_) => choice("@-", "-@", "@", "-"), - line: ($) => choice($.comment, $.recipeline), - // line: ($) => choice($.comment, $.recipeline, $.shebang), + shebang: ($) => seq(/\s*#!.*/, $._newline), - // FIXME: detecting interpolation doesn't work - recipeline: ($) => - seq( - $.notcomment, - // repeat(choice($.interpolation, $.notinterpolation)), - repeat(choice($.interpolation, $.TEXT)), - $.NEWLINE, - ), - // notcomment: ($) => /[^#\s{]\S*/, - notcomment: (_) => /[^#\s]\S*/, - comment: ($) => seq(/#.*/, $.NEWLINE), + // `# ...` comment + comment: ($) => seq(/#.*/, $._newline), // notinterpolation: ($) => /[^{][^{]\S*/, notinterpolation: (_) => /[^\s{][^\s{]\S*/, @@ -245,15 +285,18 @@ module.exports = grammar({ // interpolation : '{{' expression '}}' interpolation: ($) => seq("{{", $.expression, "}}"), - BACKTICK: (_) => /`[^`]*`/, - INDENTED_BACKTICK: (_) => /```[^(```)]*```/, - // COMMENT: (_) => /\#([^!].*)?/, // /\#([^!].*)?$/, // FIXME: '$' Regex assertions not supported, could cause misparses - NAME: (_) => /[a-zA-Z_][a-zA-Z0-9_-]*/, - RAW_STRING: (_) => /'[^']*'/, - INDENTED_RAW_STRING: (_) => /'''[^(''')]*'''/, - - STRING: (_) => /"[^"]*"/, // # also processes \n \r \t \" \\ escapes - INDENTED_STRING: (_) => /"""[^("""]*"""/, // # also processes \n \r \t \" \\ escapes - TEXT: (_) => /\S+/, //recipe TEXT, only matches in a recipe body + identifier: (_) => /[a-zA-Z_][a-zA-Z0-9_-]*/, + + backticked: (_) => seq("`", repeat(/./), "`"), + indented_backticked: (_) => seq("```", repeat(/./), "```"), + raw_string: (_) => /'[^']*'/, + raw_string_indented: (_) => seq("'''", repeat(/./), "'''"), + basic_string: ($) => + seq('"', repeat(choice($.string_escape, /[^\\"]+/)), '"'), + basic_string_indented: ($) => + seq('"""', repeat(choice($.string_escape, /[^\\"]+/)), '"""'), + string_escape: (_) => /\\[nrt"\\]/, + text: (_) => /.+/, //recipe TEXT, only matches in a recipe body + // text: (_) => /\S+/, //recipe TEXT, only matches in a recipe body }, }); diff --git a/package.json b/package.json index 941cbe3..b326ac0 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "Treesitter grammar for Justfiles (casey/just)", "main": "grammar.js", "scripts": { - "test": "tree-sitter test", + "test": "npm run gen && tree-sitter test", "gen": "tree-sitter generate" }, "repository": { diff --git a/queries/folds.scm b/queries/folds.scm index 6fc68fb..06a21c9 100644 --- a/queries/folds.scm +++ b/queries/folds.scm @@ -1,4 +1,6 @@ -(body) @fold +; Define collapse points + (recipe) @fold +(recipe_body) @fold (interpolation) @fold (item (_) @fold) diff --git a/queries/highlights.scm b/queries/highlights.scm index 30a9484..319abcc 100644 --- a/queries/highlights.scm +++ b/queries/highlights.scm @@ -1,31 +1,69 @@ ; This file specifies how matched syntax patterns should be highlighted +; +; This file is ordered roughly the same as grammar.js + +(shebang) @comment + +(alias + left: (identifier) @variable +) + +(assignment + left: (identifier) @variable) + +(module (identifier) @namespace) -(assignment (NAME) @variable) -(alias (NAME) @variable) -(value (NAME) @variable) -(parameter (NAME) @variable) -(setting (NAME) @keyword) (setting "shell" @keyword) +(setting + left: ((identifier) @keyword + (#any-of? @keyword + "allow-duplicate-recipes" + "dotenv-filename" + "dotenv-load" + "dotenv-path" + "export" + "fallback" + "ignore-comments" + "positional-arguments" + "shell" + "tempdi" + "windows-powershell" + "windows-shell" + ))) + +(boolean ["true" "false"]) @constant.builtin.boolean + +["if" "else"] @keyword.control.conditional + +(value (identifier) @variable) +; (call (identifier) @function) -(call (NAME) @function) -(dependency (NAME) @function) -(depcall (NAME) @function) -(recipe_header (NAME) @function) -(depcall (expression) @parameter) -(parameter) @parameter -(variadic_parameters) @parameter +; ([parameter varidic_parameter] + ; (identifier) @variable) +(parameter (identifier) @variable) +(variadic_parameter (parameter (identifier)) @variable) -(module (NAME) @namespace) +(function_call + name: (identifier) @function) -["if" "else"] @conditional + +(dependency + recipe: (identifier) @function + expression: (expression)* @parameter) + +(recipe_header (identifier) @function) + +; FIXME: what's up with $identifier params +(parameter) @variable.parameter + + +(string (_ (string_escape) @constant.character.escape)) (string) @string -(boolean ["true" "false"]) @boolean -(shebang) @comment -(comment) @comment +(comment) @comment.line ; (interpolation) @string @@ -33,7 +71,7 @@ ; (shebang interpreter:(TEXT) @keyword ) @comment [ - "alias" + "alias" "export" "import" "mod" @@ -42,6 +80,10 @@ ["@" "==" "!=" "+" ":=" "*" ":" "/" "?"] @operator -[ "(" ")" "[" "]" "{{" "}}" "{" "}"] @punctuation.bracket +["(" ")" "[" "]" "{{" "}}" "{" "}"] @punctuation.bracket + +["," ":"] @punctuation.delimiter + +"`" @punctuation.special (ERROR) @error diff --git a/queries/injections.scm b/queries/injections.scm index 90525c6..b8495b7 100644 --- a/queries/injections.scm +++ b/queries/injections.scm @@ -8,8 +8,8 @@ ; ) (source_file - ; (item (setting lang:(NAME) @language)) - (item (recipe (body (recipe_body) @content))) + ; (item (setting lang:(identifier) @language)) + (item (recipe (recipe_body) @content)) ) ; (interpolation (expression) @just) diff --git a/queries/locals.scm b/queries/locals.scm index 5a9d049..266f30b 100644 --- a/queries/locals.scm +++ b/queries/locals.scm @@ -1,11 +1,17 @@ -(assignment (NAME) @definition.variable) -(alias left:(NAME) @definition.variable) -(alias right:(NAME) @reference.variable) -(value (NAME) @reference.variable) -(parameter (NAME) @definition.variable) - -(call (NAME) @reference.function) -(dependency (NAME) @reference.function) -(depcall (NAME) @reference.function) -(recipe_header (NAME) @definition.function) +; This file tells us about the scope of variables so e.g. local +; variables override global functions with the same name + +(assignment (identifier) @local.definition) +(parameter (identifier) @local.definition) + +; (assignment (identifier) @definition.variable) +; (alias left:(identifier) @definition.variable) +; (alias right:(identifier) @reference.variable) +; (value (identifier) @reference.variable) +; (parameter (identifier) @definition.variable) + +; (call (identifier) @reference.function) +; (dependency (identifier) @reference.function) +; (depcall (identifier) @reference.function) +; (recipe_header (identifier) @definition.function) diff --git a/queries/textobjects.scm b/queries/textobjects.scm index d7a06fd..9bf7224 100644 --- a/queries/textobjects.scm +++ b/queries/textobjects.scm @@ -1,50 +1,49 @@ -(body) @block.inner -(body) @block.outer -(body) @function.inner +(recipe_body) @block.inner +(recipe_body) @block.outer +(recipe_body) @function.inner (recipe) @function.outer -(expression - if:(expression) @block.inner -) -(expression - else:(expression) @block.inner -) -(interpolation (expression) @block.inner) @block.outer -; (string_array (stringlist) @block.inner) @block.outer +; (expression +; if:(expression) @block.inner +; ) +; (expression +; else:(expression) @block.inner +; ) +; (interpolation (expression) @block.inner) @block.outer +; ; (string_array (stringlist) @block.inner) @block.outer -(call (NAME) @call.inner) @call.outer -(dependency (NAME) @call.inner) @call.outer -(depcall (NAME) @call.inner) +; (call (identifier) @call.inner) @call.outer +; (dependency (identifier) @call.inner) @call.outer -(dependency) @parameter.outer -(depcall) @parameter.inner -(depcall (expression) @parameter.inner) +; (dependency) @parameter.outer +; ; (dependency_call) @parameter.inner +; ; (dependency_call (expression) @parameter.inner) -; (stringlist -; (string) @parameter.inner -; . ","? @_end +; ; (stringlist +; ; (string) @parameter.inner +; ; . ","? @_end +; ; (#make-range! "parameter.outer" @parameter.inner @_end) +; ; ) +; (parameters +; [ +; (parameter) +; (variadic_parameter) +; ] @parameter.inner +; . " "? @_end ; (#make-range! "parameter.outer" @parameter.inner @_end) ; ) -(parameters - [ - (parameter) - (variadic_parameters) - ] @parameter.inner - . " "? @_end - (#make-range! "parameter.outer" @parameter.inner @_end) -) -(expression - (condition) @conditional.inner -) @conditional.outer -(expression - if:(expression) @conditional.inner -) -(expression - else:(expression) @conditional.inner -) +; (expression +; (condition) @conditional.inner +; ) @conditional.outer +; (expression +; if:(expression) @conditional.inner +; ) +; (expression +; else:(expression) @conditional.inner +; ) -(item [(alias) (assignment) (export) (setting)]) @statement.outer -(recipe_header) @statement.outer -(line) @statement.outer +; (item [(alias) (assignment) (export) (setting)]) @statement.outer +; (recipe_header) @statement.outer +; (line) @statement.outer -(comment) @comment.outer +; (comment) @comment.outer diff --git a/src/grammar.json b/src/grammar.json index 4ce5ab6..ff27524 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -1,5 +1,6 @@ { "name": "just", + "word": "identifier", "rules": { "source_file": { "type": "SEQ", @@ -67,7 +68,7 @@ "members": [ { "type": "SYMBOL", - "name": "NEWLINE" + "name": "_newline" }, { "type": "SYMBOL", @@ -87,7 +88,7 @@ "name": "left", "content": { "type": "SYMBOL", - "name": "NAME" + "name": "identifier" } }, { @@ -99,7 +100,7 @@ "name": "right", "content": { "type": "SYMBOL", - "name": "NAME" + "name": "identifier" } } ] @@ -108,16 +109,24 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "NAME" + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "identifier" + } }, { "type": "STRING", "value": ":=" }, { - "type": "SYMBOL", - "name": "expression" + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } }, { "type": "SYMBOL", @@ -184,7 +193,7 @@ }, { "type": "SYMBOL", - "name": "NAME" + "name": "identifier" }, { "type": "CHOICE", @@ -212,10 +221,10 @@ }, { "type": "FIELD", - "name": "name", + "name": "left", "content": { "type": "SYMBOL", - "name": "NAME" + "name": "identifier" } }, { @@ -253,66 +262,70 @@ "value": "[" }, { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "array_item", - "content": { - "type": "SYMBOL", - "name": "string" - } - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "FIELD", - "name": "array_item", - "content": { - "type": "SYMBOL", - "name": "string" + "type": "FIELD", + "name": "contents", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "array_item", + "content": { + "type": "SYMBOL", + "name": "string" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "FIELD", + "name": "array_item", + "content": { + "type": "SYMBOL", + "name": "string" + } } - } - ] + ] + } } - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "FIELD", - "name": "array_item", - "content": { - "type": "SYMBOL", - "name": "string" + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "array_item", + "content": { + "type": "SYMBOL", + "name": "string" + } + }, + { + "type": "BLANK" } - }, - { - "type": "BLANK" - } - ] - } - ] - }, - { - "type": "BLANK" - } - ] + ] + } + ] + }, + { + "type": "BLANK" + } + ] + } }, { "type": "STRING", @@ -363,66 +376,70 @@ "value": "[" }, { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "array_item", - "content": { - "type": "SYMBOL", - "name": "string" - } - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "FIELD", - "name": "array_item", - "content": { - "type": "SYMBOL", - "name": "string" + "type": "FIELD", + "name": "contents", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "array_item", + "content": { + "type": "SYMBOL", + "name": "string" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "FIELD", + "name": "array_item", + "content": { + "type": "SYMBOL", + "name": "string" + } } - } - ] + ] + } } - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "FIELD", - "name": "array_item", - "content": { - "type": "SYMBOL", - "name": "string" + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "array_item", + "content": { + "type": "SYMBOL", + "name": "string" + } + }, + { + "type": "BLANK" } - }, - { - "type": "BLANK" - } - ] - } - ] - }, - { - "type": "BLANK" - } - ] + ] + } + ] + }, + { + "type": "BLANK" + } + ] + } }, { "type": "STRING", @@ -453,94 +470,170 @@ ] }, "expression": { - "type": "CHOICE", + "type": "SEQ", "members": [ { - "type": "SEQ", + "type": "CHOICE", "members": [ { "type": "STRING", - "value": "if" - }, - { - "type": "SYMBOL", - "name": "condition" - }, - { - "type": "STRING", - "value": "{" + "value": "/" }, { - "type": "FIELD", - "name": "if", - "content": { + "type": "BLANK" + } + ] + }, + { + "type": "SYMBOL", + "name": "_expression_inner" + } + ] + }, + "_expression_inner": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "if_expression" + }, + { + "type": "PREC_LEFT", + "value": 2, + "content": { + "type": "SEQ", + "members": [ + { "type": "SYMBOL", - "name": "expression" + "name": "_expression_recurse" + }, + { + "type": "STRING", + "value": "+" + }, + { + "type": "SYMBOL", + "name": "_expression_recurse" } - }, - { - "type": "STRING", - "value": "}" - }, - { - "type": "STRING", - "value": "else" - }, - { - "type": "STRING", - "value": "{" - }, - { - "type": "FIELD", - "name": "else", - "content": { + ] + } + }, + { + "type": "PREC_LEFT", + "value": 1, + "content": { + "type": "SEQ", + "members": [ + { "type": "SYMBOL", - "name": "expression" + "name": "_expression_recurse" + }, + { + "type": "STRING", + "value": "/" + }, + { + "type": "SYMBOL", + "name": "_expression_recurse" } - }, - { - "type": "STRING", - "value": "}" - } - ] + ] + } }, { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "value" - }, - { - "type": "STRING", - "value": "+" - }, - { - "type": "SYMBOL", - "name": "expression" - } - ] + "type": "SYMBOL", + "name": "value" + } + ] + }, + "_expression_recurse": { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_expression_inner" + }, + "named": false, + "value": "expression" + }, + "if_expression": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "if" }, { - "type": "SEQ", + "type": "SYMBOL", + "name": "condition" + }, + { + "type": "SYMBOL", + "name": "_braced_expr" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "else" + }, + { + "type": "STRING", + "value": "if" + }, + { + "type": "SYMBOL", + "name": "condition" + }, + { + "type": "SYMBOL", + "name": "_braced_expr" + } + ] + } + }, + { + "type": "CHOICE", "members": [ { - "type": "SYMBOL", - "name": "value" - }, - { - "type": "STRING", - "value": "/" + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "else" + }, + { + "type": "SYMBOL", + "name": "_braced_expr" + } + ] }, { - "type": "SYMBOL", - "name": "expression" + "type": "BLANK" } ] + } + ] + }, + "_braced_expr": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" }, { - "type": "SYMBOL", - "name": "value" + "type": "FIELD", + "name": "braced_body", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "STRING", + "value": "}" } ] }, @@ -597,6 +690,10 @@ "name": "expression" } ] + }, + { + "type": "SYMBOL", + "name": "expression" } ] }, @@ -608,15 +705,15 @@ "members": [ { "type": "SYMBOL", - "name": "call" + "name": "function_call" }, { "type": "SYMBOL", - "name": "cmd" + "name": "command" }, { "type": "SYMBOL", - "name": "NAME" + "name": "identifier" }, { "type": "SYMBOL", @@ -642,28 +739,36 @@ ] } }, - "call": { + "function_call": { "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "NAME" + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "identifier" + } }, { "type": "STRING", "value": "(" }, { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "sequence" - }, - { - "type": "BLANK" - } - ] + "type": "FIELD", + "name": "arguments", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "sequence" + }, + { + "type": "BLANK" + } + ] + } }, { "type": "STRING", @@ -671,7 +776,7 @@ } ] }, - "cmd": { + "command": { "type": "CHOICE", "members": [ { @@ -679,7 +784,7 @@ "members": [ { "type": "SYMBOL", - "name": "BACKTICK" + "name": "backticked" } ] }, @@ -688,73 +793,55 @@ "members": [ { "type": "SYMBOL", - "name": "INDENTED_BACKTICK" + "name": "indented_backticked" } ] } ] }, + "sequence": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + } + } + ] + }, "string": { "type": "CHOICE", "members": [ { "type": "SYMBOL", - "name": "STRING" + "name": "basic_string" }, { "type": "SYMBOL", - "name": "INDENTED_STRING" + "name": "basic_string_indented" }, { "type": "SYMBOL", - "name": "RAW_STRING" + "name": "raw_string" }, { "type": "SYMBOL", - "name": "INDENTED_RAW_STRING" - } - ] - }, - "sequence": { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "expression" - }, - { - "type": "STRING", - "value": "," - }, - { - "type": "SYMBOL", - "name": "sequence" - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "expression" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "BLANK" - } - ] - } - ] + "name": "raw_string_indented" } ] }, @@ -766,8 +853,33 @@ "value": "[" }, { - "type": "SYMBOL", - "name": "NAME" + "type": "FIELD", + "name": "contents", + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "identifier" + } + ] + } + } + ] + } }, { "type": "STRING", @@ -783,16 +895,11 @@ "type": "SEQ", "members": [ { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "attribute" - }, - { - "type": "BLANK" - } - ] + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "attribute" + } }, { "type": "SYMBOL", @@ -800,14 +907,14 @@ }, { "type": "SYMBOL", - "name": "NEWLINE" + "name": "_newline" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", - "name": "body" + "name": "recipe_body" }, { "type": "BLANK" @@ -833,7 +940,7 @@ }, { "type": "SYMBOL", - "name": "NAME" + "name": "identifier" }, { "type": "CHOICE", @@ -852,28 +959,11 @@ "value": ":" }, { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": " " - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "dependencies" - }, - { - "type": "BLANK" - } - ] + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "dependency" + } } ] }, @@ -881,7 +971,7 @@ "type": "SEQ", "members": [ { - "type": "REPEAT1", + "type": "REPEAT", "content": { "type": "SYMBOL", "name": "parameter" @@ -892,98 +982,89 @@ "members": [ { "type": "SYMBOL", - "name": "variadic_parameters" + "name": "parameter" }, { - "type": "BLANK" + "type": "SYMBOL", + "name": "variadic_parameter" } ] } ] }, "parameter": { - "type": "CHOICE", + "type": "SEQ", "members": [ { - "type": "SEQ", + "type": "CHOICE", "members": [ { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "$" - }, - { - "type": "BLANK" - } - ] + "type": "STRING", + "value": "$" }, { - "type": "SYMBOL", - "name": "NAME" + "type": "BLANK" } ] }, { - "type": "SEQ", + "type": "FIELD", + "name": "param", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "CHOICE", "members": [ { - "type": "CHOICE", + "type": "SEQ", "members": [ { "type": "STRING", - "value": "$" + "value": "=" }, { - "type": "BLANK" + "type": "FIELD", + "name": "default", + "content": { + "type": "SYMBOL", + "name": "value" + } } ] }, { - "type": "SYMBOL", - "name": "NAME" - }, - { - "type": "STRING", - "value": "=" - }, - { - "type": "SYMBOL", - "name": "value" + "type": "BLANK" } ] } ] }, - "variadic_parameters": { - "type": "CHOICE", + "variadic_parameter": { + "type": "SEQ", "members": [ { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "*" - }, - { - "type": "SYMBOL", - "name": "parameter" - } - ] + "type": "FIELD", + "name": "kleene", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "*" + }, + { + "type": "STRING", + "value": "+" + } + ] + } }, { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "+" - }, - { - "type": "SYMBOL", - "name": "parameter" - } - ] + "type": "SYMBOL", + "name": "parameter" } ] }, @@ -998,168 +1079,172 @@ "type": "CHOICE", "members": [ { - "type": "SYMBOL", - "name": "NAME" + "type": "FIELD", + "name": "recipe", + "content": { + "type": "SYMBOL", + "name": "identifier" + } }, { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "(" - }, - { - "type": "SYMBOL", - "name": "depcall" - }, - { - "type": "STRING", - "value": ")" - } - ] + "type": "FIELD", + "name": "call", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "_dependency_with_args" + }, + { + "type": "STRING", + "value": ")" + } + ] + } } ] }, - "depcall": { + "_dependency_with_args": { "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "NAME" + "type": "FIELD", + "name": "recipe", + "content": { + "type": "SYMBOL", + "name": "identifier" + } }, { "type": "REPEAT", "content": { - "type": "SYMBOL", - "name": "expression" + "type": "FIELD", + "name": "expression", + "content": { + "type": "SYMBOL", + "name": "expression" + } } } ] }, - "body": { + "recipe_body": { "type": "SEQ", "members": [ { "type": "SYMBOL", - "name": "INDENT" + "name": "_indent" }, { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "shebang_recipe" - }, - { - "type": "CHOICE", - "members": [ - { + "type": "FIELD", + "name": "contents", + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "shebang" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "REPEAT", + "content": { "type": "SYMBOL", - "name": "recipe_body" - }, - { - "type": "BLANK" + "name": "recipe_line" } - ] - } - ] + } + ] + } }, { "type": "SYMBOL", - "name": "DEDENT" + "name": "_dedent" } ] }, - "shebang_recipe": { + "recipe_line": { "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "shebang" + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "recipe_line_prefix" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "text" + }, + { + "type": "SYMBOL", + "name": "interpolation" + } + ] + } }, { "type": "SYMBOL", - "name": "shebang_body" + "name": "_newline" } ] }, - "shebang_body": { - "type": "REPEAT1", - "content": { - "type": "SYMBOL", - "name": "line" - } - }, - "shebang": { - "type": "SEQ", + "recipe_line_prefix": { + "type": "CHOICE", "members": [ { "type": "STRING", - "value": "#!" + "value": "@-" }, { - "type": "PATTERN", - "value": ".*" + "type": "STRING", + "value": "-@" }, { - "type": "SYMBOL", - "name": "NEWLINE" - } - ] - }, - "recipe_body": { - "type": "REPEAT1", - "content": { - "type": "SYMBOL", - "name": "line" - } - }, - "line": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "comment" + "type": "STRING", + "value": "@" }, { - "type": "SYMBOL", - "name": "recipeline" + "type": "STRING", + "value": "-" } ] }, - "recipeline": { + "shebang": { "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "notcomment" - }, - { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "interpolation" - }, - { - "type": "SYMBOL", - "name": "TEXT" - } - ] - } + "type": "PATTERN", + "value": "\\s*#!.*" }, { "type": "SYMBOL", - "name": "NEWLINE" + "name": "_newline" } ] }, - "notcomment": { - "type": "PATTERN", - "value": "[^#\\s]\\S*" - }, "comment": { "type": "SEQ", "members": [ @@ -1169,7 +1254,7 @@ }, { "type": "SYMBOL", - "name": "NEWLINE" + "name": "_newline" } ] }, @@ -1194,37 +1279,139 @@ } ] }, - "BACKTICK": { + "identifier": { "type": "PATTERN", - "value": "`[^`]*`" + "value": "[a-zA-Z_][a-zA-Z0-9_-]*" }, - "INDENTED_BACKTICK": { - "type": "PATTERN", - "value": "```[^(```)]*```" + "backticked": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "`" + }, + { + "type": "REPEAT", + "content": { + "type": "PATTERN", + "value": "." + } + }, + { + "type": "STRING", + "value": "`" + } + ] }, - "NAME": { - "type": "PATTERN", - "value": "[a-zA-Z_][a-zA-Z0-9_-]*" + "indented_backticked": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "```" + }, + { + "type": "REPEAT", + "content": { + "type": "PATTERN", + "value": "." + } + }, + { + "type": "STRING", + "value": "```" + } + ] }, - "RAW_STRING": { + "raw_string": { "type": "PATTERN", "value": "'[^']*'" }, - "INDENTED_RAW_STRING": { - "type": "PATTERN", - "value": "'''[^(''')]*'''" + "raw_string_indented": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "'''" + }, + { + "type": "REPEAT", + "content": { + "type": "PATTERN", + "value": "." + } + }, + { + "type": "STRING", + "value": "'''" + } + ] }, - "STRING": { - "type": "PATTERN", - "value": "\"[^\"]*\"" + "basic_string": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "\"" + }, + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "string_escape" + }, + { + "type": "PATTERN", + "value": "[^\\\\\"]+" + } + ] + } + }, + { + "type": "STRING", + "value": "\"" + } + ] + }, + "basic_string_indented": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "\"\"\"" + }, + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "string_escape" + }, + { + "type": "PATTERN", + "value": "[^\\\\\"]+" + } + ] + } + }, + { + "type": "STRING", + "value": "\"\"\"" + } + ] }, - "INDENTED_STRING": { + "string_escape": { "type": "PATTERN", - "value": "\"\"\"[^(\"\"\"]*\"\"\"" + "value": "\\\\[nrt\"\\\\]" }, - "TEXT": { + "text": { "type": "PATTERN", - "value": "\\S+" + "value": ".+" } }, "extras": [ @@ -1238,22 +1425,22 @@ "externals": [ { "type": "SYMBOL", - "name": "INDENT" - }, - { - "type": "SYMBOL", - "name": "DEDENT" + "name": "_indent" }, { "type": "SYMBOL", - "name": "NEWLINE" + "name": "_dedent" }, { "type": "SYMBOL", - "name": "LINE" + "name": "_newline" } ], - "inline": [], + "inline": [ + "_dependency_with_args", + "ReferenceError", + "_expression_recurse" + ], "supertypes": [] } diff --git a/src/node-types.json b/src/node-types.json index 05d4a4e..10583bf 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -8,7 +8,7 @@ "required": true, "types": [ { - "type": "NAME", + "type": "identifier", "named": true } ] @@ -18,7 +18,7 @@ "required": true, "types": [ { - "type": "NAME", + "type": "identifier", "named": true } ] @@ -28,22 +28,35 @@ { "type": "assignment", "named": true, - "fields": {}, + "fields": { + "left": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + }, + "right": { + "multiple": false, + "required": true, + "types": [ + { + "type": "expression", + "named": true + } + ] + } + }, "children": { - "multiple": true, + "multiple": false, "required": true, "types": [ - { - "type": "NAME", - "named": true - }, { "type": "eol", "named": true - }, - { - "type": "expression", - "named": true } ] } @@ -51,15 +64,26 @@ { "type": "attribute", "named": true, - "fields": {}, + "fields": { + "contents": { + "multiple": true, + "required": true, + "types": [ + { + "type": ",", + "named": false + }, + { + "type": "identifier", + "named": true + } + ] + } + }, "children": { - "multiple": true, + "multiple": false, "required": true, "types": [ - { - "type": "NAME", - "named": true - }, { "type": "eol", "named": true @@ -68,58 +92,47 @@ } }, { - "type": "body", + "type": "backticked", + "named": true, + "fields": {} + }, + { + "type": "basic_string", "named": true, "fields": {}, "children": { "multiple": true, - "required": true, + "required": false, "types": [ { - "type": "DEDENT", - "named": true - }, - { - "type": "INDENT", - "named": true - }, - { - "type": "recipe_body", - "named": true - }, - { - "type": "shebang_recipe", + "type": "string_escape", "named": true } ] } }, { - "type": "boolean", - "named": true, - "fields": {} - }, - { - "type": "call", + "type": "basic_string_indented", "named": true, "fields": {}, "children": { "multiple": true, - "required": true, + "required": false, "types": [ { - "type": "NAME", - "named": true - }, - { - "type": "sequence", + "type": "string_escape", "named": true } ] } }, { - "type": "cmd", + "type": "boolean", + "named": true, + "fields": {} + }, + { + "type": "command", "named": true, "fields": {}, "children": { @@ -127,11 +140,11 @@ "required": true, "types": [ { - "type": "BACKTICK", + "type": "backticked", "named": true }, { - "type": "INDENTED_BACKTICK", + "type": "indented_backticked", "named": true } ] @@ -140,17 +153,7 @@ { "type": "comment", "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "NEWLINE", - "named": true - } - ] - } + "fields": {} }, { "type": "condition", @@ -168,41 +171,70 @@ } }, { - "type": "depcall", + "type": "dependency", "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "NAME", - "named": true - }, - { - "type": "expression", - "named": true - } - ] + "fields": { + "call": { + "multiple": true, + "required": false, + "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, + { + "type": "expression", + "named": true + }, + { + "type": "identifier", + "named": true + } + ] + }, + "expression": { + "multiple": true, + "required": false, + "types": [ + { + "type": "expression", + "named": true + } + ] + }, + "recipe": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } } }, { - "type": "dependencies", + "type": "eol", "named": true, "fields": {}, "children": { - "multiple": true, - "required": true, + "multiple": false, + "required": false, "types": [ { - "type": "dependency", + "type": "comment", "named": true } ] } }, { - "type": "dependency", + "type": "export", "named": true, "fields": {}, "children": { @@ -210,67 +242,64 @@ "required": true, "types": [ { - "type": "NAME", - "named": true - }, - { - "type": "depcall", + "type": "assignment", "named": true } ] } }, { - "type": "eol", + "type": "expression", "named": true, "fields": {}, "children": { "multiple": false, - "required": true, + "required": false, "types": [ { - "type": "NEWLINE", + "type": "if_expression", "named": true }, { - "type": "comment", - "named": true - } - ] - } - }, - { - "type": "export", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "assignment", + "type": "value", "named": true } ] } }, { - "type": "expression", + "type": "function_call", "named": true, "fields": { - "else": { + "arguments": { "multiple": false, "required": false, "types": [ { - "type": "expression", + "type": "sequence", "named": true } ] }, - "if": { + "name": { "multiple": false, - "required": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } + } + }, + { + "type": "if_expression", + "named": true, + "fields": { + "braced_body": { + "multiple": true, + "required": true, "types": [ { "type": "expression", @@ -286,14 +315,6 @@ { "type": "condition", "named": true - }, - { - "type": "expression", - "named": true - }, - { - "type": "value", - "named": true } ] } @@ -313,6 +334,11 @@ ] } }, + { + "type": "indented_backticked", + "named": true, + "fields": {} + }, { "type": "interpolation", "named": true, @@ -371,25 +397,6 @@ ] } }, - { - "type": "line", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "comment", - "named": true - }, - { - "type": "recipeline", - "named": true - } - ] - } - }, { "type": "module", "named": true, @@ -399,7 +406,7 @@ "required": true, "types": [ { - "type": "NAME", + "type": "identifier", "named": true }, { @@ -412,20 +419,27 @@ { "type": "parameter", "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "NAME", - "named": true - }, - { - "type": "value", - "named": true - } - ] + "fields": { + "default": { + "multiple": false, + "required": false, + "types": [ + { + "type": "value", + "named": true + } + ] + }, + "param": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } } }, { @@ -441,12 +455,17 @@ "named": true }, { - "type": "variadic_parameters", + "type": "variadic_parameter", "named": true } ] } }, + { + "type": "raw_string_indented", + "named": true, + "fields": {} + }, { "type": "recipe", "named": true, @@ -455,16 +474,12 @@ "multiple": true, "required": true, "types": [ - { - "type": "NEWLINE", - "named": true - }, { "type": "attribute", "named": true }, { - "type": "body", + "type": "recipe_body", "named": true }, { @@ -477,16 +492,21 @@ { "type": "recipe_body", "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "line", - "named": true - } - ] + "fields": { + "contents": { + "multiple": true, + "required": false, + "types": [ + { + "type": "recipe_line", + "named": true + }, + { + "type": "shebang", + "named": true + } + ] + } } }, { @@ -498,11 +518,11 @@ "required": true, "types": [ { - "type": "NAME", + "type": "dependency", "named": true }, { - "type": "dependencies", + "type": "identifier", "named": true }, { @@ -513,32 +533,33 @@ } }, { - "type": "recipeline", + "type": "recipe_line", "named": true, "fields": {}, "children": { "multiple": true, - "required": true, + "required": false, "types": [ { - "type": "NEWLINE", - "named": true - }, - { - "type": "TEXT", + "type": "interpolation", "named": true }, { - "type": "interpolation", + "type": "recipe_line_prefix", "named": true }, { - "type": "notcomment", + "type": "text", "named": true } ] } }, + { + "type": "recipe_line_prefix", + "named": true, + "fields": {} + }, { "type": "sequence", "named": true, @@ -550,10 +571,6 @@ { "type": "expression", "named": true - }, - { - "type": "sequence", - "named": true } ] } @@ -566,10 +583,6 @@ "multiple": true, "required": false, "types": [ - { - "type": ",", - "named": false - }, { "type": "[", "named": false @@ -577,29 +590,39 @@ { "type": "]", "named": false - }, + } + ] + }, + "array_item": { + "multiple": true, + "required": false, + "types": [ { "type": "string", "named": true } ] }, - "array_item": { + "contents": { "multiple": true, "required": false, "types": [ + { + "type": ",", + "named": false + }, { "type": "string", "named": true } ] }, - "name": { + "left": { "multiple": false, "required": false, "types": [ { - "type": "NAME", + "type": "identifier", "named": true } ] @@ -637,51 +660,7 @@ { "type": "shebang", "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "NEWLINE", - "named": true - } - ] - } - }, - { - "type": "shebang_body", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "line", - "named": true - } - ] - } - }, - { - "type": "shebang_recipe", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "shebang", - "named": true - }, - { - "type": "shebang_body", - "named": true - } - ] - } + "fields": {} }, { "type": "source_file", @@ -711,19 +690,19 @@ "required": true, "types": [ { - "type": "INDENTED_RAW_STRING", + "type": "basic_string", "named": true }, { - "type": "INDENTED_STRING", + "type": "basic_string_indented", "named": true }, { - "type": "RAW_STRING", + "type": "raw_string", "named": true }, { - "type": "STRING", + "type": "raw_string_indented", "named": true } ] @@ -738,19 +717,19 @@ "required": true, "types": [ { - "type": "NAME", + "type": "command", "named": true }, { - "type": "call", + "type": "expression", "named": true }, { - "type": "cmd", + "type": "function_call", "named": true }, { - "type": "expression", + "type": "identifier", "named": true }, { @@ -761,9 +740,24 @@ } }, { - "type": "variadic_parameters", + "type": "variadic_parameter", "named": true, - "fields": {}, + "fields": { + "kleene": { + "multiple": false, + "required": true, + "types": [ + { + "type": "*", + "named": false + }, + { + "type": "+", + "named": false + } + ] + } + }, "children": { "multiple": false, "required": true, @@ -776,21 +770,25 @@ } }, { - "type": " ", + "type": "!=", "named": false }, { - "type": "!=", + "type": "\"", "named": false }, { - "type": "#!", + "type": "\"\"\"", "named": false }, { "type": "$", "named": false }, + { + "type": "'''", + "named": false + }, { "type": "(", "named": false @@ -811,6 +809,14 @@ "type": ",", "named": false }, + { + "type": "-", + "named": false + }, + { + "type": "-@", + "named": false + }, { "type": "/", "named": false @@ -844,55 +850,23 @@ "named": false }, { - "type": "BACKTICK", - "named": true - }, - { - "type": "DEDENT", - "named": true - }, - { - "type": "INDENT", - "named": true - }, - { - "type": "INDENTED_BACKTICK", - "named": true - }, - { - "type": "INDENTED_RAW_STRING", - "named": true - }, - { - "type": "INDENTED_STRING", - "named": true - }, - { - "type": "NAME", - "named": true - }, - { - "type": "NEWLINE", - "named": true - }, - { - "type": "RAW_STRING", - "named": true + "type": "@-", + "named": false }, { - "type": "STRING", - "named": true + "type": "[", + "named": false }, { - "type": "TEXT", - "named": true + "type": "]", + "named": false }, { - "type": "[", + "type": "`", "named": false }, { - "type": "]", + "type": "```", "named": false }, { @@ -911,6 +885,10 @@ "type": "false", "named": false }, + { + "type": "identifier", + "named": true + }, { "type": "if", "named": false @@ -924,7 +902,7 @@ "named": false }, { - "type": "notcomment", + "type": "raw_string", "named": true }, { @@ -935,6 +913,14 @@ "type": "shell", "named": false }, + { + "type": "string_escape", + "named": true + }, + { + "type": "text", + "named": true + }, { "type": "true", "named": false diff --git a/src/parser.c b/src/parser.c index b6c0f96..c6ce603 100644 --- a/src/parser.c +++ b/src/parser.c @@ -6,111 +6,124 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 228 +#define STATE_COUNT 338 #define LARGE_STATE_COUNT 2 -#define SYMBOL_COUNT 91 -#define ALIAS_COUNT 0 -#define TOKEN_COUNT 49 -#define EXTERNAL_TOKEN_COUNT 4 -#define FIELD_COUNT 7 +#define SYMBOL_COUNT 102 +#define ALIAS_COUNT 1 +#define TOKEN_COUNT 51 +#define EXTERNAL_TOKEN_COUNT 3 +#define FIELD_COUNT 14 #define MAX_ALIAS_SEQUENCE_LENGTH 9 -#define PRODUCTION_ID_COUNT 17 +#define PRODUCTION_ID_COUNT 39 enum { - anon_sym_alias = 1, - anon_sym_COLON_EQ = 2, - anon_sym_export = 3, - anon_sym_import = 4, - anon_sym_QMARK = 5, - anon_sym_mod = 6, - anon_sym_set = 7, - anon_sym_LBRACK = 8, - anon_sym_COMMA = 9, - anon_sym_RBRACK = 10, - anon_sym_shell = 11, - anon_sym_true = 12, - anon_sym_false = 13, - anon_sym_if = 14, - anon_sym_LBRACE = 15, - anon_sym_RBRACE = 16, - anon_sym_else = 17, - anon_sym_PLUS = 18, - anon_sym_SLASH = 19, - anon_sym_EQ_EQ = 20, - anon_sym_BANG_EQ = 21, - anon_sym_EQ_TILDE = 22, - anon_sym_LPAREN = 23, - anon_sym_RPAREN = 24, - anon_sym_AT = 25, - anon_sym_COLON = 26, - anon_sym_ = 27, + sym_identifier = 1, + anon_sym_alias = 2, + anon_sym_COLON_EQ = 3, + anon_sym_export = 4, + anon_sym_import = 5, + anon_sym_QMARK = 6, + anon_sym_mod = 7, + anon_sym_set = 8, + anon_sym_LBRACK = 9, + anon_sym_COMMA = 10, + anon_sym_RBRACK = 11, + anon_sym_shell = 12, + anon_sym_true = 13, + anon_sym_false = 14, + anon_sym_SLASH = 15, + anon_sym_PLUS = 16, + anon_sym_if = 17, + anon_sym_else = 18, + anon_sym_LBRACE = 19, + anon_sym_RBRACE = 20, + anon_sym_EQ_EQ = 21, + anon_sym_BANG_EQ = 22, + anon_sym_EQ_TILDE = 23, + anon_sym_LPAREN = 24, + anon_sym_RPAREN = 25, + anon_sym_AT = 26, + anon_sym_COLON = 27, anon_sym_DOLLAR = 28, anon_sym_EQ = 29, anon_sym_STAR = 30, - anon_sym_POUND_BANG = 31, - aux_sym_shebang_token1 = 32, - sym_notcomment = 33, - aux_sym_comment_token1 = 34, - anon_sym_LBRACE_LBRACE = 35, - anon_sym_RBRACE_RBRACE = 36, - sym_BACKTICK = 37, - sym_INDENTED_BACKTICK = 38, - sym_NAME = 39, - sym_RAW_STRING = 40, - sym_INDENTED_RAW_STRING = 41, - sym_STRING = 42, - sym_INDENTED_STRING = 43, - sym_TEXT = 44, - sym_INDENT = 45, - sym_DEDENT = 46, - sym_NEWLINE = 47, - sym_LINE = 48, - sym_source_file = 49, - sym_item = 50, - sym_eol = 51, - sym_alias = 52, - sym_assignment = 53, - sym_export = 54, - sym_import = 55, - sym_module = 56, - sym_setting = 57, - sym_boolean = 58, - sym_expression = 59, - sym_condition = 60, - sym_value = 61, - sym_call = 62, - sym_cmd = 63, - sym_string = 64, - sym_sequence = 65, - sym_attribute = 66, - sym_recipe = 67, - sym_recipe_header = 68, - sym_parameters = 69, - sym_parameter = 70, - sym_variadic_parameters = 71, - sym_dependencies = 72, - sym_dependency = 73, - sym_depcall = 74, - sym_body = 75, - sym_shebang_recipe = 76, - sym_shebang_body = 77, - sym_shebang = 78, - sym_recipe_body = 79, - sym_line = 80, - sym_recipeline = 81, + anon_sym_AT_DASH = 31, + anon_sym_DASH_AT = 32, + anon_sym_DASH = 33, + aux_sym_shebang_token1 = 34, + aux_sym_comment_token1 = 35, + anon_sym_LBRACE_LBRACE = 36, + anon_sym_RBRACE_RBRACE = 37, + anon_sym_BQUOTE = 38, + aux_sym_backticked_token1 = 39, + anon_sym_BQUOTE_BQUOTE_BQUOTE = 40, + sym_raw_string = 41, + anon_sym_SQUOTE_SQUOTE_SQUOTE = 42, + anon_sym_DQUOTE = 43, + aux_sym_basic_string_token1 = 44, + anon_sym_DQUOTE_DQUOTE_DQUOTE = 45, + sym_string_escape = 46, + sym_text = 47, + sym__indent = 48, + sym__dedent = 49, + sym__newline = 50, + sym_source_file = 51, + sym_item = 52, + sym_eol = 53, + sym_alias = 54, + sym_assignment = 55, + sym_export = 56, + sym_import = 57, + sym_module = 58, + sym_setting = 59, + sym_boolean = 60, + sym_expression = 61, + sym__expression_inner = 62, + sym_if_expression = 63, + sym__braced_expr = 64, + sym_condition = 65, + sym_value = 66, + sym_function_call = 67, + sym_command = 68, + sym_sequence = 69, + sym_string = 70, + sym_attribute = 71, + sym_recipe = 72, + sym_recipe_header = 73, + sym_parameters = 74, + sym_parameter = 75, + sym_variadic_parameter = 76, + sym_dependency = 77, + sym_recipe_body = 78, + sym_recipe_line = 79, + sym_recipe_line_prefix = 80, + sym_shebang = 81, sym_comment = 82, sym_interpolation = 83, - aux_sym_source_file_repeat1 = 84, - aux_sym_setting_repeat1 = 85, - aux_sym_parameters_repeat1 = 86, - aux_sym_dependencies_repeat1 = 87, - aux_sym_depcall_repeat1 = 88, - aux_sym_shebang_body_repeat1 = 89, - aux_sym_recipeline_repeat1 = 90, + sym_backticked = 84, + sym_indented_backticked = 85, + sym_raw_string_indented = 86, + sym_basic_string = 87, + sym_basic_string_indented = 88, + aux_sym_source_file_repeat1 = 89, + aux_sym_setting_repeat1 = 90, + aux_sym_if_expression_repeat1 = 91, + aux_sym_sequence_repeat1 = 92, + aux_sym_attribute_repeat1 = 93, + aux_sym_recipe_repeat1 = 94, + aux_sym_recipe_header_repeat1 = 95, + aux_sym_parameters_repeat1 = 96, + aux_sym__dependency_with_args_repeat1 = 97, + aux_sym_recipe_body_repeat1 = 98, + aux_sym_recipe_line_repeat1 = 99, + aux_sym_backticked_repeat1 = 100, + aux_sym_basic_string_repeat1 = 101, + anon_alias_sym_expression = 102, }; static const char * const ts_symbol_names[] = { [ts_builtin_sym_end] = "end", + [sym_identifier] = "identifier", [anon_sym_alias] = "alias", [anon_sym_COLON_EQ] = ":=", [anon_sym_export] = "export", @@ -124,12 +137,12 @@ static const char * const ts_symbol_names[] = { [anon_sym_shell] = "shell", [anon_sym_true] = "true", [anon_sym_false] = "false", + [anon_sym_SLASH] = "/", + [anon_sym_PLUS] = "+", [anon_sym_if] = "if", + [anon_sym_else] = "else", [anon_sym_LBRACE] = "{", [anon_sym_RBRACE] = "}", - [anon_sym_else] = "else", - [anon_sym_PLUS] = "+", - [anon_sym_SLASH] = "/", [anon_sym_EQ_EQ] = "==", [anon_sym_BANG_EQ] = "!=", [anon_sym_EQ_TILDE] = "=~", @@ -137,28 +150,29 @@ static const char * const ts_symbol_names[] = { [anon_sym_RPAREN] = ")", [anon_sym_AT] = "@", [anon_sym_COLON] = ":", - [anon_sym_] = " ", [anon_sym_DOLLAR] = "$", [anon_sym_EQ] = "=", [anon_sym_STAR] = "*", - [anon_sym_POUND_BANG] = "#!", + [anon_sym_AT_DASH] = "@-", + [anon_sym_DASH_AT] = "-@", + [anon_sym_DASH] = "-", [aux_sym_shebang_token1] = "shebang_token1", - [sym_notcomment] = "notcomment", [aux_sym_comment_token1] = "comment_token1", [anon_sym_LBRACE_LBRACE] = "{{", [anon_sym_RBRACE_RBRACE] = "}}", - [sym_BACKTICK] = "BACKTICK", - [sym_INDENTED_BACKTICK] = "INDENTED_BACKTICK", - [sym_NAME] = "NAME", - [sym_RAW_STRING] = "RAW_STRING", - [sym_INDENTED_RAW_STRING] = "INDENTED_RAW_STRING", - [sym_STRING] = "STRING", - [sym_INDENTED_STRING] = "INDENTED_STRING", - [sym_TEXT] = "TEXT", - [sym_INDENT] = "INDENT", - [sym_DEDENT] = "DEDENT", - [sym_NEWLINE] = "NEWLINE", - [sym_LINE] = "LINE", + [anon_sym_BQUOTE] = "`", + [aux_sym_backticked_token1] = "backticked_token1", + [anon_sym_BQUOTE_BQUOTE_BQUOTE] = "```", + [sym_raw_string] = "raw_string", + [anon_sym_SQUOTE_SQUOTE_SQUOTE] = "'''", + [anon_sym_DQUOTE] = "\"", + [aux_sym_basic_string_token1] = "basic_string_token1", + [anon_sym_DQUOTE_DQUOTE_DQUOTE] = "\"\"\"", + [sym_string_escape] = "string_escape", + [sym_text] = "text", + [sym__indent] = "_indent", + [sym__dedent] = "_dedent", + [sym__newline] = "_newline", [sym_source_file] = "source_file", [sym_item] = "item", [sym_eol] = "eol", @@ -170,41 +184,52 @@ static const char * const ts_symbol_names[] = { [sym_setting] = "setting", [sym_boolean] = "boolean", [sym_expression] = "expression", + [sym__expression_inner] = "_expression_inner", + [sym_if_expression] = "if_expression", + [sym__braced_expr] = "_braced_expr", [sym_condition] = "condition", [sym_value] = "value", - [sym_call] = "call", - [sym_cmd] = "cmd", - [sym_string] = "string", + [sym_function_call] = "function_call", + [sym_command] = "command", [sym_sequence] = "sequence", + [sym_string] = "string", [sym_attribute] = "attribute", [sym_recipe] = "recipe", [sym_recipe_header] = "recipe_header", [sym_parameters] = "parameters", [sym_parameter] = "parameter", - [sym_variadic_parameters] = "variadic_parameters", - [sym_dependencies] = "dependencies", + [sym_variadic_parameter] = "variadic_parameter", [sym_dependency] = "dependency", - [sym_depcall] = "depcall", - [sym_body] = "body", - [sym_shebang_recipe] = "shebang_recipe", - [sym_shebang_body] = "shebang_body", - [sym_shebang] = "shebang", [sym_recipe_body] = "recipe_body", - [sym_line] = "line", - [sym_recipeline] = "recipeline", + [sym_recipe_line] = "recipe_line", + [sym_recipe_line_prefix] = "recipe_line_prefix", + [sym_shebang] = "shebang", [sym_comment] = "comment", [sym_interpolation] = "interpolation", + [sym_backticked] = "backticked", + [sym_indented_backticked] = "indented_backticked", + [sym_raw_string_indented] = "raw_string_indented", + [sym_basic_string] = "basic_string", + [sym_basic_string_indented] = "basic_string_indented", [aux_sym_source_file_repeat1] = "source_file_repeat1", [aux_sym_setting_repeat1] = "setting_repeat1", + [aux_sym_if_expression_repeat1] = "if_expression_repeat1", + [aux_sym_sequence_repeat1] = "sequence_repeat1", + [aux_sym_attribute_repeat1] = "attribute_repeat1", + [aux_sym_recipe_repeat1] = "recipe_repeat1", + [aux_sym_recipe_header_repeat1] = "recipe_header_repeat1", [aux_sym_parameters_repeat1] = "parameters_repeat1", - [aux_sym_dependencies_repeat1] = "dependencies_repeat1", - [aux_sym_depcall_repeat1] = "depcall_repeat1", - [aux_sym_shebang_body_repeat1] = "shebang_body_repeat1", - [aux_sym_recipeline_repeat1] = "recipeline_repeat1", + [aux_sym__dependency_with_args_repeat1] = "_dependency_with_args_repeat1", + [aux_sym_recipe_body_repeat1] = "recipe_body_repeat1", + [aux_sym_recipe_line_repeat1] = "recipe_line_repeat1", + [aux_sym_backticked_repeat1] = "backticked_repeat1", + [aux_sym_basic_string_repeat1] = "basic_string_repeat1", + [anon_alias_sym_expression] = "expression", }; static const TSSymbol ts_symbol_map[] = { [ts_builtin_sym_end] = ts_builtin_sym_end, + [sym_identifier] = sym_identifier, [anon_sym_alias] = anon_sym_alias, [anon_sym_COLON_EQ] = anon_sym_COLON_EQ, [anon_sym_export] = anon_sym_export, @@ -218,12 +243,12 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_shell] = anon_sym_shell, [anon_sym_true] = anon_sym_true, [anon_sym_false] = anon_sym_false, + [anon_sym_SLASH] = anon_sym_SLASH, + [anon_sym_PLUS] = anon_sym_PLUS, [anon_sym_if] = anon_sym_if, + [anon_sym_else] = anon_sym_else, [anon_sym_LBRACE] = anon_sym_LBRACE, [anon_sym_RBRACE] = anon_sym_RBRACE, - [anon_sym_else] = anon_sym_else, - [anon_sym_PLUS] = anon_sym_PLUS, - [anon_sym_SLASH] = anon_sym_SLASH, [anon_sym_EQ_EQ] = anon_sym_EQ_EQ, [anon_sym_BANG_EQ] = anon_sym_BANG_EQ, [anon_sym_EQ_TILDE] = anon_sym_EQ_TILDE, @@ -231,28 +256,29 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_RPAREN] = anon_sym_RPAREN, [anon_sym_AT] = anon_sym_AT, [anon_sym_COLON] = anon_sym_COLON, - [anon_sym_] = anon_sym_, [anon_sym_DOLLAR] = anon_sym_DOLLAR, [anon_sym_EQ] = anon_sym_EQ, [anon_sym_STAR] = anon_sym_STAR, - [anon_sym_POUND_BANG] = anon_sym_POUND_BANG, + [anon_sym_AT_DASH] = anon_sym_AT_DASH, + [anon_sym_DASH_AT] = anon_sym_DASH_AT, + [anon_sym_DASH] = anon_sym_DASH, [aux_sym_shebang_token1] = aux_sym_shebang_token1, - [sym_notcomment] = sym_notcomment, [aux_sym_comment_token1] = aux_sym_comment_token1, [anon_sym_LBRACE_LBRACE] = anon_sym_LBRACE_LBRACE, [anon_sym_RBRACE_RBRACE] = anon_sym_RBRACE_RBRACE, - [sym_BACKTICK] = sym_BACKTICK, - [sym_INDENTED_BACKTICK] = sym_INDENTED_BACKTICK, - [sym_NAME] = sym_NAME, - [sym_RAW_STRING] = sym_RAW_STRING, - [sym_INDENTED_RAW_STRING] = sym_INDENTED_RAW_STRING, - [sym_STRING] = sym_STRING, - [sym_INDENTED_STRING] = sym_INDENTED_STRING, - [sym_TEXT] = sym_TEXT, - [sym_INDENT] = sym_INDENT, - [sym_DEDENT] = sym_DEDENT, - [sym_NEWLINE] = sym_NEWLINE, - [sym_LINE] = sym_LINE, + [anon_sym_BQUOTE] = anon_sym_BQUOTE, + [aux_sym_backticked_token1] = aux_sym_backticked_token1, + [anon_sym_BQUOTE_BQUOTE_BQUOTE] = anon_sym_BQUOTE_BQUOTE_BQUOTE, + [sym_raw_string] = sym_raw_string, + [anon_sym_SQUOTE_SQUOTE_SQUOTE] = anon_sym_SQUOTE_SQUOTE_SQUOTE, + [anon_sym_DQUOTE] = anon_sym_DQUOTE, + [aux_sym_basic_string_token1] = aux_sym_basic_string_token1, + [anon_sym_DQUOTE_DQUOTE_DQUOTE] = anon_sym_DQUOTE_DQUOTE_DQUOTE, + [sym_string_escape] = sym_string_escape, + [sym_text] = sym_text, + [sym__indent] = sym__indent, + [sym__dedent] = sym__dedent, + [sym__newline] = sym__newline, [sym_source_file] = sym_source_file, [sym_item] = sym_item, [sym_eol] = sym_eol, @@ -264,37 +290,47 @@ static const TSSymbol ts_symbol_map[] = { [sym_setting] = sym_setting, [sym_boolean] = sym_boolean, [sym_expression] = sym_expression, + [sym__expression_inner] = sym__expression_inner, + [sym_if_expression] = sym_if_expression, + [sym__braced_expr] = sym__braced_expr, [sym_condition] = sym_condition, [sym_value] = sym_value, - [sym_call] = sym_call, - [sym_cmd] = sym_cmd, - [sym_string] = sym_string, + [sym_function_call] = sym_function_call, + [sym_command] = sym_command, [sym_sequence] = sym_sequence, + [sym_string] = sym_string, [sym_attribute] = sym_attribute, [sym_recipe] = sym_recipe, [sym_recipe_header] = sym_recipe_header, [sym_parameters] = sym_parameters, [sym_parameter] = sym_parameter, - [sym_variadic_parameters] = sym_variadic_parameters, - [sym_dependencies] = sym_dependencies, + [sym_variadic_parameter] = sym_variadic_parameter, [sym_dependency] = sym_dependency, - [sym_depcall] = sym_depcall, - [sym_body] = sym_body, - [sym_shebang_recipe] = sym_shebang_recipe, - [sym_shebang_body] = sym_shebang_body, - [sym_shebang] = sym_shebang, [sym_recipe_body] = sym_recipe_body, - [sym_line] = sym_line, - [sym_recipeline] = sym_recipeline, + [sym_recipe_line] = sym_recipe_line, + [sym_recipe_line_prefix] = sym_recipe_line_prefix, + [sym_shebang] = sym_shebang, [sym_comment] = sym_comment, [sym_interpolation] = sym_interpolation, + [sym_backticked] = sym_backticked, + [sym_indented_backticked] = sym_indented_backticked, + [sym_raw_string_indented] = sym_raw_string_indented, + [sym_basic_string] = sym_basic_string, + [sym_basic_string_indented] = sym_basic_string_indented, [aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1, [aux_sym_setting_repeat1] = aux_sym_setting_repeat1, + [aux_sym_if_expression_repeat1] = aux_sym_if_expression_repeat1, + [aux_sym_sequence_repeat1] = aux_sym_sequence_repeat1, + [aux_sym_attribute_repeat1] = aux_sym_attribute_repeat1, + [aux_sym_recipe_repeat1] = aux_sym_recipe_repeat1, + [aux_sym_recipe_header_repeat1] = aux_sym_recipe_header_repeat1, [aux_sym_parameters_repeat1] = aux_sym_parameters_repeat1, - [aux_sym_dependencies_repeat1] = aux_sym_dependencies_repeat1, - [aux_sym_depcall_repeat1] = aux_sym_depcall_repeat1, - [aux_sym_shebang_body_repeat1] = aux_sym_shebang_body_repeat1, - [aux_sym_recipeline_repeat1] = aux_sym_recipeline_repeat1, + [aux_sym__dependency_with_args_repeat1] = aux_sym__dependency_with_args_repeat1, + [aux_sym_recipe_body_repeat1] = aux_sym_recipe_body_repeat1, + [aux_sym_recipe_line_repeat1] = aux_sym_recipe_line_repeat1, + [aux_sym_backticked_repeat1] = aux_sym_backticked_repeat1, + [aux_sym_basic_string_repeat1] = aux_sym_basic_string_repeat1, + [anon_alias_sym_expression] = anon_alias_sym_expression, }; static const TSSymbolMetadata ts_symbol_metadata[] = { @@ -302,6 +338,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = true, }, + [sym_identifier] = { + .visible = true, + .named = true, + }, [anon_sym_alias] = { .visible = true, .named = false, @@ -354,15 +394,15 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_if] = { + [anon_sym_SLASH] = { .visible = true, .named = false, }, - [anon_sym_LBRACE] = { + [anon_sym_PLUS] = { .visible = true, .named = false, }, - [anon_sym_RBRACE] = { + [anon_sym_if] = { .visible = true, .named = false, }, @@ -370,11 +410,11 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_PLUS] = { + [anon_sym_LBRACE] = { .visible = true, .named = false, }, - [anon_sym_SLASH] = { + [anon_sym_RBRACE] = { .visible = true, .named = false, }, @@ -406,10 +446,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_] = { - .visible = true, - .named = false, - }, [anon_sym_DOLLAR] = { .visible = true, .named = false, @@ -422,17 +458,21 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_POUND_BANG] = { + [anon_sym_AT_DASH] = { .visible = true, .named = false, }, - [aux_sym_shebang_token1] = { - .visible = false, + [anon_sym_DASH_AT] = { + .visible = true, .named = false, }, - [sym_notcomment] = { + [anon_sym_DASH] = { .visible = true, - .named = true, + .named = false, + }, + [aux_sym_shebang_token1] = { + .visible = false, + .named = false, }, [aux_sym_comment_token1] = { .visible = false, @@ -446,52 +486,56 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [sym_BACKTICK] = { + [anon_sym_BQUOTE] = { .visible = true, - .named = true, + .named = false, }, - [sym_INDENTED_BACKTICK] = { - .visible = true, - .named = true, + [aux_sym_backticked_token1] = { + .visible = false, + .named = false, }, - [sym_NAME] = { + [anon_sym_BQUOTE_BQUOTE_BQUOTE] = { .visible = true, - .named = true, + .named = false, }, - [sym_RAW_STRING] = { + [sym_raw_string] = { .visible = true, .named = true, }, - [sym_INDENTED_RAW_STRING] = { + [anon_sym_SQUOTE_SQUOTE_SQUOTE] = { .visible = true, - .named = true, + .named = false, }, - [sym_STRING] = { + [anon_sym_DQUOTE] = { .visible = true, - .named = true, + .named = false, + }, + [aux_sym_basic_string_token1] = { + .visible = false, + .named = false, }, - [sym_INDENTED_STRING] = { + [anon_sym_DQUOTE_DQUOTE_DQUOTE] = { .visible = true, - .named = true, + .named = false, }, - [sym_TEXT] = { + [sym_string_escape] = { .visible = true, .named = true, }, - [sym_INDENT] = { + [sym_text] = { .visible = true, .named = true, }, - [sym_DEDENT] = { - .visible = true, + [sym__indent] = { + .visible = false, .named = true, }, - [sym_NEWLINE] = { - .visible = true, + [sym__dedent] = { + .visible = false, .named = true, }, - [sym_LINE] = { - .visible = true, + [sym__newline] = { + .visible = false, .named = true, }, [sym_source_file] = { @@ -538,6 +582,18 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym__expression_inner] = { + .visible = false, + .named = true, + }, + [sym_if_expression] = { + .visible = true, + .named = true, + }, + [sym__braced_expr] = { + .visible = false, + .named = true, + }, [sym_condition] = { .visible = true, .named = true, @@ -546,19 +602,19 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_call] = { + [sym_function_call] = { .visible = true, .named = true, }, - [sym_cmd] = { + [sym_command] = { .visible = true, .named = true, }, - [sym_string] = { + [sym_sequence] = { .visible = true, .named = true, }, - [sym_sequence] = { + [sym_string] = { .visible = true, .named = true, }, @@ -582,55 +638,55 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_variadic_parameters] = { + [sym_variadic_parameter] = { .visible = true, .named = true, }, - [sym_dependencies] = { + [sym_dependency] = { .visible = true, .named = true, }, - [sym_dependency] = { + [sym_recipe_body] = { .visible = true, .named = true, }, - [sym_depcall] = { + [sym_recipe_line] = { .visible = true, .named = true, }, - [sym_body] = { + [sym_recipe_line_prefix] = { .visible = true, .named = true, }, - [sym_shebang_recipe] = { + [sym_shebang] = { .visible = true, .named = true, }, - [sym_shebang_body] = { + [sym_comment] = { .visible = true, .named = true, }, - [sym_shebang] = { + [sym_interpolation] = { .visible = true, .named = true, }, - [sym_recipe_body] = { + [sym_backticked] = { .visible = true, .named = true, }, - [sym_line] = { + [sym_indented_backticked] = { .visible = true, .named = true, }, - [sym_recipeline] = { + [sym_raw_string_indented] = { .visible = true, .named = true, }, - [sym_comment] = { + [sym_basic_string] = { .visible = true, .named = true, }, - [sym_interpolation] = { + [sym_basic_string_indented] = { .visible = true, .named = true, }, @@ -642,153 +698,281 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, + [aux_sym_if_expression_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_sequence_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_attribute_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_recipe_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_recipe_header_repeat1] = { + .visible = false, + .named = false, + }, [aux_sym_parameters_repeat1] = { .visible = false, .named = false, }, - [aux_sym_dependencies_repeat1] = { + [aux_sym__dependency_with_args_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_recipe_body_repeat1] = { .visible = false, .named = false, }, - [aux_sym_depcall_repeat1] = { + [aux_sym_recipe_line_repeat1] = { .visible = false, .named = false, }, - [aux_sym_shebang_body_repeat1] = { + [aux_sym_backticked_repeat1] = { .visible = false, .named = false, }, - [aux_sym_recipeline_repeat1] = { + [aux_sym_basic_string_repeat1] = { .visible = false, .named = false, }, + [anon_alias_sym_expression] = { + .visible = true, + .named = false, + }, }; enum { - field_array = 1, - field_array_item = 2, - field_else = 3, - field_if = 4, - field_left = 5, - field_name = 6, - field_right = 7, + field_arguments = 1, + field_array = 2, + field_array_item = 3, + field_braced_body = 4, + field_call = 5, + field_contents = 6, + field_default = 7, + field_expression = 8, + field_kleene = 9, + field_left = 10, + field_name = 11, + field_param = 12, + field_recipe = 13, + field_right = 14, }; static const char * const ts_field_names[] = { [0] = NULL, + [field_arguments] = "arguments", [field_array] = "array", [field_array_item] = "array_item", - [field_else] = "else", - [field_if] = "if", + [field_braced_body] = "braced_body", + [field_call] = "call", + [field_contents] = "contents", + [field_default] = "default", + [field_expression] = "expression", + [field_kleene] = "kleene", [field_left] = "left", [field_name] = "name", + [field_param] = "param", + [field_recipe] = "recipe", [field_right] = "right", }; static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [1] = {.index = 0, .length = 1}, - [2] = {.index = 1, .length = 2}, - [3] = {.index = 3, .length = 3}, - [4] = {.index = 6, .length = 2}, - [5] = {.index = 8, .length = 4}, - [6] = {.index = 12, .length = 1}, - [7] = {.index = 13, .length = 3}, - [8] = {.index = 16, .length = 2}, - [9] = {.index = 18, .length = 5}, - [10] = {.index = 23, .length = 4}, - [11] = {.index = 27, .length = 5}, - [12] = {.index = 32, .length = 6}, - [13] = {.index = 38, .length = 7}, - [14] = {.index = 45, .length = 6}, - [15] = {.index = 51, .length = 8}, - [16] = {.index = 59, .length = 2}, + [2] = {.index = 1, .length = 1}, + [3] = {.index = 2, .length = 1}, + [4] = {.index = 3, .length = 1}, + [5] = {.index = 4, .length = 1}, + [6] = {.index = 5, .length = 2}, + [7] = {.index = 7, .length = 1}, + [8] = {.index = 8, .length = 2}, + [9] = {.index = 10, .length = 2}, + [10] = {.index = 12, .length = 3}, + [11] = {.index = 15, .length = 2}, + [12] = {.index = 17, .length = 1}, + [13] = {.index = 18, .length = 1}, + [15] = {.index = 19, .length = 3}, + [16] = {.index = 22, .length = 1}, + [17] = {.index = 23, .length = 2}, + [18] = {.index = 25, .length = 2}, + [19] = {.index = 27, .length = 4}, + [20] = {.index = 31, .length = 2}, + [21] = {.index = 33, .length = 2}, + [22] = {.index = 35, .length = 5}, + [23] = {.index = 40, .length = 2}, + [24] = {.index = 42, .length = 1}, + [25] = {.index = 43, .length = 3}, + [26] = {.index = 46, .length = 2}, + [27] = {.index = 48, .length = 5}, + [28] = {.index = 53, .length = 1}, + [29] = {.index = 54, .length = 2}, + [30] = {.index = 56, .length = 2}, + [31] = {.index = 58, .length = 4}, + [32] = {.index = 62, .length = 5}, + [33] = {.index = 67, .length = 6}, + [34] = {.index = 73, .length = 7}, + [35] = {.index = 80, .length = 3}, + [36] = {.index = 83, .length = 6}, + [37] = {.index = 89, .length = 8}, + [38] = {.index = 97, .length = 1}, }; static const TSFieldMapEntry ts_field_map_entries[] = { [0] = - {field_name, 1}, + {field_param, 0}, [1] = {field_left, 1}, - {field_right, 3}, + [2] = + {field_kleene, 0}, [3] = - {field_name, 1}, + {field_recipe, 0}, + [4] = + {field_param, 1}, + [5] = + {field_left, 1}, + {field_right, 3}, + [7] = + {field_contents, 1}, + [8] = + {field_left, 0}, + {field_right, 2}, + [10] = + {field_default, 2}, + {field_param, 0}, + [12] = + {field_left, 1}, {field_right, 2}, {field_right, 3}, - [6] = + [15] = + {field_contents, 1}, + {field_contents, 2}, + [17] = + {field_braced_body, 2, .inherited = true}, + [18] = + {field_name, 0}, + [19] = + {field_call, 0}, + {field_call, 1}, + {field_call, 2}, + [22] = + {field_expression, 0}, + [23] = + {field_default, 3}, + {field_param, 1}, + [25] = {field_array, 3}, {field_array, 4}, - [8] = + [27] = {field_array, 3}, {field_array, 4}, - {field_name, 1}, + {field_left, 1}, {field_right, 2}, - [12] = + [31] = + {field_braced_body, 2, .inherited = true}, + {field_braced_body, 3, .inherited = true}, + [33] = + {field_arguments, 2}, + {field_name, 0}, + [35] = + {field_call, 0}, + {field_call, 1}, + {field_call, 2}, + {field_call, 3}, + {field_expression, 2, .inherited = true}, + [40] = + {field_expression, 0, .inherited = true}, + {field_expression, 1, .inherited = true}, + [42] = {field_array_item, 1}, - [13] = + [43] = {field_array, 3}, {field_array, 5}, {field_array_item, 4}, - [16] = + [46] = {field_array_item, 0, .inherited = true}, {field_array_item, 1, .inherited = true}, - [18] = + [48] = {field_array, 3}, {field_array, 5}, {field_array_item, 4}, - {field_name, 1}, + {field_left, 1}, {field_right, 2}, - [23] = + [53] = + {field_braced_body, 1}, + [54] = + {field_braced_body, 2, .inherited = true}, + {field_braced_body, 4, .inherited = true}, + [56] = + {field_braced_body, 0, .inherited = true}, + {field_braced_body, 1, .inherited = true}, + [58] = {field_array, 3}, {field_array, 6}, {field_array_item, 4}, {field_array_item, 5}, - [27] = + [62] = {field_array, 3}, - {field_array, 5}, {field_array, 6}, {field_array_item, 4}, {field_array_item, 5, .inherited = true}, - [32] = + {field_contents, 5}, + [67] = {field_array, 3}, {field_array, 6}, {field_array_item, 4}, {field_array_item, 5}, - {field_name, 1}, + {field_left, 1}, {field_right, 2}, - [38] = + [73] = {field_array, 3}, - {field_array, 5}, {field_array, 6}, {field_array_item, 4}, {field_array_item, 5, .inherited = true}, - {field_name, 1}, + {field_contents, 5}, + {field_left, 1}, {field_right, 2}, - [45] = + [80] = + {field_braced_body, 2, .inherited = true}, + {field_braced_body, 3, .inherited = true}, + {field_braced_body, 5, .inherited = true}, + [83] = {field_array, 3}, - {field_array, 5}, {field_array, 7}, {field_array_item, 4}, {field_array_item, 5, .inherited = true}, {field_array_item, 6}, - [51] = + {field_contents, 5}, + [89] = {field_array, 3}, - {field_array, 5}, {field_array, 7}, {field_array_item, 4}, {field_array_item, 5, .inherited = true}, {field_array_item, 6}, - {field_name, 1}, + {field_contents, 5}, + {field_left, 1}, {field_right, 2}, - [59] = - {field_else, 7}, - {field_if, 3}, + [97] = + {field_braced_body, 3, .inherited = true}, }; static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = { [0] = {0}, + [14] = { + [0] = anon_alias_sym_expression, + [2] = anon_alias_sym_expression, + }, }; static const uint16_t ts_non_terminal_alias_map[] = { + sym__expression_inner, 2, + sym__expression_inner, + anon_alias_sym_expression, 0, }; @@ -803,55 +987,55 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [7] = 7, [8] = 8, [9] = 9, - [10] = 10, - [11] = 11, + [10] = 9, + [11] = 9, [12] = 12, [13] = 13, [14] = 12, - [15] = 12, - [16] = 16, - [17] = 17, + [15] = 13, + [16] = 12, + [17] = 13, [18] = 18, - [19] = 18, - [20] = 18, + [19] = 19, + [20] = 20, [21] = 21, [22] = 22, - [23] = 22, + [23] = 23, [24] = 24, [25] = 25, [26] = 26, - [27] = 24, - [28] = 28, - [29] = 22, - [30] = 25, - [31] = 21, - [32] = 21, - [33] = 33, - [34] = 34, - [35] = 25, - [36] = 24, - [37] = 22, + [27] = 27, + [28] = 20, + [29] = 27, + [30] = 30, + [31] = 31, + [32] = 32, + [33] = 20, + [34] = 27, + [35] = 35, + [36] = 36, + [37] = 37, [38] = 38, [39] = 39, - [40] = 39, + [40] = 40, [41] = 41, [42] = 42, [43] = 43, [44] = 44, - [45] = 6, - [46] = 46, - [47] = 6, - [48] = 44, - [49] = 43, - [50] = 38, - [51] = 42, - [52] = 28, - [53] = 53, + [45] = 45, + [46] = 45, + [47] = 45, + [48] = 48, + [49] = 44, + [50] = 48, + [51] = 44, + [52] = 52, + [53] = 45, [54] = 54, - [55] = 55, - [56] = 56, + [55] = 48, + [56] = 48, [57] = 57, - [58] = 58, + [58] = 44, [59] = 59, [60] = 60, [61] = 61, @@ -864,24 +1048,24 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [68] = 68, [69] = 69, [70] = 70, - [71] = 71, - [72] = 72, - [73] = 73, + [71] = 31, + [72] = 18, + [73] = 23, [74] = 74, - [75] = 75, - [76] = 76, - [77] = 77, + [75] = 25, + [76] = 19, + [77] = 26, [78] = 78, [79] = 79, [80] = 80, [81] = 81, [82] = 82, - [83] = 83, - [84] = 54, + [83] = 24, + [84] = 84, [85] = 85, [86] = 86, [87] = 87, - [88] = 88, + [88] = 70, [89] = 89, [90] = 90, [91] = 91, @@ -912,115 +1096,225 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [116] = 116, [117] = 117, [118] = 118, - [119] = 28, + [119] = 119, [120] = 120, [121] = 121, [122] = 122, - [123] = 39, + [123] = 123, [124] = 124, - [125] = 125, - [126] = 126, + [125] = 84, + [126] = 87, [127] = 127, [128] = 128, [129] = 129, - [130] = 130, + [130] = 86, [131] = 131, - [132] = 38, - [133] = 42, + [132] = 132, + [133] = 133, [134] = 134, - [135] = 28, - [136] = 54, + [135] = 135, + [136] = 121, [137] = 137, [138] = 138, - [139] = 43, - [140] = 140, - [141] = 44, - [142] = 142, - [143] = 143, + [139] = 139, + [140] = 54, + [141] = 141, + [142] = 52, + [143] = 57, [144] = 144, [145] = 145, - [146] = 54, + [146] = 146, [147] = 147, - [148] = 78, + [148] = 52, [149] = 149, - [150] = 150, - [151] = 151, + [150] = 61, + [151] = 70, [152] = 152, [153] = 153, [154] = 154, [155] = 155, - [156] = 78, - [157] = 58, - [158] = 158, - [159] = 9, - [160] = 10, + [156] = 156, + [157] = 157, + [158] = 59, + [159] = 159, + [160] = 160, [161] = 161, - [162] = 62, + [162] = 162, [163] = 163, [164] = 164, [165] = 165, [166] = 166, [167] = 167, - [168] = 168, - [169] = 169, - [170] = 170, - [171] = 171, + [168] = 54, + [169] = 57, + [170] = 35, + [171] = 37, [172] = 172, [173] = 173, - [174] = 174, - [175] = 175, + [174] = 172, + [175] = 43, [176] = 176, - [177] = 177, - [178] = 178, - [179] = 179, - [180] = 180, - [181] = 181, - [182] = 182, + [177] = 70, + [178] = 61, + [179] = 59, + [180] = 42, + [181] = 84, + [182] = 87, [183] = 183, [184] = 184, [185] = 185, [186] = 186, [187] = 187, - [188] = 188, + [188] = 176, [189] = 189, - [190] = 190, + [190] = 185, [191] = 191, [192] = 192, - [193] = 193, - [194] = 10, + [193] = 41, + [194] = 183, [195] = 195, - [196] = 9, + [196] = 64, [197] = 197, - [198] = 198, - [199] = 199, - [200] = 191, - [201] = 177, + [198] = 36, + [199] = 172, + [200] = 185, + [201] = 183, [202] = 202, [203] = 203, - [204] = 174, - [205] = 205, - [206] = 199, - [207] = 177, - [208] = 208, - [209] = 203, - [210] = 174, - [211] = 211, - [212] = 212, - [213] = 199, - [214] = 211, + [204] = 204, + [205] = 176, + [206] = 206, + [207] = 65, + [208] = 63, + [209] = 86, + [210] = 210, + [211] = 197, + [212] = 40, + [213] = 39, + [214] = 214, [215] = 215, - [216] = 172, - [217] = 172, - [218] = 168, - [219] = 168, - [220] = 183, - [221] = 183, - [222] = 222, + [216] = 66, + [217] = 38, + [218] = 218, + [219] = 23, + [220] = 220, + [221] = 221, + [222] = 97, [223] = 223, - [224] = 170, - [225] = 170, + [224] = 89, + [225] = 225, [226] = 226, - [227] = 203, + [227] = 227, + [228] = 221, + [229] = 229, + [230] = 230, + [231] = 231, + [232] = 229, + [233] = 230, + [234] = 234, + [235] = 235, + [236] = 236, + [237] = 237, + [238] = 238, + [239] = 239, + [240] = 236, + [241] = 241, + [242] = 242, + [243] = 220, + [244] = 223, + [245] = 226, + [246] = 227, + [247] = 220, + [248] = 238, + [249] = 229, + [250] = 31, + [251] = 236, + [252] = 18, + [253] = 19, + [254] = 254, + [255] = 255, + [256] = 86, + [257] = 66, + [258] = 35, + [259] = 39, + [260] = 24, + [261] = 221, + [262] = 25, + [263] = 26, + [264] = 87, + [265] = 43, + [266] = 41, + [267] = 230, + [268] = 226, + [269] = 269, + [270] = 36, + [271] = 37, + [272] = 38, + [273] = 40, + [274] = 65, + [275] = 42, + [276] = 276, + [277] = 64, + [278] = 278, + [279] = 63, + [280] = 223, + [281] = 84, + [282] = 238, + [283] = 227, + [284] = 284, + [285] = 285, + [286] = 286, + [287] = 287, + [288] = 288, + [289] = 284, + [290] = 290, + [291] = 290, + [292] = 284, + [293] = 293, + [294] = 294, + [295] = 290, + [296] = 296, + [297] = 297, + [298] = 298, + [299] = 299, + [300] = 300, + [301] = 301, + [302] = 302, + [303] = 303, + [304] = 304, + [305] = 305, + [306] = 306, + [307] = 307, + [308] = 308, + [309] = 309, + [310] = 310, + [311] = 311, + [312] = 312, + [313] = 313, + [314] = 314, + [315] = 303, + [316] = 316, + [317] = 317, + [318] = 304, + [319] = 299, + [320] = 320, + [321] = 321, + [322] = 322, + [323] = 303, + [324] = 304, + [325] = 325, + [326] = 326, + [327] = 327, + [328] = 328, + [329] = 329, + [330] = 330, + [331] = 331, + [332] = 306, + [333] = 333, + [334] = 299, + [335] = 329, + [336] = 330, + [337] = 306, }; static bool ts_lex(TSLexer *lexer, TSStateId state) { @@ -1028,917 +1322,675 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (eof) ADVANCE(42); - if (lookahead == '!') ADVANCE(19); - if (lookahead == '"') ADVANCE(6); - if (lookahead == '#') ADVANCE(83); - if (lookahead == '$') ADVANCE(75); - if (lookahead == '\'') ADVANCE(14); - if (lookahead == '(') ADVANCE(69); - if (lookahead == ')') ADVANCE(70); - if (lookahead == '*') ADVANCE(78); - if (lookahead == '+') ADVANCE(64); - if (lookahead == ',') ADVANCE(51); - if (lookahead == '/') ADVANCE(65); - if (lookahead == ':') ADVANCE(73); - if (lookahead == '=') ADVANCE(77); - if (lookahead == '?') ADVANCE(47); - if (lookahead == '@') ADVANCE(71); - if (lookahead == '[') ADVANCE(50); - if (lookahead == ']') ADVANCE(52); - if (lookahead == '`') ADVANCE(22); - if (lookahead == 'a') ADVANCE(104); - if (lookahead == 'e') ADVANCE(105); - if (lookahead == 'f') ADVANCE(91); - if (lookahead == 'i') ADVANCE(100); - if (lookahead == 'm') ADVANCE(110); - if (lookahead == 's') ADVANCE(94); - if (lookahead == 't') ADVANCE(115); - if (lookahead == '{') ADVANCE(60); - if (lookahead == '}') ADVANCE(61); + if (eof) ADVANCE(23); + if (lookahead == '!') ADVANCE(16); + if (lookahead == '"') ADVANCE(74); + if (lookahead == '#') ADVANCE(55); + if (lookahead == '$') ADVANCE(44); + if (lookahead == '\'') ADVANCE(13); + if (lookahead == '(') ADVANCE(37); + if (lookahead == ')') ADVANCE(38); + if (lookahead == '*') ADVANCE(47); + if (lookahead == '+') ADVANCE(30); + if (lookahead == ',') ADVANCE(27); + if (lookahead == '-') ADVANCE(52); + if (lookahead == '/') ADVANCE(29); + if (lookahead == ':') ADVANCE(43); + if (lookahead == '=') ADVANCE(46); + if (lookahead == '?') ADVANCE(25); + if (lookahead == '@') ADVANCE(40); + if (lookahead == '[') ADVANCE(26); + if (lookahead == '\\') ADVANCE(20); + if (lookahead == ']') ADVANCE(28); + if (lookahead == '`') ADVANCE(62); + if (lookahead == '{') ADVANCE(32); + if (lookahead == '}') ADVANCE(33); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || - lookahead == ' ') SKIP(0) + lookahead == ' ') ADVANCE(7); if (('A' <= lookahead && lookahead <= 'Z') || - ('_' <= lookahead && lookahead <= 'z')) ADVANCE(126); + ('_' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 1: - if (lookahead == ' ') ADVANCE(74); - if (lookahead == '(') ADVANCE(69); + if (lookahead == '\n') ADVANCE(1); + if (lookahead == '#') ADVANCE(80); + if (lookahead == '-') ADVANCE(53); + if (lookahead == '@') ADVANCE(41); + if (lookahead == '{') ADVANCE(83); if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r') SKIP(1) - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + lookahead == '\r' || + lookahead == ' ') ADVANCE(79); + if (lookahead != 0) ADVANCE(84); END_STATE(); case 2: - if (lookahead == '!') ADVANCE(19); - if (lookahead == '"') ADVANCE(6); - if (lookahead == '$') ADVANCE(75); - if (lookahead == '\'') ADVANCE(14); - if (lookahead == '(') ADVANCE(69); - if (lookahead == ')') ADVANCE(70); - if (lookahead == '*') ADVANCE(78); - if (lookahead == '+') ADVANCE(64); - if (lookahead == ',') ADVANCE(51); - if (lookahead == '/') ADVANCE(65); - if (lookahead == ':') ADVANCE(73); - if (lookahead == '=') ADVANCE(21); - if (lookahead == '?') ADVANCE(47); - if (lookahead == '@') ADVANCE(71); - if (lookahead == ']') ADVANCE(52); - if (lookahead == '`') ADVANCE(22); - if (lookahead == '{') ADVANCE(59); - if (lookahead == '}') ADVANCE(61); + if (lookahead == '\n') SKIP(2) + if (lookahead == '-') ADVANCE(53); + if (lookahead == '@') ADVANCE(41); + if (lookahead == '{') ADVANCE(83); if (lookahead == '\t' || - lookahead == '\n' || lookahead == '\r' || - lookahead == ' ') SKIP(2) - if (('A' <= lookahead && lookahead <= 'Z') || - ('_' <= lookahead && lookahead <= 'z')) ADVANCE(126); + lookahead == ' ') ADVANCE(81); + if (lookahead != 0) ADVANCE(84); END_STATE(); case 3: - if (lookahead == '!') ADVANCE(19); - if (lookahead == '"') ADVANCE(6); - if (lookahead == '\'') ADVANCE(14); - if (lookahead == '(') ADVANCE(69); - if (lookahead == ')') ADVANCE(70); - if (lookahead == '+') ADVANCE(64); - if (lookahead == ',') ADVANCE(51); - if (lookahead == '/') ADVANCE(65); - if (lookahead == '=') ADVANCE(21); - if (lookahead == '`') ADVANCE(22); - if (lookahead == 'i') ADVANCE(101); - if (lookahead == '{') ADVANCE(59); - if (lookahead == '}') ADVANCE(61); + if (lookahead == '\n') SKIP(3) + if (lookahead == '{') ADVANCE(83); if (lookahead == '\t' || - lookahead == '\n' || lookahead == '\r' || - lookahead == ' ') SKIP(3) - if (('A' <= lookahead && lookahead <= 'Z') || - ('_' <= lookahead && lookahead <= 'z')) ADVANCE(126); + lookahead == ' ') ADVANCE(82); + if (lookahead != 0) ADVANCE(84); END_STATE(); case 4: - if (lookahead == '"') ADVANCE(6); - if (lookahead == '\'') ADVANCE(14); - if (lookahead == '(') ADVANCE(69); - if (lookahead == ')') ADVANCE(70); - if (lookahead == '+') ADVANCE(64); - if (lookahead == '/') ADVANCE(65); - if (lookahead == '`') ADVANCE(22); - if (lookahead == 'i') ADVANCE(101); - if (lookahead == '}') ADVANCE(39); + if (lookahead == '\n') SKIP(4) + if (lookahead == '\'') ADVANCE(65); if (lookahead == '\t' || - lookahead == '\n' || lookahead == '\r' || - lookahead == ' ') SKIP(4) - if (('A' <= lookahead && lookahead <= 'Z') || - ('_' <= lookahead && lookahead <= 'z')) ADVANCE(126); + lookahead == ' ') ADVANCE(64); + if (lookahead != 0) ADVANCE(63); END_STATE(); case 5: - if (lookahead == '"') ADVANCE(6); - if (lookahead == '\'') ADVANCE(14); - if (lookahead == '[') ADVANCE(50); - if (lookahead == 'e') ADVANCE(31); - if (lookahead == 'f') ADVANCE(27); - if (lookahead == 't') ADVANCE(33); + if (lookahead == '\n') SKIP(5) + if (lookahead == '`') ADVANCE(66); if (lookahead == '\t' || - lookahead == '\n' || lookahead == '\r' || - lookahead == ' ') SKIP(5) + lookahead == ' ') ADVANCE(67); + if (lookahead != 0) ADVANCE(63); END_STATE(); case 6: - if (lookahead == '"') ADVANCE(131); - if (lookahead != 0) ADVANCE(7); + if (lookahead == '\n') SKIP(6) + if (lookahead == '`') ADVANCE(61); + if (lookahead == '\t' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(68); + if (lookahead != 0) ADVANCE(63); END_STATE(); case 7: - if (lookahead == '"') ADVANCE(130); - if (lookahead != 0) ADVANCE(7); + if (lookahead == '!') ADVANCE(16); + if (lookahead == '"') ADVANCE(74); + if (lookahead == '#') ADVANCE(55); + if (lookahead == '$') ADVANCE(44); + if (lookahead == '\'') ADVANCE(13); + if (lookahead == '(') ADVANCE(37); + if (lookahead == ')') ADVANCE(38); + if (lookahead == '*') ADVANCE(47); + if (lookahead == '+') ADVANCE(30); + if (lookahead == ',') ADVANCE(27); + if (lookahead == '-') ADVANCE(52); + if (lookahead == '/') ADVANCE(29); + if (lookahead == ':') ADVANCE(43); + if (lookahead == '=') ADVANCE(46); + if (lookahead == '?') ADVANCE(25); + if (lookahead == '@') ADVANCE(40); + if (lookahead == '[') ADVANCE(26); + if (lookahead == '\\') ADVANCE(20); + if (lookahead == ']') ADVANCE(28); + if (lookahead == '`') ADVANCE(62); + if (lookahead == '{') ADVANCE(32); + if (lookahead == '}') ADVANCE(33); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(7); + if (('A' <= lookahead && lookahead <= 'Z') || + ('_' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 8: - if (lookahead == '"') ADVANCE(10); - if (lookahead != 0 && - lookahead != '(') ADVANCE(8); + if (lookahead == '!') ADVANCE(16); + if (lookahead == '"') ADVANCE(74); + if (lookahead == '#') ADVANCE(55); + if (lookahead == '$') ADVANCE(44); + if (lookahead == '\'') ADVANCE(13); + if (lookahead == '(') ADVANCE(37); + if (lookahead == ')') ADVANCE(38); + if (lookahead == '*') ADVANCE(47); + if (lookahead == '+') ADVANCE(30); + if (lookahead == ',') ADVANCE(27); + if (lookahead == '/') ADVANCE(29); + if (lookahead == ':') ADVANCE(42); + if (lookahead == '=') ADVANCE(17); + if (lookahead == '@') ADVANCE(39); + if (lookahead == '[') ADVANCE(26); + if (lookahead == ']') ADVANCE(28); + if (lookahead == '`') ADVANCE(62); + if (lookahead == '{') ADVANCE(31); + if (lookahead == '}') ADVANCE(19); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(8); + if (('A' <= lookahead && lookahead <= 'Z') || + ('_' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 9: - if (lookahead == '"') ADVANCE(132); + if (lookahead == '"') ADVANCE(10); END_STATE(); case 10: - if (lookahead == '"') ADVANCE(9); + if (lookahead == '"') ADVANCE(77); END_STATE(); case 11: - if (lookahead == '#') ADVANCE(83); + if (lookahead == '"') ADVANCE(73); + if (lookahead == '\\') ADVANCE(20); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || - lookahead == ' ') SKIP(11) - if (lookahead != 0) ADVANCE(82); + lookahead == ' ') ADVANCE(75); + if (lookahead != 0) ADVANCE(76); END_STATE(); case 12: - if (lookahead == '#') ADVANCE(84); + if (lookahead == '"') ADVANCE(9); + if (lookahead == '\\') ADVANCE(20); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || - lookahead == ' ') SKIP(12) - if (lookahead != 0) ADVANCE(82); + lookahead == ' ') ADVANCE(75); + if (lookahead != 0) ADVANCE(76); END_STATE(); case 13: - if (lookahead == '$') ADVANCE(75); - if (lookahead == '*') ADVANCE(78); - if (lookahead == '+') ADVANCE(64); - if (lookahead == ':') ADVANCE(72); - if (lookahead == '=') ADVANCE(76); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(13) - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + if (lookahead == '\'') ADVANCE(71); + if (lookahead != 0) ADVANCE(15); END_STATE(); case 14: - if (lookahead == '\'') ADVANCE(128); - if (lookahead != 0) ADVANCE(15); + if (lookahead == '\'') ADVANCE(72); END_STATE(); case 15: - if (lookahead == '\'') ADVANCE(127); + if (lookahead == '\'') ADVANCE(70); if (lookahead != 0) ADVANCE(15); END_STATE(); case 16: - if (lookahead == '\'') ADVANCE(18); - if (lookahead != 0 && - lookahead != '(' && - lookahead != ')') ADVANCE(16); + if (lookahead == '=') ADVANCE(35); END_STATE(); case 17: - if (lookahead == '\'') ADVANCE(129); + if (lookahead == '=') ADVANCE(34); + if (lookahead == '~') ADVANCE(36); END_STATE(); case 18: - if (lookahead == '\'') ADVANCE(17); + if (lookahead == '`') ADVANCE(69); END_STATE(); case 19: - if (lookahead == '=') ADVANCE(67); + if (lookahead == '}') ADVANCE(59); END_STATE(); case 20: - if (lookahead == '=') ADVANCE(44); + if (lookahead == '"' || + lookahead == '\\' || + lookahead == 'n' || + lookahead == 'r' || + lookahead == 't') ADVANCE(78); END_STATE(); case 21: - if (lookahead == '=') ADVANCE(66); - if (lookahead == '~') ADVANCE(68); + if (eof) ADVANCE(23); + if (lookahead == '!') ADVANCE(16); + if (lookahead == '"') ADVANCE(74); + if (lookahead == '#') ADVANCE(55); + if (lookahead == '$') ADVANCE(44); + if (lookahead == '\'') ADVANCE(13); + if (lookahead == '(') ADVANCE(37); + if (lookahead == ')') ADVANCE(38); + if (lookahead == '*') ADVANCE(47); + if (lookahead == '+') ADVANCE(30); + if (lookahead == ',') ADVANCE(27); + if (lookahead == '/') ADVANCE(29); + if (lookahead == ':') ADVANCE(42); + if (lookahead == '=') ADVANCE(17); + if (lookahead == '@') ADVANCE(39); + if (lookahead == '[') ADVANCE(26); + if (lookahead == ']') ADVANCE(28); + if (lookahead == '`') ADVANCE(62); + if (lookahead == '{') ADVANCE(31); + if (lookahead == '}') ADVANCE(19); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(8); + if (('A' <= lookahead && lookahead <= 'Z') || + ('_' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 22: - if (lookahead == '`') ADVANCE(89); - if (lookahead != 0) ADVANCE(23); + if (eof) ADVANCE(23); + if (lookahead == '"') ADVANCE(74); + if (lookahead == '#') ADVANCE(56); + if (lookahead == '$') ADVANCE(44); + if (lookahead == '\'') ADVANCE(13); + if (lookahead == '(') ADVANCE(37); + if (lookahead == '*') ADVANCE(47); + if (lookahead == '+') ADVANCE(30); + if (lookahead == '/') ADVANCE(29); + if (lookahead == ':') ADVANCE(43); + if (lookahead == '=') ADVANCE(45); + if (lookahead == '@') ADVANCE(39); + if (lookahead == '[') ADVANCE(26); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(22) + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 23: - if (lookahead == '`') ADVANCE(88); - if (lookahead != 0) ADVANCE(23); + ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); case 24: - if (lookahead == '`') ADVANCE(26); - if (lookahead != 0 && - lookahead != '(' && - lookahead != ')') ADVANCE(24); + ACCEPT_TOKEN(anon_sym_COLON_EQ); END_STATE(); case 25: - if (lookahead == '`') ADVANCE(90); + ACCEPT_TOKEN(anon_sym_QMARK); END_STATE(); case 26: - if (lookahead == '`') ADVANCE(25); + ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); case 27: - if (lookahead == 'a') ADVANCE(32); + ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); case 28: - if (lookahead == 'e') ADVANCE(62); + ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); case 29: - if (lookahead == 'e') ADVANCE(54); + ACCEPT_TOKEN(anon_sym_SLASH); END_STATE(); case 30: - if (lookahead == 'e') ADVANCE(56); + ACCEPT_TOKEN(anon_sym_PLUS); END_STATE(); case 31: - if (lookahead == 'l') ADVANCE(34); + ACCEPT_TOKEN(anon_sym_LBRACE); END_STATE(); case 32: - if (lookahead == 'l') ADVANCE(36); + ACCEPT_TOKEN(anon_sym_LBRACE); + if (lookahead == '{') ADVANCE(57); END_STATE(); case 33: - if (lookahead == 'r') ADVANCE(37); + ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); case 34: - if (lookahead == 's') ADVANCE(28); + ACCEPT_TOKEN(anon_sym_EQ_EQ); END_STATE(); case 35: - if (lookahead == 's') ADVANCE(102); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(35) - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + ACCEPT_TOKEN(anon_sym_BANG_EQ); END_STATE(); case 36: - if (lookahead == 's') ADVANCE(30); + ACCEPT_TOKEN(anon_sym_EQ_TILDE); END_STATE(); case 37: - if (lookahead == 'u') ADVANCE(29); + ACCEPT_TOKEN(anon_sym_LPAREN); END_STATE(); case 38: - if (lookahead == '{') ADVANCE(133); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(38) - if (lookahead != 0) ADVANCE(134); + ACCEPT_TOKEN(anon_sym_RPAREN); END_STATE(); case 39: - if (lookahead == '}') ADVANCE(87); + ACCEPT_TOKEN(anon_sym_AT); END_STATE(); case 40: - if (eof) ADVANCE(42); - if (lookahead == '!') ADVANCE(19); - if (lookahead == '#') ADVANCE(83); - if (lookahead == ')') ADVANCE(70); - if (lookahead == '+') ADVANCE(64); - if (lookahead == ',') ADVANCE(51); - if (lookahead == '/') ADVANCE(65); - if (lookahead == '=') ADVANCE(21); - if (lookahead == '@') ADVANCE(71); - if (lookahead == '[') ADVANCE(50); - if (lookahead == 'a') ADVANCE(104); - if (lookahead == 'e') ADVANCE(125); - if (lookahead == 'i') ADVANCE(109); - if (lookahead == 'm') ADVANCE(110); - if (lookahead == 's') ADVANCE(95); - if (lookahead == '{') ADVANCE(59); - if (lookahead == '}') ADVANCE(61); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(40) - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('b' <= lookahead && lookahead <= 'z')) ADVANCE(126); + ACCEPT_TOKEN(anon_sym_AT); + if (lookahead == '-') ADVANCE(48); END_STATE(); case 41: - if (eof) ADVANCE(42); - if (lookahead == '"') ADVANCE(6); - if (lookahead == '#') ADVANCE(84); - if (lookahead == '\'') ADVANCE(14); - if (lookahead == '(') ADVANCE(69); - if (lookahead == '+') ADVANCE(64); - if (lookahead == '/') ADVANCE(65); - if (lookahead == ':') ADVANCE(20); - if (lookahead == '@') ADVANCE(71); - if (lookahead == '[') ADVANCE(50); - if (lookahead == 'a') ADVANCE(104); - if (lookahead == 'e') ADVANCE(125); - if (lookahead == 'i') ADVANCE(109); - if (lookahead == 'm') ADVANCE(110); - if (lookahead == 's') ADVANCE(95); - if (lookahead == '}') ADVANCE(39); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(41) - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('b' <= lookahead && lookahead <= 'z')) ADVANCE(126); + ACCEPT_TOKEN(anon_sym_AT); + if (lookahead == '-') ADVANCE(49); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(84); END_STATE(); case 42: - ACCEPT_TOKEN(ts_builtin_sym_end); + ACCEPT_TOKEN(anon_sym_COLON); END_STATE(); case 43: - ACCEPT_TOKEN(anon_sym_alias); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + ACCEPT_TOKEN(anon_sym_COLON); + if (lookahead == '=') ADVANCE(24); END_STATE(); case 44: - ACCEPT_TOKEN(anon_sym_COLON_EQ); + ACCEPT_TOKEN(anon_sym_DOLLAR); END_STATE(); case 45: - ACCEPT_TOKEN(anon_sym_export); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + ACCEPT_TOKEN(anon_sym_EQ); END_STATE(); case 46: - ACCEPT_TOKEN(anon_sym_import); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + ACCEPT_TOKEN(anon_sym_EQ); + if (lookahead == '=') ADVANCE(34); + if (lookahead == '~') ADVANCE(36); END_STATE(); case 47: - ACCEPT_TOKEN(anon_sym_QMARK); + ACCEPT_TOKEN(anon_sym_STAR); END_STATE(); case 48: - ACCEPT_TOKEN(anon_sym_mod); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + ACCEPT_TOKEN(anon_sym_AT_DASH); END_STATE(); case 49: - ACCEPT_TOKEN(anon_sym_set); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + ACCEPT_TOKEN(anon_sym_AT_DASH); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(84); END_STATE(); case 50: - ACCEPT_TOKEN(anon_sym_LBRACK); + ACCEPT_TOKEN(anon_sym_DASH_AT); END_STATE(); case 51: - ACCEPT_TOKEN(anon_sym_COMMA); + ACCEPT_TOKEN(anon_sym_DASH_AT); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(84); END_STATE(); case 52: - ACCEPT_TOKEN(anon_sym_RBRACK); + ACCEPT_TOKEN(anon_sym_DASH); + if (lookahead == '@') ADVANCE(50); END_STATE(); case 53: - ACCEPT_TOKEN(anon_sym_shell); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + ACCEPT_TOKEN(anon_sym_DASH); + if (lookahead == '@') ADVANCE(51); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(84); END_STATE(); case 54: - ACCEPT_TOKEN(anon_sym_true); + ACCEPT_TOKEN(aux_sym_shebang_token1); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(54); END_STATE(); case 55: - ACCEPT_TOKEN(anon_sym_true); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + ACCEPT_TOKEN(aux_sym_comment_token1); + if (lookahead == '!') ADVANCE(54); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(56); END_STATE(); case 56: - ACCEPT_TOKEN(anon_sym_false); + ACCEPT_TOKEN(aux_sym_comment_token1); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(56); END_STATE(); case 57: - ACCEPT_TOKEN(anon_sym_false); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + ACCEPT_TOKEN(anon_sym_LBRACE_LBRACE); END_STATE(); case 58: - ACCEPT_TOKEN(anon_sym_if); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + ACCEPT_TOKEN(anon_sym_LBRACE_LBRACE); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(84); END_STATE(); case 59: - ACCEPT_TOKEN(anon_sym_LBRACE); + ACCEPT_TOKEN(anon_sym_RBRACE_RBRACE); END_STATE(); case 60: - ACCEPT_TOKEN(anon_sym_LBRACE); - if (lookahead == '{') ADVANCE(85); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == '-' || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 61: - ACCEPT_TOKEN(anon_sym_RBRACE); + ACCEPT_TOKEN(anon_sym_BQUOTE); END_STATE(); case 62: - ACCEPT_TOKEN(anon_sym_else); + ACCEPT_TOKEN(anon_sym_BQUOTE); + if (lookahead == '`') ADVANCE(18); END_STATE(); case 63: - ACCEPT_TOKEN(anon_sym_else); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + ACCEPT_TOKEN(aux_sym_backticked_token1); END_STATE(); case 64: - ACCEPT_TOKEN(anon_sym_PLUS); + ACCEPT_TOKEN(aux_sym_backticked_token1); + if (lookahead == '\'') ADVANCE(65); + if (lookahead == '\t' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(64); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(63); END_STATE(); case 65: - ACCEPT_TOKEN(anon_sym_SLASH); + ACCEPT_TOKEN(aux_sym_backticked_token1); + if (lookahead == '\'') ADVANCE(14); END_STATE(); case 66: - ACCEPT_TOKEN(anon_sym_EQ_EQ); + ACCEPT_TOKEN(aux_sym_backticked_token1); + if (lookahead == '`') ADVANCE(18); END_STATE(); case 67: - ACCEPT_TOKEN(anon_sym_BANG_EQ); + ACCEPT_TOKEN(aux_sym_backticked_token1); + if (lookahead == '`') ADVANCE(66); + if (lookahead == '\t' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(67); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(63); END_STATE(); case 68: - ACCEPT_TOKEN(anon_sym_EQ_TILDE); + ACCEPT_TOKEN(aux_sym_backticked_token1); + if (lookahead == '`') ADVANCE(61); + if (lookahead == '\t' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(68); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(63); END_STATE(); case 69: - ACCEPT_TOKEN(anon_sym_LPAREN); + ACCEPT_TOKEN(anon_sym_BQUOTE_BQUOTE_BQUOTE); END_STATE(); case 70: - ACCEPT_TOKEN(anon_sym_RPAREN); + ACCEPT_TOKEN(sym_raw_string); END_STATE(); case 71: - ACCEPT_TOKEN(anon_sym_AT); + ACCEPT_TOKEN(sym_raw_string); + if (lookahead == '\'') ADVANCE(72); END_STATE(); case 72: - ACCEPT_TOKEN(anon_sym_COLON); + ACCEPT_TOKEN(anon_sym_SQUOTE_SQUOTE_SQUOTE); END_STATE(); case 73: - ACCEPT_TOKEN(anon_sym_COLON); - if (lookahead == '=') ADVANCE(44); + ACCEPT_TOKEN(anon_sym_DQUOTE); END_STATE(); case 74: - ACCEPT_TOKEN(anon_sym_); - if (lookahead == ' ') ADVANCE(74); + ACCEPT_TOKEN(anon_sym_DQUOTE); + if (lookahead == '"') ADVANCE(10); END_STATE(); case 75: - ACCEPT_TOKEN(anon_sym_DOLLAR); + ACCEPT_TOKEN(aux_sym_basic_string_token1); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(75); + if (lookahead != 0 && + lookahead != '"' && + lookahead != '\\') ADVANCE(76); END_STATE(); case 76: - ACCEPT_TOKEN(anon_sym_EQ); + ACCEPT_TOKEN(aux_sym_basic_string_token1); + if (lookahead != 0 && + lookahead != '"' && + lookahead != '\\') ADVANCE(76); END_STATE(); case 77: - ACCEPT_TOKEN(anon_sym_EQ); - if (lookahead == '=') ADVANCE(66); - if (lookahead == '~') ADVANCE(68); + ACCEPT_TOKEN(anon_sym_DQUOTE_DQUOTE_DQUOTE); END_STATE(); case 78: - ACCEPT_TOKEN(anon_sym_STAR); + ACCEPT_TOKEN(sym_string_escape); END_STATE(); case 79: - ACCEPT_TOKEN(anon_sym_POUND_BANG); - if (lookahead != 0 && - lookahead != '\n') ADVANCE(84); - END_STATE(); - case 80: - ACCEPT_TOKEN(aux_sym_shebang_token1); + ACCEPT_TOKEN(sym_text); + if (lookahead == '\n') ADVANCE(1); + if (lookahead == '#') ADVANCE(80); + if (lookahead == '-') ADVANCE(53); + if (lookahead == '@') ADVANCE(41); + if (lookahead == '{') ADVANCE(83); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') ADVANCE(80); + lookahead == ' ') ADVANCE(79); + if (lookahead != 0) ADVANCE(84); + END_STATE(); + case 80: + ACCEPT_TOKEN(sym_text); + if (lookahead == '!') ADVANCE(54); if (lookahead != 0 && - lookahead != '\n') ADVANCE(81); + lookahead != '\n') ADVANCE(84); END_STATE(); case 81: - ACCEPT_TOKEN(aux_sym_shebang_token1); + ACCEPT_TOKEN(sym_text); + if (lookahead == '-') ADVANCE(53); + if (lookahead == '@') ADVANCE(41); + if (lookahead == '{') ADVANCE(83); + if (lookahead == '\t' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(81); if (lookahead != 0 && - lookahead != '\n') ADVANCE(81); + lookahead != '\n') ADVANCE(84); END_STATE(); case 82: - ACCEPT_TOKEN(sym_notcomment); + ACCEPT_TOKEN(sym_text); + if (lookahead == '{') ADVANCE(83); + if (lookahead == '\t' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(82); if (lookahead != 0 && - lookahead != '\t' && - lookahead != '\n' && - lookahead != '\r' && - lookahead != ' ') ADVANCE(82); + lookahead != '\n') ADVANCE(84); END_STATE(); case 83: - ACCEPT_TOKEN(aux_sym_comment_token1); - if (lookahead == '!') ADVANCE(79); + ACCEPT_TOKEN(sym_text); + if (lookahead == '{') ADVANCE(58); if (lookahead != 0 && lookahead != '\n') ADVANCE(84); END_STATE(); case 84: - ACCEPT_TOKEN(aux_sym_comment_token1); + ACCEPT_TOKEN(sym_text); if (lookahead != 0 && lookahead != '\n') ADVANCE(84); END_STATE(); - case 85: - ACCEPT_TOKEN(anon_sym_LBRACE_LBRACE); + default: + return false; + } +} + +static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { + START_LEXER(); + eof = lexer->eof(lexer); + switch (state) { + case 0: + if (lookahead == 'a') ADVANCE(1); + if (lookahead == 'e') ADVANCE(2); + if (lookahead == 'f') ADVANCE(3); + if (lookahead == 'i') ADVANCE(4); + if (lookahead == 'm') ADVANCE(5); + if (lookahead == 's') ADVANCE(6); + if (lookahead == 't') ADVANCE(7); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(0) END_STATE(); - case 86: - ACCEPT_TOKEN(anon_sym_LBRACE_LBRACE); - if (lookahead != 0 && - lookahead != '\t' && - lookahead != '\n' && - lookahead != '\r' && - lookahead != ' ') ADVANCE(134); + case 1: + if (lookahead == 'l') ADVANCE(8); END_STATE(); - case 87: - ACCEPT_TOKEN(anon_sym_RBRACE_RBRACE); + case 2: + if (lookahead == 'l') ADVANCE(9); + if (lookahead == 'x') ADVANCE(10); END_STATE(); - case 88: - ACCEPT_TOKEN(sym_BACKTICK); + case 3: + if (lookahead == 'a') ADVANCE(11); END_STATE(); - case 89: - ACCEPT_TOKEN(sym_BACKTICK); - if (lookahead == '`') ADVANCE(24); + case 4: + if (lookahead == 'f') ADVANCE(12); + if (lookahead == 'm') ADVANCE(13); END_STATE(); - case 90: - ACCEPT_TOKEN(sym_INDENTED_BACKTICK); + case 5: + if (lookahead == 'o') ADVANCE(14); END_STATE(); - case 91: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 'a') ADVANCE(108); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('b' <= lookahead && lookahead <= 'z')) ADVANCE(126); + case 6: + if (lookahead == 'e') ADVANCE(15); + if (lookahead == 'h') ADVANCE(16); END_STATE(); - case 92: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 'a') ADVANCE(118); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('b' <= lookahead && lookahead <= 'z')) ADVANCE(126); + case 7: + if (lookahead == 'r') ADVANCE(17); END_STATE(); - case 93: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 'd') ADVANCE(48); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + case 8: + if (lookahead == 'i') ADVANCE(18); END_STATE(); - case 94: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 'e') ADVANCE(121); - if (lookahead == 'h') ADVANCE(99); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + case 9: + if (lookahead == 's') ADVANCE(19); END_STATE(); - case 95: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 'e') ADVANCE(121); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + case 10: + if (lookahead == 'p') ADVANCE(20); END_STATE(); - case 96: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 'e') ADVANCE(63); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + case 11: + if (lookahead == 'l') ADVANCE(21); END_STATE(); - case 97: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 'e') ADVANCE(55); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + case 12: + ACCEPT_TOKEN(anon_sym_if); END_STATE(); - case 98: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 'e') ADVANCE(57); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + case 13: + if (lookahead == 'p') ADVANCE(22); END_STATE(); - case 99: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 'e') ADVANCE(107); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + case 14: + if (lookahead == 'd') ADVANCE(23); END_STATE(); - case 100: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 'f') ADVANCE(58); - if (lookahead == 'm') ADVANCE(114); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + case 15: + if (lookahead == 't') ADVANCE(24); END_STATE(); - case 101: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 'f') ADVANCE(58); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + case 16: + if (lookahead == 'e') ADVANCE(25); END_STATE(); - case 102: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 'h') ADVANCE(99); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + case 17: + if (lookahead == 'u') ADVANCE(26); END_STATE(); - case 103: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 'i') ADVANCE(92); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + case 18: + if (lookahead == 'a') ADVANCE(27); END_STATE(); - case 104: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 'l') ADVANCE(103); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + case 19: + if (lookahead == 'e') ADVANCE(28); END_STATE(); - case 105: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 'l') ADVANCE(119); - if (lookahead == 'x') ADVANCE(113); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + case 20: + if (lookahead == 'o') ADVANCE(29); END_STATE(); - case 106: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 'l') ADVANCE(53); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + case 21: + if (lookahead == 's') ADVANCE(30); END_STATE(); - case 107: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 'l') ADVANCE(106); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + case 22: + if (lookahead == 'o') ADVANCE(31); END_STATE(); - case 108: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 'l') ADVANCE(120); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + case 23: + ACCEPT_TOKEN(anon_sym_mod); END_STATE(); - case 109: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 'm') ADVANCE(114); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + case 24: + ACCEPT_TOKEN(anon_sym_set); END_STATE(); - case 110: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 'o') ADVANCE(93); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + case 25: + if (lookahead == 'l') ADVANCE(32); END_STATE(); - case 111: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 'o') ADVANCE(116); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + case 26: + if (lookahead == 'e') ADVANCE(33); END_STATE(); - case 112: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 'o') ADVANCE(117); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + case 27: + if (lookahead == 's') ADVANCE(34); END_STATE(); - case 113: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 'p') ADVANCE(111); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + case 28: + ACCEPT_TOKEN(anon_sym_else); END_STATE(); - case 114: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 'p') ADVANCE(112); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + case 29: + if (lookahead == 'r') ADVANCE(35); END_STATE(); - case 115: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 'r') ADVANCE(124); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); - END_STATE(); - case 116: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 'r') ADVANCE(122); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); - END_STATE(); - case 117: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 'r') ADVANCE(123); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); - END_STATE(); - case 118: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 's') ADVANCE(43); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); - END_STATE(); - case 119: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 's') ADVANCE(96); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); - END_STATE(); - case 120: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 's') ADVANCE(98); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); - END_STATE(); - case 121: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 't') ADVANCE(49); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); - END_STATE(); - case 122: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 't') ADVANCE(45); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); - END_STATE(); - case 123: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 't') ADVANCE(46); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); - END_STATE(); - case 124: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 'u') ADVANCE(97); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + case 30: + if (lookahead == 'e') ADVANCE(36); END_STATE(); - case 125: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == 'x') ADVANCE(113); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + case 31: + if (lookahead == 'r') ADVANCE(37); END_STATE(); - case 126: - ACCEPT_TOKEN(sym_NAME); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(126); + case 32: + if (lookahead == 'l') ADVANCE(38); END_STATE(); - case 127: - ACCEPT_TOKEN(sym_RAW_STRING); + case 33: + ACCEPT_TOKEN(anon_sym_true); END_STATE(); - case 128: - ACCEPT_TOKEN(sym_RAW_STRING); - if (lookahead == '\'') ADVANCE(16); + case 34: + ACCEPT_TOKEN(anon_sym_alias); END_STATE(); - case 129: - ACCEPT_TOKEN(sym_INDENTED_RAW_STRING); + case 35: + if (lookahead == 't') ADVANCE(39); END_STATE(); - case 130: - ACCEPT_TOKEN(sym_STRING); + case 36: + ACCEPT_TOKEN(anon_sym_false); END_STATE(); - case 131: - ACCEPT_TOKEN(sym_STRING); - if (lookahead == '"') ADVANCE(8); + case 37: + if (lookahead == 't') ADVANCE(40); END_STATE(); - case 132: - ACCEPT_TOKEN(sym_INDENTED_STRING); + case 38: + ACCEPT_TOKEN(anon_sym_shell); END_STATE(); - case 133: - ACCEPT_TOKEN(sym_TEXT); - if (lookahead == '{') ADVANCE(86); - if (lookahead != 0 && - lookahead != '\t' && - lookahead != '\n' && - lookahead != '\r' && - lookahead != ' ') ADVANCE(134); + case 39: + ACCEPT_TOKEN(anon_sym_export); END_STATE(); - case 134: - ACCEPT_TOKEN(sym_TEXT); - if (lookahead != 0 && - lookahead != '\t' && - lookahead != '\n' && - lookahead != '\r' && - lookahead != ' ') ADVANCE(134); + case 40: + ACCEPT_TOKEN(anon_sym_import); END_STATE(); default: return false; @@ -1947,271 +1999,380 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { static const TSLexMode ts_lex_modes[STATE_COUNT] = { [0] = {.lex_state = 0, .external_lex_state = 1}, - [1] = {.lex_state = 40, .external_lex_state = 2}, - [2] = {.lex_state = 41, .external_lex_state = 2}, - [3] = {.lex_state = 41, .external_lex_state = 2}, - [4] = {.lex_state = 41, .external_lex_state = 2}, - [5] = {.lex_state = 41, .external_lex_state = 2}, - [6] = {.lex_state = 2}, - [7] = {.lex_state = 3}, - [8] = {.lex_state = 3}, - [9] = {.lex_state = 3}, - [10] = {.lex_state = 3}, - [11] = {.lex_state = 41, .external_lex_state = 2}, - [12] = {.lex_state = 3}, - [13] = {.lex_state = 41, .external_lex_state = 2}, - [14] = {.lex_state = 3}, - [15] = {.lex_state = 3}, - [16] = {.lex_state = 3}, - [17] = {.lex_state = 3}, - [18] = {.lex_state = 3}, - [19] = {.lex_state = 3}, - [20] = {.lex_state = 3}, - [21] = {.lex_state = 3}, - [22] = {.lex_state = 3}, - [23] = {.lex_state = 3}, - [24] = {.lex_state = 3}, - [25] = {.lex_state = 3}, - [26] = {.lex_state = 3}, - [27] = {.lex_state = 3}, - [28] = {.lex_state = 2}, - [29] = {.lex_state = 3}, - [30] = {.lex_state = 3}, - [31] = {.lex_state = 3}, - [32] = {.lex_state = 3}, - [33] = {.lex_state = 3}, - [34] = {.lex_state = 3}, - [35] = {.lex_state = 3}, - [36] = {.lex_state = 3}, - [37] = {.lex_state = 3}, - [38] = {.lex_state = 4}, - [39] = {.lex_state = 2}, - [40] = {.lex_state = 4}, - [41] = {.lex_state = 41, .external_lex_state = 3}, - [42] = {.lex_state = 4}, - [43] = {.lex_state = 4}, - [44] = {.lex_state = 4}, - [45] = {.lex_state = 4}, - [46] = {.lex_state = 41, .external_lex_state = 3}, - [47] = {.lex_state = 41, .external_lex_state = 2}, - [48] = {.lex_state = 2}, - [49] = {.lex_state = 2}, - [50] = {.lex_state = 2}, - [51] = {.lex_state = 2}, - [52] = {.lex_state = 3}, - [53] = {.lex_state = 2}, - [54] = {.lex_state = 3}, - [55] = {.lex_state = 2}, - [56] = {.lex_state = 41, .external_lex_state = 2}, - [57] = {.lex_state = 41, .external_lex_state = 2}, - [58] = {.lex_state = 41, .external_lex_state = 2}, - [59] = {.lex_state = 41, .external_lex_state = 2}, - [60] = {.lex_state = 41, .external_lex_state = 2}, - [61] = {.lex_state = 41, .external_lex_state = 2}, - [62] = {.lex_state = 41, .external_lex_state = 2}, - [63] = {.lex_state = 41, .external_lex_state = 2}, - [64] = {.lex_state = 41, .external_lex_state = 2}, - [65] = {.lex_state = 41, .external_lex_state = 2}, - [66] = {.lex_state = 41, .external_lex_state = 2}, - [67] = {.lex_state = 41, .external_lex_state = 2}, - [68] = {.lex_state = 41, .external_lex_state = 2}, - [69] = {.lex_state = 41, .external_lex_state = 2}, - [70] = {.lex_state = 41, .external_lex_state = 2}, - [71] = {.lex_state = 41, .external_lex_state = 2}, - [72] = {.lex_state = 41, .external_lex_state = 2}, - [73] = {.lex_state = 11, .external_lex_state = 4}, - [74] = {.lex_state = 41, .external_lex_state = 2}, - [75] = {.lex_state = 41, .external_lex_state = 2}, - [76] = {.lex_state = 41, .external_lex_state = 2}, - [77] = {.lex_state = 41, .external_lex_state = 2}, - [78] = {.lex_state = 41, .external_lex_state = 2}, - [79] = {.lex_state = 41, .external_lex_state = 2}, - [80] = {.lex_state = 41, .external_lex_state = 2}, - [81] = {.lex_state = 41, .external_lex_state = 2}, - [82] = {.lex_state = 41, .external_lex_state = 2}, - [83] = {.lex_state = 41, .external_lex_state = 2}, - [84] = {.lex_state = 40}, - [85] = {.lex_state = 5}, - [86] = {.lex_state = 2}, + [1] = {.lex_state = 21, .external_lex_state = 2}, + [2] = {.lex_state = 22, .external_lex_state = 2}, + [3] = {.lex_state = 22, .external_lex_state = 2}, + [4] = {.lex_state = 22, .external_lex_state = 2}, + [5] = {.lex_state = 22, .external_lex_state = 2}, + [6] = {.lex_state = 0}, + [7] = {.lex_state = 0}, + [8] = {.lex_state = 0}, + [9] = {.lex_state = 0}, + [10] = {.lex_state = 0}, + [11] = {.lex_state = 0}, + [12] = {.lex_state = 0}, + [13] = {.lex_state = 0}, + [14] = {.lex_state = 0}, + [15] = {.lex_state = 0}, + [16] = {.lex_state = 0}, + [17] = {.lex_state = 0}, + [18] = {.lex_state = 21}, + [19] = {.lex_state = 21}, + [20] = {.lex_state = 0}, + [21] = {.lex_state = 0}, + [22] = {.lex_state = 0}, + [23] = {.lex_state = 21}, + [24] = {.lex_state = 21}, + [25] = {.lex_state = 21}, + [26] = {.lex_state = 21}, + [27] = {.lex_state = 0}, + [28] = {.lex_state = 0}, + [29] = {.lex_state = 0}, + [30] = {.lex_state = 0}, + [31] = {.lex_state = 21}, + [32] = {.lex_state = 0}, + [33] = {.lex_state = 0}, + [34] = {.lex_state = 0}, + [35] = {.lex_state = 21}, + [36] = {.lex_state = 21}, + [37] = {.lex_state = 21}, + [38] = {.lex_state = 21}, + [39] = {.lex_state = 21}, + [40] = {.lex_state = 21}, + [41] = {.lex_state = 21}, + [42] = {.lex_state = 21}, + [43] = {.lex_state = 21}, + [44] = {.lex_state = 0}, + [45] = {.lex_state = 0}, + [46] = {.lex_state = 0}, + [47] = {.lex_state = 0}, + [48] = {.lex_state = 0}, + [49] = {.lex_state = 0}, + [50] = {.lex_state = 0}, + [51] = {.lex_state = 0}, + [52] = {.lex_state = 21}, + [53] = {.lex_state = 0}, + [54] = {.lex_state = 21}, + [55] = {.lex_state = 0}, + [56] = {.lex_state = 0}, + [57] = {.lex_state = 21}, + [58] = {.lex_state = 0}, + [59] = {.lex_state = 21}, + [60] = {.lex_state = 22, .external_lex_state = 2}, + [61] = {.lex_state = 21}, + [62] = {.lex_state = 22, .external_lex_state = 2}, + [63] = {.lex_state = 21}, + [64] = {.lex_state = 21}, + [65] = {.lex_state = 21}, + [66] = {.lex_state = 21}, + [67] = {.lex_state = 0}, + [68] = {.lex_state = 0}, + [69] = {.lex_state = 1, .external_lex_state = 3}, + [70] = {.lex_state = 21}, + [71] = {.lex_state = 22, .external_lex_state = 2}, + [72] = {.lex_state = 22, .external_lex_state = 2}, + [73] = {.lex_state = 22, .external_lex_state = 2}, + [74] = {.lex_state = 2, .external_lex_state = 3}, + [75] = {.lex_state = 22, .external_lex_state = 2}, + [76] = {.lex_state = 22, .external_lex_state = 2}, + [77] = {.lex_state = 22, .external_lex_state = 2}, + [78] = {.lex_state = 2, .external_lex_state = 3}, + [79] = {.lex_state = 22, .external_lex_state = 4}, + [80] = {.lex_state = 2, .external_lex_state = 3}, + [81] = {.lex_state = 2, .external_lex_state = 3}, + [82] = {.lex_state = 22, .external_lex_state = 4}, + [83] = {.lex_state = 22, .external_lex_state = 2}, + [84] = {.lex_state = 0}, + [85] = {.lex_state = 0}, + [86] = {.lex_state = 0}, [87] = {.lex_state = 0}, [88] = {.lex_state = 0}, - [89] = {.lex_state = 0}, - [90] = {.lex_state = 0}, - [91] = {.lex_state = 12}, - [92] = {.lex_state = 1, .external_lex_state = 2}, - [93] = {.lex_state = 0}, - [94] = {.lex_state = 1, .external_lex_state = 2}, - [95] = {.lex_state = 12, .external_lex_state = 4}, - [96] = {.lex_state = 12, .external_lex_state = 4}, - [97] = {.lex_state = 2}, - [98] = {.lex_state = 2}, - [99] = {.lex_state = 1, .external_lex_state = 2}, - [100] = {.lex_state = 12, .external_lex_state = 4}, - [101] = {.lex_state = 2}, - [102] = {.lex_state = 2, .external_lex_state = 2}, - [103] = {.lex_state = 0}, - [104] = {.lex_state = 2}, - [105] = {.lex_state = 0}, - [106] = {.lex_state = 13}, - [107] = {.lex_state = 2, .external_lex_state = 2}, - [108] = {.lex_state = 13}, - [109] = {.lex_state = 0}, - [110] = {.lex_state = 2, .external_lex_state = 2}, - [111] = {.lex_state = 0}, - [112] = {.lex_state = 38, .external_lex_state = 2}, - [113] = {.lex_state = 2}, - [114] = {.lex_state = 2, .external_lex_state = 2}, - [115] = {.lex_state = 2, .external_lex_state = 2}, - [116] = {.lex_state = 2}, - [117] = {.lex_state = 41, .external_lex_state = 2}, - [118] = {.lex_state = 38, .external_lex_state = 2}, - [119] = {.lex_state = 41, .external_lex_state = 2}, - [120] = {.lex_state = 38, .external_lex_state = 2}, - [121] = {.lex_state = 0}, + [89] = {.lex_state = 22, .external_lex_state = 2}, + [90] = {.lex_state = 22, .external_lex_state = 2}, + [91] = {.lex_state = 0}, + [92] = {.lex_state = 22, .external_lex_state = 2}, + [93] = {.lex_state = 22, .external_lex_state = 2}, + [94] = {.lex_state = 22, .external_lex_state = 2}, + [95] = {.lex_state = 22, .external_lex_state = 2}, + [96] = {.lex_state = 22, .external_lex_state = 2}, + [97] = {.lex_state = 22, .external_lex_state = 2}, + [98] = {.lex_state = 22, .external_lex_state = 2}, + [99] = {.lex_state = 0}, + [100] = {.lex_state = 0}, + [101] = {.lex_state = 22, .external_lex_state = 2}, + [102] = {.lex_state = 22, .external_lex_state = 2}, + [103] = {.lex_state = 22, .external_lex_state = 2}, + [104] = {.lex_state = 22, .external_lex_state = 2}, + [105] = {.lex_state = 22, .external_lex_state = 2}, + [106] = {.lex_state = 22, .external_lex_state = 2}, + [107] = {.lex_state = 22, .external_lex_state = 2}, + [108] = {.lex_state = 22, .external_lex_state = 2}, + [109] = {.lex_state = 22, .external_lex_state = 2}, + [110] = {.lex_state = 22, .external_lex_state = 2}, + [111] = {.lex_state = 22, .external_lex_state = 2}, + [112] = {.lex_state = 0}, + [113] = {.lex_state = 22, .external_lex_state = 2}, + [114] = {.lex_state = 22, .external_lex_state = 2}, + [115] = {.lex_state = 0}, + [116] = {.lex_state = 22, .external_lex_state = 2}, + [117] = {.lex_state = 22, .external_lex_state = 2}, + [118] = {.lex_state = 22, .external_lex_state = 2}, + [119] = {.lex_state = 22, .external_lex_state = 2}, + [120] = {.lex_state = 22, .external_lex_state = 2}, + [121] = {.lex_state = 22, .external_lex_state = 2}, [122] = {.lex_state = 0}, - [123] = {.lex_state = 41, .external_lex_state = 2}, - [124] = {.lex_state = 41, .external_lex_state = 2}, - [125] = {.lex_state = 41, .external_lex_state = 2}, - [126] = {.lex_state = 41, .external_lex_state = 2}, - [127] = {.lex_state = 41, .external_lex_state = 2}, - [128] = {.lex_state = 41, .external_lex_state = 2}, - [129] = {.lex_state = 41, .external_lex_state = 2}, - [130] = {.lex_state = 41, .external_lex_state = 2}, - [131] = {.lex_state = 41, .external_lex_state = 2}, - [132] = {.lex_state = 41, .external_lex_state = 2}, - [133] = {.lex_state = 41, .external_lex_state = 2}, - [134] = {.lex_state = 41, .external_lex_state = 2}, - [135] = {.lex_state = 41}, - [136] = {.lex_state = 41, .external_lex_state = 2}, - [137] = {.lex_state = 41, .external_lex_state = 2}, - [138] = {.lex_state = 41, .external_lex_state = 2}, - [139] = {.lex_state = 41, .external_lex_state = 2}, - [140] = {.lex_state = 41, .external_lex_state = 2}, - [141] = {.lex_state = 41, .external_lex_state = 2}, - [142] = {.lex_state = 41, .external_lex_state = 2}, - [143] = {.lex_state = 12, .external_lex_state = 4}, - [144] = {.lex_state = 12, .external_lex_state = 4}, - [145] = {.lex_state = 12, .external_lex_state = 4}, - [146] = {.lex_state = 41}, - [147] = {.lex_state = 2}, - [148] = {.lex_state = 12, .external_lex_state = 4}, - [149] = {.lex_state = 2}, - [150] = {.lex_state = 2, .external_lex_state = 2}, - [151] = {.lex_state = 40}, - [152] = {.lex_state = 2, .external_lex_state = 2}, - [153] = {.lex_state = 38, .external_lex_state = 2}, - [154] = {.lex_state = 35}, - [155] = {.lex_state = 41, .external_lex_state = 2}, - [156] = {.lex_state = 2}, - [157] = {.lex_state = 12}, - [158] = {.lex_state = 0}, - [159] = {.lex_state = 41, .external_lex_state = 2}, - [160] = {.lex_state = 41, .external_lex_state = 2}, - [161] = {.lex_state = 2}, - [162] = {.lex_state = 2}, - [163] = {.lex_state = 2}, - [164] = {.lex_state = 2}, - [165] = {.lex_state = 2}, - [166] = {.lex_state = 0}, + [123] = {.lex_state = 0}, + [124] = {.lex_state = 0}, + [125] = {.lex_state = 21}, + [126] = {.lex_state = 21}, + [127] = {.lex_state = 0}, + [128] = {.lex_state = 0}, + [129] = {.lex_state = 0}, + [130] = {.lex_state = 21}, + [131] = {.lex_state = 2, .external_lex_state = 3}, + [132] = {.lex_state = 0}, + [133] = {.lex_state = 0}, + [134] = {.lex_state = 2, .external_lex_state = 3}, + [135] = {.lex_state = 2, .external_lex_state = 3}, + [136] = {.lex_state = 2, .external_lex_state = 3}, + [137] = {.lex_state = 0}, + [138] = {.lex_state = 0}, + [139] = {.lex_state = 22}, + [140] = {.lex_state = 22, .external_lex_state = 2}, + [141] = {.lex_state = 0}, + [142] = {.lex_state = 22, .external_lex_state = 2}, + [143] = {.lex_state = 22, .external_lex_state = 2}, + [144] = {.lex_state = 22}, + [145] = {.lex_state = 0}, + [146] = {.lex_state = 21}, + [147] = {.lex_state = 0}, + [148] = {.lex_state = 0}, + [149] = {.lex_state = 0}, + [150] = {.lex_state = 22, .external_lex_state = 2}, + [151] = {.lex_state = 22, .external_lex_state = 2}, + [152] = {.lex_state = 22, .external_lex_state = 2}, + [153] = {.lex_state = 0, .external_lex_state = 2}, + [154] = {.lex_state = 21}, + [155] = {.lex_state = 3, .external_lex_state = 2}, + [156] = {.lex_state = 0, .external_lex_state = 2}, + [157] = {.lex_state = 0}, + [158] = {.lex_state = 22, .external_lex_state = 2}, + [159] = {.lex_state = 3, .external_lex_state = 2}, + [160] = {.lex_state = 3, .external_lex_state = 2}, + [161] = {.lex_state = 0, .external_lex_state = 2}, + [162] = {.lex_state = 0}, + [163] = {.lex_state = 3, .external_lex_state = 2}, + [164] = {.lex_state = 0, .external_lex_state = 2}, + [165] = {.lex_state = 0, .external_lex_state = 2}, + [166] = {.lex_state = 0, .external_lex_state = 2}, [167] = {.lex_state = 0, .external_lex_state = 2}, - [168] = {.lex_state = 5}, + [168] = {.lex_state = 0}, [169] = {.lex_state = 0}, - [170] = {.lex_state = 40}, - [171] = {.lex_state = 0, .external_lex_state = 2}, - [172] = {.lex_state = 40}, - [173] = {.lex_state = 0}, - [174] = {.lex_state = 0}, - [175] = {.lex_state = 0, .external_lex_state = 2}, - [176] = {.lex_state = 0, .external_lex_state = 4}, + [170] = {.lex_state = 22, .external_lex_state = 2}, + [171] = {.lex_state = 22, .external_lex_state = 2}, + [172] = {.lex_state = 11}, + [173] = {.lex_state = 22, .external_lex_state = 2}, + [174] = {.lex_state = 11}, + [175] = {.lex_state = 22, .external_lex_state = 2}, + [176] = {.lex_state = 12}, [177] = {.lex_state = 0}, [178] = {.lex_state = 0}, [179] = {.lex_state = 0}, - [180] = {.lex_state = 0, .external_lex_state = 4}, - [181] = {.lex_state = 41}, - [182] = {.lex_state = 0}, - [183] = {.lex_state = 0}, - [184] = {.lex_state = 0}, - [185] = {.lex_state = 2}, - [186] = {.lex_state = 40}, - [187] = {.lex_state = 0, .external_lex_state = 2}, - [188] = {.lex_state = 0}, - [189] = {.lex_state = 0, .external_lex_state = 2}, - [190] = {.lex_state = 2}, - [191] = {.lex_state = 0, .external_lex_state = 2}, - [192] = {.lex_state = 0}, - [193] = {.lex_state = 0}, - [194] = {.lex_state = 41}, - [195] = {.lex_state = 2}, - [196] = {.lex_state = 41}, - [197] = {.lex_state = 0}, - [198] = {.lex_state = 0}, - [199] = {.lex_state = 0, .external_lex_state = 2}, - [200] = {.lex_state = 0, .external_lex_state = 2}, - [201] = {.lex_state = 0}, - [202] = {.lex_state = 0}, - [203] = {.lex_state = 0}, - [204] = {.lex_state = 0}, - [205] = {.lex_state = 0, .external_lex_state = 2}, - [206] = {.lex_state = 0, .external_lex_state = 2}, - [207] = {.lex_state = 0}, - [208] = {.lex_state = 0}, - [209] = {.lex_state = 0}, - [210] = {.lex_state = 0}, - [211] = {.lex_state = 80}, - [212] = {.lex_state = 0}, - [213] = {.lex_state = 0, .external_lex_state = 2}, - [214] = {.lex_state = 80}, - [215] = {.lex_state = 2}, - [216] = {.lex_state = 40}, - [217] = {.lex_state = 40}, - [218] = {.lex_state = 5}, - [219] = {.lex_state = 5}, - [220] = {.lex_state = 0}, - [221] = {.lex_state = 0}, - [222] = {.lex_state = 2}, - [223] = {.lex_state = 2}, - [224] = {.lex_state = 40}, - [225] = {.lex_state = 40}, - [226] = {.lex_state = 0}, - [227] = {.lex_state = 0}, + [180] = {.lex_state = 22, .external_lex_state = 2}, + [181] = {.lex_state = 22, .external_lex_state = 2}, + [182] = {.lex_state = 22, .external_lex_state = 2}, + [183] = {.lex_state = 12}, + [184] = {.lex_state = 22, .external_lex_state = 2}, + [185] = {.lex_state = 11}, + [186] = {.lex_state = 22, .external_lex_state = 2}, + [187] = {.lex_state = 22, .external_lex_state = 2}, + [188] = {.lex_state = 12}, + [189] = {.lex_state = 22, .external_lex_state = 2}, + [190] = {.lex_state = 11}, + [191] = {.lex_state = 22, .external_lex_state = 2}, + [192] = {.lex_state = 22, .external_lex_state = 2}, + [193] = {.lex_state = 22, .external_lex_state = 2}, + [194] = {.lex_state = 12}, + [195] = {.lex_state = 22, .external_lex_state = 2}, + [196] = {.lex_state = 22, .external_lex_state = 2}, + [197] = {.lex_state = 11}, + [198] = {.lex_state = 22, .external_lex_state = 2}, + [199] = {.lex_state = 11}, + [200] = {.lex_state = 11}, + [201] = {.lex_state = 12}, + [202] = {.lex_state = 22, .external_lex_state = 2}, + [203] = {.lex_state = 22, .external_lex_state = 2}, + [204] = {.lex_state = 22, .external_lex_state = 2}, + [205] = {.lex_state = 12}, + [206] = {.lex_state = 22, .external_lex_state = 2}, + [207] = {.lex_state = 22, .external_lex_state = 2}, + [208] = {.lex_state = 22, .external_lex_state = 2}, + [209] = {.lex_state = 22, .external_lex_state = 2}, + [210] = {.lex_state = 22, .external_lex_state = 2}, + [211] = {.lex_state = 12}, + [212] = {.lex_state = 22, .external_lex_state = 2}, + [213] = {.lex_state = 22, .external_lex_state = 2}, + [214] = {.lex_state = 22, .external_lex_state = 2}, + [215] = {.lex_state = 21}, + [216] = {.lex_state = 22, .external_lex_state = 2}, + [217] = {.lex_state = 22, .external_lex_state = 2}, + [218] = {.lex_state = 0}, + [219] = {.lex_state = 0}, + [220] = {.lex_state = 21}, + [221] = {.lex_state = 4}, + [222] = {.lex_state = 21}, + [223] = {.lex_state = 21}, + [224] = {.lex_state = 21}, + [225] = {.lex_state = 0, .external_lex_state = 2}, + [226] = {.lex_state = 5}, + [227] = {.lex_state = 6}, + [228] = {.lex_state = 6}, + [229] = {.lex_state = 5}, + [230] = {.lex_state = 6}, + [231] = {.lex_state = 0}, + [232] = {.lex_state = 5}, + [233] = {.lex_state = 6}, + [234] = {.lex_state = 0}, + [235] = {.lex_state = 0, .external_lex_state = 2}, + [236] = {.lex_state = 4}, + [237] = {.lex_state = 21}, + [238] = {.lex_state = 4}, + [239] = {.lex_state = 21}, + [240] = {.lex_state = 4}, + [241] = {.lex_state = 3, .external_lex_state = 2}, + [242] = {.lex_state = 0}, + [243] = {.lex_state = 21}, + [244] = {.lex_state = 21}, + [245] = {.lex_state = 5}, + [246] = {.lex_state = 6}, + [247] = {.lex_state = 21}, + [248] = {.lex_state = 4}, + [249] = {.lex_state = 5}, + [250] = {.lex_state = 0}, + [251] = {.lex_state = 4}, + [252] = {.lex_state = 0}, + [253] = {.lex_state = 0}, + [254] = {.lex_state = 0}, + [255] = {.lex_state = 0}, + [256] = {.lex_state = 0}, + [257] = {.lex_state = 0}, + [258] = {.lex_state = 0}, + [259] = {.lex_state = 0}, + [260] = {.lex_state = 0}, + [261] = {.lex_state = 5}, + [262] = {.lex_state = 0}, + [263] = {.lex_state = 0}, + [264] = {.lex_state = 0}, + [265] = {.lex_state = 0}, + [266] = {.lex_state = 0}, + [267] = {.lex_state = 6}, + [268] = {.lex_state = 5}, + [269] = {.lex_state = 3, .external_lex_state = 2}, + [270] = {.lex_state = 0}, + [271] = {.lex_state = 0}, + [272] = {.lex_state = 0}, + [273] = {.lex_state = 0}, + [274] = {.lex_state = 0}, + [275] = {.lex_state = 0}, + [276] = {.lex_state = 0, .external_lex_state = 2}, + [277] = {.lex_state = 0}, + [278] = {.lex_state = 0}, + [279] = {.lex_state = 0}, + [280] = {.lex_state = 21}, + [281] = {.lex_state = 0}, + [282] = {.lex_state = 4}, + [283] = {.lex_state = 6}, + [284] = {.lex_state = 21}, + [285] = {.lex_state = 0}, + [286] = {.lex_state = 0}, + [287] = {.lex_state = 0}, + [288] = {.lex_state = 0}, + [289] = {.lex_state = 21}, + [290] = {.lex_state = 21}, + [291] = {.lex_state = 21}, + [292] = {.lex_state = 21}, + [293] = {.lex_state = 22, .external_lex_state = 2}, + [294] = {.lex_state = 0}, + [295] = {.lex_state = 21}, + [296] = {.lex_state = 0}, + [297] = {.lex_state = 0}, + [298] = {.lex_state = 0}, + [299] = {.lex_state = 0}, + [300] = {.lex_state = 0}, + [301] = {.lex_state = 0}, + [302] = {.lex_state = 0}, + [303] = {.lex_state = 0}, + [304] = {.lex_state = 0}, + [305] = {.lex_state = 0}, + [306] = {.lex_state = 0}, + [307] = {.lex_state = 0}, + [308] = {.lex_state = 0}, + [309] = {.lex_state = 0, .external_lex_state = 2}, + [310] = {.lex_state = 21}, + [311] = {.lex_state = 21}, + [312] = {.lex_state = 0}, + [313] = {.lex_state = 0}, + [314] = {.lex_state = 0}, + [315] = {.lex_state = 0}, + [316] = {.lex_state = 0}, + [317] = {.lex_state = 0}, + [318] = {.lex_state = 0}, + [319] = {.lex_state = 0}, + [320] = {.lex_state = 0, .external_lex_state = 2}, + [321] = {.lex_state = 0}, + [322] = {.lex_state = 0}, + [323] = {.lex_state = 0}, + [324] = {.lex_state = 0}, + [325] = {.lex_state = 0}, + [326] = {.lex_state = 0}, + [327] = {.lex_state = 0}, + [328] = {.lex_state = 0}, + [329] = {.lex_state = 0, .external_lex_state = 2}, + [330] = {.lex_state = 0, .external_lex_state = 2}, + [331] = {.lex_state = 0}, + [332] = {.lex_state = 0}, + [333] = {.lex_state = 0}, + [334] = {.lex_state = 0}, + [335] = {.lex_state = 0, .external_lex_state = 2}, + [336] = {.lex_state = 0, .external_lex_state = 2}, + [337] = {.lex_state = 0}, }; enum { - ts_external_token_INDENT = 0, - ts_external_token_DEDENT = 1, - ts_external_token_NEWLINE = 2, - ts_external_token_LINE = 3, + ts_external_token__indent = 0, + ts_external_token__dedent = 1, + ts_external_token__newline = 2, }; static const TSSymbol ts_external_scanner_symbol_map[EXTERNAL_TOKEN_COUNT] = { - [ts_external_token_INDENT] = sym_INDENT, - [ts_external_token_DEDENT] = sym_DEDENT, - [ts_external_token_NEWLINE] = sym_NEWLINE, - [ts_external_token_LINE] = sym_LINE, + [ts_external_token__indent] = sym__indent, + [ts_external_token__dedent] = sym__dedent, + [ts_external_token__newline] = sym__newline, }; static const bool ts_external_scanner_states[5][EXTERNAL_TOKEN_COUNT] = { [1] = { - [ts_external_token_INDENT] = true, - [ts_external_token_DEDENT] = true, - [ts_external_token_NEWLINE] = true, - [ts_external_token_LINE] = true, + [ts_external_token__indent] = true, + [ts_external_token__dedent] = true, + [ts_external_token__newline] = true, }, [2] = { - [ts_external_token_NEWLINE] = true, + [ts_external_token__newline] = true, }, [3] = { - [ts_external_token_INDENT] = true, - [ts_external_token_NEWLINE] = true, + [ts_external_token__dedent] = true, + [ts_external_token__newline] = true, }, [4] = { - [ts_external_token_DEDENT] = true, + [ts_external_token__indent] = true, + [ts_external_token__newline] = true, }, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [0] = { [ts_builtin_sym_end] = ACTIONS(1), + [sym_identifier] = ACTIONS(1), [anon_sym_alias] = ACTIONS(1), [anon_sym_COLON_EQ] = ACTIONS(1), [anon_sym_export] = ACTIONS(1), @@ -2225,12 +2386,12 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_shell] = ACTIONS(1), [anon_sym_true] = ACTIONS(1), [anon_sym_false] = ACTIONS(1), + [anon_sym_SLASH] = ACTIONS(1), + [anon_sym_PLUS] = ACTIONS(1), [anon_sym_if] = ACTIONS(1), + [anon_sym_else] = ACTIONS(1), [anon_sym_LBRACE] = ACTIONS(1), [anon_sym_RBRACE] = ACTIONS(1), - [anon_sym_else] = ACTIONS(1), - [anon_sym_PLUS] = ACTIONS(1), - [anon_sym_SLASH] = ACTIONS(1), [anon_sym_EQ_EQ] = ACTIONS(1), [anon_sym_BANG_EQ] = ACTIONS(1), [anon_sym_EQ_TILDE] = ACTIONS(1), @@ -2241,86 +2402,90 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_DOLLAR] = ACTIONS(1), [anon_sym_EQ] = ACTIONS(1), [anon_sym_STAR] = ACTIONS(1), - [anon_sym_POUND_BANG] = ACTIONS(1), + [anon_sym_AT_DASH] = ACTIONS(1), + [anon_sym_DASH_AT] = ACTIONS(1), + [anon_sym_DASH] = ACTIONS(1), + [aux_sym_shebang_token1] = ACTIONS(1), [aux_sym_comment_token1] = ACTIONS(1), [anon_sym_LBRACE_LBRACE] = ACTIONS(1), - [sym_BACKTICK] = ACTIONS(1), - [sym_INDENTED_BACKTICK] = ACTIONS(1), - [sym_NAME] = ACTIONS(1), - [sym_RAW_STRING] = ACTIONS(1), - [sym_INDENTED_RAW_STRING] = ACTIONS(1), - [sym_STRING] = ACTIONS(1), - [sym_INDENTED_STRING] = ACTIONS(1), - [sym_INDENT] = ACTIONS(1), - [sym_DEDENT] = ACTIONS(1), - [sym_NEWLINE] = ACTIONS(1), - [sym_LINE] = ACTIONS(1), + [anon_sym_BQUOTE] = ACTIONS(1), + [anon_sym_BQUOTE_BQUOTE_BQUOTE] = ACTIONS(1), + [sym_raw_string] = ACTIONS(1), + [anon_sym_SQUOTE_SQUOTE_SQUOTE] = ACTIONS(1), + [anon_sym_DQUOTE] = ACTIONS(1), + [anon_sym_DQUOTE_DQUOTE_DQUOTE] = ACTIONS(1), + [sym_string_escape] = ACTIONS(1), + [sym__indent] = ACTIONS(1), + [sym__dedent] = ACTIONS(1), + [sym__newline] = ACTIONS(1), }, [1] = { - [sym_source_file] = STATE(212), + [sym_source_file] = STATE(328), [sym_item] = STATE(5), - [sym_eol] = STATE(57), - [sym_alias] = STATE(57), - [sym_assignment] = STATE(57), - [sym_export] = STATE(57), - [sym_import] = STATE(57), - [sym_module] = STATE(57), - [sym_setting] = STATE(57), - [sym_attribute] = STATE(147), - [sym_recipe] = STATE(57), - [sym_recipe_header] = STATE(205), - [sym_shebang] = STATE(4), - [sym_comment] = STATE(62), + [sym_eol] = STATE(106), + [sym_alias] = STATE(106), + [sym_assignment] = STATE(106), + [sym_export] = STATE(106), + [sym_import] = STATE(106), + [sym_module] = STATE(106), + [sym_setting] = STATE(106), + [sym_attribute] = STATE(146), + [sym_recipe] = STATE(106), + [sym_recipe_header] = STATE(320), + [sym_shebang] = STATE(2), + [sym_comment] = STATE(97), [aux_sym_source_file_repeat1] = STATE(5), + [aux_sym_recipe_repeat1] = STATE(146), [ts_builtin_sym_end] = ACTIONS(3), - [anon_sym_alias] = ACTIONS(5), - [anon_sym_export] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_mod] = ACTIONS(11), - [anon_sym_set] = ACTIONS(13), - [anon_sym_LBRACK] = ACTIONS(15), - [anon_sym_AT] = ACTIONS(17), - [anon_sym_POUND_BANG] = ACTIONS(19), - [aux_sym_comment_token1] = ACTIONS(21), - [sym_NAME] = ACTIONS(23), - [sym_NEWLINE] = ACTIONS(25), + [sym_identifier] = ACTIONS(5), + [anon_sym_alias] = ACTIONS(7), + [anon_sym_export] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_mod] = ACTIONS(13), + [anon_sym_set] = ACTIONS(15), + [anon_sym_LBRACK] = ACTIONS(17), + [anon_sym_AT] = ACTIONS(19), + [aux_sym_shebang_token1] = ACTIONS(21), + [aux_sym_comment_token1] = ACTIONS(23), + [sym__newline] = ACTIONS(25), }, }; static const uint16_t ts_small_parse_table[] = { [0] = 16, - ACTIONS(27), 1, - ts_builtin_sym_end, - ACTIONS(29), 1, + ACTIONS(5), 1, + sym_identifier, + ACTIONS(7), 1, anon_sym_alias, - ACTIONS(32), 1, + ACTIONS(9), 1, anon_sym_export, - ACTIONS(35), 1, + ACTIONS(11), 1, anon_sym_import, - ACTIONS(38), 1, + ACTIONS(13), 1, anon_sym_mod, - ACTIONS(41), 1, + ACTIONS(15), 1, anon_sym_set, - ACTIONS(44), 1, + ACTIONS(17), 1, anon_sym_LBRACK, - ACTIONS(47), 1, + ACTIONS(19), 1, anon_sym_AT, - ACTIONS(50), 1, + ACTIONS(25), 1, + sym__newline, + ACTIONS(27), 1, + ts_builtin_sym_end, + ACTIONS(29), 1, aux_sym_comment_token1, - ACTIONS(53), 1, - sym_NAME, - ACTIONS(56), 1, - sym_NEWLINE, - STATE(62), 1, + STATE(97), 1, sym_comment, - STATE(147), 1, - sym_attribute, - STATE(205), 1, + STATE(320), 1, sym_recipe_header, - STATE(2), 2, + STATE(4), 2, sym_item, aux_sym_source_file_repeat1, - STATE(57), 8, + STATE(146), 2, + sym_attribute, + aux_sym_recipe_repeat1, + STATE(106), 8, sym_eol, sym_alias, sym_assignment, @@ -2329,39 +2494,40 @@ static const uint16_t ts_small_parse_table[] = { sym_module, sym_setting, sym_recipe, - [57] = 16, - ACTIONS(5), 1, + [58] = 16, + ACTIONS(31), 1, + ts_builtin_sym_end, + ACTIONS(33), 1, + sym_identifier, + ACTIONS(36), 1, anon_sym_alias, - ACTIONS(7), 1, + ACTIONS(39), 1, anon_sym_export, - ACTIONS(9), 1, + ACTIONS(42), 1, anon_sym_import, - ACTIONS(11), 1, + ACTIONS(45), 1, anon_sym_mod, - ACTIONS(13), 1, + ACTIONS(48), 1, anon_sym_set, - ACTIONS(15), 1, + ACTIONS(51), 1, anon_sym_LBRACK, - ACTIONS(17), 1, + ACTIONS(54), 1, anon_sym_AT, - ACTIONS(23), 1, - sym_NAME, - ACTIONS(25), 1, - sym_NEWLINE, - ACTIONS(59), 1, - ts_builtin_sym_end, - ACTIONS(61), 1, + ACTIONS(57), 1, aux_sym_comment_token1, - STATE(62), 1, + ACTIONS(60), 1, + sym__newline, + STATE(97), 1, sym_comment, - STATE(147), 1, - sym_attribute, - STATE(205), 1, + STATE(320), 1, sym_recipe_header, - STATE(2), 2, + STATE(3), 2, sym_item, aux_sym_source_file_repeat1, - STATE(57), 8, + STATE(146), 2, + sym_attribute, + aux_sym_recipe_repeat1, + STATE(106), 8, sym_eol, sym_alias, sym_assignment, @@ -2370,39 +2536,40 @@ static const uint16_t ts_small_parse_table[] = { sym_module, sym_setting, sym_recipe, - [114] = 16, + [116] = 16, ACTIONS(5), 1, - anon_sym_alias, + sym_identifier, ACTIONS(7), 1, - anon_sym_export, + anon_sym_alias, ACTIONS(9), 1, - anon_sym_import, + anon_sym_export, ACTIONS(11), 1, - anon_sym_mod, + anon_sym_import, ACTIONS(13), 1, - anon_sym_set, + anon_sym_mod, ACTIONS(15), 1, - anon_sym_LBRACK, + anon_sym_set, ACTIONS(17), 1, + anon_sym_LBRACK, + ACTIONS(19), 1, anon_sym_AT, - ACTIONS(23), 1, - sym_NAME, ACTIONS(25), 1, - sym_NEWLINE, - ACTIONS(61), 1, + sym__newline, + ACTIONS(29), 1, aux_sym_comment_token1, ACTIONS(63), 1, ts_builtin_sym_end, - STATE(62), 1, + STATE(97), 1, sym_comment, - STATE(147), 1, - sym_attribute, - STATE(205), 1, + STATE(320), 1, sym_recipe_header, STATE(3), 2, sym_item, aux_sym_source_file_repeat1, - STATE(57), 8, + STATE(146), 2, + sym_attribute, + aux_sym_recipe_repeat1, + STATE(106), 8, sym_eol, sym_alias, sym_assignment, @@ -2411,39 +2578,40 @@ static const uint16_t ts_small_parse_table[] = { sym_module, sym_setting, sym_recipe, - [171] = 16, + [174] = 16, ACTIONS(5), 1, - anon_sym_alias, + sym_identifier, ACTIONS(7), 1, - anon_sym_export, + anon_sym_alias, ACTIONS(9), 1, - anon_sym_import, + anon_sym_export, ACTIONS(11), 1, - anon_sym_mod, + anon_sym_import, ACTIONS(13), 1, - anon_sym_set, + anon_sym_mod, ACTIONS(15), 1, - anon_sym_LBRACK, + anon_sym_set, ACTIONS(17), 1, + anon_sym_LBRACK, + ACTIONS(19), 1, anon_sym_AT, - ACTIONS(23), 1, - sym_NAME, ACTIONS(25), 1, - sym_NEWLINE, - ACTIONS(61), 1, - aux_sym_comment_token1, - ACTIONS(63), 1, + sym__newline, + ACTIONS(27), 1, ts_builtin_sym_end, - STATE(62), 1, + ACTIONS(29), 1, + aux_sym_comment_token1, + STATE(97), 1, sym_comment, - STATE(147), 1, - sym_attribute, - STATE(205), 1, + STATE(320), 1, sym_recipe_header, - STATE(2), 2, + STATE(3), 2, sym_item, aux_sym_source_file_repeat1, - STATE(57), 8, + STATE(146), 2, + sym_attribute, + aux_sym_recipe_repeat1, + STATE(106), 8, sym_eol, sym_alias, sym_assignment, @@ -2452,1022 +2620,2064 @@ static const uint16_t ts_small_parse_table[] = { sym_module, sym_setting, sym_recipe, - [228] = 2, - ACTIONS(67), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(65), 16, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_PLUS, + [232] = 18, + ACTIONS(65), 1, + sym_identifier, + ACTIONS(67), 1, anon_sym_SLASH, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_EQ_TILDE, - anon_sym_RPAREN, - anon_sym_COLON, - anon_sym_DOLLAR, - anon_sym_STAR, - sym_NAME, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - [251] = 11, ACTIONS(69), 1, anon_sym_if, - ACTIONS(72), 1, + ACTIONS(71), 1, anon_sym_LPAREN, - ACTIONS(75), 1, + ACTIONS(73), 1, anon_sym_RPAREN, + ACTIONS(75), 1, + anon_sym_BQUOTE, ACTIONS(77), 1, - sym_BACKTICK, - ACTIONS(80), 1, - sym_INDENTED_BACKTICK, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, ACTIONS(83), 1, - sym_NAME, - STATE(54), 1, - sym_value, - ACTIONS(86), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(89), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - STATE(7), 2, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + STATE(8), 1, + aux_sym__dependency_with_args_repeat1, + STATE(86), 1, + sym__expression_inner, + STATE(91), 1, sym_expression, - aux_sym_depcall_repeat1, - STATE(38), 3, - sym_call, - sym_cmd, + STATE(39), 2, + sym_backticked, + sym_indented_backticked, + STATE(66), 2, + sym_if_expression, + sym_value, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(35), 3, + sym_function_call, + sym_command, sym_string, - [290] = 11, - ACTIONS(92), 1, + [293] = 18, + ACTIONS(65), 1, + sym_identifier, + ACTIONS(67), 1, + anon_sym_SLASH, + ACTIONS(69), 1, anon_sym_if, - ACTIONS(94), 1, + ACTIONS(71), 1, anon_sym_LPAREN, - ACTIONS(96), 1, + ACTIONS(75), 1, + anon_sym_BQUOTE, + ACTIONS(77), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(83), 1, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(87), 1, anon_sym_RPAREN, - ACTIONS(98), 1, - sym_BACKTICK, - ACTIONS(100), 1, - sym_INDENTED_BACKTICK, - ACTIONS(102), 1, - sym_NAME, - STATE(54), 1, - sym_value, - ACTIONS(104), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(106), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - STATE(7), 2, + STATE(6), 1, + aux_sym__dependency_with_args_repeat1, + STATE(86), 1, + sym__expression_inner, + STATE(91), 1, sym_expression, - aux_sym_depcall_repeat1, - STATE(38), 3, - sym_call, - sym_cmd, + STATE(39), 2, + sym_backticked, + sym_indented_backticked, + STATE(66), 2, + sym_if_expression, + sym_value, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(35), 3, + sym_function_call, + sym_command, sym_string, - [329] = 2, - ACTIONS(110), 5, - anon_sym_if, - sym_BACKTICK, - sym_NAME, - sym_RAW_STRING, - sym_STRING, - ACTIONS(108), 11, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_EQ_TILDE, - anon_sym_LPAREN, - anon_sym_RPAREN, - sym_INDENTED_BACKTICK, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - [350] = 2, - ACTIONS(114), 5, + [354] = 18, + ACTIONS(89), 1, + sym_identifier, + ACTIONS(92), 1, + anon_sym_SLASH, + ACTIONS(95), 1, anon_sym_if, - sym_BACKTICK, - sym_NAME, - sym_RAW_STRING, - sym_STRING, - ACTIONS(112), 11, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_EQ_TILDE, + ACTIONS(98), 1, anon_sym_LPAREN, + ACTIONS(101), 1, anon_sym_RPAREN, - sym_INDENTED_BACKTICK, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - [371] = 5, - STATE(76), 1, + ACTIONS(103), 1, + anon_sym_BQUOTE, + ACTIONS(106), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(109), 1, + sym_raw_string, + ACTIONS(112), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(115), 1, + anon_sym_DQUOTE, + ACTIONS(118), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + STATE(8), 1, + aux_sym__dependency_with_args_repeat1, + STATE(86), 1, + sym__expression_inner, + STATE(91), 1, + sym_expression, + STATE(39), 2, + sym_backticked, + sym_indented_backticked, + STATE(66), 2, + sym_if_expression, + sym_value, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(35), 3, + sym_function_call, + sym_command, sym_string, - ACTIONS(120), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(122), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - ACTIONS(116), 5, - sym_NEWLINE, - ts_builtin_sym_end, - anon_sym_LBRACK, - anon_sym_AT, - aux_sym_comment_token1, - ACTIONS(118), 6, - anon_sym_alias, - anon_sym_export, - anon_sym_import, - anon_sym_mod, - anon_sym_set, - sym_NAME, - [398] = 12, - ACTIONS(92), 1, + [415] = 18, + ACTIONS(69), 1, anon_sym_if, - ACTIONS(124), 1, + ACTIONS(71), 1, anon_sym_LPAREN, - ACTIONS(126), 1, + ACTIONS(75), 1, + anon_sym_BQUOTE, + ACTIONS(77), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(83), 1, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(121), 1, + sym_identifier, + ACTIONS(123), 1, + anon_sym_SLASH, + ACTIONS(125), 1, anon_sym_RPAREN, - ACTIONS(128), 1, - sym_BACKTICK, - ACTIONS(130), 1, - sym_INDENTED_BACKTICK, - ACTIONS(132), 1, - sym_NAME, - STATE(84), 1, - sym_value, - STATE(158), 1, + STATE(130), 1, + sym__expression_inner, + STATE(231), 1, sym_expression, - STATE(209), 1, + STATE(315), 1, sym_sequence, - ACTIONS(134), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(136), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - STATE(50), 3, - sym_call, - sym_cmd, - sym_string, - [439] = 5, - STATE(67), 1, + STATE(39), 2, + sym_backticked, + sym_indented_backticked, + STATE(66), 2, + sym_if_expression, + sym_value, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(35), 3, + sym_function_call, + sym_command, sym_string, - ACTIONS(120), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(122), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - ACTIONS(138), 5, - sym_NEWLINE, - ts_builtin_sym_end, - anon_sym_LBRACK, - anon_sym_AT, - aux_sym_comment_token1, - ACTIONS(140), 6, - anon_sym_alias, - anon_sym_export, - anon_sym_import, - anon_sym_mod, - anon_sym_set, - sym_NAME, - [466] = 12, - ACTIONS(92), 1, + [476] = 18, + ACTIONS(69), 1, anon_sym_if, - ACTIONS(124), 1, + ACTIONS(71), 1, anon_sym_LPAREN, - ACTIONS(128), 1, - sym_BACKTICK, - ACTIONS(130), 1, - sym_INDENTED_BACKTICK, - ACTIONS(132), 1, - sym_NAME, - ACTIONS(142), 1, + ACTIONS(75), 1, + anon_sym_BQUOTE, + ACTIONS(77), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(83), 1, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(121), 1, + sym_identifier, + ACTIONS(123), 1, + anon_sym_SLASH, + ACTIONS(127), 1, anon_sym_RPAREN, - STATE(84), 1, - sym_value, - STATE(158), 1, + STATE(130), 1, + sym__expression_inner, + STATE(231), 1, sym_expression, - STATE(227), 1, + STATE(303), 1, sym_sequence, - ACTIONS(134), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(136), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - STATE(50), 3, - sym_call, - sym_cmd, + STATE(39), 2, + sym_backticked, + sym_indented_backticked, + STATE(66), 2, + sym_if_expression, + sym_value, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(35), 3, + sym_function_call, + sym_command, sym_string, - [507] = 12, - ACTIONS(92), 1, + [537] = 18, + ACTIONS(69), 1, anon_sym_if, - ACTIONS(124), 1, + ACTIONS(71), 1, anon_sym_LPAREN, - ACTIONS(128), 1, - sym_BACKTICK, - ACTIONS(130), 1, - sym_INDENTED_BACKTICK, - ACTIONS(132), 1, - sym_NAME, - ACTIONS(144), 1, + ACTIONS(75), 1, + anon_sym_BQUOTE, + ACTIONS(77), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(83), 1, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(121), 1, + sym_identifier, + ACTIONS(123), 1, + anon_sym_SLASH, + ACTIONS(129), 1, anon_sym_RPAREN, - STATE(84), 1, - sym_value, - STATE(158), 1, + STATE(130), 1, + sym__expression_inner, + STATE(231), 1, sym_expression, - STATE(203), 1, + STATE(323), 1, sym_sequence, - ACTIONS(134), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(136), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - STATE(50), 3, - sym_call, - sym_cmd, + STATE(39), 2, + sym_backticked, + sym_indented_backticked, + STATE(66), 2, + sym_if_expression, + sym_value, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(35), 3, + sym_function_call, + sym_command, sym_string, - [548] = 11, - ACTIONS(92), 1, + [598] = 17, + ACTIONS(69), 1, anon_sym_if, - ACTIONS(94), 1, + ACTIONS(71), 1, anon_sym_LPAREN, - ACTIONS(98), 1, - sym_BACKTICK, - ACTIONS(100), 1, - sym_INDENTED_BACKTICK, - ACTIONS(102), 1, - sym_NAME, - ACTIONS(146), 1, - anon_sym_RPAREN, - STATE(54), 1, - sym_value, - ACTIONS(104), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(106), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - STATE(8), 2, + ACTIONS(75), 1, + anon_sym_BQUOTE, + ACTIONS(77), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(83), 1, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(121), 1, + sym_identifier, + ACTIONS(123), 1, + anon_sym_SLASH, + STATE(130), 1, + sym__expression_inner, + STATE(215), 1, sym_expression, - aux_sym_depcall_repeat1, - STATE(38), 3, - sym_call, - sym_cmd, - sym_string, - [587] = 12, - ACTIONS(92), 1, - anon_sym_if, - ACTIONS(124), 1, - anon_sym_LPAREN, - ACTIONS(128), 1, - sym_BACKTICK, - ACTIONS(130), 1, - sym_INDENTED_BACKTICK, - ACTIONS(132), 1, - sym_NAME, - ACTIONS(148), 1, - anon_sym_RPAREN, - STATE(84), 1, + STATE(284), 1, + sym_condition, + STATE(39), 2, + sym_backticked, + sym_indented_backticked, + STATE(66), 2, + sym_if_expression, sym_value, - STATE(158), 1, - sym_expression, - STATE(169), 1, - sym_sequence, - ACTIONS(134), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(136), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - STATE(50), 3, - sym_call, - sym_cmd, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(35), 3, + sym_function_call, + sym_command, sym_string, - [628] = 11, - ACTIONS(92), 1, + [656] = 17, + ACTIONS(69), 1, anon_sym_if, - ACTIONS(124), 1, + ACTIONS(71), 1, anon_sym_LPAREN, - ACTIONS(128), 1, - sym_BACKTICK, - ACTIONS(130), 1, - sym_INDENTED_BACKTICK, - ACTIONS(132), 1, - sym_NAME, - STATE(84), 1, - sym_value, - STATE(151), 1, + ACTIONS(75), 1, + anon_sym_BQUOTE, + ACTIONS(77), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(83), 1, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(121), 1, + sym_identifier, + ACTIONS(123), 1, + anon_sym_SLASH, + STATE(130), 1, + sym__expression_inner, + STATE(215), 1, sym_expression, - STATE(225), 1, + STATE(291), 1, sym_condition, - ACTIONS(134), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(136), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - STATE(50), 3, - sym_call, - sym_cmd, - sym_string, - [666] = 11, - ACTIONS(92), 1, - anon_sym_if, - ACTIONS(124), 1, - anon_sym_LPAREN, - ACTIONS(128), 1, - sym_BACKTICK, - ACTIONS(130), 1, - sym_INDENTED_BACKTICK, - ACTIONS(132), 1, - sym_NAME, - STATE(84), 1, + STATE(39), 2, + sym_backticked, + sym_indented_backticked, + STATE(66), 2, + sym_if_expression, sym_value, - STATE(151), 1, - sym_expression, - STATE(170), 1, - sym_condition, - ACTIONS(134), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(136), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - STATE(50), 3, - sym_call, - sym_cmd, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(35), 3, + sym_function_call, + sym_command, sym_string, - [704] = 11, - ACTIONS(92), 1, + [714] = 17, + ACTIONS(69), 1, anon_sym_if, - ACTIONS(124), 1, + ACTIONS(71), 1, anon_sym_LPAREN, - ACTIONS(128), 1, - sym_BACKTICK, - ACTIONS(130), 1, - sym_INDENTED_BACKTICK, - ACTIONS(132), 1, - sym_NAME, - STATE(84), 1, - sym_value, - STATE(151), 1, + ACTIONS(75), 1, + anon_sym_BQUOTE, + ACTIONS(77), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(83), 1, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(121), 1, + sym_identifier, + ACTIONS(123), 1, + anon_sym_SLASH, + STATE(130), 1, + sym__expression_inner, + STATE(215), 1, sym_expression, - STATE(224), 1, + STATE(289), 1, sym_condition, - ACTIONS(134), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(136), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - STATE(50), 3, - sym_call, - sym_cmd, + STATE(39), 2, + sym_backticked, + sym_indented_backticked, + STATE(66), 2, + sym_if_expression, + sym_value, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(35), 3, + sym_function_call, + sym_command, sym_string, - [742] = 10, - ACTIONS(92), 1, + [772] = 17, + ACTIONS(69), 1, anon_sym_if, - ACTIONS(124), 1, + ACTIONS(71), 1, anon_sym_LPAREN, - ACTIONS(128), 1, - sym_BACKTICK, - ACTIONS(130), 1, - sym_INDENTED_BACKTICK, - ACTIONS(132), 1, - sym_NAME, - STATE(84), 1, - sym_value, - STATE(201), 1, + ACTIONS(75), 1, + anon_sym_BQUOTE, + ACTIONS(77), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(83), 1, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(121), 1, + sym_identifier, + ACTIONS(123), 1, + anon_sym_SLASH, + STATE(130), 1, + sym__expression_inner, + STATE(215), 1, sym_expression, - ACTIONS(134), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(136), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - STATE(50), 3, - sym_call, - sym_cmd, - sym_string, - [777] = 10, - ACTIONS(94), 1, - anon_sym_LPAREN, - ACTIONS(98), 1, - sym_BACKTICK, - ACTIONS(100), 1, - sym_INDENTED_BACKTICK, - ACTIONS(150), 1, - anon_sym_if, - ACTIONS(152), 1, - sym_NAME, - STATE(146), 1, + STATE(295), 1, + sym_condition, + STATE(39), 2, + sym_backticked, + sym_indented_backticked, + STATE(66), 2, + sym_if_expression, sym_value, - STATE(194), 1, - sym_expression, - ACTIONS(104), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(106), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - STATE(38), 3, - sym_call, - sym_cmd, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(35), 3, + sym_function_call, + sym_command, sym_string, - [812] = 10, - ACTIONS(154), 1, + [830] = 17, + ACTIONS(69), 1, anon_sym_if, - ACTIONS(156), 1, + ACTIONS(71), 1, anon_sym_LPAREN, - ACTIONS(158), 1, - sym_BACKTICK, - ACTIONS(160), 1, - sym_INDENTED_BACKTICK, - ACTIONS(162), 1, - sym_NAME, - STATE(136), 1, - sym_value, - STATE(160), 1, + ACTIONS(75), 1, + anon_sym_BQUOTE, + ACTIONS(77), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(83), 1, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(121), 1, + sym_identifier, + ACTIONS(123), 1, + anon_sym_SLASH, + STATE(130), 1, + sym__expression_inner, + STATE(215), 1, sym_expression, - ACTIONS(120), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(122), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - STATE(132), 3, - sym_call, - sym_cmd, - sym_string, - [847] = 10, - ACTIONS(92), 1, - anon_sym_if, - ACTIONS(124), 1, - anon_sym_LPAREN, - ACTIONS(128), 1, - sym_BACKTICK, - ACTIONS(130), 1, - sym_INDENTED_BACKTICK, - ACTIONS(132), 1, - sym_NAME, - STATE(84), 1, + STATE(292), 1, + sym_condition, + STATE(39), 2, + sym_backticked, + sym_indented_backticked, + STATE(66), 2, + sym_if_expression, sym_value, - STATE(221), 1, - sym_expression, - ACTIONS(134), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(136), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - STATE(50), 3, - sym_call, - sym_cmd, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(35), 3, + sym_function_call, + sym_command, sym_string, - [882] = 10, - ACTIONS(92), 1, + [888] = 17, + ACTIONS(69), 1, anon_sym_if, - ACTIONS(124), 1, + ACTIONS(71), 1, anon_sym_LPAREN, - ACTIONS(128), 1, - sym_BACKTICK, - ACTIONS(130), 1, - sym_INDENTED_BACKTICK, - ACTIONS(132), 1, - sym_NAME, - STATE(84), 1, - sym_value, - STATE(174), 1, + ACTIONS(75), 1, + anon_sym_BQUOTE, + ACTIONS(77), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(83), 1, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(121), 1, + sym_identifier, + ACTIONS(123), 1, + anon_sym_SLASH, + STATE(130), 1, + sym__expression_inner, + STATE(215), 1, sym_expression, - ACTIONS(134), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(136), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - STATE(50), 3, - sym_call, - sym_cmd, - sym_string, - [917] = 10, - ACTIONS(92), 1, - anon_sym_if, - ACTIONS(124), 1, - anon_sym_LPAREN, - ACTIONS(128), 1, - sym_BACKTICK, - ACTIONS(130), 1, - sym_INDENTED_BACKTICK, - ACTIONS(132), 1, - sym_NAME, - STATE(84), 1, + STATE(290), 1, + sym_condition, + STATE(39), 2, + sym_backticked, + sym_indented_backticked, + STATE(66), 2, + sym_if_expression, sym_value, - STATE(186), 1, - sym_expression, - ACTIONS(134), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(136), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - STATE(50), 3, - sym_call, - sym_cmd, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(35), 3, + sym_function_call, + sym_command, sym_string, - [952] = 10, - ACTIONS(92), 1, + [946] = 2, + ACTIONS(131), 5, anon_sym_if, - ACTIONS(124), 1, - anon_sym_LPAREN, - ACTIONS(128), 1, - sym_BACKTICK, - ACTIONS(130), 1, - sym_INDENTED_BACKTICK, - ACTIONS(132), 1, - sym_NAME, - STATE(84), 1, - sym_value, - STATE(183), 1, - sym_expression, - ACTIONS(134), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(136), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - STATE(50), 3, - sym_call, - sym_cmd, - sym_string, - [987] = 2, - ACTIONS(166), 1, - anon_sym_LPAREN, - ACTIONS(164), 13, + sym_identifier, + anon_sym_BQUOTE, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(133), 17, anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_PLUS, + anon_sym_RBRACK, anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_LBRACE, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_EQ_TILDE, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COLON, anon_sym_DOLLAR, anon_sym_STAR, - sym_NAME, - [1006] = 10, - ACTIONS(92), 1, - anon_sym_if, - ACTIONS(94), 1, - anon_sym_LPAREN, - ACTIONS(98), 1, - sym_BACKTICK, - ACTIONS(100), 1, - sym_INDENTED_BACKTICK, - ACTIONS(102), 1, - sym_NAME, - STATE(10), 1, - sym_expression, - STATE(54), 1, - sym_value, - ACTIONS(104), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(106), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - STATE(38), 3, - sym_call, - sym_cmd, - sym_string, - [1041] = 10, - ACTIONS(92), 1, + anon_sym_RBRACE_RBRACE, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [973] = 2, + ACTIONS(135), 5, anon_sym_if, - ACTIONS(124), 1, + sym_identifier, + anon_sym_BQUOTE, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(137), 17, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_LBRACE, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_EQ_TILDE, anon_sym_LPAREN, - ACTIONS(128), 1, - sym_BACKTICK, - ACTIONS(130), 1, - sym_INDENTED_BACKTICK, - ACTIONS(132), 1, - sym_NAME, - STATE(84), 1, - sym_value, - STATE(204), 1, - sym_expression, - ACTIONS(134), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(136), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - STATE(50), 3, - sym_call, - sym_cmd, - sym_string, - [1076] = 10, - ACTIONS(92), 1, + anon_sym_RPAREN, + anon_sym_COLON, + anon_sym_DOLLAR, + anon_sym_STAR, + anon_sym_RBRACE_RBRACE, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [1000] = 16, + ACTIONS(139), 1, + sym_identifier, + ACTIONS(141), 1, + anon_sym_SLASH, + ACTIONS(143), 1, anon_sym_if, - ACTIONS(124), 1, + ACTIONS(145), 1, anon_sym_LPAREN, - ACTIONS(128), 1, - sym_BACKTICK, - ACTIONS(130), 1, - sym_INDENTED_BACKTICK, - ACTIONS(132), 1, - sym_NAME, - STATE(84), 1, - sym_value, - STATE(207), 1, + ACTIONS(147), 1, + anon_sym_BQUOTE, + ACTIONS(149), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(151), 1, + sym_raw_string, + ACTIONS(153), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(155), 1, + anon_sym_DQUOTE, + ACTIONS(157), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + STATE(256), 1, + sym__expression_inner, + STATE(318), 1, sym_expression, - ACTIONS(134), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(136), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - STATE(50), 3, - sym_call, - sym_cmd, - sym_string, - [1111] = 10, - ACTIONS(92), 1, - anon_sym_if, - ACTIONS(124), 1, - anon_sym_LPAREN, - ACTIONS(128), 1, - sym_BACKTICK, - ACTIONS(130), 1, - sym_INDENTED_BACKTICK, - ACTIONS(132), 1, - sym_NAME, - STATE(84), 1, + STATE(257), 2, + sym_if_expression, sym_value, - STATE(177), 1, - sym_expression, - ACTIONS(134), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(136), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - STATE(50), 3, - sym_call, - sym_cmd, + STATE(259), 2, + sym_backticked, + sym_indented_backticked, + STATE(250), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(258), 3, + sym_function_call, + sym_command, sym_string, - [1146] = 10, - ACTIONS(154), 1, + [1055] = 16, + ACTIONS(69), 1, anon_sym_if, - ACTIONS(156), 1, + ACTIONS(71), 1, anon_sym_LPAREN, - ACTIONS(158), 1, - sym_BACKTICK, - ACTIONS(160), 1, - sym_INDENTED_BACKTICK, - ACTIONS(162), 1, - sym_NAME, - STATE(136), 1, - sym_value, - STATE(137), 1, + ACTIONS(75), 1, + anon_sym_BQUOTE, + ACTIONS(77), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(83), 1, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(121), 1, + sym_identifier, + ACTIONS(123), 1, + anon_sym_SLASH, + STATE(130), 1, + sym__expression_inner, + STATE(311), 1, sym_expression, - ACTIONS(120), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(122), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - STATE(132), 3, - sym_call, - sym_cmd, - sym_string, - [1181] = 10, - ACTIONS(94), 1, - anon_sym_LPAREN, - ACTIONS(98), 1, - sym_BACKTICK, - ACTIONS(100), 1, - sym_INDENTED_BACKTICK, - ACTIONS(150), 1, - anon_sym_if, - ACTIONS(152), 1, - sym_NAME, - STATE(146), 1, + STATE(39), 2, + sym_backticked, + sym_indented_backticked, + STATE(66), 2, + sym_if_expression, sym_value, - STATE(181), 1, - sym_expression, - ACTIONS(104), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(106), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - STATE(38), 3, - sym_call, - sym_cmd, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(35), 3, + sym_function_call, + sym_command, sym_string, - [1216] = 10, - ACTIONS(92), 1, + [1110] = 16, + ACTIONS(159), 1, + sym_identifier, + ACTIONS(161), 1, + anon_sym_SLASH, + ACTIONS(163), 1, anon_sym_if, - ACTIONS(124), 1, + ACTIONS(165), 1, anon_sym_LPAREN, - ACTIONS(128), 1, - sym_BACKTICK, - ACTIONS(130), 1, - sym_INDENTED_BACKTICK, - ACTIONS(132), 1, - sym_NAME, - STATE(84), 1, - sym_value, + ACTIONS(167), 1, + anon_sym_BQUOTE, + ACTIONS(169), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(171), 1, + sym_raw_string, + ACTIONS(173), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(175), 1, + anon_sym_DQUOTE, + ACTIONS(177), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + STATE(209), 1, + sym__expression_inner, STATE(210), 1, sym_expression, - ACTIONS(134), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(136), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - STATE(50), 3, - sym_call, - sym_cmd, - sym_string, - [1251] = 10, - ACTIONS(92), 1, - anon_sym_if, - ACTIONS(124), 1, - anon_sym_LPAREN, - ACTIONS(128), 1, - sym_BACKTICK, - ACTIONS(130), 1, - sym_INDENTED_BACKTICK, - ACTIONS(132), 1, - sym_NAME, - STATE(84), 1, - sym_value, - STATE(220), 1, - sym_expression, - ACTIONS(134), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(136), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - STATE(50), 3, - sym_call, - sym_cmd, - sym_string, - [1286] = 10, - ACTIONS(92), 1, - anon_sym_if, - ACTIONS(124), 1, - anon_sym_LPAREN, - ACTIONS(128), 1, - sym_BACKTICK, - ACTIONS(130), 1, - sym_INDENTED_BACKTICK, - ACTIONS(132), 1, - sym_NAME, - STATE(10), 1, - sym_expression, - STATE(84), 1, + STATE(213), 2, + sym_backticked, + sym_indented_backticked, + STATE(216), 2, + sym_if_expression, sym_value, - ACTIONS(134), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(136), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - STATE(50), 3, - sym_call, - sym_cmd, + STATE(71), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(170), 3, + sym_function_call, + sym_command, sym_string, - [1321] = 2, - ACTIONS(168), 5, + [1165] = 2, + ACTIONS(179), 5, anon_sym_if, - sym_BACKTICK, - sym_NAME, - sym_RAW_STRING, - sym_STRING, - ACTIONS(164), 8, - anon_sym_PLUS, - anon_sym_SLASH, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_RBRACE_RBRACE, - sym_INDENTED_BACKTICK, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - [1339] = 1, - ACTIONS(170), 13, + sym_identifier, + anon_sym_BQUOTE, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(181), 17, anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_PLUS, + anon_sym_RBRACK, anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_LBRACE, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_EQ_TILDE, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COLON, anon_sym_DOLLAR, anon_sym_STAR, - sym_NAME, - [1355] = 2, - ACTIONS(172), 5, - anon_sym_if, - sym_BACKTICK, - sym_NAME, - sym_RAW_STRING, - sym_STRING, - ACTIONS(170), 8, - anon_sym_PLUS, - anon_sym_SLASH, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_RBRACE_RBRACE, - sym_INDENTED_BACKTICK, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - [1373] = 4, - ACTIONS(178), 1, - sym_INDENT, - STATE(63), 1, - sym_body, - ACTIONS(174), 5, - sym_NEWLINE, - ts_builtin_sym_end, - anon_sym_LBRACK, - anon_sym_AT, - aux_sym_comment_token1, - ACTIONS(176), 6, - anon_sym_alias, - anon_sym_export, - anon_sym_import, - anon_sym_mod, - anon_sym_set, - sym_NAME, - [1395] = 2, - ACTIONS(180), 5, - anon_sym_if, - sym_BACKTICK, - sym_NAME, - sym_RAW_STRING, - sym_STRING, - ACTIONS(182), 8, - anon_sym_PLUS, - anon_sym_SLASH, - anon_sym_LPAREN, - anon_sym_RPAREN, anon_sym_RBRACE_RBRACE, - sym_INDENTED_BACKTICK, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - [1413] = 2, - ACTIONS(184), 5, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [1192] = 2, + ACTIONS(183), 5, anon_sym_if, - sym_BACKTICK, - sym_NAME, - sym_RAW_STRING, - sym_STRING, - ACTIONS(186), 8, - anon_sym_PLUS, + sym_identifier, + anon_sym_BQUOTE, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(185), 17, + anon_sym_COMMA, + anon_sym_RBRACK, anon_sym_SLASH, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_RBRACE_RBRACE, - sym_INDENTED_BACKTICK, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - [1431] = 2, - ACTIONS(188), 5, - anon_sym_if, - sym_BACKTICK, - sym_NAME, - sym_RAW_STRING, - sym_STRING, - ACTIONS(190), 8, anon_sym_PLUS, - anon_sym_SLASH, + anon_sym_LBRACE, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_EQ_TILDE, anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_COLON, + anon_sym_DOLLAR, + anon_sym_STAR, anon_sym_RBRACE_RBRACE, - sym_INDENTED_BACKTICK, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - [1449] = 2, - ACTIONS(67), 5, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [1219] = 2, + ACTIONS(187), 5, anon_sym_if, - sym_BACKTICK, - sym_NAME, - sym_RAW_STRING, - sym_STRING, - ACTIONS(65), 8, - anon_sym_PLUS, + sym_identifier, + anon_sym_BQUOTE, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(189), 17, + anon_sym_COMMA, + anon_sym_RBRACK, anon_sym_SLASH, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_RBRACE_RBRACE, - sym_INDENTED_BACKTICK, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - [1467] = 4, - ACTIONS(178), 1, - sym_INDENT, - STATE(74), 1, - sym_body, - ACTIONS(192), 5, - sym_NEWLINE, - ts_builtin_sym_end, - anon_sym_LBRACK, - anon_sym_AT, - aux_sym_comment_token1, - ACTIONS(194), 6, - anon_sym_alias, - anon_sym_export, - anon_sym_import, - anon_sym_mod, - anon_sym_set, - sym_NAME, - [1489] = 2, - ACTIONS(67), 6, - anon_sym_alias, - anon_sym_export, - anon_sym_import, - anon_sym_mod, - anon_sym_set, - sym_NAME, - ACTIONS(65), 7, - sym_NEWLINE, - ts_builtin_sym_end, - anon_sym_LBRACK, anon_sym_PLUS, - anon_sym_SLASH, - anon_sym_AT, - aux_sym_comment_token1, - [1507] = 1, - ACTIONS(190), 13, - anon_sym_COMMA, anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_PLUS, - anon_sym_SLASH, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_EQ_TILDE, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COLON, anon_sym_DOLLAR, anon_sym_STAR, - sym_NAME, - [1523] = 1, - ACTIONS(186), 13, + anon_sym_RBRACE_RBRACE, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [1246] = 2, + ACTIONS(191), 5, + anon_sym_if, + sym_identifier, + anon_sym_BQUOTE, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(193), 17, anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_PLUS, + anon_sym_RBRACK, anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_LBRACE, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_EQ_TILDE, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COLON, anon_sym_DOLLAR, anon_sym_STAR, - sym_NAME, - [1539] = 1, - ACTIONS(164), 13, - anon_sym_COMMA, + anon_sym_RBRACE_RBRACE, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [1273] = 16, + ACTIONS(69), 1, + anon_sym_if, + ACTIONS(71), 1, + anon_sym_LPAREN, + ACTIONS(75), 1, + anon_sym_BQUOTE, + ACTIONS(77), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(83), 1, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(121), 1, + sym_identifier, + ACTIONS(123), 1, + anon_sym_SLASH, + STATE(130), 1, + sym__expression_inner, + STATE(334), 1, + sym_expression, + STATE(39), 2, + sym_backticked, + sym_indented_backticked, + STATE(66), 2, + sym_if_expression, + sym_value, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(35), 3, + sym_function_call, + sym_command, + sym_string, + [1328] = 16, + ACTIONS(139), 1, + sym_identifier, + ACTIONS(141), 1, + anon_sym_SLASH, + ACTIONS(143), 1, + anon_sym_if, + ACTIONS(145), 1, + anon_sym_LPAREN, + ACTIONS(147), 1, + anon_sym_BQUOTE, + ACTIONS(149), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(151), 1, + sym_raw_string, + ACTIONS(153), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(155), 1, + anon_sym_DQUOTE, + ACTIONS(157), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + STATE(256), 1, + sym__expression_inner, + STATE(304), 1, + sym_expression, + STATE(257), 2, + sym_if_expression, + sym_value, + STATE(259), 2, + sym_backticked, + sym_indented_backticked, + STATE(250), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(258), 3, + sym_function_call, + sym_command, + sym_string, + [1383] = 16, + ACTIONS(69), 1, + anon_sym_if, + ACTIONS(71), 1, + anon_sym_LPAREN, + ACTIONS(75), 1, + anon_sym_BQUOTE, + ACTIONS(77), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(83), 1, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(121), 1, + sym_identifier, + ACTIONS(123), 1, + anon_sym_SLASH, + STATE(130), 1, + sym__expression_inner, + STATE(319), 1, + sym_expression, + STATE(39), 2, + sym_backticked, + sym_indented_backticked, + STATE(66), 2, + sym_if_expression, + sym_value, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(35), 3, + sym_function_call, + sym_command, + sym_string, + [1438] = 16, + ACTIONS(69), 1, + anon_sym_if, + ACTIONS(71), 1, + anon_sym_LPAREN, + ACTIONS(75), 1, + anon_sym_BQUOTE, + ACTIONS(77), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(83), 1, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(121), 1, + sym_identifier, + ACTIONS(123), 1, + anon_sym_SLASH, + STATE(130), 1, + sym__expression_inner, + STATE(285), 1, + sym_expression, + STATE(39), 2, + sym_backticked, + sym_indented_backticked, + STATE(66), 2, + sym_if_expression, + sym_value, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(35), 3, + sym_function_call, + sym_command, + sym_string, + [1493] = 2, + ACTIONS(195), 5, + anon_sym_if, + sym_identifier, + anon_sym_BQUOTE, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(197), 17, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_SLASH, + anon_sym_PLUS, anon_sym_LBRACE, - anon_sym_RBRACE, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_EQ_TILDE, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COLON, + anon_sym_DOLLAR, + anon_sym_STAR, + anon_sym_RBRACE_RBRACE, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [1520] = 16, + ACTIONS(69), 1, + anon_sym_if, + ACTIONS(71), 1, + anon_sym_LPAREN, + ACTIONS(75), 1, + anon_sym_BQUOTE, + ACTIONS(77), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(83), 1, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(121), 1, + sym_identifier, + ACTIONS(123), 1, + anon_sym_SLASH, + STATE(130), 1, + sym__expression_inner, + STATE(310), 1, + sym_expression, + STATE(39), 2, + sym_backticked, + sym_indented_backticked, + STATE(66), 2, + sym_if_expression, + sym_value, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(35), 3, + sym_function_call, + sym_command, + sym_string, + [1575] = 16, + ACTIONS(139), 1, + sym_identifier, + ACTIONS(141), 1, + anon_sym_SLASH, + ACTIONS(143), 1, + anon_sym_if, + ACTIONS(145), 1, + anon_sym_LPAREN, + ACTIONS(147), 1, + anon_sym_BQUOTE, + ACTIONS(149), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(151), 1, + sym_raw_string, + ACTIONS(153), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(155), 1, + anon_sym_DQUOTE, + ACTIONS(157), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + STATE(256), 1, + sym__expression_inner, + STATE(324), 1, + sym_expression, + STATE(257), 2, + sym_if_expression, + sym_value, + STATE(259), 2, + sym_backticked, + sym_indented_backticked, + STATE(250), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(258), 3, + sym_function_call, + sym_command, + sym_string, + [1630] = 16, + ACTIONS(69), 1, + anon_sym_if, + ACTIONS(71), 1, + anon_sym_LPAREN, + ACTIONS(75), 1, + anon_sym_BQUOTE, + ACTIONS(77), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(83), 1, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(121), 1, + sym_identifier, + ACTIONS(123), 1, + anon_sym_SLASH, + STATE(130), 1, + sym__expression_inner, + STATE(299), 1, + sym_expression, + STATE(39), 2, + sym_backticked, + sym_indented_backticked, + STATE(66), 2, + sym_if_expression, + sym_value, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(35), 3, + sym_function_call, + sym_command, + sym_string, + [1685] = 2, + ACTIONS(199), 5, + anon_sym_if, + sym_identifier, + anon_sym_BQUOTE, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(201), 16, + anon_sym_COMMA, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_LBRACE, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_EQ_TILDE, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COLON, + anon_sym_DOLLAR, + anon_sym_STAR, + anon_sym_RBRACE_RBRACE, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [1711] = 2, + ACTIONS(203), 5, + anon_sym_if, + sym_identifier, + anon_sym_BQUOTE, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(205), 16, + anon_sym_COMMA, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_LBRACE, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_EQ_TILDE, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COLON, + anon_sym_DOLLAR, + anon_sym_STAR, + anon_sym_RBRACE_RBRACE, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [1737] = 2, + ACTIONS(207), 5, + anon_sym_if, + sym_identifier, + anon_sym_BQUOTE, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(209), 16, + anon_sym_COMMA, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_LBRACE, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_EQ_TILDE, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COLON, + anon_sym_DOLLAR, + anon_sym_STAR, + anon_sym_RBRACE_RBRACE, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [1763] = 2, + ACTIONS(211), 5, + anon_sym_if, + sym_identifier, + anon_sym_BQUOTE, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(213), 16, + anon_sym_COMMA, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_LBRACE, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_EQ_TILDE, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COLON, + anon_sym_DOLLAR, + anon_sym_STAR, + anon_sym_RBRACE_RBRACE, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [1789] = 2, + ACTIONS(215), 5, + anon_sym_if, + sym_identifier, + anon_sym_BQUOTE, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(217), 16, + anon_sym_COMMA, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_LBRACE, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_EQ_TILDE, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COLON, + anon_sym_DOLLAR, + anon_sym_STAR, + anon_sym_RBRACE_RBRACE, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [1815] = 2, + ACTIONS(219), 5, + anon_sym_if, + sym_identifier, + anon_sym_BQUOTE, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(221), 16, + anon_sym_COMMA, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_LBRACE, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_EQ_TILDE, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COLON, + anon_sym_DOLLAR, + anon_sym_STAR, + anon_sym_RBRACE_RBRACE, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [1841] = 2, + ACTIONS(223), 5, + anon_sym_if, + sym_identifier, + anon_sym_BQUOTE, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(225), 16, + anon_sym_COMMA, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_LBRACE, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_EQ_TILDE, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COLON, + anon_sym_DOLLAR, + anon_sym_STAR, + anon_sym_RBRACE_RBRACE, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [1867] = 2, + ACTIONS(227), 5, + anon_sym_if, + sym_identifier, + anon_sym_BQUOTE, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(229), 16, + anon_sym_COMMA, + anon_sym_SLASH, anon_sym_PLUS, + anon_sym_LBRACE, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_EQ_TILDE, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COLON, + anon_sym_DOLLAR, + anon_sym_STAR, + anon_sym_RBRACE_RBRACE, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [1893] = 2, + ACTIONS(231), 5, + anon_sym_if, + sym_identifier, + anon_sym_BQUOTE, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(233), 16, + anon_sym_COMMA, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_LBRACE, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_EQ_TILDE, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COLON, + anon_sym_DOLLAR, + anon_sym_STAR, + anon_sym_RBRACE_RBRACE, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [1919] = 14, + ACTIONS(159), 1, + sym_identifier, + ACTIONS(163), 1, + anon_sym_if, + ACTIONS(165), 1, + anon_sym_LPAREN, + ACTIONS(167), 1, + anon_sym_BQUOTE, + ACTIONS(169), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(171), 1, + sym_raw_string, + ACTIONS(173), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(175), 1, + anon_sym_DQUOTE, + ACTIONS(177), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + STATE(207), 1, + sym__expression_inner, + STATE(213), 2, + sym_backticked, + sym_indented_backticked, + STATE(216), 2, + sym_if_expression, + sym_value, + STATE(71), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(170), 3, + sym_function_call, + sym_command, + sym_string, + [1968] = 14, + ACTIONS(139), 1, + sym_identifier, + ACTIONS(143), 1, + anon_sym_if, + ACTIONS(145), 1, + anon_sym_LPAREN, + ACTIONS(147), 1, + anon_sym_BQUOTE, + ACTIONS(149), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(151), 1, + sym_raw_string, + ACTIONS(153), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(155), 1, + anon_sym_DQUOTE, + ACTIONS(157), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + STATE(264), 1, + sym__expression_inner, + STATE(257), 2, + sym_if_expression, + sym_value, + STATE(259), 2, + sym_backticked, + sym_indented_backticked, + STATE(250), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(258), 3, + sym_function_call, + sym_command, + sym_string, + [2017] = 14, + ACTIONS(65), 1, + sym_identifier, + ACTIONS(69), 1, + anon_sym_if, + ACTIONS(71), 1, + anon_sym_LPAREN, + ACTIONS(75), 1, + anon_sym_BQUOTE, + ACTIONS(77), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(83), 1, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + STATE(87), 1, + sym__expression_inner, + STATE(39), 2, + sym_backticked, + sym_indented_backticked, + STATE(66), 2, + sym_if_expression, + sym_value, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(35), 3, + sym_function_call, + sym_command, + sym_string, + [2066] = 14, + ACTIONS(69), 1, + anon_sym_if, + ACTIONS(71), 1, + anon_sym_LPAREN, + ACTIONS(75), 1, + anon_sym_BQUOTE, + ACTIONS(77), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(83), 1, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(121), 1, + sym_identifier, + STATE(126), 1, + sym__expression_inner, + STATE(39), 2, + sym_backticked, + sym_indented_backticked, + STATE(66), 2, + sym_if_expression, + sym_value, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(35), 3, + sym_function_call, + sym_command, + sym_string, + [2115] = 14, + ACTIONS(159), 1, + sym_identifier, + ACTIONS(163), 1, + anon_sym_if, + ACTIONS(165), 1, + anon_sym_LPAREN, + ACTIONS(167), 1, + anon_sym_BQUOTE, + ACTIONS(169), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(171), 1, + sym_raw_string, + ACTIONS(173), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(175), 1, + anon_sym_DQUOTE, + ACTIONS(177), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + STATE(181), 1, + sym__expression_inner, + STATE(213), 2, + sym_backticked, + sym_indented_backticked, + STATE(216), 2, + sym_if_expression, + sym_value, + STATE(71), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(170), 3, + sym_function_call, + sym_command, + sym_string, + [2164] = 14, + ACTIONS(139), 1, + sym_identifier, + ACTIONS(143), 1, + anon_sym_if, + ACTIONS(145), 1, + anon_sym_LPAREN, + ACTIONS(147), 1, + anon_sym_BQUOTE, + ACTIONS(149), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(151), 1, + sym_raw_string, + ACTIONS(153), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(155), 1, + anon_sym_DQUOTE, + ACTIONS(157), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + STATE(274), 1, + sym__expression_inner, + STATE(257), 2, + sym_if_expression, + sym_value, + STATE(259), 2, + sym_backticked, + sym_indented_backticked, + STATE(250), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(258), 3, + sym_function_call, + sym_command, + sym_string, + [2213] = 14, + ACTIONS(139), 1, + sym_identifier, + ACTIONS(143), 1, + anon_sym_if, + ACTIONS(145), 1, + anon_sym_LPAREN, + ACTIONS(147), 1, + anon_sym_BQUOTE, + ACTIONS(149), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(151), 1, + sym_raw_string, + ACTIONS(153), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(155), 1, + anon_sym_DQUOTE, + ACTIONS(157), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + STATE(281), 1, + sym__expression_inner, + STATE(257), 2, + sym_if_expression, + sym_value, + STATE(259), 2, + sym_backticked, + sym_indented_backticked, + STATE(250), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(258), 3, + sym_function_call, + sym_command, + sym_string, + [2262] = 14, + ACTIONS(65), 1, + sym_identifier, + ACTIONS(69), 1, + anon_sym_if, + ACTIONS(71), 1, + anon_sym_LPAREN, + ACTIONS(75), 1, + anon_sym_BQUOTE, + ACTIONS(77), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(83), 1, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + STATE(65), 1, + sym__expression_inner, + STATE(39), 2, + sym_backticked, + sym_indented_backticked, + STATE(66), 2, + sym_if_expression, + sym_value, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(35), 3, + sym_function_call, + sym_command, + sym_string, + [2311] = 4, + ACTIONS(239), 1, + anon_sym_else, + STATE(52), 1, + aux_sym_if_expression_repeat1, + ACTIONS(235), 5, + anon_sym_if, + sym_identifier, + anon_sym_BQUOTE, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(237), 13, + anon_sym_COMMA, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_LBRACE, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_EQ_TILDE, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_RBRACE_RBRACE, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [2340] = 14, + ACTIONS(159), 1, + sym_identifier, + ACTIONS(163), 1, + anon_sym_if, + ACTIONS(165), 1, + anon_sym_LPAREN, + ACTIONS(167), 1, + anon_sym_BQUOTE, + ACTIONS(169), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(171), 1, + sym_raw_string, + ACTIONS(173), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(175), 1, + anon_sym_DQUOTE, + ACTIONS(177), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + STATE(182), 1, + sym__expression_inner, + STATE(213), 2, + sym_backticked, + sym_indented_backticked, + STATE(216), 2, + sym_if_expression, + sym_value, + STATE(71), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(170), 3, + sym_function_call, + sym_command, + sym_string, + [2389] = 4, + ACTIONS(246), 1, + anon_sym_else, + STATE(52), 1, + aux_sym_if_expression_repeat1, + ACTIONS(242), 5, + anon_sym_if, + sym_identifier, + anon_sym_BQUOTE, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(244), 13, + anon_sym_COMMA, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_LBRACE, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_EQ_TILDE, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_RBRACE_RBRACE, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [2418] = 14, + ACTIONS(65), 1, + sym_identifier, + ACTIONS(69), 1, + anon_sym_if, + ACTIONS(71), 1, + anon_sym_LPAREN, + ACTIONS(75), 1, + anon_sym_BQUOTE, + ACTIONS(77), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(83), 1, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + STATE(84), 1, + sym__expression_inner, + STATE(39), 2, + sym_backticked, + sym_indented_backticked, + STATE(66), 2, + sym_if_expression, + sym_value, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(35), 3, + sym_function_call, + sym_command, + sym_string, + [2467] = 14, + ACTIONS(69), 1, + anon_sym_if, + ACTIONS(71), 1, + anon_sym_LPAREN, + ACTIONS(75), 1, + anon_sym_BQUOTE, + ACTIONS(77), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(83), 1, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(121), 1, + sym_identifier, + STATE(125), 1, + sym__expression_inner, + STATE(39), 2, + sym_backticked, + sym_indented_backticked, + STATE(66), 2, + sym_if_expression, + sym_value, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(35), 3, + sym_function_call, + sym_command, + sym_string, + [2516] = 4, + ACTIONS(252), 1, + anon_sym_else, + STATE(54), 1, + aux_sym_if_expression_repeat1, + ACTIONS(248), 5, + anon_sym_if, + sym_identifier, + anon_sym_BQUOTE, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(250), 13, + anon_sym_COMMA, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_LBRACE, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_EQ_TILDE, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_RBRACE_RBRACE, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [2545] = 14, + ACTIONS(69), 1, + anon_sym_if, + ACTIONS(71), 1, + anon_sym_LPAREN, + ACTIONS(75), 1, + anon_sym_BQUOTE, + ACTIONS(77), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(83), 1, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(121), 1, + sym_identifier, + STATE(65), 1, + sym__expression_inner, + STATE(39), 2, + sym_backticked, + sym_indented_backticked, + STATE(66), 2, + sym_if_expression, + sym_value, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(35), 3, + sym_function_call, + sym_command, + sym_string, + [2594] = 2, + ACTIONS(254), 6, + anon_sym_if, + anon_sym_else, + sym_identifier, + anon_sym_BQUOTE, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(256), 13, + anon_sym_COMMA, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_LBRACE, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_EQ_TILDE, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_RBRACE_RBRACE, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [2618] = 8, + ACTIONS(171), 1, + sym_raw_string, + ACTIONS(173), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(175), 1, + anon_sym_DQUOTE, + ACTIONS(177), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + STATE(111), 1, + sym_string, + STATE(71), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + ACTIONS(258), 5, + sym__newline, + ts_builtin_sym_end, + anon_sym_LBRACK, + anon_sym_AT, + aux_sym_comment_token1, + ACTIONS(260), 6, + anon_sym_alias, + anon_sym_export, + anon_sym_import, + anon_sym_mod, + anon_sym_set, + sym_identifier, + [2654] = 2, + ACTIONS(262), 6, + anon_sym_if, + anon_sym_else, + sym_identifier, + anon_sym_BQUOTE, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(264), 13, + anon_sym_COMMA, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_LBRACE, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_EQ_TILDE, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_RBRACE_RBRACE, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [2678] = 8, + ACTIONS(171), 1, + sym_raw_string, + ACTIONS(173), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(175), 1, + anon_sym_DQUOTE, + ACTIONS(177), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + STATE(98), 1, + sym_string, + STATE(71), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + ACTIONS(266), 5, + sym__newline, + ts_builtin_sym_end, + anon_sym_LBRACK, + anon_sym_AT, + aux_sym_comment_token1, + ACTIONS(268), 6, + anon_sym_alias, + anon_sym_export, + anon_sym_import, + anon_sym_mod, + anon_sym_set, + sym_identifier, + [2714] = 2, + ACTIONS(270), 5, + anon_sym_if, + sym_identifier, + anon_sym_BQUOTE, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(272), 13, + anon_sym_COMMA, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_LBRACE, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_EQ_TILDE, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_RBRACE_RBRACE, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [2737] = 2, + ACTIONS(274), 5, + anon_sym_if, + sym_identifier, + anon_sym_BQUOTE, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(276), 13, + anon_sym_COMMA, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_LBRACE, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_EQ_TILDE, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_RBRACE_RBRACE, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [2760] = 2, + ACTIONS(278), 5, + anon_sym_if, + sym_identifier, + anon_sym_BQUOTE, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(280), 13, + anon_sym_COMMA, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_LBRACE, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_EQ_TILDE, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_RBRACE_RBRACE, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [2783] = 2, + ACTIONS(282), 5, + anon_sym_if, + sym_identifier, + anon_sym_BQUOTE, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(284), 13, + anon_sym_COMMA, anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_LBRACE, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_EQ_TILDE, + anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_COLON, - anon_sym_DOLLAR, - anon_sym_STAR, - sym_NAME, - [1555] = 1, - ACTIONS(182), 13, + anon_sym_RBRACE_RBRACE, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [2806] = 12, + ACTIONS(71), 1, + anon_sym_LPAREN, + ACTIONS(75), 1, + anon_sym_BQUOTE, + ACTIONS(77), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(83), 1, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(286), 1, + sym_identifier, + STATE(162), 1, + sym_value, + STATE(39), 2, + sym_backticked, + sym_indented_backticked, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(35), 3, + sym_function_call, + sym_command, + sym_string, + [2848] = 12, + ACTIONS(71), 1, + anon_sym_LPAREN, + ACTIONS(75), 1, + anon_sym_BQUOTE, + ACTIONS(77), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(83), 1, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(286), 1, + sym_identifier, + STATE(157), 1, + sym_value, + STATE(39), 2, + sym_backticked, + sym_indented_backticked, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + STATE(35), 3, + sym_function_call, + sym_command, + sym_string, + [2890] = 10, + ACTIONS(290), 1, + aux_sym_shebang_token1, + ACTIONS(292), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(294), 1, + sym_text, + ACTIONS(296), 1, + sym__dedent, + ACTIONS(298), 1, + sym__newline, + STATE(81), 1, + sym_shebang, + STATE(160), 1, + sym_recipe_line_prefix, + STATE(74), 2, + sym_recipe_line, + aux_sym_recipe_body_repeat1, + STATE(155), 2, + sym_interpolation, + aux_sym_recipe_line_repeat1, + ACTIONS(288), 4, + anon_sym_AT, + anon_sym_AT_DASH, + anon_sym_DASH_AT, + anon_sym_DASH, + [2926] = 2, + ACTIONS(300), 1, + anon_sym_LPAREN, + ACTIONS(201), 13, anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_PLUS, anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_LBRACE, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_EQ_TILDE, @@ -3475,1917 +4685,3087 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON, anon_sym_DOLLAR, anon_sym_STAR, - sym_NAME, - [1571] = 2, - ACTIONS(168), 5, - anon_sym_if, - sym_BACKTICK, - sym_NAME, - sym_RAW_STRING, - sym_STRING, - ACTIONS(164), 7, + anon_sym_RBRACE_RBRACE, + sym_identifier, + [2945] = 2, + ACTIONS(195), 6, + anon_sym_alias, + anon_sym_export, + anon_sym_import, + anon_sym_mod, + anon_sym_set, + sym_identifier, + ACTIONS(197), 7, + sym__newline, + ts_builtin_sym_end, + anon_sym_LBRACK, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_AT, + aux_sym_comment_token1, + [2963] = 2, + ACTIONS(131), 6, + anon_sym_alias, + anon_sym_export, + anon_sym_import, + anon_sym_mod, + anon_sym_set, + sym_identifier, + ACTIONS(133), 7, + sym__newline, + ts_builtin_sym_end, + anon_sym_LBRACK, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_AT, + aux_sym_comment_token1, + [2981] = 2, + ACTIONS(179), 6, + anon_sym_alias, + anon_sym_export, + anon_sym_import, + anon_sym_mod, + anon_sym_set, + sym_identifier, + ACTIONS(181), 7, + sym__newline, + ts_builtin_sym_end, + anon_sym_LBRACK, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_AT, + aux_sym_comment_token1, + [2999] = 8, + ACTIONS(292), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(294), 1, + sym_text, + ACTIONS(298), 1, + sym__newline, + ACTIONS(302), 1, + sym__dedent, + STATE(160), 1, + sym_recipe_line_prefix, + STATE(80), 2, + sym_recipe_line, + aux_sym_recipe_body_repeat1, + STATE(155), 2, + sym_interpolation, + aux_sym_recipe_line_repeat1, + ACTIONS(288), 4, + anon_sym_AT, + anon_sym_AT_DASH, + anon_sym_DASH_AT, + anon_sym_DASH, + [3029] = 2, + ACTIONS(187), 6, + anon_sym_alias, + anon_sym_export, + anon_sym_import, + anon_sym_mod, + anon_sym_set, + sym_identifier, + ACTIONS(189), 7, + sym__newline, + ts_builtin_sym_end, + anon_sym_LBRACK, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_AT, + aux_sym_comment_token1, + [3047] = 2, + ACTIONS(135), 6, + anon_sym_alias, + anon_sym_export, + anon_sym_import, + anon_sym_mod, + anon_sym_set, + sym_identifier, + ACTIONS(137), 7, + sym__newline, + ts_builtin_sym_end, + anon_sym_LBRACK, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_AT, + aux_sym_comment_token1, + [3065] = 2, + ACTIONS(191), 6, + anon_sym_alias, + anon_sym_export, + anon_sym_import, + anon_sym_mod, + anon_sym_set, + sym_identifier, + ACTIONS(193), 7, + sym__newline, + ts_builtin_sym_end, + anon_sym_LBRACK, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_AT, + aux_sym_comment_token1, + [3083] = 8, + ACTIONS(292), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(294), 1, + sym_text, + ACTIONS(298), 1, + sym__newline, + ACTIONS(304), 1, + sym__dedent, + STATE(160), 1, + sym_recipe_line_prefix, + STATE(80), 2, + sym_recipe_line, + aux_sym_recipe_body_repeat1, + STATE(155), 2, + sym_interpolation, + aux_sym_recipe_line_repeat1, + ACTIONS(288), 4, + anon_sym_AT, + anon_sym_AT_DASH, + anon_sym_DASH_AT, + anon_sym_DASH, + [3113] = 4, + ACTIONS(310), 1, + sym__indent, + STATE(114), 1, + sym_recipe_body, + ACTIONS(306), 5, + sym__newline, + ts_builtin_sym_end, + anon_sym_LBRACK, + anon_sym_AT, + aux_sym_comment_token1, + ACTIONS(308), 6, + anon_sym_alias, + anon_sym_export, + anon_sym_import, + anon_sym_mod, + anon_sym_set, + sym_identifier, + [3135] = 8, + ACTIONS(315), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(318), 1, + sym_text, + ACTIONS(321), 1, + sym__dedent, + ACTIONS(323), 1, + sym__newline, + STATE(160), 1, + sym_recipe_line_prefix, + STATE(80), 2, + sym_recipe_line, + aux_sym_recipe_body_repeat1, + STATE(155), 2, + sym_interpolation, + aux_sym_recipe_line_repeat1, + ACTIONS(312), 4, + anon_sym_AT, + anon_sym_AT_DASH, + anon_sym_DASH_AT, + anon_sym_DASH, + [3165] = 8, + ACTIONS(292), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(294), 1, + sym_text, + ACTIONS(298), 1, + sym__newline, + ACTIONS(302), 1, + sym__dedent, + STATE(160), 1, + sym_recipe_line_prefix, + STATE(78), 2, + sym_recipe_line, + aux_sym_recipe_body_repeat1, + STATE(155), 2, + sym_interpolation, + aux_sym_recipe_line_repeat1, + ACTIONS(288), 4, + anon_sym_AT, + anon_sym_AT_DASH, + anon_sym_DASH_AT, + anon_sym_DASH, + [3195] = 4, + ACTIONS(310), 1, + sym__indent, + STATE(104), 1, + sym_recipe_body, + ACTIONS(326), 5, + sym__newline, + ts_builtin_sym_end, + anon_sym_LBRACK, + anon_sym_AT, + aux_sym_comment_token1, + ACTIONS(328), 6, + anon_sym_alias, + anon_sym_export, + anon_sym_import, + anon_sym_mod, + anon_sym_set, + sym_identifier, + [3217] = 2, + ACTIONS(183), 6, + anon_sym_alias, + anon_sym_export, + anon_sym_import, + anon_sym_mod, + anon_sym_set, + sym_identifier, + ACTIONS(185), 7, + sym__newline, + ts_builtin_sym_end, + anon_sym_LBRACK, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_AT, + aux_sym_comment_token1, + [3235] = 3, + ACTIONS(330), 1, anon_sym_PLUS, + ACTIONS(278), 5, + anon_sym_if, + sym_identifier, + anon_sym_BQUOTE, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(280), 6, anon_sym_SLASH, anon_sym_LPAREN, anon_sym_RPAREN, - sym_INDENTED_BACKTICK, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - [1588] = 8, - ACTIONS(124), 1, - anon_sym_LPAREN, - ACTIONS(128), 1, - sym_BACKTICK, - ACTIONS(130), 1, - sym_INDENTED_BACKTICK, - ACTIONS(196), 1, - sym_NAME, - STATE(113), 1, - sym_value, - ACTIONS(134), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(136), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - STATE(50), 3, - sym_call, - sym_cmd, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [3254] = 8, + ACTIONS(171), 1, + sym_raw_string, + ACTIONS(173), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(175), 1, + anon_sym_DQUOTE, + ACTIONS(177), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(332), 1, + anon_sym_LBRACK, + ACTIONS(334), 2, + anon_sym_true, + anon_sym_false, + STATE(204), 2, + sym_boolean, sym_string, - [1617] = 3, - ACTIONS(200), 2, + STATE(71), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + [3283] = 4, + ACTIONS(330), 1, anon_sym_PLUS, + ACTIONS(338), 1, anon_sym_SLASH, - ACTIONS(198), 5, + ACTIONS(336), 5, anon_sym_if, - sym_BACKTICK, - sym_NAME, - sym_RAW_STRING, - sym_STRING, - ACTIONS(202), 5, + sym_identifier, + anon_sym_BQUOTE, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(340), 5, anon_sym_LPAREN, anon_sym_RPAREN, - sym_INDENTED_BACKTICK, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - [1636] = 8, - ACTIONS(124), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [3304] = 4, + ACTIONS(330), 1, + anon_sym_PLUS, + ACTIONS(338), 1, + anon_sym_SLASH, + ACTIONS(342), 5, + anon_sym_if, + sym_identifier, + anon_sym_BQUOTE, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(344), 5, anon_sym_LPAREN, - ACTIONS(128), 1, - sym_BACKTICK, - ACTIONS(130), 1, - sym_INDENTED_BACKTICK, - ACTIONS(196), 1, - sym_NAME, - STATE(116), 1, - sym_value, - ACTIONS(134), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(136), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - STATE(50), 3, - sym_call, - sym_cmd, - sym_string, - [1665] = 2, - ACTIONS(204), 5, - sym_NEWLINE, + anon_sym_RPAREN, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [3325] = 2, + ACTIONS(199), 5, + anon_sym_if, + sym_identifier, + anon_sym_BQUOTE, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(201), 7, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [3342] = 2, + ACTIONS(346), 5, + sym__newline, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_AT, aux_sym_comment_token1, - ACTIONS(206), 6, + ACTIONS(348), 6, anon_sym_alias, anon_sym_export, anon_sym_import, anon_sym_mod, anon_sym_set, - sym_NAME, - [1681] = 2, - ACTIONS(208), 5, - sym_NEWLINE, + sym_identifier, + [3358] = 2, + ACTIONS(350), 5, + sym__newline, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_AT, aux_sym_comment_token1, - ACTIONS(210), 6, + ACTIONS(352), 6, anon_sym_alias, anon_sym_export, anon_sym_import, anon_sym_mod, anon_sym_set, - sym_NAME, - [1697] = 2, - ACTIONS(212), 5, - sym_NEWLINE, + sym_identifier, + [3374] = 2, + ACTIONS(354), 5, + anon_sym_if, + sym_identifier, + anon_sym_BQUOTE, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(356), 6, + anon_sym_SLASH, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [3390] = 2, + ACTIONS(358), 5, + sym__newline, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_AT, aux_sym_comment_token1, - ACTIONS(214), 6, + ACTIONS(360), 6, anon_sym_alias, anon_sym_export, anon_sym_import, anon_sym_mod, anon_sym_set, - sym_NAME, - [1713] = 2, - ACTIONS(216), 5, - sym_NEWLINE, + sym_identifier, + [3406] = 2, + ACTIONS(362), 5, + sym__newline, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_AT, aux_sym_comment_token1, - ACTIONS(218), 6, + ACTIONS(364), 6, anon_sym_alias, anon_sym_export, anon_sym_import, anon_sym_mod, anon_sym_set, - sym_NAME, - [1729] = 2, - ACTIONS(220), 5, - sym_NEWLINE, + sym_identifier, + [3422] = 2, + ACTIONS(366), 5, + sym__newline, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_AT, aux_sym_comment_token1, - ACTIONS(222), 6, + ACTIONS(368), 6, anon_sym_alias, anon_sym_export, anon_sym_import, anon_sym_mod, anon_sym_set, - sym_NAME, - [1745] = 2, - ACTIONS(224), 5, - sym_NEWLINE, + sym_identifier, + [3438] = 2, + ACTIONS(370), 5, + sym__newline, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_AT, aux_sym_comment_token1, - ACTIONS(226), 6, + ACTIONS(372), 6, anon_sym_alias, anon_sym_export, anon_sym_import, anon_sym_mod, anon_sym_set, - sym_NAME, - [1761] = 2, - ACTIONS(228), 5, - sym_NEWLINE, + sym_identifier, + [3454] = 2, + ACTIONS(374), 5, + sym__newline, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_AT, aux_sym_comment_token1, - ACTIONS(230), 6, + ACTIONS(376), 6, anon_sym_alias, anon_sym_export, anon_sym_import, anon_sym_mod, anon_sym_set, - sym_NAME, - [1777] = 2, - ACTIONS(232), 5, - sym_NEWLINE, + sym_identifier, + [3470] = 2, + ACTIONS(378), 5, + sym__newline, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_AT, aux_sym_comment_token1, - ACTIONS(234), 6, + ACTIONS(380), 6, anon_sym_alias, anon_sym_export, anon_sym_import, anon_sym_mod, anon_sym_set, - sym_NAME, - [1793] = 2, - ACTIONS(236), 5, - sym_NEWLINE, + sym_identifier, + [3486] = 2, + ACTIONS(382), 5, + sym__newline, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_AT, aux_sym_comment_token1, - ACTIONS(238), 6, + ACTIONS(384), 6, anon_sym_alias, anon_sym_export, anon_sym_import, anon_sym_mod, anon_sym_set, - sym_NAME, - [1809] = 2, - ACTIONS(240), 5, - sym_NEWLINE, + sym_identifier, + [3502] = 9, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(83), 1, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(386), 1, + anon_sym_COMMA, + ACTIONS(388), 1, + anon_sym_RBRACK, + STATE(112), 1, + aux_sym_setting_repeat1, + STATE(327), 1, + sym_string, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + [3532] = 9, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(83), 1, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(386), 1, + anon_sym_COMMA, + ACTIONS(390), 1, + anon_sym_RBRACK, + STATE(115), 1, + aux_sym_setting_repeat1, + STATE(297), 1, + sym_string, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + [3562] = 2, + ACTIONS(392), 5, + sym__newline, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_AT, aux_sym_comment_token1, - ACTIONS(242), 6, + ACTIONS(394), 6, anon_sym_alias, anon_sym_export, anon_sym_import, anon_sym_mod, anon_sym_set, - sym_NAME, - [1825] = 2, - ACTIONS(244), 5, - sym_NEWLINE, + sym_identifier, + [3578] = 2, + ACTIONS(396), 5, + sym__newline, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_AT, aux_sym_comment_token1, - ACTIONS(246), 6, + ACTIONS(398), 6, anon_sym_alias, anon_sym_export, anon_sym_import, anon_sym_mod, anon_sym_set, - sym_NAME, - [1841] = 2, - ACTIONS(116), 5, - sym_NEWLINE, + sym_identifier, + [3594] = 2, + ACTIONS(400), 5, + sym__newline, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_AT, aux_sym_comment_token1, - ACTIONS(118), 6, + ACTIONS(402), 6, anon_sym_alias, anon_sym_export, anon_sym_import, anon_sym_mod, anon_sym_set, - sym_NAME, - [1857] = 2, - ACTIONS(248), 5, - sym_NEWLINE, + sym_identifier, + [3610] = 2, + ACTIONS(404), 5, + sym__newline, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_AT, aux_sym_comment_token1, - ACTIONS(250), 6, + ACTIONS(406), 6, anon_sym_alias, anon_sym_export, anon_sym_import, anon_sym_mod, anon_sym_set, - sym_NAME, - [1873] = 2, - ACTIONS(252), 5, - sym_NEWLINE, + sym_identifier, + [3626] = 2, + ACTIONS(408), 5, + sym__newline, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_AT, aux_sym_comment_token1, - ACTIONS(254), 6, + ACTIONS(410), 6, anon_sym_alias, anon_sym_export, anon_sym_import, anon_sym_mod, anon_sym_set, - sym_NAME, - [1889] = 2, - ACTIONS(256), 5, - sym_NEWLINE, + sym_identifier, + [3642] = 2, + ACTIONS(412), 5, + sym__newline, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_AT, aux_sym_comment_token1, - ACTIONS(258), 6, + ACTIONS(414), 6, anon_sym_alias, anon_sym_export, anon_sym_import, anon_sym_mod, anon_sym_set, - sym_NAME, - [1905] = 2, - ACTIONS(260), 5, - sym_NEWLINE, + sym_identifier, + [3658] = 2, + ACTIONS(416), 5, + sym__newline, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_AT, aux_sym_comment_token1, - ACTIONS(262), 6, + ACTIONS(418), 6, anon_sym_alias, anon_sym_export, anon_sym_import, anon_sym_mod, anon_sym_set, - sym_NAME, - [1921] = 2, - ACTIONS(264), 5, - sym_NEWLINE, + sym_identifier, + [3674] = 2, + ACTIONS(420), 5, + sym__newline, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_AT, aux_sym_comment_token1, - ACTIONS(266), 6, + ACTIONS(422), 6, anon_sym_alias, anon_sym_export, anon_sym_import, anon_sym_mod, anon_sym_set, - sym_NAME, - [1937] = 8, - ACTIONS(268), 1, - anon_sym_POUND_BANG, - ACTIONS(270), 1, - sym_notcomment, - ACTIONS(272), 1, + sym_identifier, + [3690] = 2, + ACTIONS(424), 5, + sym__newline, + ts_builtin_sym_end, + anon_sym_LBRACK, + anon_sym_AT, aux_sym_comment_token1, - ACTIONS(274), 1, - sym_DEDENT, - STATE(91), 1, - sym_shebang, - STATE(100), 2, - sym_line, - aux_sym_shebang_body_repeat1, - STATE(145), 2, - sym_recipeline, - sym_comment, - STATE(180), 2, - sym_shebang_recipe, - sym_recipe_body, - [1965] = 2, - ACTIONS(174), 5, - sym_NEWLINE, + ACTIONS(426), 6, + anon_sym_alias, + anon_sym_export, + anon_sym_import, + anon_sym_mod, + anon_sym_set, + sym_identifier, + [3706] = 2, + ACTIONS(428), 5, + sym__newline, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_AT, aux_sym_comment_token1, - ACTIONS(176), 6, + ACTIONS(430), 6, anon_sym_alias, anon_sym_export, anon_sym_import, anon_sym_mod, anon_sym_set, - sym_NAME, - [1981] = 2, - ACTIONS(276), 5, - sym_NEWLINE, + sym_identifier, + [3722] = 2, + ACTIONS(266), 5, + sym__newline, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_AT, aux_sym_comment_token1, - ACTIONS(278), 6, + ACTIONS(268), 6, anon_sym_alias, anon_sym_export, anon_sym_import, anon_sym_mod, anon_sym_set, - sym_NAME, - [1997] = 2, - ACTIONS(280), 5, - sym_NEWLINE, + sym_identifier, + [3738] = 9, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(83), 1, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(386), 1, + anon_sym_COMMA, + ACTIONS(432), 1, + anon_sym_RBRACK, + STATE(138), 1, + aux_sym_setting_repeat1, + STATE(300), 1, + sym_string, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + [3768] = 2, + ACTIONS(434), 5, + sym__newline, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_AT, aux_sym_comment_token1, - ACTIONS(282), 6, + ACTIONS(436), 6, anon_sym_alias, anon_sym_export, anon_sym_import, anon_sym_mod, anon_sym_set, - sym_NAME, - [2013] = 2, - ACTIONS(284), 5, - sym_NEWLINE, + sym_identifier, + [3784] = 2, + ACTIONS(326), 5, + sym__newline, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_AT, aux_sym_comment_token1, - ACTIONS(286), 6, + ACTIONS(328), 6, anon_sym_alias, anon_sym_export, anon_sym_import, anon_sym_mod, anon_sym_set, - sym_NAME, - [2029] = 2, - ACTIONS(288), 5, - sym_NEWLINE, + sym_identifier, + [3800] = 9, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(83), 1, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(386), 1, + anon_sym_COMMA, + ACTIONS(438), 1, + anon_sym_RBRACK, + STATE(138), 1, + aux_sym_setting_repeat1, + STATE(298), 1, + sym_string, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + [3830] = 2, + ACTIONS(440), 5, + sym__newline, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_AT, aux_sym_comment_token1, - ACTIONS(290), 6, + ACTIONS(442), 6, anon_sym_alias, anon_sym_export, anon_sym_import, anon_sym_mod, anon_sym_set, - sym_NAME, - [2045] = 2, - ACTIONS(292), 5, - sym_NEWLINE, + sym_identifier, + [3846] = 2, + ACTIONS(444), 5, + sym__newline, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_AT, aux_sym_comment_token1, - ACTIONS(294), 6, + ACTIONS(446), 6, anon_sym_alias, anon_sym_export, anon_sym_import, anon_sym_mod, anon_sym_set, - sym_NAME, - [2061] = 2, - ACTIONS(296), 5, - sym_NEWLINE, + sym_identifier, + [3862] = 2, + ACTIONS(448), 5, + sym__newline, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_AT, aux_sym_comment_token1, - ACTIONS(298), 6, + ACTIONS(450), 6, anon_sym_alias, anon_sym_export, anon_sym_import, anon_sym_mod, anon_sym_set, - sym_NAME, - [2077] = 2, - ACTIONS(300), 5, - sym_NEWLINE, + sym_identifier, + [3878] = 2, + ACTIONS(452), 5, + sym__newline, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_AT, aux_sym_comment_token1, - ACTIONS(302), 6, + ACTIONS(454), 6, anon_sym_alias, anon_sym_export, anon_sym_import, anon_sym_mod, anon_sym_set, - sym_NAME, - [2093] = 2, - ACTIONS(304), 5, - sym_NEWLINE, + sym_identifier, + [3894] = 2, + ACTIONS(456), 5, + sym__newline, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_AT, aux_sym_comment_token1, - ACTIONS(306), 6, + ACTIONS(458), 6, anon_sym_alias, anon_sym_export, anon_sym_import, anon_sym_mod, anon_sym_set, - sym_NAME, - [2109] = 2, - ACTIONS(308), 5, - sym_NEWLINE, + sym_identifier, + [3910] = 2, + ACTIONS(460), 5, + sym__newline, ts_builtin_sym_end, anon_sym_LBRACK, anon_sym_AT, aux_sym_comment_token1, - ACTIONS(310), 6, + ACTIONS(462), 6, anon_sym_alias, anon_sym_export, anon_sym_import, anon_sym_mod, anon_sym_set, - sym_NAME, - [2125] = 2, - ACTIONS(312), 2, + sym_identifier, + [3926] = 9, + ACTIONS(464), 1, + sym_identifier, + ACTIONS(466), 1, + anon_sym_COLON_EQ, + ACTIONS(470), 1, + anon_sym_COLON, + ACTIONS(472), 1, + anon_sym_DOLLAR, + STATE(137), 1, + aux_sym_parameters_repeat1, + STATE(147), 1, + sym_parameter, + STATE(302), 1, + sym_parameters, + STATE(305), 1, + sym_variadic_parameter, + ACTIONS(468), 2, + anon_sym_PLUS, + anon_sym_STAR, + [3955] = 8, + ACTIONS(464), 1, + sym_identifier, + ACTIONS(472), 1, + anon_sym_DOLLAR, + ACTIONS(474), 1, + anon_sym_COLON, + STATE(137), 1, + aux_sym_parameters_repeat1, + STATE(147), 1, + sym_parameter, + STATE(305), 1, + sym_variadic_parameter, + STATE(321), 1, + sym_parameters, + ACTIONS(468), 2, + anon_sym_PLUS, + anon_sym_STAR, + [3981] = 8, + ACTIONS(464), 1, + sym_identifier, + ACTIONS(472), 1, + anon_sym_DOLLAR, + ACTIONS(476), 1, + anon_sym_COLON, + STATE(137), 1, + aux_sym_parameters_repeat1, + STATE(147), 1, + sym_parameter, + STATE(302), 1, + sym_parameters, + STATE(305), 1, + sym_variadic_parameter, + ACTIONS(468), 2, + anon_sym_PLUS, + anon_sym_STAR, + [4007] = 2, + ACTIONS(478), 1, + anon_sym_PLUS, + ACTIONS(280), 8, + anon_sym_COMMA, + anon_sym_SLASH, + anon_sym_LBRACE, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_EQ_TILDE, + anon_sym_RPAREN, + anon_sym_RBRACE_RBRACE, + [4021] = 3, + ACTIONS(478), 1, anon_sym_PLUS, + ACTIONS(480), 1, anon_sym_SLASH, - ACTIONS(202), 7, + ACTIONS(344), 7, anon_sym_COMMA, anon_sym_LBRACE, - anon_sym_RBRACE, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_EQ_TILDE, anon_sym_RPAREN, - [2139] = 5, - ACTIONS(314), 1, - anon_sym_LBRACK, - ACTIONS(120), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(122), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - ACTIONS(316), 2, - anon_sym_true, - anon_sym_false, - STATE(127), 2, - sym_boolean, - sym_string, - [2159] = 6, - ACTIONS(320), 1, - anon_sym_COLON, - ACTIONS(322), 1, - anon_sym_DOLLAR, - ACTIONS(324), 1, - sym_NAME, - STATE(173), 1, - sym_variadic_parameters, - ACTIONS(318), 2, - anon_sym_PLUS, - anon_sym_STAR, - STATE(97), 2, - sym_parameter, - aux_sym_parameters_repeat1, - [2180] = 6, - ACTIONS(326), 1, - anon_sym_COMMA, - ACTIONS(328), 1, + anon_sym_RBRACE_RBRACE, + [4037] = 7, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(83), 1, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(482), 1, anon_sym_RBRACK, - STATE(93), 1, - aux_sym_setting_repeat1, - STATE(166), 1, + STATE(99), 1, sym_string, - ACTIONS(134), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(136), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - [2201] = 6, - ACTIONS(326), 1, - anon_sym_COMMA, - ACTIONS(330), 1, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + [4061] = 7, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(83), 1, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(484), 1, anon_sym_RBRACK, - STATE(89), 1, - aux_sym_setting_repeat1, - STATE(208), 1, + STATE(100), 1, sym_string, - ACTIONS(134), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(136), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - [2222] = 6, - ACTIONS(326), 1, - anon_sym_COMMA, - ACTIONS(332), 1, - anon_sym_RBRACK, - STATE(93), 1, - aux_sym_setting_repeat1, - STATE(197), 1, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + [4085] = 7, + ACTIONS(171), 1, + sym_raw_string, + ACTIONS(173), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(175), 1, + anon_sym_DQUOTE, + ACTIONS(177), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(486), 1, + anon_sym_QMARK, + STATE(120), 1, sym_string, - ACTIONS(134), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(136), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - [2243] = 6, - ACTIONS(326), 1, + STATE(71), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + [4109] = 3, + ACTIONS(478), 1, + anon_sym_PLUS, + ACTIONS(480), 1, + anon_sym_SLASH, + ACTIONS(340), 7, anon_sym_COMMA, - ACTIONS(334), 1, - anon_sym_RBRACK, - STATE(87), 1, - aux_sym_setting_repeat1, - STATE(226), 1, + anon_sym_LBRACE, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_EQ_TILDE, + anon_sym_RPAREN, + anon_sym_RBRACE_RBRACE, + [4125] = 2, + ACTIONS(490), 2, + sym__dedent, + sym__newline, + ACTIONS(488), 6, + anon_sym_AT, + anon_sym_AT_DASH, + anon_sym_DASH_AT, + anon_sym_DASH, + anon_sym_LBRACE_LBRACE, + sym_text, + [4138] = 6, + ACTIONS(79), 1, + sym_raw_string, + ACTIONS(81), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(83), 1, + anon_sym_DQUOTE, + ACTIONS(85), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + STATE(145), 1, sym_string, - ACTIONS(134), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(136), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - [2264] = 5, - ACTIONS(270), 1, - sym_notcomment, - ACTIONS(336), 1, - aux_sym_comment_token1, - STATE(176), 1, - sym_shebang_body, - STATE(96), 2, - sym_line, - aux_sym_shebang_body_repeat1, - STATE(145), 2, - sym_recipeline, - sym_comment, - [2282] = 6, - ACTIONS(338), 1, - anon_sym_LPAREN, - ACTIONS(340), 1, - anon_sym_, - ACTIONS(342), 1, - sym_NAME, - ACTIONS(344), 1, - sym_NEWLINE, - STATE(167), 1, - sym_dependencies, - STATE(114), 2, - sym_dependency, - aux_sym_dependencies_repeat1, - [2302] = 4, - ACTIONS(346), 1, + STATE(31), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + [4159] = 6, + ACTIONS(171), 1, + sym_raw_string, + ACTIONS(173), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + ACTIONS(175), 1, + anon_sym_DQUOTE, + ACTIONS(177), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + STATE(113), 1, + sym_string, + STATE(71), 3, + sym_raw_string_indented, + sym_basic_string, + sym_basic_string_indented, + [4180] = 2, + ACTIONS(494), 2, + sym__dedent, + sym__newline, + ACTIONS(492), 6, + anon_sym_AT, + anon_sym_AT_DASH, + anon_sym_DASH_AT, + anon_sym_DASH, + anon_sym_LBRACE_LBRACE, + sym_text, + [4193] = 2, + ACTIONS(498), 2, + sym__dedent, + sym__newline, + ACTIONS(496), 6, + anon_sym_AT, + anon_sym_AT_DASH, + anon_sym_DASH_AT, + anon_sym_DASH, + anon_sym_LBRACE_LBRACE, + sym_text, + [4206] = 2, + ACTIONS(460), 2, + sym__dedent, + sym__newline, + ACTIONS(462), 6, + anon_sym_AT, + anon_sym_AT_DASH, + anon_sym_DASH_AT, + anon_sym_DASH, + anon_sym_LBRACE_LBRACE, + sym_text, + [4219] = 6, + ACTIONS(464), 1, + sym_identifier, + ACTIONS(472), 1, + anon_sym_DOLLAR, + STATE(141), 1, + aux_sym_parameters_repeat1, + STATE(149), 1, + sym_parameter, + STATE(326), 1, + sym_variadic_parameter, + ACTIONS(468), 2, + anon_sym_PLUS, + anon_sym_STAR, + [4239] = 4, + ACTIONS(500), 1, anon_sym_COMMA, - STATE(93), 1, + STATE(138), 1, aux_sym_setting_repeat1, - ACTIONS(351), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(349), 3, + ACTIONS(505), 2, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(503), 3, anon_sym_RBRACK, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - [2318] = 6, - ACTIONS(338), 1, - anon_sym_LPAREN, - ACTIONS(342), 1, - sym_NAME, - ACTIONS(353), 1, - anon_sym_, - ACTIONS(355), 1, - sym_NEWLINE, - STATE(175), 1, - sym_dependencies, - STATE(114), 2, - sym_dependency, - aux_sym_dependencies_repeat1, - [2338] = 5, - ACTIONS(357), 1, - sym_notcomment, - ACTIONS(360), 1, - aux_sym_comment_token1, - ACTIONS(363), 1, - sym_DEDENT, - STATE(95), 2, - sym_line, - aux_sym_shebang_body_repeat1, - STATE(145), 2, - sym_recipeline, - sym_comment, - [2356] = 5, - ACTIONS(270), 1, - sym_notcomment, - ACTIONS(336), 1, - aux_sym_comment_token1, - ACTIONS(365), 1, - sym_DEDENT, - STATE(95), 2, - sym_line, - aux_sym_shebang_body_repeat1, - STATE(145), 2, - sym_recipeline, - sym_comment, - [2374] = 4, - ACTIONS(369), 1, - anon_sym_DOLLAR, - ACTIONS(372), 1, - sym_NAME, - STATE(97), 2, - sym_parameter, - aux_sym_parameters_repeat1, - ACTIONS(367), 3, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [4255] = 2, + ACTIONS(509), 1, + anon_sym_EQ, + ACTIONS(507), 5, anon_sym_PLUS, anon_sym_COLON, + anon_sym_DOLLAR, anon_sym_STAR, - [2390] = 6, - ACTIONS(322), 1, + sym_identifier, + [4266] = 3, + ACTIONS(511), 1, + anon_sym_else, + STATE(142), 1, + aux_sym_if_expression_repeat1, + ACTIONS(244), 4, + sym__newline, + anon_sym_SLASH, + anon_sym_PLUS, + aux_sym_comment_token1, + [4279] = 4, + ACTIONS(513), 1, + sym_identifier, + ACTIONS(518), 1, anon_sym_DOLLAR, - ACTIONS(324), 1, - sym_NAME, - ACTIONS(375), 1, - anon_sym_COLON_EQ, - ACTIONS(377), 1, - anon_sym_COLON, - STATE(188), 1, - sym_parameters, - STATE(86), 2, + ACTIONS(516), 2, + anon_sym_PLUS, + anon_sym_STAR, + STATE(141), 2, sym_parameter, aux_sym_parameters_repeat1, - [2410] = 6, - ACTIONS(338), 1, - anon_sym_LPAREN, - ACTIONS(342), 1, - sym_NAME, - ACTIONS(379), 1, - anon_sym_, - ACTIONS(381), 1, - sym_NEWLINE, - STATE(171), 1, - sym_dependencies, - STATE(114), 2, - sym_dependency, - aux_sym_dependencies_repeat1, - [2430] = 5, - ACTIONS(270), 1, - sym_notcomment, - ACTIONS(336), 1, + [4294] = 3, + ACTIONS(521), 1, + anon_sym_else, + STATE(142), 1, + aux_sym_if_expression_repeat1, + ACTIONS(237), 4, + sym__newline, + anon_sym_SLASH, + anon_sym_PLUS, aux_sym_comment_token1, - ACTIONS(383), 1, - sym_DEDENT, - STATE(95), 2, - sym_line, - aux_sym_shebang_body_repeat1, - STATE(145), 2, - sym_recipeline, - sym_comment, - [2448] = 5, - ACTIONS(322), 1, - anon_sym_DOLLAR, - ACTIONS(324), 1, - sym_NAME, - ACTIONS(385), 1, + [4307] = 3, + ACTIONS(524), 1, + anon_sym_else, + STATE(140), 1, + aux_sym_if_expression_repeat1, + ACTIONS(250), 4, + sym__newline, + anon_sym_SLASH, + anon_sym_PLUS, + aux_sym_comment_token1, + [4320] = 2, + ACTIONS(528), 1, + anon_sym_EQ, + ACTIONS(526), 5, + anon_sym_PLUS, anon_sym_COLON, - STATE(188), 1, - sym_parameters, - STATE(86), 2, - sym_parameter, - aux_sym_parameters_repeat1, - [2465] = 5, - ACTIONS(344), 1, - sym_NEWLINE, - ACTIONS(387), 1, - anon_sym_LPAREN, - ACTIONS(389), 1, - sym_NAME, - STATE(167), 1, - sym_dependencies, - STATE(114), 2, - sym_dependency, - aux_sym_dependencies_repeat1, - [2482] = 4, - ACTIONS(391), 1, - anon_sym_RBRACK, - STATE(88), 1, - sym_string, - ACTIONS(134), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(136), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - [2497] = 5, - ACTIONS(322), 1, anon_sym_DOLLAR, - ACTIONS(324), 1, - sym_NAME, - ACTIONS(393), 1, - anon_sym_COLON, - STATE(182), 1, - sym_parameters, - STATE(86), 2, - sym_parameter, - aux_sym_parameters_repeat1, - [2514] = 4, - ACTIONS(395), 1, + anon_sym_STAR, + sym_identifier, + [4331] = 2, + ACTIONS(532), 2, + sym_raw_string, + anon_sym_DQUOTE, + ACTIONS(530), 4, + anon_sym_COMMA, anon_sym_RBRACK, - STATE(90), 1, - sym_string, - ACTIONS(134), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(136), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - [2529] = 2, - ACTIONS(399), 1, - anon_sym_EQ, - ACTIONS(397), 5, - anon_sym_PLUS, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + [4342] = 5, + ACTIONS(17), 1, + anon_sym_LBRACK, + ACTIONS(19), 1, + anon_sym_AT, + ACTIONS(534), 1, + sym_identifier, + STATE(309), 1, + sym_recipe_header, + STATE(154), 2, + sym_attribute, + aux_sym_recipe_repeat1, + [4359] = 2, + ACTIONS(538), 1, anon_sym_COLON, + ACTIONS(536), 4, + anon_sym_PLUS, anon_sym_DOLLAR, anon_sym_STAR, - sym_NAME, - [2540] = 5, - ACTIONS(381), 1, - sym_NEWLINE, - ACTIONS(387), 1, - anon_sym_LPAREN, - ACTIONS(389), 1, - sym_NAME, - STATE(171), 1, - sym_dependencies, - STATE(114), 2, - sym_dependency, - aux_sym_dependencies_repeat1, - [2557] = 2, - ACTIONS(403), 1, - anon_sym_EQ, - ACTIONS(401), 5, + sym_identifier, + [4369] = 3, + ACTIONS(540), 1, + anon_sym_else, + STATE(148), 1, + aux_sym_if_expression_repeat1, + ACTIONS(237), 3, + anon_sym_SLASH, anon_sym_PLUS, + anon_sym_RBRACE, + [4381] = 2, + ACTIONS(543), 1, anon_sym_COLON, + ACTIONS(536), 4, + anon_sym_PLUS, anon_sym_DOLLAR, anon_sym_STAR, - sym_NAME, - [2568] = 4, - ACTIONS(405), 1, - anon_sym_QMARK, - STATE(71), 1, - sym_string, - ACTIONS(120), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(122), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - [2583] = 5, - ACTIONS(387), 1, + sym_identifier, + [4391] = 1, + ACTIONS(264), 5, + sym__newline, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_else, + aux_sym_comment_token1, + [4399] = 2, + ACTIONS(545), 1, + anon_sym_LPAREN, + ACTIONS(201), 4, + sym__newline, + anon_sym_SLASH, + anon_sym_PLUS, + aux_sym_comment_token1, + [4409] = 5, + ACTIONS(25), 1, + sym__newline, + ACTIONS(29), 1, + aux_sym_comment_token1, + ACTIONS(547), 1, + anon_sym_COLON_EQ, + STATE(97), 1, + sym_comment, + STATE(110), 1, + sym_eol, + [4425] = 4, + ACTIONS(549), 1, + sym_identifier, + ACTIONS(551), 1, anon_sym_LPAREN, - ACTIONS(389), 1, - sym_NAME, - ACTIONS(407), 1, - sym_NEWLINE, - STATE(189), 1, - sym_dependencies, - STATE(114), 2, + ACTIONS(553), 1, + sym__newline, + STATE(165), 2, sym_dependency, - aux_sym_dependencies_repeat1, - [2600] = 2, - ACTIONS(411), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(409), 4, - anon_sym_COMMA, - anon_sym_RBRACK, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - [2611] = 4, - ACTIONS(413), 1, + aux_sym_recipe_header_repeat1, + [4439] = 3, + ACTIONS(557), 1, + anon_sym_LBRACK, + ACTIONS(555), 2, + anon_sym_AT, + sym_identifier, + STATE(154), 2, + sym_attribute, + aux_sym_recipe_repeat1, + [4451] = 4, + ACTIONS(292), 1, anon_sym_LBRACE_LBRACE, - ACTIONS(416), 1, - sym_TEXT, - ACTIONS(419), 1, - sym_NEWLINE, - STATE(112), 2, + ACTIONS(560), 1, + sym_text, + ACTIONS(562), 1, + sym__newline, + STATE(163), 2, sym_interpolation, - aux_sym_recipeline_repeat1, - [2625] = 1, - ACTIONS(421), 5, + aux_sym_recipe_line_repeat1, + [4465] = 4, + ACTIONS(549), 1, + sym_identifier, + ACTIONS(551), 1, + anon_sym_LPAREN, + ACTIONS(553), 1, + sym__newline, + STATE(164), 2, + sym_dependency, + aux_sym_recipe_header_repeat1, + [4479] = 1, + ACTIONS(564), 5, anon_sym_PLUS, anon_sym_COLON, anon_sym_DOLLAR, anon_sym_STAR, - sym_NAME, - [2633] = 4, - ACTIONS(387), 1, - anon_sym_LPAREN, - ACTIONS(389), 1, - sym_NAME, - ACTIONS(423), 1, - sym_NEWLINE, - STATE(115), 2, - sym_dependency, - aux_sym_dependencies_repeat1, - [2647] = 4, - ACTIONS(425), 1, + sym_identifier, + [4487] = 1, + ACTIONS(256), 5, + sym__newline, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_else, + aux_sym_comment_token1, + [4495] = 4, + ACTIONS(292), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(560), 1, + sym_text, + ACTIONS(566), 1, + sym__newline, + STATE(163), 2, + sym_interpolation, + aux_sym_recipe_line_repeat1, + [4509] = 4, + ACTIONS(292), 1, + anon_sym_LBRACE_LBRACE, + ACTIONS(562), 1, + sym__newline, + ACTIONS(568), 1, + sym_text, + STATE(159), 2, + sym_interpolation, + aux_sym_recipe_line_repeat1, + [4523] = 4, + ACTIONS(549), 1, + sym_identifier, + ACTIONS(551), 1, anon_sym_LPAREN, - ACTIONS(428), 1, - sym_NAME, - ACTIONS(431), 1, - sym_NEWLINE, - STATE(115), 2, + ACTIONS(570), 1, + sym__newline, + STATE(164), 2, sym_dependency, - aux_sym_dependencies_repeat1, - [2661] = 1, - ACTIONS(433), 5, + aux_sym_recipe_header_repeat1, + [4537] = 1, + ACTIONS(572), 5, anon_sym_PLUS, anon_sym_COLON, anon_sym_DOLLAR, anon_sym_STAR, - sym_NAME, - [2669] = 5, - ACTIONS(25), 1, - sym_NEWLINE, - ACTIONS(61), 1, - aux_sym_comment_token1, - ACTIONS(435), 1, - anon_sym_COLON_EQ, - STATE(62), 1, - sym_comment, - STATE(64), 1, - sym_eol, - [2685] = 4, - ACTIONS(437), 1, + sym_identifier, + [4545] = 4, + ACTIONS(574), 1, anon_sym_LBRACE_LBRACE, - ACTIONS(439), 1, - sym_TEXT, - ACTIONS(441), 1, - sym_NEWLINE, - STATE(112), 2, + ACTIONS(577), 1, + sym_text, + ACTIONS(580), 1, + sym__newline, + STATE(163), 2, sym_interpolation, - aux_sym_recipeline_repeat1, - [2699] = 2, - ACTIONS(443), 1, + aux_sym_recipe_line_repeat1, + [4559] = 4, + ACTIONS(582), 1, + sym_identifier, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(164), 4, - sym_NEWLINE, + ACTIONS(588), 1, + sym__newline, + STATE(164), 2, + sym_dependency, + aux_sym_recipe_header_repeat1, + [4573] = 4, + ACTIONS(549), 1, + sym_identifier, + ACTIONS(551), 1, + anon_sym_LPAREN, + ACTIONS(590), 1, + sym__newline, + STATE(164), 2, + sym_dependency, + aux_sym_recipe_header_repeat1, + [4587] = 4, + ACTIONS(549), 1, + sym_identifier, + ACTIONS(551), 1, + anon_sym_LPAREN, + ACTIONS(592), 1, + sym__newline, + STATE(156), 2, + sym_dependency, + aux_sym_recipe_header_repeat1, + [4601] = 4, + ACTIONS(549), 1, + sym_identifier, + ACTIONS(551), 1, + anon_sym_LPAREN, + ACTIONS(590), 1, + sym__newline, + STATE(161), 2, + sym_dependency, + aux_sym_recipe_header_repeat1, + [4615] = 3, + ACTIONS(594), 1, + anon_sym_else, + STATE(148), 1, + aux_sym_if_expression_repeat1, + ACTIONS(244), 3, + anon_sym_SLASH, anon_sym_PLUS, + anon_sym_RBRACE, + [4627] = 3, + ACTIONS(596), 1, + anon_sym_else, + STATE(168), 1, + aux_sym_if_expression_repeat1, + ACTIONS(250), 3, anon_sym_SLASH, - aux_sym_comment_token1, - [2709] = 4, - ACTIONS(437), 1, - anon_sym_LBRACE_LBRACE, - ACTIONS(445), 1, - sym_TEXT, - ACTIONS(447), 1, - sym_NEWLINE, - STATE(118), 2, - sym_interpolation, - aux_sym_recipeline_repeat1, - [2723] = 3, - STATE(111), 1, - sym_string, - ACTIONS(134), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(136), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - [2735] = 3, - STATE(56), 1, - sym_string, - ACTIONS(120), 2, - sym_RAW_STRING, - sym_STRING, - ACTIONS(122), 2, - sym_INDENTED_RAW_STRING, - sym_INDENTED_STRING, - [2747] = 1, - ACTIONS(170), 4, - sym_NEWLINE, anon_sym_PLUS, + anon_sym_RBRACE, + [4639] = 1, + ACTIONS(201), 4, + sym__newline, anon_sym_SLASH, + anon_sym_PLUS, aux_sym_comment_token1, - [2754] = 4, - ACTIONS(25), 1, - sym_NEWLINE, - ACTIONS(61), 1, + [4646] = 1, + ACTIONS(209), 4, + sym__newline, + anon_sym_SLASH, + anon_sym_PLUS, aux_sym_comment_token1, - STATE(62), 1, - sym_comment, - STATE(80), 1, - sym_eol, - [2767] = 4, + [4653] = 4, + ACTIONS(598), 1, + anon_sym_DQUOTE, + ACTIONS(600), 1, + aux_sym_basic_string_token1, + ACTIONS(602), 1, + sym_string_escape, + STATE(190), 1, + aux_sym_basic_string_repeat1, + [4666] = 4, ACTIONS(25), 1, - sym_NEWLINE, - ACTIONS(61), 1, + sym__newline, + ACTIONS(29), 1, aux_sym_comment_token1, - STATE(62), 1, + STATE(97), 1, sym_comment, - STATE(70), 1, + STATE(105), 1, sym_eol, - [2780] = 4, + [4679] = 4, + ACTIONS(604), 1, + anon_sym_DQUOTE, + ACTIONS(606), 1, + aux_sym_basic_string_token1, + ACTIONS(608), 1, + sym_string_escape, + STATE(200), 1, + aux_sym_basic_string_repeat1, + [4692] = 1, + ACTIONS(233), 4, + sym__newline, + anon_sym_SLASH, + anon_sym_PLUS, + aux_sym_comment_token1, + [4699] = 4, + ACTIONS(610), 1, + aux_sym_basic_string_token1, + ACTIONS(612), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(614), 1, + sym_string_escape, + STATE(201), 1, + aux_sym_basic_string_repeat1, + [4712] = 2, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(201), 3, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_RBRACE, + [4721] = 1, + ACTIONS(264), 4, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_else, + anon_sym_RBRACE, + [4728] = 1, + ACTIONS(256), 4, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_else, + anon_sym_RBRACE, + [4735] = 1, + ACTIONS(229), 4, + sym__newline, + anon_sym_SLASH, + anon_sym_PLUS, + aux_sym_comment_token1, + [4742] = 2, + ACTIONS(618), 1, + anon_sym_PLUS, + ACTIONS(280), 3, + sym__newline, + anon_sym_SLASH, + aux_sym_comment_token1, + [4751] = 3, + ACTIONS(618), 1, + anon_sym_PLUS, + ACTIONS(620), 1, + anon_sym_SLASH, + ACTIONS(344), 2, + sym__newline, + aux_sym_comment_token1, + [4762] = 4, + ACTIONS(622), 1, + aux_sym_basic_string_token1, + ACTIONS(624), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(626), 1, + sym_string_escape, + STATE(211), 1, + aux_sym_basic_string_repeat1, + [4775] = 4, ACTIONS(25), 1, - sym_NEWLINE, - ACTIONS(61), 1, + sym__newline, + ACTIONS(29), 1, aux_sym_comment_token1, - STATE(62), 1, - sym_comment, - STATE(79), 1, + STATE(90), 1, sym_eol, - [2793] = 4, + STATE(97), 1, + sym_comment, + [4788] = 4, + ACTIONS(628), 1, + anon_sym_DQUOTE, + ACTIONS(630), 1, + aux_sym_basic_string_token1, + ACTIONS(632), 1, + sym_string_escape, + STATE(197), 1, + aux_sym_basic_string_repeat1, + [4801] = 4, ACTIONS(25), 1, - sym_NEWLINE, - ACTIONS(61), 1, + sym__newline, + ACTIONS(29), 1, aux_sym_comment_token1, - STATE(62), 1, + STATE(97), 1, sym_comment, - STATE(69), 1, + STATE(103), 1, sym_eol, - [2806] = 4, + [4814] = 4, ACTIONS(25), 1, - sym_NEWLINE, - ACTIONS(61), 1, + sym__newline, + ACTIONS(29), 1, aux_sym_comment_token1, - STATE(62), 1, + STATE(97), 1, sym_comment, - STATE(81), 1, + STATE(102), 1, sym_eol, - [2819] = 4, + [4827] = 4, + ACTIONS(634), 1, + aux_sym_basic_string_token1, + ACTIONS(636), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(638), 1, + sym_string_escape, + STATE(194), 1, + aux_sym_basic_string_repeat1, + [4840] = 4, ACTIONS(25), 1, - sym_NEWLINE, - ACTIONS(61), 1, + sym__newline, + ACTIONS(29), 1, aux_sym_comment_token1, - STATE(62), 1, + STATE(97), 1, sym_comment, - STATE(82), 1, + STATE(107), 1, sym_eol, - [2832] = 4, + [4853] = 4, + ACTIONS(630), 1, + aux_sym_basic_string_token1, + ACTIONS(632), 1, + sym_string_escape, + ACTIONS(640), 1, + anon_sym_DQUOTE, + STATE(197), 1, + aux_sym_basic_string_repeat1, + [4866] = 4, ACTIONS(25), 1, - sym_NEWLINE, - ACTIONS(61), 1, + sym__newline, + ACTIONS(29), 1, aux_sym_comment_token1, - STATE(62), 1, + STATE(97), 1, sym_comment, - STATE(66), 1, + STATE(101), 1, sym_eol, - [2845] = 4, + [4879] = 4, ACTIONS(25), 1, - sym_NEWLINE, - ACTIONS(61), 1, + sym__newline, + ACTIONS(29), 1, aux_sym_comment_token1, - STATE(62), 1, - sym_comment, - STATE(83), 1, + STATE(96), 1, sym_eol, - [2858] = 1, - ACTIONS(164), 4, - sym_NEWLINE, - anon_sym_PLUS, + STATE(97), 1, + sym_comment, + [4892] = 1, + ACTIONS(225), 4, + sym__newline, anon_sym_SLASH, - aux_sym_comment_token1, - [2865] = 1, - ACTIONS(182), 4, - sym_NEWLINE, anon_sym_PLUS, - anon_sym_SLASH, aux_sym_comment_token1, - [2872] = 4, - ACTIONS(25), 1, - sym_NEWLINE, - ACTIONS(61), 1, + [4899] = 4, + ACTIONS(622), 1, + aux_sym_basic_string_token1, + ACTIONS(626), 1, + sym_string_escape, + ACTIONS(642), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + STATE(211), 1, + aux_sym_basic_string_repeat1, + [4912] = 4, + ACTIONS(644), 1, aux_sym_comment_token1, - STATE(62), 1, + ACTIONS(646), 1, + sym__newline, + STATE(222), 1, sym_comment, - STATE(68), 1, + STATE(237), 1, sym_eol, - [2885] = 2, - ACTIONS(449), 1, - anon_sym_LPAREN, - ACTIONS(164), 3, - anon_sym_PLUS, + [4925] = 1, + ACTIONS(276), 4, + sym__newline, anon_sym_SLASH, - anon_sym_RBRACE_RBRACE, - [2894] = 2, - ACTIONS(202), 2, - sym_NEWLINE, - aux_sym_comment_token1, - ACTIONS(451), 2, anon_sym_PLUS, + aux_sym_comment_token1, + [4932] = 4, + ACTIONS(648), 1, + anon_sym_DQUOTE, + ACTIONS(650), 1, + aux_sym_basic_string_token1, + ACTIONS(653), 1, + sym_string_escape, + STATE(197), 1, + aux_sym_basic_string_repeat1, + [4945] = 1, + ACTIONS(205), 4, + sym__newline, anon_sym_SLASH, - [2903] = 4, - ACTIONS(25), 1, - sym_NEWLINE, - ACTIONS(61), 1, + anon_sym_PLUS, + aux_sym_comment_token1, + [4952] = 4, + ACTIONS(656), 1, + anon_sym_DQUOTE, + ACTIONS(658), 1, + aux_sym_basic_string_token1, + ACTIONS(660), 1, + sym_string_escape, + STATE(185), 1, + aux_sym_basic_string_repeat1, + [4965] = 4, + ACTIONS(630), 1, + aux_sym_basic_string_token1, + ACTIONS(632), 1, + sym_string_escape, + ACTIONS(662), 1, + anon_sym_DQUOTE, + STATE(197), 1, + aux_sym_basic_string_repeat1, + [4978] = 4, + ACTIONS(622), 1, + aux_sym_basic_string_token1, + ACTIONS(626), 1, + sym_string_escape, + ACTIONS(664), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + STATE(211), 1, + aux_sym_basic_string_repeat1, + [4991] = 4, + ACTIONS(644), 1, aux_sym_comment_token1, - STATE(62), 1, + ACTIONS(646), 1, + sym__newline, + STATE(222), 1, sym_comment, - STATE(77), 1, + STATE(239), 1, sym_eol, - [2916] = 4, - ACTIONS(453), 1, + [5004] = 4, + ACTIONS(25), 1, + sym__newline, + ACTIONS(29), 1, aux_sym_comment_token1, - ACTIONS(455), 1, - sym_NEWLINE, - STATE(162), 1, + STATE(94), 1, + sym_eol, + STATE(97), 1, + sym_comment, + [5017] = 4, + ACTIONS(25), 1, + sym__newline, + ACTIONS(29), 1, + aux_sym_comment_token1, + STATE(95), 1, + sym_eol, + STATE(97), 1, sym_comment, - STATE(163), 1, + [5030] = 4, + ACTIONS(666), 1, + aux_sym_basic_string_token1, + ACTIONS(668), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(670), 1, + sym_string_escape, + STATE(183), 1, + aux_sym_basic_string_repeat1, + [5043] = 4, + ACTIONS(25), 1, + sym__newline, + ACTIONS(29), 1, + aux_sym_comment_token1, + STATE(93), 1, sym_eol, - [2929] = 1, - ACTIONS(186), 4, - sym_NEWLINE, + STATE(97), 1, + sym_comment, + [5056] = 1, + ACTIONS(280), 4, + sym__newline, + anon_sym_SLASH, + anon_sym_PLUS, + aux_sym_comment_token1, + [5063] = 1, + ACTIONS(272), 4, + sym__newline, + anon_sym_SLASH, anon_sym_PLUS, + aux_sym_comment_token1, + [5070] = 3, + ACTIONS(618), 1, + anon_sym_PLUS, + ACTIONS(620), 1, anon_sym_SLASH, + ACTIONS(340), 2, + sym__newline, aux_sym_comment_token1, - [2936] = 4, + [5081] = 4, ACTIONS(25), 1, - sym_NEWLINE, - ACTIONS(61), 1, + sym__newline, + ACTIONS(29), 1, aux_sym_comment_token1, - STATE(62), 1, + STATE(97), 1, sym_comment, - STATE(65), 1, + STATE(118), 1, sym_eol, - [2949] = 1, - ACTIONS(190), 4, - sym_NEWLINE, + [5094] = 4, + ACTIONS(648), 1, + anon_sym_DQUOTE_DQUOTE_DQUOTE, + ACTIONS(672), 1, + aux_sym_basic_string_token1, + ACTIONS(675), 1, + sym_string_escape, + STATE(211), 1, + aux_sym_basic_string_repeat1, + [5107] = 1, + ACTIONS(221), 4, + sym__newline, + anon_sym_SLASH, anon_sym_PLUS, + aux_sym_comment_token1, + [5114] = 1, + ACTIONS(217), 4, + sym__newline, anon_sym_SLASH, + anon_sym_PLUS, aux_sym_comment_token1, - [2956] = 4, + [5121] = 4, ACTIONS(25), 1, - sym_NEWLINE, - ACTIONS(61), 1, + sym__newline, + ACTIONS(29), 1, aux_sym_comment_token1, - STATE(60), 1, - sym_eol, - STATE(62), 1, + STATE(97), 1, sym_comment, - [2969] = 1, - ACTIONS(457), 3, - sym_DEDENT, - sym_notcomment, - aux_sym_comment_token1, - [2975] = 1, - ACTIONS(459), 3, - sym_DEDENT, - sym_notcomment, - aux_sym_comment_token1, - [2981] = 1, - ACTIONS(461), 3, - sym_DEDENT, - sym_notcomment, - aux_sym_comment_token1, - [2987] = 2, - ACTIONS(202), 1, - anon_sym_RBRACE_RBRACE, - ACTIONS(463), 2, - anon_sym_PLUS, - anon_sym_SLASH, - [2995] = 3, - ACTIONS(17), 1, - anon_sym_AT, - ACTIONS(465), 1, - sym_NAME, - STATE(187), 1, - sym_recipe_header, - [3005] = 1, - ACTIONS(288), 3, - sym_DEDENT, - sym_notcomment, - aux_sym_comment_token1, - [3011] = 3, - ACTIONS(322), 1, - anon_sym_DOLLAR, - ACTIONS(324), 1, - sym_NAME, - STATE(179), 1, - sym_parameter, - [3021] = 1, - ACTIONS(467), 3, - sym_NEWLINE, - anon_sym_LPAREN, - sym_NAME, - [3027] = 1, - ACTIONS(469), 3, + STATE(117), 1, + sym_eol, + [5134] = 2, + ACTIONS(678), 1, + anon_sym_LBRACE, + ACTIONS(680), 3, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_EQ_TILDE, - [3033] = 1, - ACTIONS(471), 3, - sym_NEWLINE, - anon_sym_LPAREN, - sym_NAME, - [3039] = 2, - ACTIONS(475), 1, - sym_NEWLINE, - ACTIONS(473), 2, - anon_sym_LBRACE_LBRACE, - sym_TEXT, - [3047] = 2, - ACTIONS(477), 1, - anon_sym_shell, - ACTIONS(479), 1, - sym_NAME, - [3054] = 1, - ACTIONS(481), 2, - sym_NEWLINE, + [5143] = 1, + ACTIONS(284), 4, + sym__newline, + anon_sym_SLASH, + anon_sym_PLUS, aux_sym_comment_token1, - [3059] = 1, - ACTIONS(288), 2, - anon_sym_AT, - sym_NAME, - [3064] = 1, - ACTIONS(212), 2, - sym_notcomment, + [5150] = 1, + ACTIONS(213), 4, + sym__newline, + anon_sym_SLASH, + anon_sym_PLUS, aux_sym_comment_token1, - [3069] = 2, - ACTIONS(483), 1, + [5157] = 3, + ACTIONS(682), 1, anon_sym_COMMA, - ACTIONS(485), 1, - anon_sym_RPAREN, - [3076] = 1, - ACTIONS(108), 2, - sym_NEWLINE, - aux_sym_comment_token1, - [3081] = 1, - ACTIONS(112), 2, - sym_NEWLINE, - aux_sym_comment_token1, - [3086] = 2, - ACTIONS(487), 1, - anon_sym_QMARK, - ACTIONS(489), 1, - sym_NAME, - [3093] = 1, - ACTIONS(228), 2, + ACTIONS(685), 1, + anon_sym_RBRACK, + STATE(218), 1, + aux_sym_attribute_repeat1, + [5167] = 1, + ACTIONS(181), 3, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_RBRACE, + [5173] = 3, + ACTIONS(687), 1, + anon_sym_if, + ACTIONS(689), 1, + anon_sym_LBRACE, + STATE(279), 1, + sym__braced_expr, + [5183] = 3, + ACTIONS(691), 1, + aux_sym_backticked_token1, + ACTIONS(694), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + STATE(221), 1, + aux_sym_backticked_repeat1, + [5193] = 1, + ACTIONS(378), 3, + anon_sym_LBRACK, anon_sym_AT, - sym_NAME, - [3098] = 1, - ACTIONS(491), 2, + sym_identifier, + [5199] = 3, + ACTIONS(687), 1, + anon_sym_if, + ACTIONS(689), 1, + anon_sym_LBRACE, + STATE(277), 1, + sym__braced_expr, + [5209] = 1, + ACTIONS(346), 3, + anon_sym_LBRACK, anon_sym_AT, - sym_NAME, - [3103] = 2, - ACTIONS(493), 1, - sym_NAME, - STATE(59), 1, - sym_assignment, - [3110] = 2, - ACTIONS(495), 1, - sym_NAME, - STATE(178), 1, - sym_depcall, - [3117] = 1, - ACTIONS(497), 1, + sym_identifier, + [5215] = 1, + ACTIONS(696), 3, + sym__newline, + anon_sym_LPAREN, + sym_identifier, + [5221] = 3, + ACTIONS(698), 1, + aux_sym_backticked_token1, + ACTIONS(700), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + STATE(261), 1, + aux_sym_backticked_repeat1, + [5231] = 3, + ACTIONS(702), 1, + anon_sym_BQUOTE, + ACTIONS(704), 1, + aux_sym_backticked_token1, + STATE(228), 1, + aux_sym_backticked_repeat1, + [5241] = 3, + ACTIONS(694), 1, + anon_sym_BQUOTE, + ACTIONS(706), 1, + aux_sym_backticked_token1, + STATE(228), 1, + aux_sym_backticked_repeat1, + [5251] = 3, + ACTIONS(709), 1, + aux_sym_backticked_token1, + ACTIONS(711), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + STATE(268), 1, + aux_sym_backticked_repeat1, + [5261] = 3, + ACTIONS(713), 1, + anon_sym_BQUOTE, + ACTIONS(715), 1, + aux_sym_backticked_token1, + STATE(283), 1, + aux_sym_backticked_repeat1, + [5271] = 3, + ACTIONS(717), 1, + anon_sym_COMMA, + ACTIONS(719), 1, + anon_sym_RPAREN, + STATE(278), 1, + aux_sym_sequence_repeat1, + [5281] = 3, + ACTIONS(721), 1, + aux_sym_backticked_token1, + ACTIONS(723), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + STATE(226), 1, + aux_sym_backticked_repeat1, + [5291] = 3, + ACTIONS(725), 1, + anon_sym_BQUOTE, + ACTIONS(727), 1, + aux_sym_backticked_token1, + STATE(227), 1, + aux_sym_backticked_repeat1, + [5301] = 3, + ACTIONS(729), 1, + anon_sym_COMMA, + ACTIONS(731), 1, anon_sym_RBRACK, - [3121] = 1, - ACTIONS(407), 1, - sym_NEWLINE, - [3125] = 1, - ACTIONS(499), 1, - anon_sym_else, - [3129] = 1, - ACTIONS(501), 1, + STATE(218), 1, + aux_sym_attribute_repeat1, + [5311] = 1, + ACTIONS(733), 3, + sym__newline, + anon_sym_LPAREN, + sym_identifier, + [5317] = 3, + ACTIONS(735), 1, + aux_sym_backticked_token1, + ACTIONS(737), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + STATE(221), 1, + aux_sym_backticked_repeat1, + [5327] = 1, + ACTIONS(739), 3, + anon_sym_LBRACK, + anon_sym_AT, + sym_identifier, + [5333] = 3, + ACTIONS(741), 1, + aux_sym_backticked_token1, + ACTIONS(743), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + STATE(236), 1, + aux_sym_backticked_repeat1, + [5343] = 1, + ACTIONS(745), 3, + anon_sym_LBRACK, + anon_sym_AT, + sym_identifier, + [5349] = 3, + ACTIONS(735), 1, + aux_sym_backticked_token1, + ACTIONS(747), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + STATE(221), 1, + aux_sym_backticked_repeat1, + [5359] = 2, + ACTIONS(751), 1, + sym__newline, + ACTIONS(749), 2, + anon_sym_LBRACE_LBRACE, + sym_text, + [5367] = 3, + ACTIONS(753), 1, + anon_sym_COMMA, + ACTIONS(756), 1, anon_sym_RPAREN, - [3133] = 1, - ACTIONS(503), 1, + STATE(242), 1, + aux_sym_sequence_repeat1, + [5377] = 3, + ACTIONS(758), 1, + anon_sym_if, + ACTIONS(760), 1, + anon_sym_LBRACE, + STATE(63), 1, + sym__braced_expr, + [5387] = 3, + ACTIONS(758), 1, + anon_sym_if, + ACTIONS(760), 1, + anon_sym_LBRACE, + STATE(64), 1, + sym__braced_expr, + [5397] = 3, + ACTIONS(698), 1, + aux_sym_backticked_token1, + ACTIONS(762), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + STATE(261), 1, + aux_sym_backticked_repeat1, + [5407] = 3, + ACTIONS(704), 1, + aux_sym_backticked_token1, + ACTIONS(764), 1, + anon_sym_BQUOTE, + STATE(228), 1, + aux_sym_backticked_repeat1, + [5417] = 3, + ACTIONS(766), 1, + anon_sym_if, + ACTIONS(768), 1, anon_sym_LBRACE, - [3137] = 1, + STATE(208), 1, + sym__braced_expr, + [5427] = 3, + ACTIONS(770), 1, + aux_sym_backticked_token1, + ACTIONS(772), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + STATE(240), 1, + aux_sym_backticked_repeat1, + [5437] = 3, + ACTIONS(774), 1, + aux_sym_backticked_token1, + ACTIONS(776), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + STATE(245), 1, + aux_sym_backticked_repeat1, + [5447] = 1, + ACTIONS(197), 3, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_RBRACE, + [5453] = 3, + ACTIONS(735), 1, + aux_sym_backticked_token1, + ACTIONS(778), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + STATE(221), 1, + aux_sym_backticked_repeat1, + [5463] = 1, + ACTIONS(133), 3, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_RBRACE, + [5469] = 1, + ACTIONS(137), 3, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_RBRACE, + [5475] = 3, + ACTIONS(464), 1, + sym_identifier, + ACTIONS(472), 1, + anon_sym_DOLLAR, + STATE(322), 1, + sym_parameter, + [5485] = 3, + ACTIONS(729), 1, + anon_sym_COMMA, + ACTIONS(780), 1, + anon_sym_RBRACK, + STATE(234), 1, + aux_sym_attribute_repeat1, + [5495] = 3, + ACTIONS(340), 1, + anon_sym_RBRACE, + ACTIONS(782), 1, + anon_sym_SLASH, + ACTIONS(784), 1, + anon_sym_PLUS, + [5505] = 1, + ACTIONS(284), 3, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_RBRACE, + [5511] = 1, + ACTIONS(201), 3, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_RBRACE, + [5517] = 1, + ACTIONS(217), 3, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_RBRACE, + [5523] = 1, + ACTIONS(185), 3, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_RBRACE, + [5529] = 3, + ACTIONS(694), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + ACTIONS(786), 1, + aux_sym_backticked_token1, + STATE(261), 1, + aux_sym_backticked_repeat1, + [5539] = 1, + ACTIONS(189), 3, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_RBRACE, + [5545] = 1, + ACTIONS(193), 3, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_RBRACE, + [5551] = 3, ACTIONS(344), 1, - sym_NEWLINE, - [3141] = 1, - ACTIONS(505), 1, + anon_sym_RBRACE, + ACTIONS(782), 1, + anon_sym_SLASH, + ACTIONS(784), 1, + anon_sym_PLUS, + [5561] = 1, + ACTIONS(233), 3, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_RBRACE, + [5567] = 1, + ACTIONS(225), 3, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_RBRACE, + [5573] = 3, + ACTIONS(789), 1, + anon_sym_BQUOTE, + ACTIONS(791), 1, + aux_sym_backticked_token1, + STATE(246), 1, + aux_sym_backticked_repeat1, + [5583] = 3, + ACTIONS(698), 1, + aux_sym_backticked_token1, + ACTIONS(793), 1, + anon_sym_BQUOTE_BQUOTE_BQUOTE, + STATE(261), 1, + aux_sym_backticked_repeat1, + [5593] = 2, + ACTIONS(797), 1, + sym__newline, + ACTIONS(795), 2, + anon_sym_LBRACE_LBRACE, + sym_text, + [5601] = 1, + ACTIONS(205), 3, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_RBRACE, + [5607] = 1, + ACTIONS(209), 3, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_RBRACE, + [5613] = 1, + ACTIONS(213), 3, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_RBRACE, + [5619] = 1, + ACTIONS(221), 3, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_RBRACE, + [5625] = 1, + ACTIONS(280), 3, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_RBRACE, + [5631] = 1, + ACTIONS(229), 3, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_RBRACE, + [5637] = 1, + ACTIONS(799), 3, + sym__newline, + anon_sym_LPAREN, + sym_identifier, + [5643] = 1, + ACTIONS(276), 3, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_RBRACE, + [5649] = 3, + ACTIONS(717), 1, + anon_sym_COMMA, + ACTIONS(801), 1, + anon_sym_RPAREN, + STATE(242), 1, + aux_sym_sequence_repeat1, + [5659] = 1, + ACTIONS(272), 3, + anon_sym_SLASH, + anon_sym_PLUS, + anon_sym_RBRACE, + [5665] = 3, + ACTIONS(766), 1, + anon_sym_if, + ACTIONS(768), 1, anon_sym_LBRACE, - [3145] = 1, - ACTIONS(507), 1, - anon_sym_COLON, - [3149] = 1, - ACTIONS(509), 1, + STATE(196), 1, + sym__braced_expr, + [5675] = 2, + ACTIONS(784), 1, + anon_sym_PLUS, + ACTIONS(280), 2, + anon_sym_SLASH, anon_sym_RBRACE, - [3153] = 1, - ACTIONS(381), 1, - sym_NEWLINE, - [3157] = 1, - ACTIONS(511), 1, - sym_DEDENT, - [3161] = 1, - ACTIONS(513), 1, + [5683] = 3, + ACTIONS(803), 1, + aux_sym_backticked_token1, + ACTIONS(805), 1, + anon_sym_SQUOTE_SQUOTE_SQUOTE, + STATE(251), 1, + aux_sym_backticked_repeat1, + [5693] = 3, + ACTIONS(704), 1, + aux_sym_backticked_token1, + ACTIONS(807), 1, + anon_sym_BQUOTE, + STATE(228), 1, + aux_sym_backticked_repeat1, + [5703] = 2, + ACTIONS(760), 1, + anon_sym_LBRACE, + STATE(61), 1, + sym__braced_expr, + [5710] = 1, + ACTIONS(756), 2, + anon_sym_COMMA, anon_sym_RPAREN, - [3165] = 1, - ACTIONS(515), 1, + [5715] = 2, + ACTIONS(809), 1, + sym_identifier, + STATE(109), 1, + sym_assignment, + [5722] = 2, + ACTIONS(811), 1, + sym_identifier, + ACTIONS(813), 1, + anon_sym_QMARK, + [5729] = 2, + ACTIONS(815), 1, + sym_identifier, + ACTIONS(817), 1, + anon_sym_shell, + [5736] = 2, + ACTIONS(689), 1, + anon_sym_LBRACE, + STATE(178), 1, + sym__braced_expr, + [5743] = 2, + ACTIONS(689), 1, + anon_sym_LBRACE, + STATE(169), 1, + sym__braced_expr, + [5750] = 2, + ACTIONS(768), 1, + anon_sym_LBRACE, + STATE(143), 1, + sym__braced_expr, + [5757] = 2, + ACTIONS(768), 1, + anon_sym_LBRACE, + STATE(150), 1, + sym__braced_expr, + [5764] = 1, + ACTIONS(819), 2, + sym__newline, + aux_sym_comment_token1, + [5769] = 1, + ACTIONS(685), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [5774] = 2, + ACTIONS(760), 1, + anon_sym_LBRACE, + STATE(57), 1, + sym__braced_expr, + [5781] = 1, + ACTIONS(821), 1, + sym_identifier, + [5785] = 1, + ACTIONS(823), 1, + anon_sym_RBRACK, + [5789] = 1, + ACTIONS(825), 1, + anon_sym_RBRACK, + [5793] = 1, + ACTIONS(827), 1, anon_sym_RPAREN, - [3169] = 1, - ACTIONS(517), 1, - anon_sym_COLON, - [3173] = 1, - ACTIONS(519), 1, - sym_DEDENT, - [3177] = 1, - ACTIONS(521), 1, - anon_sym_RBRACE_RBRACE, - [3181] = 1, - ACTIONS(523), 1, + [5797] = 1, + ACTIONS(829), 1, + anon_sym_RBRACK, + [5801] = 1, + ACTIONS(831), 1, + sym_identifier, + [5805] = 1, + ACTIONS(474), 1, anon_sym_COLON, - [3185] = 1, - ACTIONS(525), 1, + [5809] = 1, + ACTIONS(833), 1, + anon_sym_RPAREN, + [5813] = 1, + ACTIONS(835), 1, anon_sym_RBRACE, - [3189] = 1, - ACTIONS(527), 1, - anon_sym_LBRACK, - [3193] = 1, - ACTIONS(529), 1, - sym_NAME, - [3197] = 1, - ACTIONS(531), 1, - anon_sym_LBRACE, - [3201] = 1, - ACTIONS(533), 1, - sym_NEWLINE, - [3205] = 1, - ACTIONS(393), 1, + [5817] = 1, + ACTIONS(538), 1, anon_sym_COLON, - [3209] = 1, - ACTIONS(535), 1, - sym_NEWLINE, - [3213] = 1, - ACTIONS(537), 1, - sym_NAME, - [3217] = 1, - ACTIONS(539), 1, - sym_NEWLINE, - [3221] = 1, - ACTIONS(541), 1, - anon_sym_RBRACK, - [3225] = 1, - ACTIONS(543), 1, + [5821] = 1, + ACTIONS(766), 1, + anon_sym_if, + [5825] = 1, + ACTIONS(466), 1, anon_sym_COLON_EQ, - [3229] = 1, - ACTIONS(112), 1, - anon_sym_RBRACE_RBRACE, - [3233] = 1, - ACTIONS(545), 1, - sym_NAME, - [3237] = 1, - ACTIONS(108), 1, - anon_sym_RBRACE_RBRACE, - [3241] = 1, - ACTIONS(547), 1, - anon_sym_RBRACK, - [3245] = 1, - ACTIONS(375), 1, + [5829] = 1, + ACTIONS(837), 1, anon_sym_COLON_EQ, - [3249] = 1, - ACTIONS(549), 1, - sym_NEWLINE, - [3253] = 1, - ACTIONS(551), 1, - sym_NEWLINE, - [3257] = 1, - ACTIONS(553), 1, + [5833] = 1, + ACTIONS(839), 1, + sym__newline, + [5837] = 1, + ACTIONS(841), 1, + anon_sym_LBRACE, + [5841] = 1, + ACTIONS(843), 1, + anon_sym_RBRACE_RBRACE, + [5845] = 1, + ACTIONS(845), 1, + sym_identifier, + [5849] = 1, + ACTIONS(847), 1, + anon_sym_LBRACK, + [5853] = 1, + ACTIONS(849), 1, + sym_identifier, + [5857] = 1, + ACTIONS(851), 1, anon_sym_RPAREN, - [3261] = 1, - ACTIONS(555), 1, + [5861] = 1, + ACTIONS(853), 1, + sym_identifier, + [5865] = 1, + ACTIONS(855), 1, anon_sym_COLON_EQ, - [3265] = 1, - ACTIONS(557), 1, - anon_sym_RPAREN, - [3269] = 1, - ACTIONS(559), 1, + [5869] = 1, + ACTIONS(857), 1, anon_sym_RBRACE, - [3273] = 1, - ACTIONS(561), 1, - sym_NEWLINE, - [3277] = 1, - ACTIONS(563), 1, - sym_NEWLINE, - [3281] = 1, - ACTIONS(565), 1, + [5873] = 1, + ACTIONS(859), 1, anon_sym_RPAREN, - [3285] = 1, - ACTIONS(567), 1, - anon_sym_RBRACK, - [3289] = 1, - ACTIONS(569), 1, + [5877] = 1, + ACTIONS(861), 1, + sym__newline, + [5881] = 1, + ACTIONS(863), 1, + anon_sym_COLON, + [5885] = 1, + ACTIONS(865), 1, + anon_sym_COLON, + [5889] = 1, + ACTIONS(867), 1, anon_sym_RPAREN, - [3293] = 1, - ACTIONS(571), 1, - anon_sym_RBRACE, - [3297] = 1, - ACTIONS(573), 1, - aux_sym_shebang_token1, - [3301] = 1, - ACTIONS(575), 1, - ts_builtin_sym_end, - [3305] = 1, - ACTIONS(577), 1, - sym_NEWLINE, - [3309] = 1, - ACTIONS(579), 1, - aux_sym_shebang_token1, - [3313] = 1, - ACTIONS(581), 1, - sym_NAME, - [3317] = 1, - ACTIONS(583), 1, - anon_sym_LBRACE, - [3321] = 1, - ACTIONS(585), 1, - anon_sym_LBRACE, - [3325] = 1, - ACTIONS(587), 1, - anon_sym_else, - [3329] = 1, - ACTIONS(589), 1, - anon_sym_else, - [3333] = 1, - ACTIONS(591), 1, + [5893] = 1, + ACTIONS(869), 1, anon_sym_RBRACE, - [3337] = 1, - ACTIONS(593), 1, - anon_sym_RBRACE, - [3341] = 1, - ACTIONS(595), 1, - sym_NAME, - [3345] = 1, - ACTIONS(597), 1, - sym_NAME, - [3349] = 1, - ACTIONS(599), 1, - anon_sym_LBRACE, - [3353] = 1, - ACTIONS(601), 1, - anon_sym_LBRACE, - [3357] = 1, - ACTIONS(603), 1, + [5897] = 1, + ACTIONS(871), 1, + sym_identifier, + [5901] = 1, + ACTIONS(543), 1, + anon_sym_COLON, + [5905] = 1, + ACTIONS(873), 1, anon_sym_RBRACK, - [3361] = 1, - ACTIONS(605), 1, + [5909] = 1, + ACTIONS(875), 1, + ts_builtin_sym_end, + [5913] = 1, + ACTIONS(877), 1, + sym__newline, + [5917] = 1, + ACTIONS(879), 1, + sym__newline, + [5921] = 1, + ACTIONS(881), 1, + sym_identifier, + [5925] = 1, + ACTIONS(758), 1, + anon_sym_if, + [5929] = 1, + ACTIONS(883), 1, + sym_identifier, + [5933] = 1, + ACTIONS(885), 1, anon_sym_RPAREN, + [5937] = 1, + ACTIONS(887), 1, + sym__newline, + [5941] = 1, + ACTIONS(889), 1, + sym__newline, + [5945] = 1, + ACTIONS(687), 1, + anon_sym_if, }; static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(2)] = 0, - [SMALL_STATE(3)] = 57, - [SMALL_STATE(4)] = 114, - [SMALL_STATE(5)] = 171, - [SMALL_STATE(6)] = 228, - [SMALL_STATE(7)] = 251, - [SMALL_STATE(8)] = 290, - [SMALL_STATE(9)] = 329, - [SMALL_STATE(10)] = 350, - [SMALL_STATE(11)] = 371, - [SMALL_STATE(12)] = 398, - [SMALL_STATE(13)] = 439, - [SMALL_STATE(14)] = 466, - [SMALL_STATE(15)] = 507, - [SMALL_STATE(16)] = 548, - [SMALL_STATE(17)] = 587, - [SMALL_STATE(18)] = 628, - [SMALL_STATE(19)] = 666, - [SMALL_STATE(20)] = 704, - [SMALL_STATE(21)] = 742, - [SMALL_STATE(22)] = 777, - [SMALL_STATE(23)] = 812, - [SMALL_STATE(24)] = 847, - [SMALL_STATE(25)] = 882, - [SMALL_STATE(26)] = 917, - [SMALL_STATE(27)] = 952, - [SMALL_STATE(28)] = 987, - [SMALL_STATE(29)] = 1006, - [SMALL_STATE(30)] = 1041, - [SMALL_STATE(31)] = 1076, - [SMALL_STATE(32)] = 1111, - [SMALL_STATE(33)] = 1146, - [SMALL_STATE(34)] = 1181, - [SMALL_STATE(35)] = 1216, - [SMALL_STATE(36)] = 1251, - [SMALL_STATE(37)] = 1286, - [SMALL_STATE(38)] = 1321, - [SMALL_STATE(39)] = 1339, - [SMALL_STATE(40)] = 1355, - [SMALL_STATE(41)] = 1373, - [SMALL_STATE(42)] = 1395, - [SMALL_STATE(43)] = 1413, - [SMALL_STATE(44)] = 1431, - [SMALL_STATE(45)] = 1449, - [SMALL_STATE(46)] = 1467, - [SMALL_STATE(47)] = 1489, - [SMALL_STATE(48)] = 1507, - [SMALL_STATE(49)] = 1523, - [SMALL_STATE(50)] = 1539, - [SMALL_STATE(51)] = 1555, - [SMALL_STATE(52)] = 1571, - [SMALL_STATE(53)] = 1588, - [SMALL_STATE(54)] = 1617, - [SMALL_STATE(55)] = 1636, - [SMALL_STATE(56)] = 1665, - [SMALL_STATE(57)] = 1681, - [SMALL_STATE(58)] = 1697, - [SMALL_STATE(59)] = 1713, - [SMALL_STATE(60)] = 1729, - [SMALL_STATE(61)] = 1745, - [SMALL_STATE(62)] = 1761, - [SMALL_STATE(63)] = 1777, - [SMALL_STATE(64)] = 1793, - [SMALL_STATE(65)] = 1809, - [SMALL_STATE(66)] = 1825, - [SMALL_STATE(67)] = 1841, - [SMALL_STATE(68)] = 1857, - [SMALL_STATE(69)] = 1873, - [SMALL_STATE(70)] = 1889, - [SMALL_STATE(71)] = 1905, - [SMALL_STATE(72)] = 1921, - [SMALL_STATE(73)] = 1937, - [SMALL_STATE(74)] = 1965, - [SMALL_STATE(75)] = 1981, - [SMALL_STATE(76)] = 1997, - [SMALL_STATE(77)] = 2013, - [SMALL_STATE(78)] = 2029, - [SMALL_STATE(79)] = 2045, - [SMALL_STATE(80)] = 2061, - [SMALL_STATE(81)] = 2077, - [SMALL_STATE(82)] = 2093, - [SMALL_STATE(83)] = 2109, - [SMALL_STATE(84)] = 2125, - [SMALL_STATE(85)] = 2139, - [SMALL_STATE(86)] = 2159, - [SMALL_STATE(87)] = 2180, - [SMALL_STATE(88)] = 2201, - [SMALL_STATE(89)] = 2222, - [SMALL_STATE(90)] = 2243, - [SMALL_STATE(91)] = 2264, - [SMALL_STATE(92)] = 2282, - [SMALL_STATE(93)] = 2302, - [SMALL_STATE(94)] = 2318, - [SMALL_STATE(95)] = 2338, - [SMALL_STATE(96)] = 2356, - [SMALL_STATE(97)] = 2374, - [SMALL_STATE(98)] = 2390, - [SMALL_STATE(99)] = 2410, - [SMALL_STATE(100)] = 2430, - [SMALL_STATE(101)] = 2448, - [SMALL_STATE(102)] = 2465, - [SMALL_STATE(103)] = 2482, - [SMALL_STATE(104)] = 2497, - [SMALL_STATE(105)] = 2514, - [SMALL_STATE(106)] = 2529, - [SMALL_STATE(107)] = 2540, - [SMALL_STATE(108)] = 2557, - [SMALL_STATE(109)] = 2568, - [SMALL_STATE(110)] = 2583, - [SMALL_STATE(111)] = 2600, - [SMALL_STATE(112)] = 2611, - [SMALL_STATE(113)] = 2625, - [SMALL_STATE(114)] = 2633, - [SMALL_STATE(115)] = 2647, - [SMALL_STATE(116)] = 2661, - [SMALL_STATE(117)] = 2669, - [SMALL_STATE(118)] = 2685, - [SMALL_STATE(119)] = 2699, - [SMALL_STATE(120)] = 2709, - [SMALL_STATE(121)] = 2723, - [SMALL_STATE(122)] = 2735, - [SMALL_STATE(123)] = 2747, - [SMALL_STATE(124)] = 2754, - [SMALL_STATE(125)] = 2767, - [SMALL_STATE(126)] = 2780, - [SMALL_STATE(127)] = 2793, - [SMALL_STATE(128)] = 2806, - [SMALL_STATE(129)] = 2819, - [SMALL_STATE(130)] = 2832, - [SMALL_STATE(131)] = 2845, - [SMALL_STATE(132)] = 2858, - [SMALL_STATE(133)] = 2865, - [SMALL_STATE(134)] = 2872, - [SMALL_STATE(135)] = 2885, - [SMALL_STATE(136)] = 2894, - [SMALL_STATE(137)] = 2903, - [SMALL_STATE(138)] = 2916, - [SMALL_STATE(139)] = 2929, - [SMALL_STATE(140)] = 2936, - [SMALL_STATE(141)] = 2949, - [SMALL_STATE(142)] = 2956, - [SMALL_STATE(143)] = 2969, - [SMALL_STATE(144)] = 2975, - [SMALL_STATE(145)] = 2981, - [SMALL_STATE(146)] = 2987, - [SMALL_STATE(147)] = 2995, - [SMALL_STATE(148)] = 3005, - [SMALL_STATE(149)] = 3011, - [SMALL_STATE(150)] = 3021, - [SMALL_STATE(151)] = 3027, - [SMALL_STATE(152)] = 3033, - [SMALL_STATE(153)] = 3039, - [SMALL_STATE(154)] = 3047, - [SMALL_STATE(155)] = 3054, - [SMALL_STATE(156)] = 3059, - [SMALL_STATE(157)] = 3064, - [SMALL_STATE(158)] = 3069, - [SMALL_STATE(159)] = 3076, - [SMALL_STATE(160)] = 3081, - [SMALL_STATE(161)] = 3086, - [SMALL_STATE(162)] = 3093, - [SMALL_STATE(163)] = 3098, - [SMALL_STATE(164)] = 3103, - [SMALL_STATE(165)] = 3110, - [SMALL_STATE(166)] = 3117, - [SMALL_STATE(167)] = 3121, - [SMALL_STATE(168)] = 3125, - [SMALL_STATE(169)] = 3129, - [SMALL_STATE(170)] = 3133, - [SMALL_STATE(171)] = 3137, - [SMALL_STATE(172)] = 3141, - [SMALL_STATE(173)] = 3145, - [SMALL_STATE(174)] = 3149, - [SMALL_STATE(175)] = 3153, - [SMALL_STATE(176)] = 3157, - [SMALL_STATE(177)] = 3161, - [SMALL_STATE(178)] = 3165, - [SMALL_STATE(179)] = 3169, - [SMALL_STATE(180)] = 3173, - [SMALL_STATE(181)] = 3177, - [SMALL_STATE(182)] = 3181, - [SMALL_STATE(183)] = 3185, - [SMALL_STATE(184)] = 3189, - [SMALL_STATE(185)] = 3193, - [SMALL_STATE(186)] = 3197, - [SMALL_STATE(187)] = 3201, - [SMALL_STATE(188)] = 3205, - [SMALL_STATE(189)] = 3209, - [SMALL_STATE(190)] = 3213, - [SMALL_STATE(191)] = 3217, - [SMALL_STATE(192)] = 3221, - [SMALL_STATE(193)] = 3225, - [SMALL_STATE(194)] = 3229, - [SMALL_STATE(195)] = 3233, - [SMALL_STATE(196)] = 3237, - [SMALL_STATE(197)] = 3241, - [SMALL_STATE(198)] = 3245, - [SMALL_STATE(199)] = 3249, - [SMALL_STATE(200)] = 3253, - [SMALL_STATE(201)] = 3257, - [SMALL_STATE(202)] = 3261, - [SMALL_STATE(203)] = 3265, - [SMALL_STATE(204)] = 3269, - [SMALL_STATE(205)] = 3273, - [SMALL_STATE(206)] = 3277, - [SMALL_STATE(207)] = 3281, - [SMALL_STATE(208)] = 3285, - [SMALL_STATE(209)] = 3289, - [SMALL_STATE(210)] = 3293, - [SMALL_STATE(211)] = 3297, - [SMALL_STATE(212)] = 3301, - [SMALL_STATE(213)] = 3305, - [SMALL_STATE(214)] = 3309, - [SMALL_STATE(215)] = 3313, - [SMALL_STATE(216)] = 3317, - [SMALL_STATE(217)] = 3321, - [SMALL_STATE(218)] = 3325, - [SMALL_STATE(219)] = 3329, - [SMALL_STATE(220)] = 3333, - [SMALL_STATE(221)] = 3337, - [SMALL_STATE(222)] = 3341, - [SMALL_STATE(223)] = 3345, - [SMALL_STATE(224)] = 3349, - [SMALL_STATE(225)] = 3353, - [SMALL_STATE(226)] = 3357, - [SMALL_STATE(227)] = 3361, + [SMALL_STATE(3)] = 58, + [SMALL_STATE(4)] = 116, + [SMALL_STATE(5)] = 174, + [SMALL_STATE(6)] = 232, + [SMALL_STATE(7)] = 293, + [SMALL_STATE(8)] = 354, + [SMALL_STATE(9)] = 415, + [SMALL_STATE(10)] = 476, + [SMALL_STATE(11)] = 537, + [SMALL_STATE(12)] = 598, + [SMALL_STATE(13)] = 656, + [SMALL_STATE(14)] = 714, + [SMALL_STATE(15)] = 772, + [SMALL_STATE(16)] = 830, + [SMALL_STATE(17)] = 888, + [SMALL_STATE(18)] = 946, + [SMALL_STATE(19)] = 973, + [SMALL_STATE(20)] = 1000, + [SMALL_STATE(21)] = 1055, + [SMALL_STATE(22)] = 1110, + [SMALL_STATE(23)] = 1165, + [SMALL_STATE(24)] = 1192, + [SMALL_STATE(25)] = 1219, + [SMALL_STATE(26)] = 1246, + [SMALL_STATE(27)] = 1273, + [SMALL_STATE(28)] = 1328, + [SMALL_STATE(29)] = 1383, + [SMALL_STATE(30)] = 1438, + [SMALL_STATE(31)] = 1493, + [SMALL_STATE(32)] = 1520, + [SMALL_STATE(33)] = 1575, + [SMALL_STATE(34)] = 1630, + [SMALL_STATE(35)] = 1685, + [SMALL_STATE(36)] = 1711, + [SMALL_STATE(37)] = 1737, + [SMALL_STATE(38)] = 1763, + [SMALL_STATE(39)] = 1789, + [SMALL_STATE(40)] = 1815, + [SMALL_STATE(41)] = 1841, + [SMALL_STATE(42)] = 1867, + [SMALL_STATE(43)] = 1893, + [SMALL_STATE(44)] = 1919, + [SMALL_STATE(45)] = 1968, + [SMALL_STATE(46)] = 2017, + [SMALL_STATE(47)] = 2066, + [SMALL_STATE(48)] = 2115, + [SMALL_STATE(49)] = 2164, + [SMALL_STATE(50)] = 2213, + [SMALL_STATE(51)] = 2262, + [SMALL_STATE(52)] = 2311, + [SMALL_STATE(53)] = 2340, + [SMALL_STATE(54)] = 2389, + [SMALL_STATE(55)] = 2418, + [SMALL_STATE(56)] = 2467, + [SMALL_STATE(57)] = 2516, + [SMALL_STATE(58)] = 2545, + [SMALL_STATE(59)] = 2594, + [SMALL_STATE(60)] = 2618, + [SMALL_STATE(61)] = 2654, + [SMALL_STATE(62)] = 2678, + [SMALL_STATE(63)] = 2714, + [SMALL_STATE(64)] = 2737, + [SMALL_STATE(65)] = 2760, + [SMALL_STATE(66)] = 2783, + [SMALL_STATE(67)] = 2806, + [SMALL_STATE(68)] = 2848, + [SMALL_STATE(69)] = 2890, + [SMALL_STATE(70)] = 2926, + [SMALL_STATE(71)] = 2945, + [SMALL_STATE(72)] = 2963, + [SMALL_STATE(73)] = 2981, + [SMALL_STATE(74)] = 2999, + [SMALL_STATE(75)] = 3029, + [SMALL_STATE(76)] = 3047, + [SMALL_STATE(77)] = 3065, + [SMALL_STATE(78)] = 3083, + [SMALL_STATE(79)] = 3113, + [SMALL_STATE(80)] = 3135, + [SMALL_STATE(81)] = 3165, + [SMALL_STATE(82)] = 3195, + [SMALL_STATE(83)] = 3217, + [SMALL_STATE(84)] = 3235, + [SMALL_STATE(85)] = 3254, + [SMALL_STATE(86)] = 3283, + [SMALL_STATE(87)] = 3304, + [SMALL_STATE(88)] = 3325, + [SMALL_STATE(89)] = 3342, + [SMALL_STATE(90)] = 3358, + [SMALL_STATE(91)] = 3374, + [SMALL_STATE(92)] = 3390, + [SMALL_STATE(93)] = 3406, + [SMALL_STATE(94)] = 3422, + [SMALL_STATE(95)] = 3438, + [SMALL_STATE(96)] = 3454, + [SMALL_STATE(97)] = 3470, + [SMALL_STATE(98)] = 3486, + [SMALL_STATE(99)] = 3502, + [SMALL_STATE(100)] = 3532, + [SMALL_STATE(101)] = 3562, + [SMALL_STATE(102)] = 3578, + [SMALL_STATE(103)] = 3594, + [SMALL_STATE(104)] = 3610, + [SMALL_STATE(105)] = 3626, + [SMALL_STATE(106)] = 3642, + [SMALL_STATE(107)] = 3658, + [SMALL_STATE(108)] = 3674, + [SMALL_STATE(109)] = 3690, + [SMALL_STATE(110)] = 3706, + [SMALL_STATE(111)] = 3722, + [SMALL_STATE(112)] = 3738, + [SMALL_STATE(113)] = 3768, + [SMALL_STATE(114)] = 3784, + [SMALL_STATE(115)] = 3800, + [SMALL_STATE(116)] = 3830, + [SMALL_STATE(117)] = 3846, + [SMALL_STATE(118)] = 3862, + [SMALL_STATE(119)] = 3878, + [SMALL_STATE(120)] = 3894, + [SMALL_STATE(121)] = 3910, + [SMALL_STATE(122)] = 3926, + [SMALL_STATE(123)] = 3955, + [SMALL_STATE(124)] = 3981, + [SMALL_STATE(125)] = 4007, + [SMALL_STATE(126)] = 4021, + [SMALL_STATE(127)] = 4037, + [SMALL_STATE(128)] = 4061, + [SMALL_STATE(129)] = 4085, + [SMALL_STATE(130)] = 4109, + [SMALL_STATE(131)] = 4125, + [SMALL_STATE(132)] = 4138, + [SMALL_STATE(133)] = 4159, + [SMALL_STATE(134)] = 4180, + [SMALL_STATE(135)] = 4193, + [SMALL_STATE(136)] = 4206, + [SMALL_STATE(137)] = 4219, + [SMALL_STATE(138)] = 4239, + [SMALL_STATE(139)] = 4255, + [SMALL_STATE(140)] = 4266, + [SMALL_STATE(141)] = 4279, + [SMALL_STATE(142)] = 4294, + [SMALL_STATE(143)] = 4307, + [SMALL_STATE(144)] = 4320, + [SMALL_STATE(145)] = 4331, + [SMALL_STATE(146)] = 4342, + [SMALL_STATE(147)] = 4359, + [SMALL_STATE(148)] = 4369, + [SMALL_STATE(149)] = 4381, + [SMALL_STATE(150)] = 4391, + [SMALL_STATE(151)] = 4399, + [SMALL_STATE(152)] = 4409, + [SMALL_STATE(153)] = 4425, + [SMALL_STATE(154)] = 4439, + [SMALL_STATE(155)] = 4451, + [SMALL_STATE(156)] = 4465, + [SMALL_STATE(157)] = 4479, + [SMALL_STATE(158)] = 4487, + [SMALL_STATE(159)] = 4495, + [SMALL_STATE(160)] = 4509, + [SMALL_STATE(161)] = 4523, + [SMALL_STATE(162)] = 4537, + [SMALL_STATE(163)] = 4545, + [SMALL_STATE(164)] = 4559, + [SMALL_STATE(165)] = 4573, + [SMALL_STATE(166)] = 4587, + [SMALL_STATE(167)] = 4601, + [SMALL_STATE(168)] = 4615, + [SMALL_STATE(169)] = 4627, + [SMALL_STATE(170)] = 4639, + [SMALL_STATE(171)] = 4646, + [SMALL_STATE(172)] = 4653, + [SMALL_STATE(173)] = 4666, + [SMALL_STATE(174)] = 4679, + [SMALL_STATE(175)] = 4692, + [SMALL_STATE(176)] = 4699, + [SMALL_STATE(177)] = 4712, + [SMALL_STATE(178)] = 4721, + [SMALL_STATE(179)] = 4728, + [SMALL_STATE(180)] = 4735, + [SMALL_STATE(181)] = 4742, + [SMALL_STATE(182)] = 4751, + [SMALL_STATE(183)] = 4762, + [SMALL_STATE(184)] = 4775, + [SMALL_STATE(185)] = 4788, + [SMALL_STATE(186)] = 4801, + [SMALL_STATE(187)] = 4814, + [SMALL_STATE(188)] = 4827, + [SMALL_STATE(189)] = 4840, + [SMALL_STATE(190)] = 4853, + [SMALL_STATE(191)] = 4866, + [SMALL_STATE(192)] = 4879, + [SMALL_STATE(193)] = 4892, + [SMALL_STATE(194)] = 4899, + [SMALL_STATE(195)] = 4912, + [SMALL_STATE(196)] = 4925, + [SMALL_STATE(197)] = 4932, + [SMALL_STATE(198)] = 4945, + [SMALL_STATE(199)] = 4952, + [SMALL_STATE(200)] = 4965, + [SMALL_STATE(201)] = 4978, + [SMALL_STATE(202)] = 4991, + [SMALL_STATE(203)] = 5004, + [SMALL_STATE(204)] = 5017, + [SMALL_STATE(205)] = 5030, + [SMALL_STATE(206)] = 5043, + [SMALL_STATE(207)] = 5056, + [SMALL_STATE(208)] = 5063, + [SMALL_STATE(209)] = 5070, + [SMALL_STATE(210)] = 5081, + [SMALL_STATE(211)] = 5094, + [SMALL_STATE(212)] = 5107, + [SMALL_STATE(213)] = 5114, + [SMALL_STATE(214)] = 5121, + [SMALL_STATE(215)] = 5134, + [SMALL_STATE(216)] = 5143, + [SMALL_STATE(217)] = 5150, + [SMALL_STATE(218)] = 5157, + [SMALL_STATE(219)] = 5167, + [SMALL_STATE(220)] = 5173, + [SMALL_STATE(221)] = 5183, + [SMALL_STATE(222)] = 5193, + [SMALL_STATE(223)] = 5199, + [SMALL_STATE(224)] = 5209, + [SMALL_STATE(225)] = 5215, + [SMALL_STATE(226)] = 5221, + [SMALL_STATE(227)] = 5231, + [SMALL_STATE(228)] = 5241, + [SMALL_STATE(229)] = 5251, + [SMALL_STATE(230)] = 5261, + [SMALL_STATE(231)] = 5271, + [SMALL_STATE(232)] = 5281, + [SMALL_STATE(233)] = 5291, + [SMALL_STATE(234)] = 5301, + [SMALL_STATE(235)] = 5311, + [SMALL_STATE(236)] = 5317, + [SMALL_STATE(237)] = 5327, + [SMALL_STATE(238)] = 5333, + [SMALL_STATE(239)] = 5343, + [SMALL_STATE(240)] = 5349, + [SMALL_STATE(241)] = 5359, + [SMALL_STATE(242)] = 5367, + [SMALL_STATE(243)] = 5377, + [SMALL_STATE(244)] = 5387, + [SMALL_STATE(245)] = 5397, + [SMALL_STATE(246)] = 5407, + [SMALL_STATE(247)] = 5417, + [SMALL_STATE(248)] = 5427, + [SMALL_STATE(249)] = 5437, + [SMALL_STATE(250)] = 5447, + [SMALL_STATE(251)] = 5453, + [SMALL_STATE(252)] = 5463, + [SMALL_STATE(253)] = 5469, + [SMALL_STATE(254)] = 5475, + [SMALL_STATE(255)] = 5485, + [SMALL_STATE(256)] = 5495, + [SMALL_STATE(257)] = 5505, + [SMALL_STATE(258)] = 5511, + [SMALL_STATE(259)] = 5517, + [SMALL_STATE(260)] = 5523, + [SMALL_STATE(261)] = 5529, + [SMALL_STATE(262)] = 5539, + [SMALL_STATE(263)] = 5545, + [SMALL_STATE(264)] = 5551, + [SMALL_STATE(265)] = 5561, + [SMALL_STATE(266)] = 5567, + [SMALL_STATE(267)] = 5573, + [SMALL_STATE(268)] = 5583, + [SMALL_STATE(269)] = 5593, + [SMALL_STATE(270)] = 5601, + [SMALL_STATE(271)] = 5607, + [SMALL_STATE(272)] = 5613, + [SMALL_STATE(273)] = 5619, + [SMALL_STATE(274)] = 5625, + [SMALL_STATE(275)] = 5631, + [SMALL_STATE(276)] = 5637, + [SMALL_STATE(277)] = 5643, + [SMALL_STATE(278)] = 5649, + [SMALL_STATE(279)] = 5659, + [SMALL_STATE(280)] = 5665, + [SMALL_STATE(281)] = 5675, + [SMALL_STATE(282)] = 5683, + [SMALL_STATE(283)] = 5693, + [SMALL_STATE(284)] = 5703, + [SMALL_STATE(285)] = 5710, + [SMALL_STATE(286)] = 5715, + [SMALL_STATE(287)] = 5722, + [SMALL_STATE(288)] = 5729, + [SMALL_STATE(289)] = 5736, + [SMALL_STATE(290)] = 5743, + [SMALL_STATE(291)] = 5750, + [SMALL_STATE(292)] = 5757, + [SMALL_STATE(293)] = 5764, + [SMALL_STATE(294)] = 5769, + [SMALL_STATE(295)] = 5774, + [SMALL_STATE(296)] = 5781, + [SMALL_STATE(297)] = 5785, + [SMALL_STATE(298)] = 5789, + [SMALL_STATE(299)] = 5793, + [SMALL_STATE(300)] = 5797, + [SMALL_STATE(301)] = 5801, + [SMALL_STATE(302)] = 5805, + [SMALL_STATE(303)] = 5809, + [SMALL_STATE(304)] = 5813, + [SMALL_STATE(305)] = 5817, + [SMALL_STATE(306)] = 5821, + [SMALL_STATE(307)] = 5825, + [SMALL_STATE(308)] = 5829, + [SMALL_STATE(309)] = 5833, + [SMALL_STATE(310)] = 5837, + [SMALL_STATE(311)] = 5841, + [SMALL_STATE(312)] = 5845, + [SMALL_STATE(313)] = 5849, + [SMALL_STATE(314)] = 5853, + [SMALL_STATE(315)] = 5857, + [SMALL_STATE(316)] = 5861, + [SMALL_STATE(317)] = 5865, + [SMALL_STATE(318)] = 5869, + [SMALL_STATE(319)] = 5873, + [SMALL_STATE(320)] = 5877, + [SMALL_STATE(321)] = 5881, + [SMALL_STATE(322)] = 5885, + [SMALL_STATE(323)] = 5889, + [SMALL_STATE(324)] = 5893, + [SMALL_STATE(325)] = 5897, + [SMALL_STATE(326)] = 5901, + [SMALL_STATE(327)] = 5905, + [SMALL_STATE(328)] = 5909, + [SMALL_STATE(329)] = 5913, + [SMALL_STATE(330)] = 5917, + [SMALL_STATE(331)] = 5921, + [SMALL_STATE(332)] = 5925, + [SMALL_STATE(333)] = 5929, + [SMALL_STATE(334)] = 5933, + [SMALL_STATE(335)] = 5937, + [SMALL_STATE(336)] = 5941, + [SMALL_STATE(337)] = 5945, }; 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}}, REDUCE(sym_source_file, 0), - [5] = {.entry = {.count = 1, .reusable = false}}, SHIFT(223), - [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(164), - [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(109), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(161), - [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(154), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215), - [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(214), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(213), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(98), - [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [27] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), - [29] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(223), - [32] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(164), - [35] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(109), - [38] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(161), - [41] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(154), - [44] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(222), - [47] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(215), - [50] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(213), - [53] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(98), - [56] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(62), - [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2), - [61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), - [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [65] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 1), - [67] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 1), - [69] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_depcall_repeat1, 2), SHIFT_REPEAT(20), - [72] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_depcall_repeat1, 2), SHIFT_REPEAT(31), - [75] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_depcall_repeat1, 2), - [77] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_depcall_repeat1, 2), SHIFT_REPEAT(43), - [80] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_depcall_repeat1, 2), SHIFT_REPEAT(43), - [83] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_depcall_repeat1, 2), SHIFT_REPEAT(52), - [86] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_depcall_repeat1, 2), SHIFT_REPEAT(45), - [89] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_depcall_repeat1, 2), SHIFT_REPEAT(45), - [92] = {.entry = {.count = 1, .reusable = false}}, SHIFT(20), - [94] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [96] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_depcall, 2), - [98] = {.entry = {.count = 1, .reusable = false}}, SHIFT(43), - [100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [102] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52), - [104] = {.entry = {.count = 1, .reusable = false}}, SHIFT(45), - [106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 9, .production_id = 16), - [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 9, .production_id = 16), - [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 3), - [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 3), - [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3), - [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module, 3), - [120] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47), - [122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [124] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [126] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [128] = {.entry = {.count = 1, .reusable = false}}, SHIFT(49), - [130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [132] = {.entry = {.count = 1, .reusable = false}}, SHIFT(28), - [134] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6), - [136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 2), - [140] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module, 2), - [142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), - [144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_depcall, 1), - [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence, 2), - [150] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18), - [152] = {.entry = {.count = 1, .reusable = false}}, SHIFT(135), - [154] = {.entry = {.count = 1, .reusable = false}}, SHIFT(19), - [156] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [158] = {.entry = {.count = 1, .reusable = false}}, SHIFT(139), - [160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), - [162] = {.entry = {.count = 1, .reusable = false}}, SHIFT(119), - [164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value, 1), - [166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_value, 1), - [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_call, 3), - [172] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_call, 3), - [174] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_recipe, 3), - [176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_recipe, 3), - [178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_value, 3), - [182] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value, 3), - [184] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cmd, 1), - [186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cmd, 1), - [188] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_call, 4), - [190] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_call, 4), - [192] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_recipe, 2), - [194] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_recipe, 2), - [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [198] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1), - [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [202] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1), - [204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import, 3), - [206] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_import, 3), - [208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_item, 1), - [210] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_item, 1), - [212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_shebang, 3), - [214] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_shebang, 3), - [216] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_export, 2), - [218] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_export, 2), - [220] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_setting, 6, .production_id = 4), - [222] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_setting, 6, .production_id = 4), - [224] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_body, 2), - [226] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_body, 2), - [228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_eol, 1), - [230] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_eol, 1), - [232] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_recipe, 4), - [234] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_recipe, 4), - [236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_setting, 3, .production_id = 1), - [238] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_setting, 3, .production_id = 1), - [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_setting, 6, .production_id = 5), - [242] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_setting, 6, .production_id = 5), - [244] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_setting, 7, .production_id = 7), - [246] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_setting, 7, .production_id = 7), - [248] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_setting, 7, .production_id = 9), - [250] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_setting, 7, .production_id = 9), - [252] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_setting, 5, .production_id = 3), - [254] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_setting, 5, .production_id = 3), - [256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_setting, 9, .production_id = 15), - [258] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_setting, 9, .production_id = 15), - [260] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import, 2), - [262] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_import, 2), - [264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_body, 3), - [266] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_body, 3), - [268] = {.entry = {.count = 1, .reusable = false}}, SHIFT(211), - [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), - [272] = {.entry = {.count = 1, .reusable = false}}, SHIFT(206), - [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_alias, 4, .production_id = 2), - [278] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_alias, 4, .production_id = 2), - [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4), - [282] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module, 4), - [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 4), - [286] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment, 4), - [288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 2), - [290] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment, 2), - [292] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_setting, 9, .production_id = 14), - [294] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_setting, 9, .production_id = 14), - [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_setting, 8, .production_id = 13), - [298] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_setting, 8, .production_id = 13), - [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_setting, 8, .production_id = 12), - [302] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_setting, 8, .production_id = 12), - [304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_setting, 8, .production_id = 11), - [306] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_setting, 8, .production_id = 11), - [308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_setting, 8, .production_id = 10), - [310] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_setting, 8, .production_id = 10), - [312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), - [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), - [320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 1), - [322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), - [324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), - [326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), - [328] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), - [330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), - [332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), - [334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), - [336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), - [338] = {.entry = {.count = 1, .reusable = false}}, SHIFT(165), - [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), - [342] = {.entry = {.count = 1, .reusable = false}}, SHIFT(152), - [344] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_recipe_header, 4), - [346] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_setting_repeat1, 2, .production_id = 8), SHIFT_REPEAT(121), - [349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_setting_repeat1, 2, .production_id = 8), - [351] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_setting_repeat1, 2, .production_id = 8), - [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [355] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_recipe_header, 2), - [357] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_shebang_body_repeat1, 2), SHIFT_REPEAT(120), - [360] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_shebang_body_repeat1, 2), SHIFT_REPEAT(206), - [363] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_shebang_body_repeat1, 2), - [365] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_shebang_body, 1), - [367] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameters_repeat1, 2), - [369] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameters_repeat1, 2), SHIFT_REPEAT(190), - [372] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameters_repeat1, 2), SHIFT_REPEAT(108), - [375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [377] = {.entry = {.count = 1, .reusable = false}}, SHIFT(94), - [379] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), - [381] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_recipe_header, 3), - [383] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_recipe_body, 1), - [385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), - [389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), - [391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), - [393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), - [397] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter, 2), - [399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [401] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter, 1), - [403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), - [407] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_recipe_header, 5), - [409] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_setting_repeat1, 2, .production_id = 6), - [411] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_setting_repeat1, 2, .production_id = 6), - [413] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_recipeline_repeat1, 2), SHIFT_REPEAT(34), - [416] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_recipeline_repeat1, 2), SHIFT_REPEAT(112), - [419] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_recipeline_repeat1, 2), - [421] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter, 3), - [423] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dependencies, 1), - [425] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_dependencies_repeat1, 2), SHIFT_REPEAT(165), - [428] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_dependencies_repeat1, 2), SHIFT_REPEAT(152), - [431] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_dependencies_repeat1, 2), - [433] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter, 4), - [435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), - [437] = {.entry = {.count = 1, .reusable = false}}, SHIFT(34), - [439] = {.entry = {.count = 1, .reusable = false}}, SHIFT(112), - [441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), - [443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [445] = {.entry = {.count = 1, .reusable = false}}, SHIFT(118), - [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143), - [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199), - [455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), - [457] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_recipeline, 2), - [459] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_recipeline, 3), - [461] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_line, 1), - [463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [467] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dependency, 3), - [469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [471] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dependency, 1), - [473] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 3), - [475] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 3), - [477] = {.entry = {.count = 1, .reusable = false}}, SHIFT(193), - [479] = {.entry = {.count = 1, .reusable = false}}, SHIFT(117), - [481] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean, 1), - [483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [485] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence, 1), - [487] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195), - [489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [491] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 4), - [493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198), - [495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), - [499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), - [501] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence, 3), - [503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [507] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 2), - [509] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), - [511] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_shebang_recipe, 2), - [513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), - [515] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), - [517] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variadic_parameters, 2), - [519] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [521] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), - [523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [525] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168), - [527] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [531] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_condition, 3), - [533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [535] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_recipe_header, 6), - [537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), - [539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), - [543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184), - [545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), - [549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), - [551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), - [553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [555] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), - [557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), - [565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), - [569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), - [573] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200), - [575] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), - [581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), - [583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216), - [589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(217), - [591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218), - [593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219), - [595] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192), - [597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), - [599] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [601] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [603] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), - [605] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), + [5] = {.entry = {.count = 1, .reusable = false}}, SHIFT(122), + [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(316), + [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(286), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(129), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(287), + [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(288), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(333), + [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(331), + [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(330), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(329), + [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), + [27] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(329), + [31] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), + [33] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(122), + [36] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(316), + [39] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(286), + [42] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(129), + [45] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(287), + [48] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(288), + [51] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(333), + [54] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(331), + [57] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(329), + [60] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(97), + [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2), + [65] = {.entry = {.count = 1, .reusable = false}}, SHIFT(88), + [67] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [69] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15), + [71] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [73] = {.entry = {.count = 1, .reusable = true}}, SHIFT(276), + [75] = {.entry = {.count = 1, .reusable = false}}, SHIFT(267), + [77] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), + [79] = {.entry = {.count = 1, .reusable = false}}, SHIFT(31), + [81] = {.entry = {.count = 1, .reusable = true}}, SHIFT(282), + [83] = {.entry = {.count = 1, .reusable = false}}, SHIFT(172), + [85] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), + [87] = {.entry = {.count = 1, .reusable = true}}, SHIFT(235), + [89] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__dependency_with_args_repeat1, 2, .production_id = 23), SHIFT_REPEAT(88), + [92] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__dependency_with_args_repeat1, 2, .production_id = 23), SHIFT_REPEAT(46), + [95] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__dependency_with_args_repeat1, 2, .production_id = 23), SHIFT_REPEAT(15), + [98] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__dependency_with_args_repeat1, 2, .production_id = 23), SHIFT_REPEAT(34), + [101] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__dependency_with_args_repeat1, 2, .production_id = 23), + [103] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__dependency_with_args_repeat1, 2, .production_id = 23), SHIFT_REPEAT(267), + [106] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__dependency_with_args_repeat1, 2, .production_id = 23), SHIFT_REPEAT(249), + [109] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__dependency_with_args_repeat1, 2, .production_id = 23), SHIFT_REPEAT(31), + [112] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__dependency_with_args_repeat1, 2, .production_id = 23), SHIFT_REPEAT(282), + [115] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__dependency_with_args_repeat1, 2, .production_id = 23), SHIFT_REPEAT(172), + [118] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__dependency_with_args_repeat1, 2, .production_id = 23), SHIFT_REPEAT(188), + [121] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), + [123] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [125] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171), + [127] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [129] = {.entry = {.count = 1, .reusable = true}}, SHIFT(271), + [131] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_basic_string, 2), + [133] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_basic_string, 2), + [135] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_basic_string_indented, 2), + [137] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_basic_string_indented, 2), + [139] = {.entry = {.count = 1, .reusable = false}}, SHIFT(177), + [141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [143] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17), + [145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [147] = {.entry = {.count = 1, .reusable = false}}, SHIFT(233), + [149] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232), + [151] = {.entry = {.count = 1, .reusable = false}}, SHIFT(250), + [153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238), + [155] = {.entry = {.count = 1, .reusable = false}}, SHIFT(199), + [157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205), + [159] = {.entry = {.count = 1, .reusable = false}}, SHIFT(151), + [161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [163] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13), + [165] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [167] = {.entry = {.count = 1, .reusable = false}}, SHIFT(230), + [169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(229), + [171] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71), + [173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(248), + [175] = {.entry = {.count = 1, .reusable = false}}, SHIFT(174), + [177] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), + [179] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_raw_string_indented, 2), + [181] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raw_string_indented, 2), + [183] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_raw_string_indented, 3), + [185] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raw_string_indented, 3), + [187] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_basic_string, 3), + [189] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_basic_string, 3), + [191] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_basic_string_indented, 3), + [193] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_basic_string_indented, 3), + [195] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 1), + [197] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 1), + [199] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_value, 1), + [201] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value, 1), + [203] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_value, 3), + [205] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value, 3), + [207] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 3, .production_id = 13), + [209] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 3, .production_id = 13), + [211] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_backticked, 3), + [213] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_backticked, 3), + [215] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_command, 1), + [217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_command, 1), + [219] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_indented_backticked, 3), + [221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_indented_backticked, 3), + [223] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_indented_backticked, 2), + [225] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_indented_backticked, 2), + [227] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 4, .production_id = 21), + [229] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 4, .production_id = 21), + [231] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_backticked, 2), + [233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_backticked, 2), + [235] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_expression_repeat1, 2, .production_id = 30), + [237] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_expression_repeat1, 2, .production_id = 30), + [239] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_expression_repeat1, 2, .production_id = 30), SHIFT_REPEAT(332), + [242] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_expression, 4, .production_id = 20), + [244] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_expression, 4, .production_id = 20), + [246] = {.entry = {.count = 1, .reusable = false}}, SHIFT(243), + [248] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_expression, 3, .production_id = 12), + [250] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_expression, 3, .production_id = 12), + [252] = {.entry = {.count = 1, .reusable = false}}, SHIFT(244), + [254] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__braced_expr, 3, .production_id = 28), + [256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__braced_expr, 3, .production_id = 28), + [258] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 2), + [260] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module, 2), + [262] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_expression_repeat1, 4, .production_id = 38), + [264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_expression_repeat1, 4, .production_id = 38), + [266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3), + [268] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module, 3), + [270] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_expression, 6, .production_id = 35), + [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_expression, 6, .production_id = 35), + [274] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_expression, 5, .production_id = 29), + [276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_expression, 5, .production_id = 29), + [278] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression_inner, 3, .production_id = 14), + [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression_inner, 3, .production_id = 14), + [282] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression_inner, 1), + [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression_inner, 1), + [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [288] = {.entry = {.count = 1, .reusable = false}}, SHIFT(241), + [290] = {.entry = {.count = 1, .reusable = false}}, SHIFT(336), + [292] = {.entry = {.count = 1, .reusable = false}}, SHIFT(21), + [294] = {.entry = {.count = 1, .reusable = false}}, SHIFT(155), + [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), + [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), + [300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), + [304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), + [306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_recipe, 2), + [308] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_recipe, 2), + [310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [312] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_recipe_body_repeat1, 2), SHIFT_REPEAT(241), + [315] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_recipe_body_repeat1, 2), SHIFT_REPEAT(21), + [318] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_recipe_body_repeat1, 2), SHIFT_REPEAT(155), + [321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_recipe_body_repeat1, 2), + [323] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_recipe_body_repeat1, 2), SHIFT_REPEAT(131), + [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_recipe, 3), + [328] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_recipe, 3), + [330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), + [334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(293), + [336] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1), + [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [340] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1), + [342] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 2), + [344] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 2), + [346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 2), + [348] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment, 2), + [350] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_setting, 6, .production_id = 19), + [352] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_setting, 6, .production_id = 19), + [354] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__dependency_with_args_repeat1, 1, .production_id = 16), + [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__dependency_with_args_repeat1, 1, .production_id = 16), + [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_alias, 4, .production_id = 6), + [360] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_alias, 4, .production_id = 6), + [362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_setting, 9, .production_id = 37), + [364] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_setting, 9, .production_id = 37), + [366] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_setting, 9, .production_id = 36), + [368] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_setting, 9, .production_id = 36), + [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_setting, 5, .production_id = 10), + [372] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_setting, 5, .production_id = 10), + [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_setting, 8, .production_id = 34), + [376] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_setting, 8, .production_id = 34), + [378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_eol, 1), + [380] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_eol, 1), + [382] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4), + [384] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module, 4), + [386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), + [388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), + [390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), + [392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_setting, 8, .production_id = 33), + [394] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_setting, 8, .production_id = 33), + [396] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_setting, 8, .production_id = 32), + [398] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_setting, 8, .production_id = 32), + [400] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_setting, 8, .production_id = 31), + [402] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_setting, 8, .production_id = 31), + [404] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_recipe, 4), + [406] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_recipe, 4), + [408] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_setting, 7, .production_id = 27), + [410] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_setting, 7, .production_id = 27), + [412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_item, 1), + [414] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_item, 1), + [416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_setting, 7, .production_id = 25), + [418] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_setting, 7, .production_id = 25), + [420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_recipe_body, 4, .production_id = 11), + [422] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_recipe_body, 4, .production_id = 11), + [424] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_export, 2), + [426] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_export, 2), + [428] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_setting, 3, .production_id = 2), + [430] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_setting, 3, .production_id = 2), + [432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192), + [434] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import, 3), + [436] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_import, 3), + [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), + [440] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_recipe_body, 3, .production_id = 7), + [442] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_recipe_body, 3, .production_id = 7), + [444] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_setting, 6, .production_id = 18), + [446] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_setting, 6, .production_id = 18), + [448] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 4, .production_id = 8), + [450] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment, 4, .production_id = 8), + [452] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_recipe_body, 2), + [454] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_recipe_body, 2), + [456] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import, 2), + [458] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_import, 2), + [460] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_shebang, 2), + [462] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_shebang, 2), + [464] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), + [466] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(254), + [470] = {.entry = {.count = 1, .reusable = false}}, SHIFT(166), + [472] = {.entry = {.count = 1, .reusable = true}}, SHIFT(301), + [474] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), + [476] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), + [478] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [482] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184), + [484] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214), + [486] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), + [488] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_recipe_line, 1), + [490] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_recipe_line, 1), + [492] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_recipe_line, 2), + [494] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_recipe_line, 2), + [496] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_recipe_line, 3), + [498] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_recipe_line, 3), + [500] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_setting_repeat1, 2, .production_id = 26), SHIFT_REPEAT(132), + [503] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_setting_repeat1, 2, .production_id = 26), + [505] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_setting_repeat1, 2, .production_id = 26), + [507] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter, 2, .production_id = 5), + [509] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247), + [513] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameters_repeat1, 2), SHIFT_REPEAT(144), + [516] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameters_repeat1, 2), + [518] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameters_repeat1, 2), SHIFT_REPEAT(301), + [521] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_if_expression_repeat1, 2, .production_id = 30), SHIFT_REPEAT(306), + [524] = {.entry = {.count = 1, .reusable = true}}, SHIFT(280), + [526] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter, 1, .production_id = 1), + [528] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [530] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_setting_repeat1, 2, .production_id = 24), + [532] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_setting_repeat1, 2, .production_id = 24), + [534] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), + [536] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameters_repeat1, 1), + [538] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 1), + [540] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_if_expression_repeat1, 2, .production_id = 30), SHIFT_REPEAT(337), + [543] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 2), + [545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), + [549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225), + [551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(325), + [553] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_recipe_header, 3), + [555] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_recipe_repeat1, 2), + [557] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_recipe_repeat1, 2), SHIFT_REPEAT(333), + [560] = {.entry = {.count = 1, .reusable = false}}, SHIFT(163), + [562] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), + [564] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter, 4, .production_id = 17), + [566] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), + [568] = {.entry = {.count = 1, .reusable = false}}, SHIFT(159), + [570] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_recipe_header, 5), + [572] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter, 3, .production_id = 9), + [574] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_recipe_line_repeat1, 2), SHIFT_REPEAT(21), + [577] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_recipe_line_repeat1, 2), SHIFT_REPEAT(163), + [580] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_recipe_line_repeat1, 2), + [582] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_recipe_header_repeat1, 2), SHIFT_REPEAT(225), + [585] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_recipe_header_repeat1, 2), SHIFT_REPEAT(325), + [588] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_recipe_header_repeat1, 2), + [590] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_recipe_header, 4), + [592] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_recipe_header, 2), + [594] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220), + [596] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223), + [598] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18), + [600] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), + [602] = {.entry = {.count = 1, .reusable = false}}, SHIFT(190), + [604] = {.entry = {.count = 1, .reusable = false}}, SHIFT(72), + [606] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200), + [608] = {.entry = {.count = 1, .reusable = false}}, SHIFT(200), + [610] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), + [612] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), + [614] = {.entry = {.count = 1, .reusable = false}}, SHIFT(201), + [616] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), + [618] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [620] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [622] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), + [624] = {.entry = {.count = 1, .reusable = false}}, SHIFT(263), + [626] = {.entry = {.count = 1, .reusable = false}}, SHIFT(211), + [628] = {.entry = {.count = 1, .reusable = false}}, SHIFT(262), + [630] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197), + [632] = {.entry = {.count = 1, .reusable = false}}, SHIFT(197), + [634] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), + [636] = {.entry = {.count = 1, .reusable = false}}, SHIFT(19), + [638] = {.entry = {.count = 1, .reusable = false}}, SHIFT(194), + [640] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), + [642] = {.entry = {.count = 1, .reusable = false}}, SHIFT(26), + [644] = {.entry = {.count = 1, .reusable = true}}, SHIFT(335), + [646] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222), + [648] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_basic_string_repeat1, 2), + [650] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_basic_string_repeat1, 2), SHIFT_REPEAT(197), + [653] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_basic_string_repeat1, 2), SHIFT_REPEAT(197), + [656] = {.entry = {.count = 1, .reusable = false}}, SHIFT(252), + [658] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), + [660] = {.entry = {.count = 1, .reusable = false}}, SHIFT(185), + [662] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75), + [664] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77), + [666] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), + [668] = {.entry = {.count = 1, .reusable = false}}, SHIFT(253), + [670] = {.entry = {.count = 1, .reusable = false}}, SHIFT(183), + [672] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_basic_string_repeat1, 2), SHIFT_REPEAT(211), + [675] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_basic_string_repeat1, 2), SHIFT_REPEAT(211), + [678] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_condition, 1), + [680] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [682] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attribute_repeat1, 2), SHIFT_REPEAT(314), + [685] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attribute_repeat1, 2), + [687] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [689] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [691] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_backticked_repeat1, 2), SHIFT_REPEAT(221), + [694] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_backticked_repeat1, 2), + [696] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dependency, 1, .production_id = 4), + [698] = {.entry = {.count = 1, .reusable = false}}, SHIFT(261), + [700] = {.entry = {.count = 1, .reusable = false}}, SHIFT(273), + [702] = {.entry = {.count = 1, .reusable = false}}, SHIFT(272), + [704] = {.entry = {.count = 1, .reusable = false}}, SHIFT(228), + [706] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_backticked_repeat1, 2), SHIFT_REPEAT(228), + [709] = {.entry = {.count = 1, .reusable = false}}, SHIFT(268), + [711] = {.entry = {.count = 1, .reusable = false}}, SHIFT(193), + [713] = {.entry = {.count = 1, .reusable = false}}, SHIFT(175), + [715] = {.entry = {.count = 1, .reusable = false}}, SHIFT(283), + [717] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [719] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence, 1), + [721] = {.entry = {.count = 1, .reusable = false}}, SHIFT(226), + [723] = {.entry = {.count = 1, .reusable = false}}, SHIFT(266), + [725] = {.entry = {.count = 1, .reusable = false}}, SHIFT(265), + [727] = {.entry = {.count = 1, .reusable = false}}, SHIFT(227), + [729] = {.entry = {.count = 1, .reusable = true}}, SHIFT(314), + [731] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195), + [733] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dependency, 3, .production_id = 15), + [735] = {.entry = {.count = 1, .reusable = false}}, SHIFT(221), + [737] = {.entry = {.count = 1, .reusable = false}}, SHIFT(260), + [739] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 5, .production_id = 11), + [741] = {.entry = {.count = 1, .reusable = false}}, SHIFT(236), + [743] = {.entry = {.count = 1, .reusable = false}}, SHIFT(219), + [745] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 4, .production_id = 7), + [747] = {.entry = {.count = 1, .reusable = false}}, SHIFT(83), + [749] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_recipe_line_prefix, 1), + [751] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_recipe_line_prefix, 1), + [753] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_repeat1, 2), SHIFT_REPEAT(30), + [756] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_sequence_repeat1, 2), + [758] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [760] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [762] = {.entry = {.count = 1, .reusable = false}}, SHIFT(40), + [764] = {.entry = {.count = 1, .reusable = false}}, SHIFT(38), + [766] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [768] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [770] = {.entry = {.count = 1, .reusable = false}}, SHIFT(240), + [772] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73), + [774] = {.entry = {.count = 1, .reusable = false}}, SHIFT(245), + [776] = {.entry = {.count = 1, .reusable = false}}, SHIFT(41), + [778] = {.entry = {.count = 1, .reusable = false}}, SHIFT(24), + [780] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), + [782] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [784] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [786] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_backticked_repeat1, 2), SHIFT_REPEAT(261), + [789] = {.entry = {.count = 1, .reusable = false}}, SHIFT(43), + [791] = {.entry = {.count = 1, .reusable = false}}, SHIFT(246), + [793] = {.entry = {.count = 1, .reusable = false}}, SHIFT(212), + [795] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 3), + [797] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 3), + [799] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dependency, 4, .production_id = 22), + [801] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence, 2), + [803] = {.entry = {.count = 1, .reusable = false}}, SHIFT(251), + [805] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23), + [807] = {.entry = {.count = 1, .reusable = false}}, SHIFT(217), + [809] = {.entry = {.count = 1, .reusable = true}}, SHIFT(307), + [811] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [813] = {.entry = {.count = 1, .reusable = true}}, SHIFT(312), + [815] = {.entry = {.count = 1, .reusable = false}}, SHIFT(152), + [817] = {.entry = {.count = 1, .reusable = false}}, SHIFT(317), + [819] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean, 1), + [821] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), + [823] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), + [825] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203), + [827] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [829] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), + [831] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), + [833] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [835] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [837] = {.entry = {.count = 1, .reusable = true}}, SHIFT(296), + [839] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [841] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_condition, 3), + [843] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269), + [845] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [847] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), + [849] = {.entry = {.count = 1, .reusable = true}}, SHIFT(294), + [851] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180), + [853] = {.entry = {.count = 1, .reusable = true}}, SHIFT(308), + [855] = {.entry = {.count = 1, .reusable = true}}, SHIFT(313), + [857] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), + [859] = {.entry = {.count = 1, .reusable = true}}, SHIFT(270), + [861] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [863] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), + [865] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variadic_parameter, 2, .production_id = 3), + [867] = {.entry = {.count = 1, .reusable = true}}, SHIFT(275), + [869] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), + [871] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [873] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), + [875] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [877] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [879] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), + [881] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), + [883] = {.entry = {.count = 1, .reusable = true}}, SHIFT(255), + [885] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198), + [887] = {.entry = {.count = 1, .reusable = true}}, SHIFT(224), + [889] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136), }; #ifdef __cplusplus @@ -5427,6 +7807,8 @@ extern const TSLanguage *tree_sitter_just(void) { .alias_sequences = &ts_alias_sequences[0][0], .lex_modes = ts_lex_modes, .lex_fn = ts_lex, + .keyword_lex_fn = ts_lex_keywords, + .keyword_capture_token = sym_identifier, .external_scanner = { &ts_external_scanner_states[0][0], ts_external_scanner_symbol_map, diff --git a/src/scanner.cc b/src/scanner.cc index aa259ac..9550d8d 100644 --- a/src/scanner.cc +++ b/src/scanner.cc @@ -5,12 +5,18 @@ #include #include -enum TokenType { INDENT, DEDENT, NEWLINE, LINE }; +enum TokenType { INDENT, DEDENT, NEWLINE }; struct Scanner { uint32_t prev_indent; + bool has_seen_eof; - Scanner() { prev_indent = 0; } + Scanner() { init(); } + + void init() { + prev_indent = 0; + has_seen_eof = false; + } // Only ever working on the same platform so we don't need to worry about // endianness. @@ -23,9 +29,9 @@ struct Scanner { void deserialize(const char *buf, unsigned len) { if (len == 0) { - prev_indent = 0; - return; + return init(); } + assert(len == sizeof(Scanner)); memcpy(this, buf, len); } @@ -72,13 +78,23 @@ void advance(TSLexer *lexer) { return lexer->advance(lexer, false); } void skip(TSLexer *lexer) { return lexer->advance(lexer, true); } // An EOF works as a dedent -bool handle_eof(TSLexer *lexer, const bool *valid_symbols) { +bool handle_eof(TSLexer *lexer, Scanner *state, const bool *valid_symbols) { assert(lexer->eof(lexer)); lexer->mark_end(lexer); if (valid_symbols[DEDENT]) { lexer->result_symbol = DEDENT; return true; + } else if (valid_symbols[NEWLINE]) { + if (state->has_seen_eof) { + // allow EOF to count for a single symbol. Don't return true moer than + // once, otherwise it will keep calling us thinking there are more tokens. + return false; + } + + lexer->result_symbol = NEWLINE; + state->has_seen_eof = true; + return true; } return false; } @@ -92,7 +108,7 @@ bool tree_sitter_just_external_scanner_scan(void *payload, TSLexer *lexer, bool (*eof)(const TSLexer *) = lexer->eof; if (eof(lexer)) { - return handle_eof(lexer, valid_symbols); + return handle_eof(lexer, state, valid_symbols); } // Handle backslash escaping for newlines @@ -129,7 +145,7 @@ bool tree_sitter_just_external_scanner_scan(void *payload, TSLexer *lexer, } if (lexer->eof(lexer)) { - return handle_eof(lexer, valid_symbols); + return handle_eof(lexer, state, valid_symbols); } uint32_t indent = lexer->get_column(lexer); diff --git a/test/corpus/injections.txt b/test/corpus/injections.txt new file mode 100644 index 0000000..e69de29 diff --git a/test/corpus/recipes.txt b/test/corpus/recipes.txt index 1aa11fa..e1c7928 100644 --- a/test/corpus/recipes.txt +++ b/test/corpus/recipes.txt @@ -12,34 +12,23 @@ bar: (source_file (item - (eol - (NEWLINE))) + (eol)) (item (recipe (recipe_header - (NAME)) - (NEWLINE) - (body - (INDENT) - (recipe_body - (line - (recipeline - (notcomment) - (NEWLINE)))) - (DEDENT)))) + (identifier)) + (recipe_body + (recipe_line + (text))))) (item (recipe (recipe_header - (NAME)) - (NEWLINE) - (body - (INDENT) - (recipe_body - (line - (recipeline - (notcomment) - (NEWLINE)))) - (DEDENT))))) + (identifier)) + (recipe_body + (recipe_line + (text))))) + (item + (eol))) ================================================================================ quiet @@ -52,21 +41,16 @@ quiet (source_file (item - (eol - (NEWLINE))) + (eol)) (item (recipe (recipe_header - (NAME)) - (NEWLINE) - (body - (INDENT) - (recipe_body - (line - (recipeline - (notcomment) - (NEWLINE)))) - (DEDENT))))) + (identifier)) + (recipe_body + (recipe_line + (text))))) + (item + (eol))) ================================================================================ dependencies @@ -79,26 +63,20 @@ foo: bar baz (source_file (item - (eol - (NEWLINE))) + (eol)) (item (recipe (recipe_header - (NAME) - (dependencies - (dependency - (NAME)) - (dependency - (NAME)))) - (NEWLINE) - (body - (INDENT) - (recipe_body - (line - (recipeline - (notcomment) - (NEWLINE)))) - (DEDENT))))) + (identifier) + (dependency + (identifier)) + (dependency + (identifier))) + (recipe_body + (recipe_line + (text))))) + (item + (eol))) ================================================================================ arguments @@ -110,50 +88,53 @@ foo bar: baz qux *quux: body +corge *grault: + body + -------------------------------------------------------------------------------- (source_file (item - (eol - (NEWLINE))) + (eol)) (item (recipe (recipe_header - (NAME) + (identifier) (parameters (parameter - (NAME)))) - (NEWLINE) - (body - (INDENT) - (recipe_body - (line - (recipeline - (notcomment) - (NEWLINE)))) - (DEDENT)))) + (identifier)))) + (recipe_body + (recipe_line + (text))))) (item (recipe (recipe_header - (NAME) + (identifier) (parameters (parameter - (NAME)) - (variadic_parameters + (identifier)) + (variadic_parameter (parameter - (NAME))))) - (NEWLINE) - (body - (INDENT) - (recipe_body - (line - (recipeline - (notcomment) - (NEWLINE)))) - (DEDENT))))) + (identifier))))) + (recipe_body + (recipe_line + (text))))) + (item + (recipe + (recipe_header + (identifier) + (parameters + (variadic_parameter + (parameter + (identifier))))) + (recipe_body + (recipe_line + (text))))) + (item + (eol))) ================================================================================ -dependency expression +dependency call ================================================================================ foo +bar: baz(bar) @@ -163,33 +144,24 @@ foo +bar: baz(bar) (source_file (item - (eol - (NEWLINE))) + (eol)) (item (recipe (recipe_header - (NAME) + (identifier) (parameters - (parameter - (MISSING NAME)) - (variadic_parameters + (variadic_parameter (parameter - (NAME)))) - (dependencies - (dependency - (NAME)) - (dependency - (depcall - (NAME))))) - (NEWLINE) - (body - (INDENT) - (recipe_body - (line - (recipeline - (notcomment) - (NEWLINE)))) - (DEDENT))))) + (identifier)))) + (dependency + (identifier)) + (dependency + (identifier))) + (recipe_body + (recipe_line + (text))))) + (item + (eol))) ================================================================================ attribute @@ -203,25 +175,76 @@ foo: (source_file (item - (eol - (NEWLINE))) + (eol)) (item (recipe (attribute - (NAME) - (eol - (NEWLINE))) + (identifier) + (eol)) (recipe_header - (NAME)) - (NEWLINE) - (body - (INDENT) - (recipe_body - (line - (recipeline - (notcomment) - (NEWLINE)))) - (DEDENT))))) + (identifier)) + (recipe_body + (recipe_line + (text))))) + (item + (eol))) + +================================================================================ +stacked attributes +================================================================================ + +[attr1] +[attr2] +foo: + body + +-------------------------------------------------------------------------------- + +(source_file + (item + (eol)) + (item + (recipe + (attribute + (identifier) + (eol)) + (attribute + (identifier) + (eol)) + (recipe_header + (identifier)) + (recipe_body + (recipe_line + (text))))) + (item + (eol))) + +================================================================================ +sequence attributes +================================================================================ + +[attr1, attr2] +foo: + body + +-------------------------------------------------------------------------------- + +(source_file + (item + (eol)) + (item + (recipe + (attribute + (identifier) + (identifier) + (eol)) + (recipe_header + (identifier)) + (recipe_body + (recipe_line + (text))))) + (item + (eol))) ================================================================================ body shebang @@ -237,39 +260,21 @@ foo: (source_file (item - (eol - (NEWLINE))) + (eol)) (item (recipe (recipe_header - (NAME)) - (NEWLINE) - (body - (INDENT) - (recipe_body - (line - (comment - (NEWLINE))) - (line - (recipeline - (notcomment) - (TEXT) - (TEXT) - (TEXT) - (TEXT) - (TEXT) - (NEWLINE))) - (line - (recipeline - (notcomment) - (TEXT) - (TEXT) - (NEWLINE))) - (line - (recipeline - (notcomment) - (NEWLINE)))) - (DEDENT))))) + (identifier)) + (recipe_body + (shebang) + (recipe_line + (text)) + (recipe_line + (text)) + (recipe_line + (text))))) + (item + (eol))) ================================================================================ longer bodies @@ -295,59 +300,32 @@ bar: (source_file (item - (eol - (NEWLINE))) + (eol)) (item (recipe (recipe_header - (NAME)) - (NEWLINE) - (body - (INDENT) - (recipe_body - (line - (recipeline - (notcomment) - (NEWLINE))) - (line - (recipeline - (notcomment) - (TEXT) - (NEWLINE))) - (line - (comment - (NEWLINE))) - (line - (recipeline - (notcomment) - (TEXT) - (TEXT) - (NEWLINE)))) - (DEDENT)))) + (identifier)) + (recipe_body + (recipe_line + (text)) + (recipe_line + (text)) + (recipe_line + (text)) + (recipe_line + (text))))) (item (recipe (recipe_header - (NAME)) - (NEWLINE) - (body - (INDENT) - (recipe_body - (line - (recipeline - (notcomment) - (NEWLINE))) - (line - (recipeline - (notcomment) - (TEXT) - (NEWLINE))) - (line - (comment - (NEWLINE))) - (line - (recipeline - (notcomment) - (TEXT) - (TEXT) - (NEWLINE)))) - (DEDENT))))) + (identifier)) + (recipe_body + (recipe_line + (text)) + (recipe_line + (text)) + (recipe_line + (text)) + (recipe_line + (text))))) + (item + (eol))) diff --git a/test/corpus/statements.txt b/test/corpus/statements.txt index a966698..e9f475e 100644 --- a/test/corpus/statements.txt +++ b/test/corpus/statements.txt @@ -1,3 +1,13 @@ +================================================================================ +empty +================================================================================ + +-------------------------------------------------------------------------------- + +(source_file + (item + (eol))) + ================================================================================ assignment ================================================================================ @@ -8,17 +18,17 @@ foo := "abc" (source_file (item - (eol - (NEWLINE))) + (eol)) (item (assignment - (NAME) + (identifier) (expression (value (string - (STRING)))) - (eol - (NEWLINE))))) + (basic_string)))) + (eol))) + (item + (eol))) ================================================================================ expression @@ -30,21 +40,20 @@ foo := "abc" + 'def' (source_file (item - (eol - (NEWLINE))) + (eol)) (item (assignment - (NAME) + (identifier) (expression (value (string - (STRING))) - (expression - (value - (string - (RAW_STRING))))) - (eol - (NEWLINE))))) + (basic_string))) + (value + (string + (raw_string)))) + (eol))) + (item + (eol))) ================================================================================ paths @@ -58,185 +67,392 @@ combined := "foo" / bar() / baz (source_file (item - (eol - (NEWLINE))) + (eol)) (item (assignment - (NAME) + (identifier) (expression (value (string - (STRING))) - (expression - (value - (string - (RAW_STRING))))) - (eol - (NEWLINE)))) + (basic_string))) + (value + (string + (raw_string)))) + (eol))) (item (assignment - (NAME) + (identifier) (expression (value - (cmd - (MISSING BACKTICK))) - (expression - (value - (string - (STRING))))) - (eol - (NEWLINE)))) + (string + (basic_string)))) + (eol))) (item (assignment - (NAME) + (identifier) (expression (value (string - (STRING))) - (expression - (value - (call - (NAME))) - (expression - (value - (NAME))))) - (eol - (NEWLINE))))) + (basic_string))) + (value + (function_call + (identifier))) + (value + (identifier))) + (eol))) + (item + (eol))) ================================================================================ -strings FIXME(escapes) XFAIL from escapes +basic strings ================================================================================ foo := "a" -bar := 'b' -baz := "c -d" -qux := """e -f""" -quux := '''g -h -i -''' -corge := "foo\"bar" +bar := "b + c +" +baz := "a\"\t" -------------------------------------------------------------------------------- (source_file (item - (eol - (NEWLINE))) + (eol)) (item (assignment - (NAME) + (identifier) (expression (value (string - (STRING)))) - (eol - (NEWLINE)))) + (basic_string)))) + (eol))) (item (assignment - (NAME) + (identifier) (expression (value (string - (RAW_STRING)))) - (eol - (NEWLINE)))) + (basic_string)))) + (eol))) (item (assignment - (NAME) + (identifier) (expression (value (string - (STRING)))) - (eol - (NEWLINE)))) + (basic_string + (string_escape) + (string_escape))))) + (eol))) + (item + (eol))) + +================================================================================ +indented basic strings +================================================================================ + +foo := """a""" +bar:= """b + c +""" +baz := """ +abc \t +def \" +""" + +-------------------------------------------------------------------------------- + +(source_file + (item + (eol)) (item (assignment - (NAME) + (identifier) (expression (value (string - (INDENTED_STRING)))) - (eol - (NEWLINE)))) + (basic_string_indented)))) + (eol))) (item (assignment - (NAME) + (identifier) (expression (value (string - (INDENTED_RAW_STRING)))) - (eol - (NEWLINE)))) - (ERROR - (NAME) - (ERROR - (value - (string - (STRING)))) - (NAME) - (INDENT) - (UNEXPECTED '\0'))) + (basic_string_indented)))) + (eol))) + (item + (assignment + (identifier) + (expression + (value + (string + (basic_string_indented + (string_escape) + (string_escape))))) + (eol))) + (item + (eol))) ================================================================================ -if +raw strings ================================================================================ -foo := if a == "x" { - "val" -} else if "1" != "2" { foo_fn("val") } -} else { val } +foo := 'a' +bar := 'b + c +' +baz := 'a\"\t' -------------------------------------------------------------------------------- (source_file (item - (eol - (NEWLINE))) - (ERROR - (NAME) - (condition + (eol)) + (item + (assignment + (identifier) (expression (value - (NAME))) + (string + (raw_string)))) + (eol))) + (item + (assignment + (identifier) (expression (value (string - (STRING))))) - (ERROR + (raw_string)))) + (eol))) + (item + (assignment + (identifier) (expression (value (string - (STRING))))) - (expression - (condition - (expression - (value - (string - (STRING)))) - (expression - (value - (string - (STRING))))) + (raw_string)))) + (eol))) + (item + (eol))) + +================================================================================ +indented raw strings +================================================================================ + +foo := '''a''' +bar:= '''b + c +''' + baz := '''' + abc \t + def \" +''' + +-------------------------------------------------------------------------------- + +(source_file + (item + (eol)) + (item + (assignment + (identifier) (expression (value - (call - (NAME) - (sequence - (expression - (value - (string - (STRING)))))))) - (ERROR - (NEWLINE)) + (string + (raw_string_indented)))) + (eol))) + (item + (assignment + (identifier) (expression (value - (NAME))))) + (string + (raw_string_indented)))) + (eol))) (item - (eol - (NEWLINE)))) + (assignment + (identifier) + (expression + (value + (string + (raw_string_indented)))) + (eol))) + (item + (eol))) + +================================================================================ +backticks +================================================================================ + +foo := `echo hi` +bar := `echo hi + echo bye +` + +-------------------------------------------------------------------------------- + +(source_file + (item + (eol)) + (item + (assignment + (identifier) + (expression + (value + (command + (backticked)))) + (eol))) + (item + (assignment + (identifier) + (expression + (value + (command + (backticked)))) + (eol))) + (item + (eol))) + +================================================================================ +indented backticks +================================================================================ + +foo := ```echo hi``` +bar := ``` +echo bye +``` +-------------------------------------------------------------------------------- + +(source_file + (item + (eol)) + (item + (assignment + (identifier) + (expression + (value + (command + (indented_backticked)))) + (eol))) + (item + (assignment + (identifier) + (expression + (value + (command + (indented_backticked)))) + (eol)))) + +================================================================================ +if +================================================================================ + +foo := if bar == baz { qux } else { quux } + +-------------------------------------------------------------------------------- + +(source_file + (item + (eol)) + (item + (assignment + (identifier) + (expression + (if_expression + (condition + (expression + (value + (identifier))) + (expression + (value + (identifier)))) + (expression + (value + (identifier))) + (expression + (value + (identifier))))) + (eol))) + (item + (eol))) + +================================================================================ +else if +================================================================================ + +foo := if a == "x" { + "val" +} else if "1" != "2" { + foo_fn("val") +} else if "3" == "4" { + if some_bool { val } +} else { val } + +-------------------------------------------------------------------------------- + +(source_file + (item + (eol)) + (item + (assignment + (identifier) + (expression + (if_expression + (condition + (expression + (value + (identifier))) + (expression + (value + (string + (basic_string))))) + (expression + (value + (string + (basic_string)))) + (condition + (expression + (value + (string + (basic_string)))) + (expression + (value + (string + (basic_string))))) + (expression + (value + (function_call + (identifier) + (sequence + (expression + (value + (string + (basic_string)))))))) + (condition + (expression + (value + (string + (basic_string)))) + (expression + (value + (string + (basic_string))))) + (expression + (if_expression + (condition + (expression + (value + (identifier)))) + (expression + (value + (identifier))))) + (expression + (value + (identifier))))) + (eol))) + (item + (eol))) ================================================================================ function @@ -248,26 +464,25 @@ foo := some_fn("param1", param2) (source_file (item - (eol - (NEWLINE))) + (eol)) (item (assignment - (NAME) + (identifier) (expression (value - (call - (NAME) + (function_call + (identifier) (sequence (expression (value (string - (STRING)))) - (sequence - (expression - (value - (NAME)))))))) - (eol - (NEWLINE))))) + (basic_string)))) + (expression + (value + (identifier))))))) + (eol))) + (item + (eol))) ================================================================================ export @@ -279,18 +494,18 @@ export foo := "abc" (source_file (item - (eol - (NEWLINE))) + (eol)) (item (export (assignment - (NAME) + (identifier) (expression (value (string - (STRING)))) - (eol - (NEWLINE)))))) + (basic_string)))) + (eol)))) + (item + (eol))) ================================================================================ import @@ -303,22 +518,21 @@ import? 'baz.just' (source_file (item - (eol - (NEWLINE))) + (eol)) (item (import (string - (RAW_STRING)))) + (raw_string)))) (item - (eol - (NEWLINE))) + (eol)) (item (import (string - (RAW_STRING)))) + (raw_string)))) (item - (eol - (NEWLINE)))) + (eol)) + (item + (eol))) ================================================================================ modules @@ -333,36 +547,33 @@ mod? qux "PATH" (source_file (item - (eol - (NEWLINE))) + (eol)) (item (module - (NAME))) + (identifier))) (item - (eol - (NEWLINE))) + (eol)) (item (module - (NAME) + (identifier) (string - (RAW_STRING)))) + (raw_string)))) (item - (eol - (NEWLINE))) + (eol)) (item (module - (NAME))) + (identifier))) (item - (eol - (NEWLINE))) + (eol)) (item (module - (NAME) + (identifier) (string - (STRING)))) + (basic_string)))) (item - (eol - (NEWLINE)))) + (eol)) + (item + (eol))) ================================================================================ set @@ -378,39 +589,35 @@ set shell := ["powershell.exe", "-c"] (source_file (item - (eol - (NEWLINE))) + (eol)) (item (setting - (NAME) - (eol - (NEWLINE)))) + (identifier) + (eol))) (item (setting - (NAME) + (identifier) (boolean) - (eol - (NEWLINE)))) + (eol))) (item (setting - (NAME) - (eol - (NEWLINE)))) + (identifier) + (eol))) (item (setting - (NAME) + (identifier) (string - (STRING)) - (eol - (NEWLINE)))) + (basic_string)) + (eol))) (item (setting (string - (STRING)) + (basic_string)) (string - (STRING)) - (eol - (NEWLINE))))) + (basic_string)) + (eol))) + (item + (eol))) ================================================================================ comment @@ -423,21 +630,20 @@ foo := bar # + baz (source_file (item - (eol - (NEWLINE))) + (eol)) (item (eol - (comment - (NEWLINE)))) + (comment))) (item (assignment - (NAME) + (identifier) (expression (value - (NAME))) + (identifier))) (eol - (comment - (NEWLINE)))))) + (comment)))) + (item + (eol))) ================================================================================ shebang @@ -452,22 +658,16 @@ foo: (source_file (item - (eol - (NEWLINE))) + (eol)) (item (eol - (comment - (NEWLINE)))) + (comment))) (item (recipe (recipe_header - (NAME)) - (NEWLINE) - (body - (INDENT) - (recipe_body - (line - (recipeline - (notcomment) - (NEWLINE)))) - (DEDENT))))) + (identifier)) + (recipe_body + (recipe_line + (text))))) + (item + (eol))) diff --git a/test/highlight/recipes.just b/test/highlight/recipes.just index 4defbd5..d88c915 100644 --- a/test/highlight/recipes.just +++ b/test/highlight/recipes.just @@ -2,7 +2,6 @@ # <- comment # ^^^^^^^^^^^^^^^^^ comment - foo: # <- function # ^ operator @@ -17,3 +16,33 @@ baz: foo bar # ^ operator # ^ function # ^ function + +qux var1: +# <- function +# ^^^ variable +# ^ operator + +quux var *var2: +# <- function +# ^^^ variable +# ^ operator +# ^^^ variable +# ^ operator + +# This is a good test of locals.scm +# (the first `bar` is a recipe and the second is a variable) +corge +quux: baz (quux quux) +# <- function +# ^ operator +# ^^^^ variable +# ^ operator +# ^^^ function +# ^ punctuation.bracket +# ^^^ variable +# ^ punctuation.bracket +# FIXME function + +osdioj: a + +[private] +a: diff --git a/test/highlight/statements.just b/test/highlight/statements.just new file mode 100644 index 0000000..62e1158 --- /dev/null +++ b/test/highlight/statements.just @@ -0,0 +1,195 @@ +#!/usr/bin/env just +# <- comment + +foo := "abc" +# <- variable +# ^^ operator +# ^^^^^ string + +bar := "abc" + 'def' + foo +# <- variable +# ^^ operator +# ^^^^^ string +# ^ operator +# ^^^^^ string +# ^ operator +# ^ variable + +relative := "abc" / "def" +# <- variable +# ^^ operator +# ^^^^^ string +# ^ operator +# ^^^^^ string + + +absolute := / "abc" +# <- variable +# ^^ operator +# ^ operator +# ^^^^^ string + +combined := "foo" / os() / bar +# <- variable +# ^^ operator +# ^^^^^ string +# ^ operator +# ^^ function +# ^^ punctuation.bracket +# ^ operator +# ^^^ variable + + +# We can't really test multiline strings completely since check comments only +# apply to one line above, but should be okay here + +foo0 := "a" +# <- variable +# ^^ operator +# ^^^ string + +bar0 := "b + c +" +# <- string + +baz0 := "a\"\t" +# <- variable +# ^ operator +# ^^ string +# ^^^^ constant.character.escape +# ^ string + +foo1 := """a""" +# <- variable +# ^^ operator +# ^^^^^^^ string + +bar1:= """b + c +""" +# <- string + +baz1 := """ +abc \t +def \" +\"""" +# <- constant.character.escape +# ^^^ string + +foo2 := 'a' +# <- variable +# ^^ operator +# ^^^ string + +bar2 := 'b + c +' +# <- string + +baz2 := 'a\"\t' +# <- variable +# ^^ operator +# ^^^ string + +foo3 := '''a''' +# <- variable +# ^^ operator +# ^^^^^^^ string + +bar3 := '''b + c +''' +# <- string + +baz3 := '''' + abc \t + def \" +''' +# <- string + +foo4 := `echo hi` +bar4 := `echo hi + echo bye +` + +foo5 := ```echo hi``` +# <- variable +# ^^ operator + +bar5 := ``` +echo bye +``` + +foo_if := if foo == "x" { "val" } else if "1" != "2" { env("val") } else { bar } +# <- variable +# ^^ operator +# ^^ keyword.control.conditional +# ^^^ variable +# ^^ operator +# ^^^ string +# ^ punctuation.bracket +# ^^^^^ string +# ^ punctuation.bracket +# ^^^^ keyword.control.conditional +# ^^ keyword.control.conditional +# ^^^ string +# ^^ operator +# ^^^ string +# ^ punctuation.bracket +# ^^^ function +# ^ punctuation.bracket +# ^^^^^ string +# ^ punctuation.bracket +# ^^^^ keyword.control.conditional +# ^^^ variable + +foo_fn := env("abc", foo) +# <- variable +# ^^ operator +# ^^^ function +# ^ punctuation.bracket +# ^^^^ string +# ^ punctuation.delimiter +# ^^^ variable +# ^ punctuation.bracket + + +export fooexp := "abc" +# <- keyword +# ^^^^^^ variable +# ^^ operator +# ^^^^ string + +import? 'baz.just' +# <- keyword +# ^ operator +# ^^^^^^^^^^ string + +mod? foomod +# <- keyword +# ^ operator +# ^^^^^^ namespace + +mod barmod 'recipes.just' +# <- keyword +# ^^^^^^ namespace +# ^^^^^ string + +mod? qux "PATH" +# <- keyword +# ^ operator +# ^^^ namespace +# ^^^^^ string + +set dotenv-load +set fallback := false +set tempdir := "/tmp/just" +set shell := ["powershell.exe", "-c"] + +# comment +# <- comment.line + +foo_cmt := bar # + baz +# <- variable +# ^ comment.line