summaryrefslogtreecommitdiff
path: root/vendor/github.com/mitjafelicijan/go-tree-sitter/dockerfile
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/mitjafelicijan/go-tree-sitter/dockerfile')
-rw-r--r--vendor/github.com/mitjafelicijan/go-tree-sitter/dockerfile/binding.go15
-rw-r--r--vendor/github.com/mitjafelicijan/go-tree-sitter/dockerfile/parser.c8596
-rw-r--r--vendor/github.com/mitjafelicijan/go-tree-sitter/dockerfile/parser.h265
-rw-r--r--vendor/github.com/mitjafelicijan/go-tree-sitter/dockerfile/scanner.c318
4 files changed, 9194 insertions, 0 deletions
diff --git a/vendor/github.com/mitjafelicijan/go-tree-sitter/dockerfile/binding.go b/vendor/github.com/mitjafelicijan/go-tree-sitter/dockerfile/binding.go
new file mode 100644
index 0000000..153c4dd
--- /dev/null
+++ b/vendor/github.com/mitjafelicijan/go-tree-sitter/dockerfile/binding.go
@@ -0,0 +1,15 @@
+package dockerfile
+
+//#include "parser.h"
+//TSLanguage *tree_sitter_dockerfile();
+import "C"
+import (
+ "unsafe"
+
+ sitter "github.com/mitjafelicijan/go-tree-sitter"
+)
+
+func GetLanguage() *sitter.Language {
+ ptr := unsafe.Pointer(C.tree_sitter_dockerfile())
+ return sitter.NewLanguage(ptr)
+}
diff --git a/vendor/github.com/mitjafelicijan/go-tree-sitter/dockerfile/parser.c b/vendor/github.com/mitjafelicijan/go-tree-sitter/dockerfile/parser.c
new file mode 100644
index 0000000..f1d465f
--- /dev/null
+++ b/vendor/github.com/mitjafelicijan/go-tree-sitter/dockerfile/parser.c
@@ -0,0 +1,8596 @@
+#include "parser.h"
+
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
+#endif
+
+#define LANGUAGE_VERSION 14
+#define STATE_COUNT 325
+#define LARGE_STATE_COUNT 2
+#define SYMBOL_COUNT 164
+#define ALIAS_COUNT 0
+#define TOKEN_COUNT 87
+#define EXTERNAL_TOKEN_COUNT 5
+#define FIELD_COUNT 9
+#define MAX_ALIAS_SEQUENCE_LENGTH 5
+#define PRODUCTION_ID_COUNT 16
+
+enum ts_symbol_identifiers {
+ anon_sym_LF = 1,
+ aux_sym_from_instruction_token1 = 2,
+ aux_sym_from_instruction_token2 = 3,
+ aux_sym_run_instruction_token1 = 4,
+ aux_sym_cmd_instruction_token1 = 5,
+ aux_sym_label_instruction_token1 = 6,
+ aux_sym_expose_instruction_token1 = 7,
+ aux_sym_env_instruction_token1 = 8,
+ aux_sym_add_instruction_token1 = 9,
+ aux_sym_copy_instruction_token1 = 10,
+ aux_sym_entrypoint_instruction_token1 = 11,
+ aux_sym_volume_instruction_token1 = 12,
+ aux_sym_user_instruction_token1 = 13,
+ anon_sym_COLON = 14,
+ aux_sym__user_name_or_group_token1 = 15,
+ aux_sym__immediate_user_name_or_group_fragment_token1 = 16,
+ aux_sym_workdir_instruction_token1 = 17,
+ aux_sym_arg_instruction_token1 = 18,
+ aux_sym_arg_instruction_token2 = 19,
+ anon_sym_EQ = 20,
+ aux_sym_onbuild_instruction_token1 = 21,
+ aux_sym_stopsignal_instruction_token1 = 22,
+ aux_sym__stopsignal_value_token1 = 23,
+ aux_sym__stopsignal_value_token2 = 24,
+ aux_sym_healthcheck_instruction_token1 = 25,
+ anon_sym_NONE = 26,
+ aux_sym_shell_instruction_token1 = 27,
+ aux_sym_maintainer_instruction_token1 = 28,
+ aux_sym_maintainer_instruction_token2 = 29,
+ aux_sym_cross_build_instruction_token1 = 30,
+ aux_sym_path_token1 = 31,
+ aux_sym_path_token2 = 32,
+ aux_sym_path_token3 = 33,
+ aux_sym_path_with_heredoc_token1 = 34,
+ anon_sym_DOLLAR = 35,
+ anon_sym_DOLLAR2 = 36,
+ anon_sym_LBRACE = 37,
+ aux_sym__expansion_body_token1 = 38,
+ anon_sym_RBRACE = 39,
+ sym_variable = 40,
+ aux_sym__spaced_env_pair_token1 = 41,
+ aux_sym__env_key_token1 = 42,
+ aux_sym_expose_port_token1 = 43,
+ anon_sym_SLASHtcp = 44,
+ anon_sym_SLASHudp = 45,
+ aux_sym_label_pair_token1 = 46,
+ aux_sym_image_name_token1 = 47,
+ aux_sym_image_name_token2 = 48,
+ aux_sym_image_tag_token1 = 49,
+ anon_sym_AT = 50,
+ aux_sym_image_digest_token1 = 51,
+ anon_sym_DASH_DASH = 52,
+ aux_sym_param_token1 = 53,
+ aux_sym_param_token2 = 54,
+ anon_sym_mount = 55,
+ anon_sym_COMMA = 56,
+ aux_sym_mount_param_param_token1 = 57,
+ aux_sym_image_alias_token1 = 58,
+ aux_sym_image_alias_token2 = 59,
+ aux_sym_shell_fragment_token1 = 60,
+ aux_sym_shell_fragment_token2 = 61,
+ aux_sym_shell_fragment_token3 = 62,
+ aux_sym_shell_fragment_token4 = 63,
+ sym_line_continuation = 64,
+ sym_required_line_continuation = 65,
+ anon_sym_LBRACK = 66,
+ anon_sym_COMMA2 = 67,
+ anon_sym_RBRACK = 68,
+ anon_sym_DQUOTE = 69,
+ aux_sym_json_string_token1 = 70,
+ sym_json_escape_sequence = 71,
+ aux_sym_double_quoted_string_token1 = 72,
+ anon_sym_BSLASH = 73,
+ anon_sym_SQUOTE = 74,
+ aux_sym_single_quoted_string_token1 = 75,
+ aux_sym_unquoted_string_token1 = 76,
+ anon_sym_BSLASH2 = 77,
+ sym_double_quoted_escape_sequence = 78,
+ sym_single_quoted_escape_sequence = 79,
+ sym__non_newline_whitespace = 80,
+ sym_comment = 81,
+ sym_heredoc_marker = 82,
+ sym_heredoc_line = 83,
+ sym_heredoc_end = 84,
+ sym_heredoc_nl = 85,
+ sym_error_sentinel = 86,
+ sym_source_file = 87,
+ sym__instruction = 88,
+ sym_from_instruction = 89,
+ sym_run_instruction = 90,
+ sym_cmd_instruction = 91,
+ sym_label_instruction = 92,
+ sym_expose_instruction = 93,
+ sym_env_instruction = 94,
+ sym_add_instruction = 95,
+ sym_copy_instruction = 96,
+ sym_entrypoint_instruction = 97,
+ sym_volume_instruction = 98,
+ sym_user_instruction = 99,
+ sym__user_name_or_group = 100,
+ aux_sym__immediate_user_name_or_group = 101,
+ sym__immediate_user_name_or_group_fragment = 102,
+ sym_workdir_instruction = 103,
+ sym_arg_instruction = 104,
+ sym_onbuild_instruction = 105,
+ sym_stopsignal_instruction = 106,
+ sym__stopsignal_value = 107,
+ sym_healthcheck_instruction = 108,
+ sym_shell_instruction = 109,
+ sym_maintainer_instruction = 110,
+ sym_cross_build_instruction = 111,
+ sym_heredoc_block = 112,
+ sym_path = 113,
+ sym_path_with_heredoc = 114,
+ sym_expansion = 115,
+ sym__immediate_expansion = 116,
+ sym__imm_expansion = 117,
+ sym__expansion_body = 118,
+ sym_env_pair = 119,
+ sym__spaced_env_pair = 120,
+ sym__env_key = 121,
+ sym_expose_port = 122,
+ sym_label_pair = 123,
+ sym_image_spec = 124,
+ sym_image_name = 125,
+ sym_image_tag = 126,
+ sym_image_digest = 127,
+ sym_param = 128,
+ sym_mount_param = 129,
+ sym_mount_param_param = 130,
+ sym_image_alias = 131,
+ sym_shell_command = 132,
+ sym_shell_fragment = 133,
+ sym_json_string_array = 134,
+ sym_json_string = 135,
+ sym_double_quoted_string = 136,
+ sym_single_quoted_string = 137,
+ sym_unquoted_string = 138,
+ aux_sym_source_file_repeat1 = 139,
+ aux_sym_run_instruction_repeat1 = 140,
+ aux_sym_run_instruction_repeat2 = 141,
+ aux_sym_label_instruction_repeat1 = 142,
+ aux_sym_expose_instruction_repeat1 = 143,
+ aux_sym_env_instruction_repeat1 = 144,
+ aux_sym_add_instruction_repeat1 = 145,
+ aux_sym_add_instruction_repeat2 = 146,
+ aux_sym_volume_instruction_repeat1 = 147,
+ aux_sym__user_name_or_group_repeat1 = 148,
+ aux_sym__stopsignal_value_repeat1 = 149,
+ aux_sym_heredoc_block_repeat1 = 150,
+ aux_sym_path_repeat1 = 151,
+ aux_sym_image_name_repeat1 = 152,
+ aux_sym_image_tag_repeat1 = 153,
+ aux_sym_image_digest_repeat1 = 154,
+ aux_sym_mount_param_repeat1 = 155,
+ aux_sym_image_alias_repeat1 = 156,
+ aux_sym_shell_command_repeat1 = 157,
+ aux_sym_shell_fragment_repeat1 = 158,
+ aux_sym_json_string_array_repeat1 = 159,
+ aux_sym_json_string_repeat1 = 160,
+ aux_sym_double_quoted_string_repeat1 = 161,
+ aux_sym_single_quoted_string_repeat1 = 162,
+ aux_sym_unquoted_string_repeat1 = 163,
+};
+
+static const char * const ts_symbol_names[] = {
+ [ts_builtin_sym_end] = "end",
+ [anon_sym_LF] = "\n",
+ [aux_sym_from_instruction_token1] = "FROM",
+ [aux_sym_from_instruction_token2] = "AS",
+ [aux_sym_run_instruction_token1] = "RUN",
+ [aux_sym_cmd_instruction_token1] = "CMD",
+ [aux_sym_label_instruction_token1] = "LABEL",
+ [aux_sym_expose_instruction_token1] = "EXPOSE",
+ [aux_sym_env_instruction_token1] = "ENV",
+ [aux_sym_add_instruction_token1] = "ADD",
+ [aux_sym_copy_instruction_token1] = "COPY",
+ [aux_sym_entrypoint_instruction_token1] = "ENTRYPOINT",
+ [aux_sym_volume_instruction_token1] = "VOLUME",
+ [aux_sym_user_instruction_token1] = "USER",
+ [anon_sym_COLON] = ":",
+ [aux_sym__user_name_or_group_token1] = "_user_name_or_group_token1",
+ [aux_sym__immediate_user_name_or_group_fragment_token1] = "_immediate_user_name_or_group_fragment_token1",
+ [aux_sym_workdir_instruction_token1] = "WORKDIR",
+ [aux_sym_arg_instruction_token1] = "ARG",
+ [aux_sym_arg_instruction_token2] = "unquoted_string",
+ [anon_sym_EQ] = "=",
+ [aux_sym_onbuild_instruction_token1] = "ONBUILD",
+ [aux_sym_stopsignal_instruction_token1] = "STOPSIGNAL",
+ [aux_sym__stopsignal_value_token1] = "_stopsignal_value_token1",
+ [aux_sym__stopsignal_value_token2] = "_stopsignal_value_token2",
+ [aux_sym_healthcheck_instruction_token1] = "HEALTHCHECK",
+ [anon_sym_NONE] = "NONE",
+ [aux_sym_shell_instruction_token1] = "SHELL",
+ [aux_sym_maintainer_instruction_token1] = "MAINTAINER",
+ [aux_sym_maintainer_instruction_token2] = "maintainer_instruction_token2",
+ [aux_sym_cross_build_instruction_token1] = "CROSS_BUILD",
+ [aux_sym_path_token1] = "path_token1",
+ [aux_sym_path_token2] = "path_token2",
+ [aux_sym_path_token3] = "path_token3",
+ [aux_sym_path_with_heredoc_token1] = "path_with_heredoc_token1",
+ [anon_sym_DOLLAR] = "$",
+ [anon_sym_DOLLAR2] = "$",
+ [anon_sym_LBRACE] = "{",
+ [aux_sym__expansion_body_token1] = "variable",
+ [anon_sym_RBRACE] = "}",
+ [sym_variable] = "variable",
+ [aux_sym__spaced_env_pair_token1] = "_spaced_env_pair_token1",
+ [aux_sym__env_key_token1] = "unquoted_string",
+ [aux_sym_expose_port_token1] = "expose_port_token1",
+ [anon_sym_SLASHtcp] = "/tcp",
+ [anon_sym_SLASHudp] = "/udp",
+ [aux_sym_label_pair_token1] = "unquoted_string",
+ [aux_sym_image_name_token1] = "image_name_token1",
+ [aux_sym_image_name_token2] = "image_name_token2",
+ [aux_sym_image_tag_token1] = "image_tag_token1",
+ [anon_sym_AT] = "@",
+ [aux_sym_image_digest_token1] = "image_digest_token1",
+ [anon_sym_DASH_DASH] = "--",
+ [aux_sym_param_token1] = "param_token1",
+ [aux_sym_param_token2] = "param_token2",
+ [anon_sym_mount] = "mount",
+ [anon_sym_COMMA] = ",",
+ [aux_sym_mount_param_param_token1] = "mount_param_param_token1",
+ [aux_sym_image_alias_token1] = "image_alias_token1",
+ [aux_sym_image_alias_token2] = "image_alias_token2",
+ [aux_sym_shell_fragment_token1] = "shell_fragment_token1",
+ [aux_sym_shell_fragment_token2] = "shell_fragment_token2",
+ [aux_sym_shell_fragment_token3] = "shell_fragment_token3",
+ [aux_sym_shell_fragment_token4] = "shell_fragment_token4",
+ [sym_line_continuation] = "line_continuation",
+ [sym_required_line_continuation] = "line_continuation",
+ [anon_sym_LBRACK] = "[",
+ [anon_sym_COMMA2] = ",",
+ [anon_sym_RBRACK] = "]",
+ [anon_sym_DQUOTE] = "\"",
+ [aux_sym_json_string_token1] = "json_string_token1",
+ [sym_json_escape_sequence] = "escape_sequence",
+ [aux_sym_double_quoted_string_token1] = "double_quoted_string_token1",
+ [anon_sym_BSLASH] = "\\",
+ [anon_sym_SQUOTE] = "'",
+ [aux_sym_single_quoted_string_token1] = "single_quoted_string_token1",
+ [aux_sym_unquoted_string_token1] = "unquoted_string_token1",
+ [anon_sym_BSLASH2] = "\\ ",
+ [sym_double_quoted_escape_sequence] = "escape_sequence",
+ [sym_single_quoted_escape_sequence] = "escape_sequence",
+ [sym__non_newline_whitespace] = "_non_newline_whitespace",
+ [sym_comment] = "comment",
+ [sym_heredoc_marker] = "heredoc_marker",
+ [sym_heredoc_line] = "heredoc_line",
+ [sym_heredoc_end] = "heredoc_end",
+ [sym_heredoc_nl] = "_heredoc_nl",
+ [sym_error_sentinel] = "error_sentinel",
+ [sym_source_file] = "source_file",
+ [sym__instruction] = "_instruction",
+ [sym_from_instruction] = "from_instruction",
+ [sym_run_instruction] = "run_instruction",
+ [sym_cmd_instruction] = "cmd_instruction",
+ [sym_label_instruction] = "label_instruction",
+ [sym_expose_instruction] = "expose_instruction",
+ [sym_env_instruction] = "env_instruction",
+ [sym_add_instruction] = "add_instruction",
+ [sym_copy_instruction] = "copy_instruction",
+ [sym_entrypoint_instruction] = "entrypoint_instruction",
+ [sym_volume_instruction] = "volume_instruction",
+ [sym_user_instruction] = "user_instruction",
+ [sym__user_name_or_group] = "unquoted_string",
+ [aux_sym__immediate_user_name_or_group] = "_immediate_user_name_or_group",
+ [sym__immediate_user_name_or_group_fragment] = "_immediate_user_name_or_group_fragment",
+ [sym_workdir_instruction] = "workdir_instruction",
+ [sym_arg_instruction] = "arg_instruction",
+ [sym_onbuild_instruction] = "onbuild_instruction",
+ [sym_stopsignal_instruction] = "stopsignal_instruction",
+ [sym__stopsignal_value] = "_stopsignal_value",
+ [sym_healthcheck_instruction] = "healthcheck_instruction",
+ [sym_shell_instruction] = "shell_instruction",
+ [sym_maintainer_instruction] = "maintainer_instruction",
+ [sym_cross_build_instruction] = "cross_build_instruction",
+ [sym_heredoc_block] = "heredoc_block",
+ [sym_path] = "path",
+ [sym_path_with_heredoc] = "path",
+ [sym_expansion] = "expansion",
+ [sym__immediate_expansion] = "_immediate_expansion",
+ [sym__imm_expansion] = "expansion",
+ [sym__expansion_body] = "_expansion_body",
+ [sym_env_pair] = "env_pair",
+ [sym__spaced_env_pair] = "env_pair",
+ [sym__env_key] = "_env_key",
+ [sym_expose_port] = "expose_port",
+ [sym_label_pair] = "label_pair",
+ [sym_image_spec] = "image_spec",
+ [sym_image_name] = "image_name",
+ [sym_image_tag] = "image_tag",
+ [sym_image_digest] = "image_digest",
+ [sym_param] = "param",
+ [sym_mount_param] = "mount_param",
+ [sym_mount_param_param] = "mount_param_param",
+ [sym_image_alias] = "image_alias",
+ [sym_shell_command] = "shell_command",
+ [sym_shell_fragment] = "shell_fragment",
+ [sym_json_string_array] = "json_string_array",
+ [sym_json_string] = "json_string",
+ [sym_double_quoted_string] = "double_quoted_string",
+ [sym_single_quoted_string] = "single_quoted_string",
+ [sym_unquoted_string] = "unquoted_string",
+ [aux_sym_source_file_repeat1] = "source_file_repeat1",
+ [aux_sym_run_instruction_repeat1] = "run_instruction_repeat1",
+ [aux_sym_run_instruction_repeat2] = "run_instruction_repeat2",
+ [aux_sym_label_instruction_repeat1] = "label_instruction_repeat1",
+ [aux_sym_expose_instruction_repeat1] = "expose_instruction_repeat1",
+ [aux_sym_env_instruction_repeat1] = "env_instruction_repeat1",
+ [aux_sym_add_instruction_repeat1] = "add_instruction_repeat1",
+ [aux_sym_add_instruction_repeat2] = "add_instruction_repeat2",
+ [aux_sym_volume_instruction_repeat1] = "volume_instruction_repeat1",
+ [aux_sym__user_name_or_group_repeat1] = "_user_name_or_group_repeat1",
+ [aux_sym__stopsignal_value_repeat1] = "_stopsignal_value_repeat1",
+ [aux_sym_heredoc_block_repeat1] = "heredoc_block_repeat1",
+ [aux_sym_path_repeat1] = "path_repeat1",
+ [aux_sym_image_name_repeat1] = "image_name_repeat1",
+ [aux_sym_image_tag_repeat1] = "image_tag_repeat1",
+ [aux_sym_image_digest_repeat1] = "image_digest_repeat1",
+ [aux_sym_mount_param_repeat1] = "mount_param_repeat1",
+ [aux_sym_image_alias_repeat1] = "image_alias_repeat1",
+ [aux_sym_shell_command_repeat1] = "shell_command_repeat1",
+ [aux_sym_shell_fragment_repeat1] = "shell_fragment_repeat1",
+ [aux_sym_json_string_array_repeat1] = "json_string_array_repeat1",
+ [aux_sym_json_string_repeat1] = "json_string_repeat1",
+ [aux_sym_double_quoted_string_repeat1] = "double_quoted_string_repeat1",
+ [aux_sym_single_quoted_string_repeat1] = "single_quoted_string_repeat1",
+ [aux_sym_unquoted_string_repeat1] = "unquoted_string_repeat1",
+};
+
+static const TSSymbol ts_symbol_map[] = {
+ [ts_builtin_sym_end] = ts_builtin_sym_end,
+ [anon_sym_LF] = anon_sym_LF,
+ [aux_sym_from_instruction_token1] = aux_sym_from_instruction_token1,
+ [aux_sym_from_instruction_token2] = aux_sym_from_instruction_token2,
+ [aux_sym_run_instruction_token1] = aux_sym_run_instruction_token1,
+ [aux_sym_cmd_instruction_token1] = aux_sym_cmd_instruction_token1,
+ [aux_sym_label_instruction_token1] = aux_sym_label_instruction_token1,
+ [aux_sym_expose_instruction_token1] = aux_sym_expose_instruction_token1,
+ [aux_sym_env_instruction_token1] = aux_sym_env_instruction_token1,
+ [aux_sym_add_instruction_token1] = aux_sym_add_instruction_token1,
+ [aux_sym_copy_instruction_token1] = aux_sym_copy_instruction_token1,
+ [aux_sym_entrypoint_instruction_token1] = aux_sym_entrypoint_instruction_token1,
+ [aux_sym_volume_instruction_token1] = aux_sym_volume_instruction_token1,
+ [aux_sym_user_instruction_token1] = aux_sym_user_instruction_token1,
+ [anon_sym_COLON] = anon_sym_COLON,
+ [aux_sym__user_name_or_group_token1] = aux_sym__user_name_or_group_token1,
+ [aux_sym__immediate_user_name_or_group_fragment_token1] = aux_sym__immediate_user_name_or_group_fragment_token1,
+ [aux_sym_workdir_instruction_token1] = aux_sym_workdir_instruction_token1,
+ [aux_sym_arg_instruction_token1] = aux_sym_arg_instruction_token1,
+ [aux_sym_arg_instruction_token2] = sym_unquoted_string,
+ [anon_sym_EQ] = anon_sym_EQ,
+ [aux_sym_onbuild_instruction_token1] = aux_sym_onbuild_instruction_token1,
+ [aux_sym_stopsignal_instruction_token1] = aux_sym_stopsignal_instruction_token1,
+ [aux_sym__stopsignal_value_token1] = aux_sym__stopsignal_value_token1,
+ [aux_sym__stopsignal_value_token2] = aux_sym__stopsignal_value_token2,
+ [aux_sym_healthcheck_instruction_token1] = aux_sym_healthcheck_instruction_token1,
+ [anon_sym_NONE] = anon_sym_NONE,
+ [aux_sym_shell_instruction_token1] = aux_sym_shell_instruction_token1,
+ [aux_sym_maintainer_instruction_token1] = aux_sym_maintainer_instruction_token1,
+ [aux_sym_maintainer_instruction_token2] = aux_sym_maintainer_instruction_token2,
+ [aux_sym_cross_build_instruction_token1] = aux_sym_cross_build_instruction_token1,
+ [aux_sym_path_token1] = aux_sym_path_token1,
+ [aux_sym_path_token2] = aux_sym_path_token2,
+ [aux_sym_path_token3] = aux_sym_path_token3,
+ [aux_sym_path_with_heredoc_token1] = aux_sym_path_with_heredoc_token1,
+ [anon_sym_DOLLAR] = anon_sym_DOLLAR,
+ [anon_sym_DOLLAR2] = anon_sym_DOLLAR,
+ [anon_sym_LBRACE] = anon_sym_LBRACE,
+ [aux_sym__expansion_body_token1] = sym_variable,
+ [anon_sym_RBRACE] = anon_sym_RBRACE,
+ [sym_variable] = sym_variable,
+ [aux_sym__spaced_env_pair_token1] = aux_sym__spaced_env_pair_token1,
+ [aux_sym__env_key_token1] = sym_unquoted_string,
+ [aux_sym_expose_port_token1] = aux_sym_expose_port_token1,
+ [anon_sym_SLASHtcp] = anon_sym_SLASHtcp,
+ [anon_sym_SLASHudp] = anon_sym_SLASHudp,
+ [aux_sym_label_pair_token1] = sym_unquoted_string,
+ [aux_sym_image_name_token1] = aux_sym_image_name_token1,
+ [aux_sym_image_name_token2] = aux_sym_image_name_token2,
+ [aux_sym_image_tag_token1] = aux_sym_image_tag_token1,
+ [anon_sym_AT] = anon_sym_AT,
+ [aux_sym_image_digest_token1] = aux_sym_image_digest_token1,
+ [anon_sym_DASH_DASH] = anon_sym_DASH_DASH,
+ [aux_sym_param_token1] = aux_sym_param_token1,
+ [aux_sym_param_token2] = aux_sym_param_token2,
+ [anon_sym_mount] = anon_sym_mount,
+ [anon_sym_COMMA] = anon_sym_COMMA,
+ [aux_sym_mount_param_param_token1] = aux_sym_mount_param_param_token1,
+ [aux_sym_image_alias_token1] = aux_sym_image_alias_token1,
+ [aux_sym_image_alias_token2] = aux_sym_image_alias_token2,
+ [aux_sym_shell_fragment_token1] = aux_sym_shell_fragment_token1,
+ [aux_sym_shell_fragment_token2] = aux_sym_shell_fragment_token2,
+ [aux_sym_shell_fragment_token3] = aux_sym_shell_fragment_token3,
+ [aux_sym_shell_fragment_token4] = aux_sym_shell_fragment_token4,
+ [sym_line_continuation] = sym_line_continuation,
+ [sym_required_line_continuation] = sym_line_continuation,
+ [anon_sym_LBRACK] = anon_sym_LBRACK,
+ [anon_sym_COMMA2] = anon_sym_COMMA,
+ [anon_sym_RBRACK] = anon_sym_RBRACK,
+ [anon_sym_DQUOTE] = anon_sym_DQUOTE,
+ [aux_sym_json_string_token1] = aux_sym_json_string_token1,
+ [sym_json_escape_sequence] = sym_json_escape_sequence,
+ [aux_sym_double_quoted_string_token1] = aux_sym_double_quoted_string_token1,
+ [anon_sym_BSLASH] = anon_sym_BSLASH,
+ [anon_sym_SQUOTE] = anon_sym_SQUOTE,
+ [aux_sym_single_quoted_string_token1] = aux_sym_single_quoted_string_token1,
+ [aux_sym_unquoted_string_token1] = aux_sym_unquoted_string_token1,
+ [anon_sym_BSLASH2] = anon_sym_BSLASH2,
+ [sym_double_quoted_escape_sequence] = sym_json_escape_sequence,
+ [sym_single_quoted_escape_sequence] = sym_json_escape_sequence,
+ [sym__non_newline_whitespace] = sym__non_newline_whitespace,
+ [sym_comment] = sym_comment,
+ [sym_heredoc_marker] = sym_heredoc_marker,
+ [sym_heredoc_line] = sym_heredoc_line,
+ [sym_heredoc_end] = sym_heredoc_end,
+ [sym_heredoc_nl] = sym_heredoc_nl,
+ [sym_error_sentinel] = sym_error_sentinel,
+ [sym_source_file] = sym_source_file,
+ [sym__instruction] = sym__instruction,
+ [sym_from_instruction] = sym_from_instruction,
+ [sym_run_instruction] = sym_run_instruction,
+ [sym_cmd_instruction] = sym_cmd_instruction,
+ [sym_label_instruction] = sym_label_instruction,
+ [sym_expose_instruction] = sym_expose_instruction,
+ [sym_env_instruction] = sym_env_instruction,
+ [sym_add_instruction] = sym_add_instruction,
+ [sym_copy_instruction] = sym_copy_instruction,
+ [sym_entrypoint_instruction] = sym_entrypoint_instruction,
+ [sym_volume_instruction] = sym_volume_instruction,
+ [sym_user_instruction] = sym_user_instruction,
+ [sym__user_name_or_group] = sym_unquoted_string,
+ [aux_sym__immediate_user_name_or_group] = aux_sym__immediate_user_name_or_group,
+ [sym__immediate_user_name_or_group_fragment] = sym__immediate_user_name_or_group_fragment,
+ [sym_workdir_instruction] = sym_workdir_instruction,
+ [sym_arg_instruction] = sym_arg_instruction,
+ [sym_onbuild_instruction] = sym_onbuild_instruction,
+ [sym_stopsignal_instruction] = sym_stopsignal_instruction,
+ [sym__stopsignal_value] = sym__stopsignal_value,
+ [sym_healthcheck_instruction] = sym_healthcheck_instruction,
+ [sym_shell_instruction] = sym_shell_instruction,
+ [sym_maintainer_instruction] = sym_maintainer_instruction,
+ [sym_cross_build_instruction] = sym_cross_build_instruction,
+ [sym_heredoc_block] = sym_heredoc_block,
+ [sym_path] = sym_path,
+ [sym_path_with_heredoc] = sym_path,
+ [sym_expansion] = sym_expansion,
+ [sym__immediate_expansion] = sym__immediate_expansion,
+ [sym__imm_expansion] = sym_expansion,
+ [sym__expansion_body] = sym__expansion_body,
+ [sym_env_pair] = sym_env_pair,
+ [sym__spaced_env_pair] = sym_env_pair,
+ [sym__env_key] = sym__env_key,
+ [sym_expose_port] = sym_expose_port,
+ [sym_label_pair] = sym_label_pair,
+ [sym_image_spec] = sym_image_spec,
+ [sym_image_name] = sym_image_name,
+ [sym_image_tag] = sym_image_tag,
+ [sym_image_digest] = sym_image_digest,
+ [sym_param] = sym_param,
+ [sym_mount_param] = sym_mount_param,
+ [sym_mount_param_param] = sym_mount_param_param,
+ [sym_image_alias] = sym_image_alias,
+ [sym_shell_command] = sym_shell_command,
+ [sym_shell_fragment] = sym_shell_fragment,
+ [sym_json_string_array] = sym_json_string_array,
+ [sym_json_string] = sym_json_string,
+ [sym_double_quoted_string] = sym_double_quoted_string,
+ [sym_single_quoted_string] = sym_single_quoted_string,
+ [sym_unquoted_string] = sym_unquoted_string,
+ [aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1,
+ [aux_sym_run_instruction_repeat1] = aux_sym_run_instruction_repeat1,
+ [aux_sym_run_instruction_repeat2] = aux_sym_run_instruction_repeat2,
+ [aux_sym_label_instruction_repeat1] = aux_sym_label_instruction_repeat1,
+ [aux_sym_expose_instruction_repeat1] = aux_sym_expose_instruction_repeat1,
+ [aux_sym_env_instruction_repeat1] = aux_sym_env_instruction_repeat1,
+ [aux_sym_add_instruction_repeat1] = aux_sym_add_instruction_repeat1,
+ [aux_sym_add_instruction_repeat2] = aux_sym_add_instruction_repeat2,
+ [aux_sym_volume_instruction_repeat1] = aux_sym_volume_instruction_repeat1,
+ [aux_sym__user_name_or_group_repeat1] = aux_sym__user_name_or_group_repeat1,
+ [aux_sym__stopsignal_value_repeat1] = aux_sym__stopsignal_value_repeat1,
+ [aux_sym_heredoc_block_repeat1] = aux_sym_heredoc_block_repeat1,
+ [aux_sym_path_repeat1] = aux_sym_path_repeat1,
+ [aux_sym_image_name_repeat1] = aux_sym_image_name_repeat1,
+ [aux_sym_image_tag_repeat1] = aux_sym_image_tag_repeat1,
+ [aux_sym_image_digest_repeat1] = aux_sym_image_digest_repeat1,
+ [aux_sym_mount_param_repeat1] = aux_sym_mount_param_repeat1,
+ [aux_sym_image_alias_repeat1] = aux_sym_image_alias_repeat1,
+ [aux_sym_shell_command_repeat1] = aux_sym_shell_command_repeat1,
+ [aux_sym_shell_fragment_repeat1] = aux_sym_shell_fragment_repeat1,
+ [aux_sym_json_string_array_repeat1] = aux_sym_json_string_array_repeat1,
+ [aux_sym_json_string_repeat1] = aux_sym_json_string_repeat1,
+ [aux_sym_double_quoted_string_repeat1] = aux_sym_double_quoted_string_repeat1,
+ [aux_sym_single_quoted_string_repeat1] = aux_sym_single_quoted_string_repeat1,
+ [aux_sym_unquoted_string_repeat1] = aux_sym_unquoted_string_repeat1,
+};
+
+static const TSSymbolMetadata ts_symbol_metadata[] = {
+ [ts_builtin_sym_end] = {
+ .visible = false,
+ .named = true,
+ },
+ [anon_sym_LF] = {
+ .visible = true,
+ .named = false,
+ },
+ [aux_sym_from_instruction_token1] = {
+ .visible = true,
+ .named = false,
+ },
+ [aux_sym_from_instruction_token2] = {
+ .visible = true,
+ .named = false,
+ },
+ [aux_sym_run_instruction_token1] = {
+ .visible = true,
+ .named = false,
+ },
+ [aux_sym_cmd_instruction_token1] = {
+ .visible = true,
+ .named = false,
+ },
+ [aux_sym_label_instruction_token1] = {
+ .visible = true,
+ .named = false,
+ },
+ [aux_sym_expose_instruction_token1] = {
+ .visible = true,
+ .named = false,
+ },
+ [aux_sym_env_instruction_token1] = {
+ .visible = true,
+ .named = false,
+ },
+ [aux_sym_add_instruction_token1] = {
+ .visible = true,
+ .named = false,
+ },
+ [aux_sym_copy_instruction_token1] = {
+ .visible = true,
+ .named = false,
+ },
+ [aux_sym_entrypoint_instruction_token1] = {
+ .visible = true,
+ .named = false,
+ },
+ [aux_sym_volume_instruction_token1] = {
+ .visible = true,
+ .named = false,
+ },
+ [aux_sym_user_instruction_token1] = {
+ .visible = true,
+ .named = false,
+ },
+ [anon_sym_COLON] = {
+ .visible = true,
+ .named = false,
+ },
+ [aux_sym__user_name_or_group_token1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym__immediate_user_name_or_group_fragment_token1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_workdir_instruction_token1] = {
+ .visible = true,
+ .named = false,
+ },
+ [aux_sym_arg_instruction_token1] = {
+ .visible = true,
+ .named = false,
+ },
+ [aux_sym_arg_instruction_token2] = {
+ .visible = true,
+ .named = true,
+ },
+ [anon_sym_EQ] = {
+ .visible = true,
+ .named = false,
+ },
+ [aux_sym_onbuild_instruction_token1] = {
+ .visible = true,
+ .named = false,
+ },
+ [aux_sym_stopsignal_instruction_token1] = {
+ .visible = true,
+ .named = false,
+ },
+ [aux_sym__stopsignal_value_token1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym__stopsignal_value_token2] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_healthcheck_instruction_token1] = {
+ .visible = true,
+ .named = false,
+ },
+ [anon_sym_NONE] = {
+ .visible = true,
+ .named = false,
+ },
+ [aux_sym_shell_instruction_token1] = {
+ .visible = true,
+ .named = false,
+ },
+ [aux_sym_maintainer_instruction_token1] = {
+ .visible = true,
+ .named = false,
+ },
+ [aux_sym_maintainer_instruction_token2] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_cross_build_instruction_token1] = {
+ .visible = true,
+ .named = false,
+ },
+ [aux_sym_path_token1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_path_token2] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_path_token3] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_path_with_heredoc_token1] = {
+ .visible = false,
+ .named = false,
+ },
+ [anon_sym_DOLLAR] = {
+ .visible = true,
+ .named = false,
+ },
+ [anon_sym_DOLLAR2] = {
+ .visible = true,
+ .named = false,
+ },
+ [anon_sym_LBRACE] = {
+ .visible = true,
+ .named = false,
+ },
+ [aux_sym__expansion_body_token1] = {
+ .visible = true,
+ .named = true,
+ },
+ [anon_sym_RBRACE] = {
+ .visible = true,
+ .named = false,
+ },
+ [sym_variable] = {
+ .visible = true,
+ .named = true,
+ },
+ [aux_sym__spaced_env_pair_token1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym__env_key_token1] = {
+ .visible = true,
+ .named = true,
+ },
+ [aux_sym_expose_port_token1] = {
+ .visible = false,
+ .named = false,
+ },
+ [anon_sym_SLASHtcp] = {
+ .visible = true,
+ .named = false,
+ },
+ [anon_sym_SLASHudp] = {
+ .visible = true,
+ .named = false,
+ },
+ [aux_sym_label_pair_token1] = {
+ .visible = true,
+ .named = true,
+ },
+ [aux_sym_image_name_token1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_image_name_token2] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_image_tag_token1] = {
+ .visible = false,
+ .named = false,
+ },
+ [anon_sym_AT] = {
+ .visible = true,
+ .named = false,
+ },
+ [aux_sym_image_digest_token1] = {
+ .visible = false,
+ .named = false,
+ },
+ [anon_sym_DASH_DASH] = {
+ .visible = true,
+ .named = false,
+ },
+ [aux_sym_param_token1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_param_token2] = {
+ .visible = false,
+ .named = false,
+ },
+ [anon_sym_mount] = {
+ .visible = true,
+ .named = false,
+ },
+ [anon_sym_COMMA] = {
+ .visible = true,
+ .named = false,
+ },
+ [aux_sym_mount_param_param_token1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_image_alias_token1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_image_alias_token2] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_shell_fragment_token1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_shell_fragment_token2] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_shell_fragment_token3] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_shell_fragment_token4] = {
+ .visible = false,
+ .named = false,
+ },
+ [sym_line_continuation] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_required_line_continuation] = {
+ .visible = true,
+ .named = true,
+ },
+ [anon_sym_LBRACK] = {
+ .visible = true,
+ .named = false,
+ },
+ [anon_sym_COMMA2] = {
+ .visible = true,
+ .named = false,
+ },
+ [anon_sym_RBRACK] = {
+ .visible = true,
+ .named = false,
+ },
+ [anon_sym_DQUOTE] = {
+ .visible = true,
+ .named = false,
+ },
+ [aux_sym_json_string_token1] = {
+ .visible = false,
+ .named = false,
+ },
+ [sym_json_escape_sequence] = {
+ .visible = true,
+ .named = true,
+ },
+ [aux_sym_double_quoted_string_token1] = {
+ .visible = false,
+ .named = false,
+ },
+ [anon_sym_BSLASH] = {
+ .visible = true,
+ .named = false,
+ },
+ [anon_sym_SQUOTE] = {
+ .visible = true,
+ .named = false,
+ },
+ [aux_sym_single_quoted_string_token1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_unquoted_string_token1] = {
+ .visible = false,
+ .named = false,
+ },
+ [anon_sym_BSLASH2] = {
+ .visible = true,
+ .named = false,
+ },
+ [sym_double_quoted_escape_sequence] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_single_quoted_escape_sequence] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym__non_newline_whitespace] = {
+ .visible = false,
+ .named = true,
+ },
+ [sym_comment] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_heredoc_marker] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_heredoc_line] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_heredoc_end] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_heredoc_nl] = {
+ .visible = true,
+ .named = false,
+ },
+ [sym_error_sentinel] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_source_file] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym__instruction] = {
+ .visible = false,
+ .named = true,
+ },
+ [sym_from_instruction] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_run_instruction] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_cmd_instruction] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_label_instruction] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_expose_instruction] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_env_instruction] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_add_instruction] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_copy_instruction] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_entrypoint_instruction] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_volume_instruction] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_user_instruction] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym__user_name_or_group] = {
+ .visible = true,
+ .named = true,
+ },
+ [aux_sym__immediate_user_name_or_group] = {
+ .visible = false,
+ .named = false,
+ },
+ [sym__immediate_user_name_or_group_fragment] = {
+ .visible = false,
+ .named = true,
+ },
+ [sym_workdir_instruction] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_arg_instruction] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_onbuild_instruction] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_stopsignal_instruction] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym__stopsignal_value] = {
+ .visible = false,
+ .named = true,
+ },
+ [sym_healthcheck_instruction] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_shell_instruction] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_maintainer_instruction] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_cross_build_instruction] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_heredoc_block] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_path] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_path_with_heredoc] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_expansion] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym__immediate_expansion] = {
+ .visible = false,
+ .named = true,
+ },
+ [sym__imm_expansion] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym__expansion_body] = {
+ .visible = false,
+ .named = true,
+ },
+ [sym_env_pair] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym__spaced_env_pair] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym__env_key] = {
+ .visible = false,
+ .named = true,
+ },
+ [sym_expose_port] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_label_pair] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_image_spec] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_image_name] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_image_tag] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_image_digest] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_param] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_mount_param] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_mount_param_param] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_image_alias] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_shell_command] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_shell_fragment] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_json_string_array] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_json_string] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_double_quoted_string] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_single_quoted_string] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_unquoted_string] = {
+ .visible = true,
+ .named = true,
+ },
+ [aux_sym_source_file_repeat1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_run_instruction_repeat1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_run_instruction_repeat2] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_label_instruction_repeat1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_expose_instruction_repeat1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_env_instruction_repeat1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_add_instruction_repeat1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_add_instruction_repeat2] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_volume_instruction_repeat1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym__user_name_or_group_repeat1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym__stopsignal_value_repeat1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_heredoc_block_repeat1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_path_repeat1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_image_name_repeat1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_image_tag_repeat1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_image_digest_repeat1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_mount_param_repeat1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_image_alias_repeat1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_shell_command_repeat1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_shell_fragment_repeat1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_json_string_array_repeat1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_json_string_repeat1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_double_quoted_string_repeat1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_single_quoted_string_repeat1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_unquoted_string_repeat1] = {
+ .visible = false,
+ .named = false,
+ },
+};
+
+enum ts_field_identifiers {
+ field_as = 1,
+ field_default = 2,
+ field_digest = 3,
+ field_group = 4,
+ field_key = 5,
+ field_name = 6,
+ field_tag = 7,
+ field_user = 8,
+ field_value = 9,
+};
+
+static const char * const ts_field_names[] = {
+ [0] = NULL,
+ [field_as] = "as",
+ [field_default] = "default",
+ [field_digest] = "digest",
+ [field_group] = "group",
+ [field_key] = "key",
+ [field_name] = "name",
+ [field_tag] = "tag",
+ [field_user] = "user",
+ [field_value] = "value",
+};
+
+static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = {
+ [1] = {.index = 0, .length = 1},
+ [2] = {.index = 1, .length = 2},
+ [3] = {.index = 3, .length = 1},
+ [4] = {.index = 4, .length = 1},
+ [5] = {.index = 5, .length = 2},
+ [6] = {.index = 7, .length = 2},
+ [7] = {.index = 9, .length = 1},
+ [8] = {.index = 10, .length = 3},
+ [9] = {.index = 13, .length = 2},
+ [10] = {.index = 15, .length = 2},
+ [11] = {.index = 17, .length = 2},
+ [12] = {.index = 19, .length = 2},
+ [13] = {.index = 21, .length = 2},
+ [14] = {.index = 23, .length = 1},
+ [15] = {.index = 24, .length = 3},
+};
+
+static const TSFieldMapEntry ts_field_map_entries[] = {
+ [0] =
+ {field_name, 0},
+ [1] =
+ {field_name, 1, .inherited = true},
+ {field_value, 1, .inherited = true},
+ [3] =
+ {field_user, 1},
+ [4] =
+ {field_name, 1},
+ [5] =
+ {field_name, 0},
+ {field_tag, 1},
+ [7] =
+ {field_digest, 1},
+ {field_name, 0},
+ [9] =
+ {field_as, 3},
+ [10] =
+ {field_digest, 2},
+ {field_name, 0},
+ {field_tag, 1},
+ [13] =
+ {field_key, 0},
+ {field_value, 2},
+ [15] =
+ {field_name, 0},
+ {field_value, 2},
+ [17] =
+ {field_group, 3},
+ {field_user, 1},
+ [19] =
+ {field_default, 3},
+ {field_name, 1},
+ [21] =
+ {field_name, 1},
+ {field_value, 3},
+ [23] =
+ {field_as, 4},
+ [24] =
+ {field_name, 1},
+ {field_value, 3},
+ {field_value, 4},
+};
+
+static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = {
+ [0] = {0},
+ [11] = {
+ [3] = sym_unquoted_string,
+ },
+};
+
+static const uint16_t ts_non_terminal_alias_map[] = {
+ aux_sym__immediate_user_name_or_group, 2,
+ aux_sym__immediate_user_name_or_group,
+ sym_unquoted_string,
+ 0,
+};
+
+static const TSStateId ts_primary_state_ids[STATE_COUNT] = {
+ [0] = 0,
+ [1] = 1,
+ [2] = 2,
+ [3] = 3,
+ [4] = 4,
+ [5] = 5,
+ [6] = 6,
+ [7] = 7,
+ [8] = 8,
+ [9] = 9,
+ [10] = 10,
+ [11] = 11,
+ [12] = 12,
+ [13] = 13,
+ [14] = 14,
+ [15] = 15,
+ [16] = 16,
+ [17] = 17,
+ [18] = 18,
+ [19] = 19,
+ [20] = 20,
+ [21] = 21,
+ [22] = 22,
+ [23] = 23,
+ [24] = 24,
+ [25] = 25,
+ [26] = 26,
+ [27] = 27,
+ [28] = 28,
+ [29] = 29,
+ [30] = 29,
+ [31] = 31,
+ [32] = 32,
+ [33] = 18,
+ [34] = 34,
+ [35] = 26,
+ [36] = 36,
+ [37] = 37,
+ [38] = 17,
+ [39] = 39,
+ [40] = 40,
+ [41] = 41,
+ [42] = 42,
+ [43] = 43,
+ [44] = 44,
+ [45] = 29,
+ [46] = 46,
+ [47] = 47,
+ [48] = 48,
+ [49] = 39,
+ [50] = 50,
+ [51] = 24,
+ [52] = 39,
+ [53] = 53,
+ [54] = 54,
+ [55] = 55,
+ [56] = 56,
+ [57] = 57,
+ [58] = 58,
+ [59] = 59,
+ [60] = 60,
+ [61] = 61,
+ [62] = 62,
+ [63] = 63,
+ [64] = 64,
+ [65] = 65,
+ [66] = 66,
+ [67] = 53,
+ [68] = 68,
+ [69] = 40,
+ [70] = 32,
+ [71] = 71,
+ [72] = 72,
+ [73] = 73,
+ [74] = 74,
+ [75] = 75,
+ [76] = 76,
+ [77] = 77,
+ [78] = 78,
+ [79] = 65,
+ [80] = 55,
+ [81] = 81,
+ [82] = 72,
+ [83] = 83,
+ [84] = 84,
+ [85] = 85,
+ [86] = 36,
+ [87] = 61,
+ [88] = 88,
+ [89] = 44,
+ [90] = 90,
+ [91] = 40,
+ [92] = 92,
+ [93] = 40,
+ [94] = 94,
+ [95] = 95,
+ [96] = 72,
+ [97] = 95,
+ [98] = 98,
+ [99] = 99,
+ [100] = 65,
+ [101] = 95,
+ [102] = 102,
+ [103] = 99,
+ [104] = 72,
+ [105] = 77,
+ [106] = 106,
+ [107] = 74,
+ [108] = 108,
+ [109] = 65,
+ [110] = 110,
+ [111] = 111,
+ [112] = 112,
+ [113] = 113,
+ [114] = 114,
+ [115] = 115,
+ [116] = 116,
+ [117] = 72,
+ [118] = 118,
+ [119] = 119,
+ [120] = 99,
+ [121] = 65,
+ [122] = 65,
+ [123] = 123,
+ [124] = 124,
+ [125] = 72,
+ [126] = 126,
+ [127] = 72,
+ [128] = 128,
+ [129] = 129,
+ [130] = 72,
+ [131] = 131,
+ [132] = 132,
+ [133] = 65,
+ [134] = 134,
+ [135] = 135,
+ [136] = 72,
+ [137] = 65,
+ [138] = 138,
+ [139] = 139,
+ [140] = 140,
+ [141] = 77,
+ [142] = 142,
+ [143] = 143,
+ [144] = 144,
+ [145] = 145,
+ [146] = 146,
+ [147] = 147,
+ [148] = 148,
+ [149] = 65,
+ [150] = 77,
+ [151] = 151,
+ [152] = 152,
+ [153] = 153,
+ [154] = 154,
+ [155] = 155,
+ [156] = 56,
+ [157] = 157,
+ [158] = 158,
+ [159] = 159,
+ [160] = 160,
+ [161] = 161,
+ [162] = 65,
+ [163] = 72,
+ [164] = 164,
+ [165] = 164,
+ [166] = 164,
+ [167] = 164,
+ [168] = 168,
+ [169] = 169,
+ [170] = 164,
+ [171] = 169,
+ [172] = 164,
+ [173] = 173,
+ [174] = 169,
+ [175] = 164,
+ [176] = 169,
+ [177] = 164,
+ [178] = 178,
+ [179] = 169,
+ [180] = 164,
+ [181] = 181,
+ [182] = 169,
+ [183] = 183,
+ [184] = 164,
+ [185] = 169,
+ [186] = 186,
+ [187] = 164,
+ [188] = 186,
+ [189] = 169,
+ [190] = 190,
+ [191] = 191,
+ [192] = 169,
+ [193] = 129,
+ [194] = 65,
+ [195] = 195,
+ [196] = 191,
+ [197] = 72,
+ [198] = 77,
+ [199] = 164,
+ [200] = 77,
+ [201] = 201,
+ [202] = 202,
+ [203] = 152,
+ [204] = 204,
+ [205] = 77,
+ [206] = 206,
+ [207] = 72,
+ [208] = 65,
+ [209] = 209,
+ [210] = 190,
+ [211] = 77,
+ [212] = 72,
+ [213] = 144,
+ [214] = 65,
+ [215] = 77,
+ [216] = 164,
+ [217] = 72,
+ [218] = 218,
+ [219] = 219,
+ [220] = 220,
+ [221] = 221,
+ [222] = 74,
+ [223] = 138,
+ [224] = 147,
+ [225] = 225,
+ [226] = 159,
+ [227] = 160,
+ [228] = 228,
+ [229] = 173,
+ [230] = 230,
+ [231] = 231,
+ [232] = 232,
+ [233] = 233,
+ [234] = 234,
+ [235] = 74,
+ [236] = 236,
+ [237] = 237,
+ [238] = 238,
+ [239] = 239,
+ [240] = 240,
+ [241] = 241,
+ [242] = 242,
+ [243] = 243,
+ [244] = 244,
+ [245] = 245,
+ [246] = 246,
+ [247] = 247,
+ [248] = 248,
+ [249] = 249,
+ [250] = 225,
+ [251] = 251,
+ [252] = 252,
+ [253] = 253,
+ [254] = 195,
+ [255] = 248,
+ [256] = 256,
+ [257] = 257,
+ [258] = 258,
+ [259] = 259,
+ [260] = 260,
+ [261] = 260,
+ [262] = 262,
+ [263] = 263,
+ [264] = 264,
+ [265] = 265,
+ [266] = 147,
+ [267] = 267,
+ [268] = 252,
+ [269] = 138,
+ [270] = 240,
+ [271] = 271,
+ [272] = 272,
+ [273] = 273,
+ [274] = 274,
+ [275] = 275,
+ [276] = 276,
+ [277] = 252,
+ [278] = 248,
+ [279] = 279,
+ [280] = 280,
+ [281] = 252,
+ [282] = 248,
+ [283] = 283,
+ [284] = 284,
+ [285] = 252,
+ [286] = 286,
+ [287] = 287,
+ [288] = 252,
+ [289] = 159,
+ [290] = 290,
+ [291] = 252,
+ [292] = 292,
+ [293] = 293,
+ [294] = 252,
+ [295] = 160,
+ [296] = 296,
+ [297] = 252,
+ [298] = 298,
+ [299] = 252,
+ [300] = 300,
+ [301] = 252,
+ [302] = 231,
+ [303] = 252,
+ [304] = 304,
+ [305] = 252,
+ [306] = 252,
+ [307] = 298,
+ [308] = 262,
+ [309] = 298,
+ [310] = 262,
+ [311] = 298,
+ [312] = 262,
+ [313] = 298,
+ [314] = 298,
+ [315] = 298,
+ [316] = 298,
+ [317] = 298,
+ [318] = 298,
+ [319] = 298,
+ [320] = 298,
+ [321] = 298,
+ [322] = 298,
+ [323] = 264,
+ [324] = 264,
+};
+
+static bool ts_lex(TSLexer *lexer, TSStateId state) {
+ START_LEXER();
+ eof = lexer->eof(lexer);
+ switch (state) {
+ case 0:
+ if (eof) ADVANCE(168);
+ ADVANCE_MAP(
+ '"', 271,
+ '#', 206,
+ '$', 214,
+ '\'', 282,
+ ',', 253,
+ '-', 261,
+ ':', 182,
+ '<', 229,
+ '=', 191,
+ '@', 240,
+ '[', 268,
+ '\\', 279,
+ ']', 270,
+ '_', 221,
+ '{', 215,
+ '}', 220,
+ );
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(165);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(186);
+ if (('A' <= lookahead && lookahead <= 'Z') ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(185);
+ if (lookahead != 0) ADVANCE(204);
+ END_STATE();
+ case 1:
+ if (lookahead == '\t') ADVANCE(3);
+ if (lookahead == '\n') ADVANCE(266);
+ if (lookahead == ' ') ADVANCE(290);
+ END_STATE();
+ case 2:
+ ADVANCE_MAP(
+ '\n', 266,
+ 'u', 162,
+ '\t', 3,
+ ' ', 3,
+ '"', 275,
+ '/', 275,
+ '\\', 275,
+ 'b', 275,
+ 'f', 275,
+ 'n', 275,
+ 'r', 275,
+ 't', 275,
+ );
+ END_STATE();
+ case 3:
+ if (lookahead == '\n') ADVANCE(266);
+ if (lookahead == '\t' ||
+ lookahead == ' ') ADVANCE(3);
+ END_STATE();
+ case 4:
+ if (lookahead == '\n') ADVANCE(266);
+ if (lookahead == '\t' ||
+ lookahead == ' ') ADVANCE(265);
+ if (lookahead != 0 &&
+ lookahead != ',' &&
+ lookahead != '-' &&
+ lookahead != '=') ADVANCE(264);
+ END_STATE();
+ case 5:
+ if (lookahead == '\n') ADVANCE(169);
+ if (lookahead == '"') ADVANCE(271);
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '\'') ADVANCE(282);
+ if (lookahead == ':') ADVANCE(182);
+ if (lookahead == '=') ADVANCE(191);
+ if (lookahead == '\\') ADVANCE(3);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(7);
+ if (lookahead == '-' ||
+ lookahead == '.' ||
+ ('0' <= lookahead && lookahead <= '9') ||
+ ('A' <= lookahead && lookahead <= 'Z') ||
+ lookahead == '_' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(228);
+ END_STATE();
+ case 6:
+ if (lookahead == '\n') ADVANCE(169);
+ if (lookahead == '"') ADVANCE(271);
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '\'') ADVANCE(282);
+ if (lookahead == '\\') ADVANCE(3);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(6);
+ if (('A' <= lookahead && lookahead <= 'Z') ||
+ lookahead == '_' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(223);
+ END_STATE();
+ case 7:
+ if (lookahead == '\n') ADVANCE(169);
+ if (lookahead == '"') ADVANCE(271);
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '\'') ADVANCE(282);
+ if (lookahead == '\\') ADVANCE(3);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(7);
+ if (lookahead == '-' ||
+ lookahead == '.' ||
+ ('0' <= lookahead && lookahead <= '9') ||
+ ('A' <= lookahead && lookahead <= 'Z') ||
+ lookahead == '_' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(228);
+ END_STATE();
+ case 8:
+ if (lookahead == '\n') ADVANCE(169);
+ if (lookahead == '"') ADVANCE(271);
+ if (lookahead == '#') ADVANCE(286);
+ if (lookahead == '$') ADVANCE(214);
+ if (lookahead == '\'') ADVANCE(282);
+ if (lookahead == '\\') ADVANCE(1);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(6);
+ if (('A' <= lookahead && lookahead <= 'Z') ||
+ lookahead == '_' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(287);
+ if (lookahead != 0) ADVANCE(289);
+ END_STATE();
+ case 9:
+ if (lookahead == '\n') ADVANCE(169);
+ if (lookahead == '"') ADVANCE(271);
+ if (lookahead == '#') ADVANCE(286);
+ if (lookahead == '$') ADVANCE(214);
+ if (lookahead == '\'') ADVANCE(282);
+ if (lookahead == '\\') ADVANCE(1);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(7);
+ if (lookahead == '-' ||
+ lookahead == '.' ||
+ ('0' <= lookahead && lookahead <= '9') ||
+ ('A' <= lookahead && lookahead <= 'Z') ||
+ lookahead == '_' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(288);
+ if (lookahead != 0) ADVANCE(289);
+ END_STATE();
+ case 10:
+ if (lookahead == '\n') ADVANCE(169);
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '$') ADVANCE(214);
+ if (lookahead == ':') ADVANCE(182);
+ if (lookahead == '\\') ADVANCE(3);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(19);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(186);
+ if (('A' <= lookahead && lookahead <= 'Z') ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(187);
+ END_STATE();
+ case 11:
+ if (lookahead == '\n') ADVANCE(169);
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '$') ADVANCE(214);
+ if (lookahead == '\\') ADVANCE(3);
+ if (lookahead == 'A' ||
+ lookahead == 'a') ADVANCE(241);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(18);
+ if (('0' <= lookahead && lookahead <= ':') ||
+ ('B' <= lookahead && lookahead <= 'Z') ||
+ ('b' <= lookahead && lookahead <= 'z')) ADVANCE(242);
+ END_STATE();
+ case 12:
+ if (lookahead == '\n') ADVANCE(169);
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '$') ADVANCE(214);
+ if (lookahead == '\\') ADVANCE(3);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(19);
+ if (('0' <= lookahead && lookahead <= '9') ||
+ ('A' <= lookahead && lookahead <= 'Z')) ADVANCE(195);
+ END_STATE();
+ case 13:
+ if (lookahead == '\n') ADVANCE(169);
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '$') ADVANCE(214);
+ if (lookahead == '\\') ADVANCE(3);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(19);
+ if (lookahead == '-' ||
+ ('0' <= lookahead && lookahead <= '9') ||
+ ('A' <= lookahead && lookahead <= 'Z') ||
+ lookahead == '_' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(258);
+ END_STATE();
+ case 14:
+ ADVANCE_MAP(
+ '\n', 169,
+ '#', 294,
+ '$', 213,
+ '/', 68,
+ ':', 182,
+ '@', 240,
+ '\\', 3,
+ 'A', 143,
+ 'a', 143,
+ );
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(15);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(224);
+ END_STATE();
+ case 15:
+ if (lookahead == '\n') ADVANCE(169);
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '$') ADVANCE(213);
+ if (lookahead == '/') ADVANCE(68);
+ if (lookahead == '\\') ADVANCE(3);
+ if (lookahead == 'A' ||
+ lookahead == 'a') ADVANCE(143);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(15);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(224);
+ END_STATE();
+ case 16:
+ if (lookahead == '\n') ADVANCE(169);
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '<') ADVANCE(262);
+ if (lookahead == '\\') ADVANCE(25);
+ if (lookahead == ',' ||
+ lookahead == '-' ||
+ lookahead == '=') ADVANCE(260);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(16);
+ if (lookahead != 0 &&
+ lookahead != '[' &&
+ lookahead != '\\') ADVANCE(263);
+ END_STATE();
+ case 17:
+ if (lookahead == '\n') ADVANCE(169);
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '\\') ADVANCE(3);
+ if (lookahead == '\t' ||
+ lookahead == ' ') ADVANCE(293);
+ if ((0x0b <= lookahead && lookahead <= '\r')) SKIP(19);
+ END_STATE();
+ case 18:
+ if (lookahead == '\n') ADVANCE(169);
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '\\') ADVANCE(3);
+ if (lookahead == 'A' ||
+ lookahead == 'a') ADVANCE(143);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(18);
+ END_STATE();
+ case 19:
+ if (lookahead == '\n') ADVANCE(169);
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '\\') ADVANCE(3);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(19);
+ END_STATE();
+ case 20:
+ if (lookahead == '\n') ADVANCE(169);
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '\\') ADVANCE(3);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(20);
+ if (('A' <= lookahead && lookahead <= 'Z') ||
+ lookahead == '_' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(223);
+ END_STATE();
+ case 21:
+ ADVANCE_MAP(
+ '\n', 169,
+ '#', 234,
+ '$', 214,
+ ':', 182,
+ '@', 240,
+ '\\', 232,
+ 'A', 233,
+ 'a', 233,
+ );
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(18);
+ if (lookahead != 0) ADVANCE(235);
+ END_STATE();
+ case 22:
+ if (lookahead == '\n') ADVANCE(169);
+ if (lookahead == '#') ADVANCE(238);
+ if (lookahead == '$') ADVANCE(214);
+ if (lookahead == '@') ADVANCE(240);
+ if (lookahead == '\\') ADVANCE(236);
+ if (lookahead == 'A' ||
+ lookahead == 'a') ADVANCE(237);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(18);
+ if (lookahead != 0) ADVANCE(239);
+ END_STATE();
+ case 23:
+ if (lookahead == '\n') ADVANCE(169);
+ if (lookahead == '#') ADVANCE(210);
+ if (lookahead == '$') ADVANCE(214);
+ if (lookahead == '\\') ADVANCE(209);
+ if (lookahead == '\t' ||
+ lookahead == ' ') ADVANCE(293);
+ if ((0x0b <= lookahead && lookahead <= '\r')) SKIP(19);
+ if (lookahead != 0) ADVANCE(211);
+ END_STATE();
+ case 24:
+ if (lookahead == '\n') ADVANCE(169);
+ if (lookahead == '#') ADVANCE(210);
+ if (lookahead == '$') ADVANCE(214);
+ if (lookahead == '\\') ADVANCE(209);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(19);
+ if (lookahead != 0) ADVANCE(211);
+ END_STATE();
+ case 25:
+ if (lookahead == '\n') ADVANCE(267);
+ if (lookahead == '\t' ||
+ lookahead == ' ') ADVANCE(265);
+ if (lookahead != 0 &&
+ lookahead != ',' &&
+ lookahead != '-' &&
+ lookahead != '=') ADVANCE(264);
+ END_STATE();
+ case 26:
+ if (lookahead == '\n') SKIP(30);
+ if (lookahead == '"') ADVANCE(271);
+ if (lookahead == '#') ADVANCE(277);
+ if (lookahead == '$') ADVANCE(214);
+ if (lookahead == '\\') ADVANCE(280);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') ADVANCE(276);
+ if (lookahead != 0) ADVANCE(278);
+ END_STATE();
+ case 27:
+ if (lookahead == '\n') SKIP(42);
+ if (lookahead == '#') ADVANCE(284);
+ if (lookahead == '\'') ADVANCE(282);
+ if (lookahead == '\\') ADVANCE(281);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') ADVANCE(283);
+ if (lookahead != 0) ADVANCE(285);
+ END_STATE();
+ case 28:
+ if (lookahead == '"') ADVANCE(271);
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '\'') ADVANCE(282);
+ if (lookahead == '\\') ADVANCE(3);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(28);
+ END_STATE();
+ case 29:
+ if (lookahead == '"') ADVANCE(271);
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '\'') ADVANCE(282);
+ if (lookahead == '\\') ADVANCE(3);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(29);
+ if (lookahead == '-' ||
+ lookahead == '.' ||
+ ('0' <= lookahead && lookahead <= '9') ||
+ ('A' <= lookahead && lookahead <= 'Z') ||
+ lookahead == '_' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(228);
+ END_STATE();
+ case 30:
+ if (lookahead == '"') ADVANCE(271);
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '\\') ADVANCE(279);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(30);
+ END_STATE();
+ case 31:
+ if (lookahead == '"') ADVANCE(271);
+ if (lookahead == '#') ADVANCE(286);
+ if (lookahead == '$') ADVANCE(214);
+ if (lookahead == '\'') ADVANCE(282);
+ if (lookahead == '\\') ADVANCE(1);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(28);
+ if (lookahead != 0) ADVANCE(289);
+ END_STATE();
+ case 32:
+ if (lookahead == '"') ADVANCE(271);
+ if (lookahead == '#') ADVANCE(272);
+ if (lookahead == '\\') ADVANCE(2);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') ADVANCE(273);
+ if (lookahead != 0) ADVANCE(274);
+ END_STATE();
+ case 33:
+ if (lookahead == '#') ADVANCE(206);
+ if (lookahead == '$') ADVANCE(213);
+ if (lookahead == '-') ADVANCE(59);
+ if (lookahead == '<') ADVANCE(163);
+ if (lookahead == '\\') ADVANCE(205);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(33);
+ if (lookahead != 0) ADVANCE(204);
+ END_STATE();
+ case 34:
+ if (lookahead == '#') ADVANCE(206);
+ if (lookahead == '$') ADVANCE(213);
+ if (lookahead == '<') ADVANCE(164);
+ if (lookahead == '[') ADVANCE(268);
+ if (lookahead == '\\') ADVANCE(205);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(34);
+ if (lookahead != 0 &&
+ lookahead != '-') ADVANCE(204);
+ END_STATE();
+ case 35:
+ if (lookahead == '#') ADVANCE(206);
+ if (lookahead == '$') ADVANCE(213);
+ if (lookahead == '<') ADVANCE(164);
+ if (lookahead == '\\') ADVANCE(205);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(35);
+ if (lookahead != 0 &&
+ lookahead != '-') ADVANCE(204);
+ END_STATE();
+ case 36:
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '$') ADVANCE(214);
+ if (lookahead == '\\') ADVANCE(3);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(49);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(186);
+ if (('A' <= lookahead && lookahead <= 'Z') ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(187);
+ END_STATE();
+ case 37:
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '$') ADVANCE(214);
+ if (lookahead == '\\') ADVANCE(3);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(49);
+ if (('0' <= lookahead && lookahead <= ':') ||
+ ('A' <= lookahead && lookahead <= 'Z') ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(242);
+ END_STATE();
+ case 38:
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '$') ADVANCE(213);
+ if (lookahead == '\\') ADVANCE(3);
+ if (lookahead == 'm') ADVANCE(245);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(40);
+ if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(248);
+ if (('0' <= lookahead && lookahead <= '9') ||
+ ('A' <= lookahead && lookahead <= 'Z')) ADVANCE(194);
+ END_STATE();
+ case 39:
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '$') ADVANCE(213);
+ if (lookahead == '\\') ADVANCE(3);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(39);
+ if (lookahead == '-' ||
+ ('0' <= lookahead && lookahead <= '9') ||
+ ('A' <= lookahead && lookahead <= 'Z') ||
+ lookahead == '_' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(257);
+ END_STATE();
+ case 40:
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '$') ADVANCE(213);
+ if (lookahead == '\\') ADVANCE(3);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(40);
+ if (('0' <= lookahead && lookahead <= '9') ||
+ ('A' <= lookahead && lookahead <= 'Z')) ADVANCE(194);
+ END_STATE();
+ case 41:
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '$') ADVANCE(213);
+ if (lookahead == '\\') ADVANCE(3);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(41);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(183);
+ if (('A' <= lookahead && lookahead <= 'Z') ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(184);
+ END_STATE();
+ case 42:
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '\'') ADVANCE(282);
+ if (lookahead == '\\') ADVANCE(279);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(42);
+ END_STATE();
+ case 43:
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == ',') ADVANCE(253);
+ if (lookahead == '-') ADVANCE(261);
+ if (lookahead == '<') ADVANCE(262);
+ if (lookahead == '=') ADVANCE(260);
+ if (lookahead == '[') ADVANCE(268);
+ if (lookahead == '\\') ADVANCE(4);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(44);
+ if (lookahead != 0) ADVANCE(263);
+ END_STATE();
+ case 44:
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '-') ADVANCE(261);
+ if (lookahead == '<') ADVANCE(262);
+ if (lookahead == '[') ADVANCE(268);
+ if (lookahead == '\\') ADVANCE(4);
+ if (lookahead == ',' ||
+ lookahead == '=') ADVANCE(260);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(44);
+ if (lookahead != 0) ADVANCE(263);
+ END_STATE();
+ case 45:
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '<') ADVANCE(262);
+ if (lookahead == '[') ADVANCE(268);
+ if (lookahead == '\\') ADVANCE(4);
+ if (lookahead == ',' ||
+ lookahead == '-' ||
+ lookahead == '=') ADVANCE(260);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(45);
+ if (lookahead != 0) ADVANCE(263);
+ END_STATE();
+ case 46:
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '=') ADVANCE(191);
+ if (lookahead == '\\') ADVANCE(3);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') ADVANCE(222);
+ END_STATE();
+ case 47:
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '\\') ADVANCE(3);
+ if (lookahead == '{') ADVANCE(215);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(49);
+ if (('A' <= lookahead && lookahead <= 'Z') ||
+ lookahead == '_' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221);
+ END_STATE();
+ case 48:
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '\\') ADVANCE(3);
+ if (lookahead == '\t' ||
+ lookahead == ' ') ADVANCE(293);
+ if (('\n' <= lookahead && lookahead <= '\r')) SKIP(49);
+ END_STATE();
+ case 49:
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '\\') ADVANCE(3);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(49);
+ END_STATE();
+ case 50:
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '\\') ADVANCE(3);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(49);
+ if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(248);
+ END_STATE();
+ case 51:
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '\\') ADVANCE(3);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(51);
+ if (('A' <= lookahead && lookahead <= 'Z') ||
+ lookahead == '_' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(223);
+ END_STATE();
+ case 52:
+ if (lookahead == '#') ADVANCE(294);
+ if (lookahead == '\\') ADVANCE(3);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(52);
+ if (('0' <= lookahead && lookahead <= '9') ||
+ ('A' <= lookahead && lookahead <= 'Z') ||
+ lookahead == '_' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(190);
+ END_STATE();
+ case 53:
+ if (lookahead == '#') ADVANCE(238);
+ if (lookahead == '$') ADVANCE(214);
+ if (lookahead == '\\') ADVANCE(236);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(49);
+ if (lookahead != 0 &&
+ lookahead != '@') ADVANCE(239);
+ END_STATE();
+ case 54:
+ if (lookahead == '#') ADVANCE(210);
+ if (lookahead == '$') ADVANCE(214);
+ if (lookahead == '\\') ADVANCE(209);
+ if (lookahead == '\t' ||
+ lookahead == ' ') ADVANCE(293);
+ if (('\n' <= lookahead && lookahead <= '\r')) SKIP(49);
+ if (lookahead != 0) ADVANCE(211);
+ END_STATE();
+ case 55:
+ if (lookahead == '#') ADVANCE(231);
+ if (lookahead == '$') ADVANCE(213);
+ if (lookahead == '-') ADVANCE(59);
+ if (lookahead == '\\') ADVANCE(230);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(55);
+ if (lookahead != 0 &&
+ lookahead != ':' &&
+ lookahead != '@') ADVANCE(229);
+ END_STATE();
+ case 56:
+ if (lookahead == '#') ADVANCE(255);
+ if (lookahead == '\\') ADVANCE(254);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(49);
+ if (lookahead != 0 &&
+ lookahead != ',' &&
+ lookahead != '=') ADVANCE(256);
+ END_STATE();
+ case 57:
+ if (lookahead == '#') ADVANCE(250);
+ if (lookahead == '\\') ADVANCE(249);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(49);
+ if (lookahead != 0) ADVANCE(251);
+ END_STATE();
+ case 58:
+ if (lookahead == '#') ADVANCE(216);
+ if (lookahead == '\\') ADVANCE(217);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') ADVANCE(218);
+ if (lookahead != 0 &&
+ lookahead != '}') ADVANCE(219);
+ END_STATE();
+ case 59:
+ if (lookahead == '-') ADVANCE(243);
+ END_STATE();
+ case 60:
+ if (lookahead == 'E') ADVANCE(197);
+ END_STATE();
+ case 61:
+ if (lookahead == 'N') ADVANCE(60);
+ END_STATE();
+ case 62:
+ if (lookahead == 'O') ADVANCE(61);
+ END_STATE();
+ case 63:
+ if (lookahead == '_') ADVANCE(76);
+ END_STATE();
+ case 64:
+ if (lookahead == 'c') ADVANCE(66);
+ END_STATE();
+ case 65:
+ if (lookahead == 'd') ADVANCE(67);
+ END_STATE();
+ case 66:
+ if (lookahead == 'p') ADVANCE(226);
+ END_STATE();
+ case 67:
+ if (lookahead == 'p') ADVANCE(227);
+ END_STATE();
+ case 68:
+ if (lookahead == 't') ADVANCE(64);
+ if (lookahead == 'u') ADVANCE(65);
+ END_STATE();
+ case 69:
+ if (lookahead == 'A' ||
+ lookahead == 'a') ADVANCE(75);
+ END_STATE();
+ case 70:
+ if (lookahead == 'A' ||
+ lookahead == 'a') ADVANCE(99);
+ END_STATE();
+ case 71:
+ if (lookahead == 'A' ||
+ lookahead == 'a') ADVANCE(107);
+ END_STATE();
+ case 72:
+ if (lookahead == 'A' ||
+ lookahead == 'a') ADVANCE(110);
+ END_STATE();
+ case 73:
+ if (lookahead == 'A' ||
+ lookahead == 'a') ADVANCE(100);
+ END_STATE();
+ case 74:
+ if (lookahead == 'B' ||
+ lookahead == 'b') ADVANCE(153);
+ END_STATE();
+ case 75:
+ if (lookahead == 'B' ||
+ lookahead == 'b') ADVANCE(91);
+ END_STATE();
+ case 76:
+ if (lookahead == 'B' ||
+ lookahead == 'b') ADVANCE(155);
+ END_STATE();
+ case 77:
+ if (lookahead == 'C' ||
+ lookahead == 'c') ADVANCE(105);
+ END_STATE();
+ case 78:
+ if (lookahead == 'C' ||
+ lookahead == 'c') ADVANCE(97);
+ END_STATE();
+ case 79:
+ if (lookahead == 'D' ||
+ lookahead == 'd') ADVANCE(80);
+ if (lookahead == 'R' ||
+ lookahead == 'r') ADVANCE(93);
+ END_STATE();
+ case 80:
+ if (lookahead == 'D' ||
+ lookahead == 'd') ADVANCE(177);
+ END_STATE();
+ case 81:
+ if (lookahead == 'D' ||
+ lookahead == 'd') ADVANCE(173);
+ END_STATE();
+ case 82:
+ if (lookahead == 'D' ||
+ lookahead == 'd') ADVANCE(192);
+ END_STATE();
+ case 83:
+ if (lookahead == 'D' ||
+ lookahead == 'd') ADVANCE(203);
+ END_STATE();
+ case 84:
+ if (lookahead == 'D' ||
+ lookahead == 'd') ADVANCE(101);
+ END_STATE();
+ case 85:
+ if (lookahead == 'E' ||
+ lookahead == 'e') ADVANCE(175);
+ END_STATE();
+ case 86:
+ if (lookahead == 'E' ||
+ lookahead == 'e') ADVANCE(180);
+ END_STATE();
+ case 87:
+ if (lookahead == 'E' ||
+ lookahead == 'e') ADVANCE(77);
+ END_STATE();
+ case 88:
+ if (lookahead == 'E' ||
+ lookahead == 'e') ADVANCE(71);
+ END_STATE();
+ case 89:
+ if (lookahead == 'E' ||
+ lookahead == 'e') ADVANCE(114);
+ END_STATE();
+ case 90:
+ if (lookahead == 'E' ||
+ lookahead == 'e') ADVANCE(137);
+ END_STATE();
+ case 91:
+ if (lookahead == 'E' ||
+ lookahead == 'e') ADVANCE(108);
+ END_STATE();
+ case 92:
+ if (lookahead == 'E' ||
+ lookahead == 'e') ADVANCE(139);
+ END_STATE();
+ case 93:
+ if (lookahead == 'G' ||
+ lookahead == 'g') ADVANCE(189);
+ END_STATE();
+ case 94:
+ if (lookahead == 'G' ||
+ lookahead == 'g') ADVANCE(123);
+ END_STATE();
+ case 95:
+ if (lookahead == 'H' ||
+ lookahead == 'h') ADVANCE(78);
+ END_STATE();
+ case 96:
+ if (lookahead == 'H' ||
+ lookahead == 'h') ADVANCE(89);
+ if (lookahead == 'T' ||
+ lookahead == 't') ADVANCE(129);
+ END_STATE();
+ case 97:
+ if (lookahead == 'H' ||
+ lookahead == 'h') ADVANCE(87);
+ END_STATE();
+ case 98:
+ if (lookahead == 'I' ||
+ lookahead == 'i') ADVANCE(94);
+ END_STATE();
+ case 99:
+ if (lookahead == 'I' ||
+ lookahead == 'i') ADVANCE(121);
+ END_STATE();
+ case 100:
+ if (lookahead == 'I' ||
+ lookahead == 'i') ADVANCE(124);
+ END_STATE();
+ case 101:
+ if (lookahead == 'I' ||
+ lookahead == 'i') ADVANCE(138);
+ END_STATE();
+ case 102:
+ if (lookahead == 'I' ||
+ lookahead == 'i') ADVANCE(122);
+ END_STATE();
+ case 103:
+ if (lookahead == 'I' ||
+ lookahead == 'i') ADVANCE(112);
+ END_STATE();
+ case 104:
+ if (lookahead == 'I' ||
+ lookahead == 'i') ADVANCE(113);
+ END_STATE();
+ case 105:
+ if (lookahead == 'K' ||
+ lookahead == 'k') ADVANCE(196);
+ END_STATE();
+ case 106:
+ if (lookahead == 'K' ||
+ lookahead == 'k') ADVANCE(84);
+ END_STATE();
+ case 107:
+ if (lookahead == 'L' ||
+ lookahead == 'l') ADVANCE(148);
+ END_STATE();
+ case 108:
+ if (lookahead == 'L' ||
+ lookahead == 'l') ADVANCE(174);
+ END_STATE();
+ case 109:
+ if (lookahead == 'L' ||
+ lookahead == 'l') ADVANCE(198);
+ END_STATE();
+ case 110:
+ if (lookahead == 'L' ||
+ lookahead == 'l') ADVANCE(193);
+ END_STATE();
+ case 111:
+ if (lookahead == 'L' ||
+ lookahead == 'l') ADVANCE(154);
+ END_STATE();
+ case 112:
+ if (lookahead == 'L' ||
+ lookahead == 'l') ADVANCE(82);
+ END_STATE();
+ case 113:
+ if (lookahead == 'L' ||
+ lookahead == 'l') ADVANCE(83);
+ END_STATE();
+ case 114:
+ if (lookahead == 'L' ||
+ lookahead == 'l') ADVANCE(109);
+ END_STATE();
+ case 115:
+ if (lookahead == 'M' ||
+ lookahead == 'm') ADVANCE(170);
+ END_STATE();
+ case 116:
+ if (lookahead == 'M' ||
+ lookahead == 'm') ADVANCE(81);
+ if (lookahead == 'O' ||
+ lookahead == 'o') ADVANCE(132);
+ if (lookahead == 'R' ||
+ lookahead == 'r') ADVANCE(128);
+ END_STATE();
+ case 117:
+ if (lookahead == 'M' ||
+ lookahead == 'm') ADVANCE(86);
+ END_STATE();
+ case 118:
+ if (lookahead == 'N' ||
+ lookahead == 'n') ADVANCE(150);
+ if (lookahead == 'X' ||
+ lookahead == 'x') ADVANCE(134);
+ END_STATE();
+ case 119:
+ if (lookahead == 'N' ||
+ lookahead == 'n') ADVANCE(172);
+ END_STATE();
+ case 120:
+ if (lookahead == 'N' ||
+ lookahead == 'n') ADVANCE(74);
+ END_STATE();
+ case 121:
+ if (lookahead == 'N' ||
+ lookahead == 'n') ADVANCE(151);
+ END_STATE();
+ case 122:
+ if (lookahead == 'N' ||
+ lookahead == 'n') ADVANCE(149);
+ END_STATE();
+ case 123:
+ if (lookahead == 'N' ||
+ lookahead == 'n') ADVANCE(72);
+ END_STATE();
+ case 124:
+ if (lookahead == 'N' ||
+ lookahead == 'n') ADVANCE(92);
+ END_STATE();
+ case 125:
+ if (lookahead == 'O' ||
+ lookahead == 'o') ADVANCE(111);
+ END_STATE();
+ case 126:
+ if (lookahead == 'O' ||
+ lookahead == 'o') ADVANCE(115);
+ END_STATE();
+ case 127:
+ if (lookahead == 'O' ||
+ lookahead == 'o') ADVANCE(136);
+ END_STATE();
+ case 128:
+ if (lookahead == 'O' ||
+ lookahead == 'o') ADVANCE(145);
+ END_STATE();
+ case 129:
+ if (lookahead == 'O' ||
+ lookahead == 'o') ADVANCE(133);
+ END_STATE();
+ case 130:
+ if (lookahead == 'O' ||
+ lookahead == 'o') ADVANCE(147);
+ END_STATE();
+ case 131:
+ if (lookahead == 'O' ||
+ lookahead == 'o') ADVANCE(102);
+ END_STATE();
+ case 132:
+ if (lookahead == 'P' ||
+ lookahead == 'p') ADVANCE(156);
+ END_STATE();
+ case 133:
+ if (lookahead == 'P' ||
+ lookahead == 'p') ADVANCE(146);
+ END_STATE();
+ case 134:
+ if (lookahead == 'P' ||
+ lookahead == 'p') ADVANCE(130);
+ END_STATE();
+ case 135:
+ if (lookahead == 'P' ||
+ lookahead == 'p') ADVANCE(131);
+ END_STATE();
+ case 136:
+ if (lookahead == 'R' ||
+ lookahead == 'r') ADVANCE(106);
+ END_STATE();
+ case 137:
+ if (lookahead == 'R' ||
+ lookahead == 'r') ADVANCE(181);
+ END_STATE();
+ case 138:
+ if (lookahead == 'R' ||
+ lookahead == 'r') ADVANCE(188);
+ END_STATE();
+ case 139:
+ if (lookahead == 'R' ||
+ lookahead == 'r') ADVANCE(199);
+ END_STATE();
+ case 140:
+ if (lookahead == 'R' ||
+ lookahead == 'r') ADVANCE(157);
+ END_STATE();
+ case 141:
+ if (lookahead == 'R' ||
+ lookahead == 'r') ADVANCE(126);
+ END_STATE();
+ case 142:
+ if (lookahead == 'S' ||
+ lookahead == 's') ADVANCE(63);
+ END_STATE();
+ case 143:
+ if (lookahead == 'S' ||
+ lookahead == 's') ADVANCE(171);
+ END_STATE();
+ case 144:
+ if (lookahead == 'S' ||
+ lookahead == 's') ADVANCE(90);
+ END_STATE();
+ case 145:
+ if (lookahead == 'S' ||
+ lookahead == 's') ADVANCE(142);
+ END_STATE();
+ case 146:
+ if (lookahead == 'S' ||
+ lookahead == 's') ADVANCE(98);
+ END_STATE();
+ case 147:
+ if (lookahead == 'S' ||
+ lookahead == 's') ADVANCE(85);
+ END_STATE();
+ case 148:
+ if (lookahead == 'T' ||
+ lookahead == 't') ADVANCE(95);
+ END_STATE();
+ case 149:
+ if (lookahead == 'T' ||
+ lookahead == 't') ADVANCE(179);
+ END_STATE();
+ case 150:
+ if (lookahead == 'T' ||
+ lookahead == 't') ADVANCE(140);
+ if (lookahead == 'V' ||
+ lookahead == 'v') ADVANCE(176);
+ END_STATE();
+ case 151:
+ if (lookahead == 'T' ||
+ lookahead == 't') ADVANCE(73);
+ END_STATE();
+ case 152:
+ if (lookahead == 'U' ||
+ lookahead == 'u') ADVANCE(119);
+ END_STATE();
+ case 153:
+ if (lookahead == 'U' ||
+ lookahead == 'u') ADVANCE(103);
+ END_STATE();
+ case 154:
+ if (lookahead == 'U' ||
+ lookahead == 'u') ADVANCE(117);
+ END_STATE();
+ case 155:
+ if (lookahead == 'U' ||
+ lookahead == 'u') ADVANCE(104);
+ END_STATE();
+ case 156:
+ if (lookahead == 'Y' ||
+ lookahead == 'y') ADVANCE(178);
+ END_STATE();
+ case 157:
+ if (lookahead == 'Y' ||
+ lookahead == 'y') ADVANCE(135);
+ END_STATE();
+ case 158:
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(225);
+ END_STATE();
+ case 159:
+ if (('0' <= lookahead && lookahead <= '9') ||
+ ('A' <= lookahead && lookahead <= 'F') ||
+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(275);
+ END_STATE();
+ case 160:
+ if (('0' <= lookahead && lookahead <= '9') ||
+ ('A' <= lookahead && lookahead <= 'F') ||
+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(159);
+ END_STATE();
+ case 161:
+ if (('0' <= lookahead && lookahead <= '9') ||
+ ('A' <= lookahead && lookahead <= 'F') ||
+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(160);
+ END_STATE();
+ case 162:
+ if (('0' <= lookahead && lookahead <= '9') ||
+ ('A' <= lookahead && lookahead <= 'F') ||
+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(161);
+ END_STATE();
+ case 163:
+ if (lookahead != 0 &&
+ (lookahead < '\t' || '\r' < lookahead) &&
+ lookahead != ' ' &&
+ lookahead != '$' &&
+ lookahead != '-' &&
+ lookahead != '<') ADVANCE(212);
+ END_STATE();
+ case 164:
+ if (lookahead != 0 &&
+ lookahead != '<') ADVANCE(207);
+ END_STATE();
+ case 165:
+ if (eof) ADVANCE(168);
+ ADVANCE_MAP(
+ '"', 271,
+ '#', 206,
+ '$', 213,
+ '\'', 282,
+ ',', 269,
+ '-', 261,
+ '<', 229,
+ '=', 204,
+ '[', 268,
+ '\\', 279,
+ ']', 270,
+ ':', 204,
+ '@', 204,
+ );
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(165);
+ if (lookahead != 0) ADVANCE(204);
+ END_STATE();
+ case 166:
+ if (eof) ADVANCE(168);
+ ADVANCE_MAP(
+ '"', 271,
+ '#', 294,
+ '$', 213,
+ ',', 269,
+ '-', 59,
+ '=', 191,
+ 'N', 62,
+ '[', 268,
+ '\\', 3,
+ ']', 270,
+ '}', 220,
+ 'A', 79,
+ 'a', 79,
+ 'C', 116,
+ 'c', 116,
+ 'E', 118,
+ 'e', 118,
+ 'F', 141,
+ 'f', 141,
+ 'H', 88,
+ 'h', 88,
+ 'L', 69,
+ 'l', 69,
+ 'M', 70,
+ 'm', 70,
+ 'O', 120,
+ 'o', 120,
+ 'R', 152,
+ 'r', 152,
+ 'S', 96,
+ 's', 96,
+ 'U', 144,
+ 'u', 144,
+ 'V', 125,
+ 'v', 125,
+ 'W', 127,
+ 'w', 127,
+ );
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(167);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(224);
+ END_STATE();
+ case 167:
+ if (eof) ADVANCE(168);
+ ADVANCE_MAP(
+ '"', 271,
+ '#', 294,
+ '$', 213,
+ ',', 269,
+ '-', 59,
+ 'N', 62,
+ '[', 268,
+ '\\', 3,
+ ']', 270,
+ 'A', 79,
+ 'a', 79,
+ 'C', 116,
+ 'c', 116,
+ 'E', 118,
+ 'e', 118,
+ 'F', 141,
+ 'f', 141,
+ 'H', 88,
+ 'h', 88,
+ 'L', 69,
+ 'l', 69,
+ 'M', 70,
+ 'm', 70,
+ 'O', 120,
+ 'o', 120,
+ 'R', 152,
+ 'r', 152,
+ 'S', 96,
+ 's', 96,
+ 'U', 144,
+ 'u', 144,
+ 'V', 125,
+ 'v', 125,
+ 'W', 127,
+ 'w', 127,
+ );
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(167);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(224);
+ END_STATE();
+ case 168:
+ ACCEPT_TOKEN(ts_builtin_sym_end);
+ END_STATE();
+ case 169:
+ ACCEPT_TOKEN(anon_sym_LF);
+ if (lookahead == '\n') ADVANCE(169);
+ END_STATE();
+ case 170:
+ ACCEPT_TOKEN(aux_sym_from_instruction_token1);
+ END_STATE();
+ case 171:
+ ACCEPT_TOKEN(aux_sym_from_instruction_token2);
+ END_STATE();
+ case 172:
+ ACCEPT_TOKEN(aux_sym_run_instruction_token1);
+ END_STATE();
+ case 173:
+ ACCEPT_TOKEN(aux_sym_cmd_instruction_token1);
+ END_STATE();
+ case 174:
+ ACCEPT_TOKEN(aux_sym_label_instruction_token1);
+ END_STATE();
+ case 175:
+ ACCEPT_TOKEN(aux_sym_expose_instruction_token1);
+ END_STATE();
+ case 176:
+ ACCEPT_TOKEN(aux_sym_env_instruction_token1);
+ END_STATE();
+ case 177:
+ ACCEPT_TOKEN(aux_sym_add_instruction_token1);
+ END_STATE();
+ case 178:
+ ACCEPT_TOKEN(aux_sym_copy_instruction_token1);
+ END_STATE();
+ case 179:
+ ACCEPT_TOKEN(aux_sym_entrypoint_instruction_token1);
+ END_STATE();
+ case 180:
+ ACCEPT_TOKEN(aux_sym_volume_instruction_token1);
+ END_STATE();
+ case 181:
+ ACCEPT_TOKEN(aux_sym_user_instruction_token1);
+ END_STATE();
+ case 182:
+ ACCEPT_TOKEN(anon_sym_COLON);
+ END_STATE();
+ case 183:
+ ACCEPT_TOKEN(aux_sym__user_name_or_group_token1);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(183);
+ END_STATE();
+ case 184:
+ ACCEPT_TOKEN(aux_sym__user_name_or_group_token1);
+ if (lookahead == '-' ||
+ ('0' <= lookahead && lookahead <= '9') ||
+ ('A' <= lookahead && lookahead <= 'Z') ||
+ lookahead == '_' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(184);
+ END_STATE();
+ case 185:
+ ACCEPT_TOKEN(aux_sym__immediate_user_name_or_group_fragment_token1);
+ if (lookahead == '-') ADVANCE(187);
+ if (('0' <= lookahead && lookahead <= '9') ||
+ ('A' <= lookahead && lookahead <= 'Z') ||
+ lookahead == '_' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(185);
+ END_STATE();
+ case 186:
+ ACCEPT_TOKEN(aux_sym__immediate_user_name_or_group_fragment_token1);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(186);
+ END_STATE();
+ case 187:
+ ACCEPT_TOKEN(aux_sym__immediate_user_name_or_group_fragment_token1);
+ if (lookahead == '-' ||
+ ('0' <= lookahead && lookahead <= '9') ||
+ ('A' <= lookahead && lookahead <= 'Z') ||
+ lookahead == '_' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(187);
+ END_STATE();
+ case 188:
+ ACCEPT_TOKEN(aux_sym_workdir_instruction_token1);
+ END_STATE();
+ case 189:
+ ACCEPT_TOKEN(aux_sym_arg_instruction_token1);
+ END_STATE();
+ case 190:
+ ACCEPT_TOKEN(aux_sym_arg_instruction_token2);
+ if (('0' <= lookahead && lookahead <= '9') ||
+ ('A' <= lookahead && lookahead <= 'Z') ||
+ lookahead == '_' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(190);
+ END_STATE();
+ case 191:
+ ACCEPT_TOKEN(anon_sym_EQ);
+ END_STATE();
+ case 192:
+ ACCEPT_TOKEN(aux_sym_onbuild_instruction_token1);
+ END_STATE();
+ case 193:
+ ACCEPT_TOKEN(aux_sym_stopsignal_instruction_token1);
+ END_STATE();
+ case 194:
+ ACCEPT_TOKEN(aux_sym__stopsignal_value_token1);
+ if (('0' <= lookahead && lookahead <= '9') ||
+ ('A' <= lookahead && lookahead <= 'Z')) ADVANCE(194);
+ END_STATE();
+ case 195:
+ ACCEPT_TOKEN(aux_sym__stopsignal_value_token2);
+ if (('0' <= lookahead && lookahead <= '9') ||
+ ('A' <= lookahead && lookahead <= 'Z')) ADVANCE(195);
+ END_STATE();
+ case 196:
+ ACCEPT_TOKEN(aux_sym_healthcheck_instruction_token1);
+ END_STATE();
+ case 197:
+ ACCEPT_TOKEN(anon_sym_NONE);
+ END_STATE();
+ case 198:
+ ACCEPT_TOKEN(aux_sym_shell_instruction_token1);
+ END_STATE();
+ case 199:
+ ACCEPT_TOKEN(aux_sym_maintainer_instruction_token1);
+ END_STATE();
+ case 200:
+ ACCEPT_TOKEN(aux_sym_maintainer_instruction_token2);
+ if (lookahead == '\n') ADVANCE(266);
+ if (lookahead == '\t' ||
+ lookahead == ' ') ADVANCE(200);
+ if (lookahead != 0) ADVANCE(202);
+ END_STATE();
+ case 201:
+ ACCEPT_TOKEN(aux_sym_maintainer_instruction_token2);
+ if (lookahead == '#') ADVANCE(202);
+ if (lookahead == '\\') ADVANCE(200);
+ if (lookahead == '\t' ||
+ (0x0b <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') ADVANCE(201);
+ if (lookahead != 0 &&
+ (lookahead < '\t' || '\r' < lookahead)) ADVANCE(202);
+ END_STATE();
+ case 202:
+ ACCEPT_TOKEN(aux_sym_maintainer_instruction_token2);
+ if (lookahead != 0 &&
+ lookahead != '\n') ADVANCE(202);
+ END_STATE();
+ case 203:
+ ACCEPT_TOKEN(aux_sym_cross_build_instruction_token1);
+ if (('A' <= lookahead && lookahead <= 'Z') ||
+ lookahead == '_' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(203);
+ END_STATE();
+ case 204:
+ ACCEPT_TOKEN(aux_sym_path_token1);
+ END_STATE();
+ case 205:
+ ACCEPT_TOKEN(aux_sym_path_token1);
+ if (lookahead == '\n') ADVANCE(266);
+ if (lookahead == '\t' ||
+ lookahead == ' ') ADVANCE(3);
+ END_STATE();
+ case 206:
+ ACCEPT_TOKEN(aux_sym_path_token1);
+ if (lookahead != 0 &&
+ lookahead != '\n') ADVANCE(294);
+ END_STATE();
+ case 207:
+ ACCEPT_TOKEN(aux_sym_path_token2);
+ END_STATE();
+ case 208:
+ ACCEPT_TOKEN(aux_sym_path_token2);
+ if (lookahead != 0 &&
+ lookahead != '\n' &&
+ lookahead != '<' &&
+ lookahead != '\\') ADVANCE(263);
+ END_STATE();
+ case 209:
+ ACCEPT_TOKEN(aux_sym_path_token3);
+ if (lookahead == '\n') ADVANCE(266);
+ if (lookahead == '\t' ||
+ lookahead == ' ') ADVANCE(3);
+ if (lookahead != 0 &&
+ (lookahead < '\t' || '\r' < lookahead) &&
+ lookahead != '$') ADVANCE(211);
+ END_STATE();
+ case 210:
+ ACCEPT_TOKEN(aux_sym_path_token3);
+ if (lookahead == '\t' ||
+ (0x0b <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ' ||
+ lookahead == '$') ADVANCE(294);
+ if (lookahead != 0 &&
+ (lookahead < '\t' || '\r' < lookahead)) ADVANCE(210);
+ END_STATE();
+ case 211:
+ ACCEPT_TOKEN(aux_sym_path_token3);
+ if (lookahead != 0 &&
+ (lookahead < '\t' || '\r' < lookahead) &&
+ lookahead != ' ' &&
+ lookahead != '$') ADVANCE(211);
+ END_STATE();
+ case 212:
+ ACCEPT_TOKEN(aux_sym_path_with_heredoc_token1);
+ END_STATE();
+ case 213:
+ ACCEPT_TOKEN(anon_sym_DOLLAR);
+ END_STATE();
+ case 214:
+ ACCEPT_TOKEN(anon_sym_DOLLAR2);
+ END_STATE();
+ case 215:
+ ACCEPT_TOKEN(anon_sym_LBRACE);
+ END_STATE();
+ case 216:
+ ACCEPT_TOKEN(aux_sym__expansion_body_token1);
+ if (lookahead == '\n') ADVANCE(219);
+ if (lookahead == '}') ADVANCE(294);
+ if (lookahead != 0) ADVANCE(216);
+ END_STATE();
+ case 217:
+ ACCEPT_TOKEN(aux_sym__expansion_body_token1);
+ if (lookahead == '\n') ADVANCE(219);
+ if (lookahead == '\t' ||
+ lookahead == ' ') ADVANCE(217);
+ if (lookahead != 0 &&
+ lookahead != '}') ADVANCE(219);
+ END_STATE();
+ case 218:
+ ACCEPT_TOKEN(aux_sym__expansion_body_token1);
+ if (lookahead == '#') ADVANCE(216);
+ if (lookahead == '\\') ADVANCE(217);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') ADVANCE(218);
+ if (lookahead != 0 &&
+ lookahead != '}') ADVANCE(219);
+ END_STATE();
+ case 219:
+ ACCEPT_TOKEN(aux_sym__expansion_body_token1);
+ if (lookahead != 0 &&
+ lookahead != '}') ADVANCE(219);
+ END_STATE();
+ case 220:
+ ACCEPT_TOKEN(anon_sym_RBRACE);
+ END_STATE();
+ case 221:
+ ACCEPT_TOKEN(sym_variable);
+ if (('0' <= lookahead && lookahead <= '9') ||
+ ('A' <= lookahead && lookahead <= 'Z') ||
+ lookahead == '_' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(221);
+ END_STATE();
+ case 222:
+ ACCEPT_TOKEN(aux_sym__spaced_env_pair_token1);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') ADVANCE(222);
+ END_STATE();
+ case 223:
+ ACCEPT_TOKEN(aux_sym__env_key_token1);
+ if (('0' <= lookahead && lookahead <= '9') ||
+ ('A' <= lookahead && lookahead <= 'Z') ||
+ lookahead == '_' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(223);
+ END_STATE();
+ case 224:
+ ACCEPT_TOKEN(aux_sym_expose_port_token1);
+ if (lookahead == '-') ADVANCE(158);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(224);
+ END_STATE();
+ case 225:
+ ACCEPT_TOKEN(aux_sym_expose_port_token1);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(225);
+ END_STATE();
+ case 226:
+ ACCEPT_TOKEN(anon_sym_SLASHtcp);
+ END_STATE();
+ case 227:
+ ACCEPT_TOKEN(anon_sym_SLASHudp);
+ END_STATE();
+ case 228:
+ ACCEPT_TOKEN(aux_sym_label_pair_token1);
+ if (lookahead == '-' ||
+ lookahead == '.' ||
+ ('0' <= lookahead && lookahead <= '9') ||
+ ('A' <= lookahead && lookahead <= 'Z') ||
+ lookahead == '_' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(228);
+ END_STATE();
+ case 229:
+ ACCEPT_TOKEN(aux_sym_image_name_token1);
+ END_STATE();
+ case 230:
+ ACCEPT_TOKEN(aux_sym_image_name_token1);
+ if (lookahead == '\n') ADVANCE(266);
+ if (lookahead == '\t' ||
+ lookahead == ' ') ADVANCE(3);
+ END_STATE();
+ case 231:
+ ACCEPT_TOKEN(aux_sym_image_name_token1);
+ if (lookahead != 0 &&
+ lookahead != '\n') ADVANCE(294);
+ END_STATE();
+ case 232:
+ ACCEPT_TOKEN(aux_sym_image_name_token2);
+ if (lookahead == '\n') ADVANCE(266);
+ if (lookahead == '\t' ||
+ lookahead == ' ') ADVANCE(3);
+ if (lookahead != 0 &&
+ (lookahead < '\t' || '\r' < lookahead) &&
+ lookahead != '$' &&
+ lookahead != ':' &&
+ lookahead != '@') ADVANCE(235);
+ END_STATE();
+ case 233:
+ ACCEPT_TOKEN(aux_sym_image_name_token2);
+ if (lookahead == 'S' ||
+ lookahead == 's') ADVANCE(235);
+ if (lookahead != 0 &&
+ (lookahead < '\t' || '\r' < lookahead) &&
+ lookahead != ' ' &&
+ lookahead != '$' &&
+ lookahead != ':' &&
+ lookahead != '@') ADVANCE(235);
+ END_STATE();
+ case 234:
+ ACCEPT_TOKEN(aux_sym_image_name_token2);
+ if (lookahead == '\t' ||
+ (0x0b <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ' ||
+ lookahead == '$' ||
+ lookahead == ':' ||
+ lookahead == '@') ADVANCE(294);
+ if (lookahead != 0 &&
+ (lookahead < '\t' || '\r' < lookahead)) ADVANCE(234);
+ END_STATE();
+ case 235:
+ ACCEPT_TOKEN(aux_sym_image_name_token2);
+ if (lookahead != 0 &&
+ (lookahead < '\t' || '\r' < lookahead) &&
+ lookahead != ' ' &&
+ lookahead != '$' &&
+ lookahead != ':' &&
+ lookahead != '@') ADVANCE(235);
+ END_STATE();
+ case 236:
+ ACCEPT_TOKEN(aux_sym_image_tag_token1);
+ if (lookahead == '\n') ADVANCE(266);
+ if (lookahead == '\t' ||
+ lookahead == ' ') ADVANCE(3);
+ if (lookahead != 0 &&
+ (lookahead < '\t' || '\r' < lookahead) &&
+ lookahead != '$' &&
+ lookahead != '@') ADVANCE(239);
+ END_STATE();
+ case 237:
+ ACCEPT_TOKEN(aux_sym_image_tag_token1);
+ if (lookahead == 'S' ||
+ lookahead == 's') ADVANCE(239);
+ if (lookahead != 0 &&
+ (lookahead < '\t' || '\r' < lookahead) &&
+ lookahead != ' ' &&
+ lookahead != '$' &&
+ lookahead != '@') ADVANCE(239);
+ END_STATE();
+ case 238:
+ ACCEPT_TOKEN(aux_sym_image_tag_token1);
+ if (lookahead == '\t' ||
+ (0x0b <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ' ||
+ lookahead == '$' ||
+ lookahead == '@') ADVANCE(294);
+ if (lookahead != 0 &&
+ (lookahead < '\t' || '\r' < lookahead)) ADVANCE(238);
+ END_STATE();
+ case 239:
+ ACCEPT_TOKEN(aux_sym_image_tag_token1);
+ if (lookahead != 0 &&
+ (lookahead < '\t' || '\r' < lookahead) &&
+ lookahead != ' ' &&
+ lookahead != '$' &&
+ lookahead != '@') ADVANCE(239);
+ END_STATE();
+ case 240:
+ ACCEPT_TOKEN(anon_sym_AT);
+ END_STATE();
+ case 241:
+ ACCEPT_TOKEN(aux_sym_image_digest_token1);
+ if (lookahead == 'S' ||
+ lookahead == 's') ADVANCE(242);
+ if (('0' <= lookahead && lookahead <= ':') ||
+ ('A' <= lookahead && lookahead <= 'Z') ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(242);
+ END_STATE();
+ case 242:
+ ACCEPT_TOKEN(aux_sym_image_digest_token1);
+ if (('0' <= lookahead && lookahead <= ':') ||
+ ('A' <= lookahead && lookahead <= 'Z') ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(242);
+ END_STATE();
+ case 243:
+ ACCEPT_TOKEN(anon_sym_DASH_DASH);
+ END_STATE();
+ case 244:
+ ACCEPT_TOKEN(aux_sym_param_token1);
+ if (lookahead == 'n') ADVANCE(246);
+ if (lookahead == '-' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(248);
+ END_STATE();
+ case 245:
+ ACCEPT_TOKEN(aux_sym_param_token1);
+ if (lookahead == 'o') ADVANCE(247);
+ if (lookahead == '-' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(248);
+ END_STATE();
+ case 246:
+ ACCEPT_TOKEN(aux_sym_param_token1);
+ if (lookahead == 't') ADVANCE(252);
+ if (lookahead == '-' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(248);
+ END_STATE();
+ case 247:
+ ACCEPT_TOKEN(aux_sym_param_token1);
+ if (lookahead == 'u') ADVANCE(244);
+ if (lookahead == '-' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(248);
+ END_STATE();
+ case 248:
+ ACCEPT_TOKEN(aux_sym_param_token1);
+ if (lookahead == '-' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(248);
+ END_STATE();
+ case 249:
+ ACCEPT_TOKEN(aux_sym_param_token2);
+ if (lookahead == '\n') ADVANCE(266);
+ if (lookahead == '\t' ||
+ lookahead == ' ') ADVANCE(3);
+ if (lookahead != 0 &&
+ (lookahead < '\t' || '\r' < lookahead)) ADVANCE(251);
+ END_STATE();
+ case 250:
+ ACCEPT_TOKEN(aux_sym_param_token2);
+ if (lookahead == '\t' ||
+ (0x0b <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') ADVANCE(294);
+ if (lookahead != 0 &&
+ (lookahead < '\t' || '\r' < lookahead)) ADVANCE(250);
+ END_STATE();
+ case 251:
+ ACCEPT_TOKEN(aux_sym_param_token2);
+ if (lookahead != 0 &&
+ (lookahead < '\t' || '\r' < lookahead) &&
+ lookahead != ' ') ADVANCE(251);
+ END_STATE();
+ case 252:
+ ACCEPT_TOKEN(anon_sym_mount);
+ if (lookahead == '-' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(248);
+ END_STATE();
+ case 253:
+ ACCEPT_TOKEN(anon_sym_COMMA);
+ END_STATE();
+ case 254:
+ ACCEPT_TOKEN(aux_sym_mount_param_param_token1);
+ if (lookahead == '\n') ADVANCE(266);
+ if (lookahead == '\t' ||
+ lookahead == ' ') ADVANCE(3);
+ if (lookahead != 0 &&
+ (lookahead < '\t' || '\r' < lookahead) &&
+ lookahead != ',' &&
+ lookahead != '=') ADVANCE(256);
+ END_STATE();
+ case 255:
+ ACCEPT_TOKEN(aux_sym_mount_param_param_token1);
+ if (lookahead == '\t' ||
+ (0x0b <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ' ||
+ lookahead == ',' ||
+ lookahead == '=') ADVANCE(294);
+ if (lookahead != 0 &&
+ (lookahead < '\t' || '\r' < lookahead)) ADVANCE(255);
+ END_STATE();
+ case 256:
+ ACCEPT_TOKEN(aux_sym_mount_param_param_token1);
+ if (lookahead != 0 &&
+ (lookahead < '\t' || '\r' < lookahead) &&
+ lookahead != ' ' &&
+ lookahead != ',' &&
+ lookahead != '=') ADVANCE(256);
+ END_STATE();
+ case 257:
+ ACCEPT_TOKEN(aux_sym_image_alias_token1);
+ if (lookahead == '-' ||
+ ('0' <= lookahead && lookahead <= '9') ||
+ ('A' <= lookahead && lookahead <= 'Z') ||
+ lookahead == '_' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(257);
+ END_STATE();
+ case 258:
+ ACCEPT_TOKEN(aux_sym_image_alias_token2);
+ if (lookahead == '-' ||
+ ('0' <= lookahead && lookahead <= '9') ||
+ ('A' <= lookahead && lookahead <= 'Z') ||
+ lookahead == '_' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(258);
+ END_STATE();
+ case 259:
+ ACCEPT_TOKEN(aux_sym_shell_fragment_token1);
+ if (lookahead == '\t' ||
+ lookahead == ' ') ADVANCE(259);
+ END_STATE();
+ case 260:
+ ACCEPT_TOKEN(aux_sym_shell_fragment_token2);
+ END_STATE();
+ case 261:
+ ACCEPT_TOKEN(aux_sym_shell_fragment_token2);
+ if (lookahead == '-') ADVANCE(243);
+ END_STATE();
+ case 262:
+ ACCEPT_TOKEN(aux_sym_shell_fragment_token3);
+ if (lookahead == '\n' ||
+ lookahead == '\\') ADVANCE(207);
+ if (lookahead != 0 &&
+ lookahead != '<') ADVANCE(208);
+ END_STATE();
+ case 263:
+ ACCEPT_TOKEN(aux_sym_shell_fragment_token3);
+ if (lookahead != 0 &&
+ lookahead != '\n' &&
+ lookahead != '<' &&
+ lookahead != '\\') ADVANCE(263);
+ END_STATE();
+ case 264:
+ ACCEPT_TOKEN(aux_sym_shell_fragment_token4);
+ END_STATE();
+ case 265:
+ ACCEPT_TOKEN(aux_sym_shell_fragment_token4);
+ if (lookahead == '\n') ADVANCE(266);
+ if (lookahead == '\t' ||
+ lookahead == ' ') ADVANCE(3);
+ END_STATE();
+ case 266:
+ ACCEPT_TOKEN(sym_line_continuation);
+ END_STATE();
+ case 267:
+ ACCEPT_TOKEN(sym_required_line_continuation);
+ END_STATE();
+ case 268:
+ ACCEPT_TOKEN(anon_sym_LBRACK);
+ END_STATE();
+ case 269:
+ ACCEPT_TOKEN(anon_sym_COMMA2);
+ END_STATE();
+ case 270:
+ ACCEPT_TOKEN(anon_sym_RBRACK);
+ END_STATE();
+ case 271:
+ ACCEPT_TOKEN(anon_sym_DQUOTE);
+ END_STATE();
+ case 272:
+ ACCEPT_TOKEN(aux_sym_json_string_token1);
+ if (lookahead == '\n') ADVANCE(274);
+ if (lookahead == '"' ||
+ lookahead == '\\') ADVANCE(294);
+ if (lookahead != 0) ADVANCE(272);
+ END_STATE();
+ case 273:
+ ACCEPT_TOKEN(aux_sym_json_string_token1);
+ if (lookahead == '#') ADVANCE(272);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') ADVANCE(273);
+ if (lookahead != 0 &&
+ lookahead != '"' &&
+ lookahead != '#' &&
+ lookahead != '\\') ADVANCE(274);
+ END_STATE();
+ case 274:
+ ACCEPT_TOKEN(aux_sym_json_string_token1);
+ if (lookahead != 0 &&
+ lookahead != '"' &&
+ lookahead != '\\') ADVANCE(274);
+ END_STATE();
+ case 275:
+ ACCEPT_TOKEN(sym_json_escape_sequence);
+ END_STATE();
+ case 276:
+ ACCEPT_TOKEN(aux_sym_double_quoted_string_token1);
+ if (lookahead == '#') ADVANCE(277);
+ if (lookahead == '\t' ||
+ (0x0b <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') ADVANCE(276);
+ if (lookahead != 0 &&
+ (lookahead < '\t' || '\r' < lookahead) &&
+ (lookahead < '"' || '$' < lookahead) &&
+ lookahead != '\\') ADVANCE(278);
+ END_STATE();
+ case 277:
+ ACCEPT_TOKEN(aux_sym_double_quoted_string_token1);
+ if (lookahead == '"' ||
+ lookahead == '$' ||
+ lookahead == '\\') ADVANCE(294);
+ if (lookahead != 0 &&
+ lookahead != '\n') ADVANCE(277);
+ END_STATE();
+ case 278:
+ ACCEPT_TOKEN(aux_sym_double_quoted_string_token1);
+ if (lookahead != 0 &&
+ lookahead != '\n' &&
+ lookahead != '"' &&
+ lookahead != '$' &&
+ lookahead != '\\') ADVANCE(278);
+ END_STATE();
+ case 279:
+ ACCEPT_TOKEN(anon_sym_BSLASH);
+ if (lookahead == '\n') ADVANCE(266);
+ if (lookahead == '\t' ||
+ lookahead == ' ') ADVANCE(3);
+ END_STATE();
+ case 280:
+ ACCEPT_TOKEN(anon_sym_BSLASH);
+ if (lookahead == '\n') ADVANCE(266);
+ if (lookahead == '\t' ||
+ lookahead == ' ') ADVANCE(3);
+ if (lookahead == '"' ||
+ lookahead == '\\') ADVANCE(291);
+ END_STATE();
+ case 281:
+ ACCEPT_TOKEN(anon_sym_BSLASH);
+ if (lookahead == '\n') ADVANCE(266);
+ if (lookahead == '\t' ||
+ lookahead == ' ') ADVANCE(3);
+ if (lookahead == '\'' ||
+ lookahead == '\\') ADVANCE(292);
+ END_STATE();
+ case 282:
+ ACCEPT_TOKEN(anon_sym_SQUOTE);
+ END_STATE();
+ case 283:
+ ACCEPT_TOKEN(aux_sym_single_quoted_string_token1);
+ if (lookahead == '#') ADVANCE(284);
+ if (lookahead == '\t' ||
+ (0x0b <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') ADVANCE(283);
+ if (lookahead != 0 &&
+ (lookahead < '\t' || '\r' < lookahead) &&
+ lookahead != '\'' &&
+ lookahead != '\\') ADVANCE(285);
+ END_STATE();
+ case 284:
+ ACCEPT_TOKEN(aux_sym_single_quoted_string_token1);
+ if (lookahead == '\'' ||
+ lookahead == '\\') ADVANCE(294);
+ if (lookahead != 0 &&
+ lookahead != '\n') ADVANCE(284);
+ END_STATE();
+ case 285:
+ ACCEPT_TOKEN(aux_sym_single_quoted_string_token1);
+ if (lookahead != 0 &&
+ lookahead != '\n' &&
+ lookahead != '\'' &&
+ lookahead != '\\') ADVANCE(285);
+ END_STATE();
+ case 286:
+ ACCEPT_TOKEN(aux_sym_unquoted_string_token1);
+ if (lookahead == '\t' ||
+ (0x0b <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ' ||
+ lookahead == '"' ||
+ lookahead == '$' ||
+ lookahead == '\'' ||
+ lookahead == '\\') ADVANCE(294);
+ if (lookahead != 0 &&
+ (lookahead < '\t' || '\r' < lookahead)) ADVANCE(286);
+ END_STATE();
+ case 287:
+ ACCEPT_TOKEN(aux_sym_unquoted_string_token1);
+ if (('0' <= lookahead && lookahead <= '9') ||
+ ('A' <= lookahead && lookahead <= 'Z') ||
+ lookahead == '_' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(287);
+ if (lookahead != 0 &&
+ (lookahead < '\t' || '\r' < lookahead) &&
+ lookahead != ' ' &&
+ lookahead != '"' &&
+ lookahead != '$' &&
+ lookahead != '\'' &&
+ lookahead != '\\') ADVANCE(289);
+ END_STATE();
+ case 288:
+ ACCEPT_TOKEN(aux_sym_unquoted_string_token1);
+ if (lookahead == '-' ||
+ lookahead == '.' ||
+ ('0' <= lookahead && lookahead <= '9') ||
+ ('A' <= lookahead && lookahead <= 'Z') ||
+ lookahead == '_' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(288);
+ if (lookahead != 0 &&
+ (lookahead < '\t' || '\r' < lookahead) &&
+ lookahead != ' ' &&
+ lookahead != '"' &&
+ lookahead != '$' &&
+ lookahead != '\'' &&
+ lookahead != '\\') ADVANCE(289);
+ END_STATE();
+ case 289:
+ ACCEPT_TOKEN(aux_sym_unquoted_string_token1);
+ if (lookahead != 0 &&
+ (lookahead < '\t' || '\r' < lookahead) &&
+ lookahead != ' ' &&
+ lookahead != '"' &&
+ lookahead != '$' &&
+ lookahead != '\'' &&
+ lookahead != '\\') ADVANCE(289);
+ END_STATE();
+ case 290:
+ ACCEPT_TOKEN(anon_sym_BSLASH2);
+ if (lookahead == '\n') ADVANCE(266);
+ if (lookahead == '\t' ||
+ lookahead == ' ') ADVANCE(3);
+ END_STATE();
+ case 291:
+ ACCEPT_TOKEN(sym_double_quoted_escape_sequence);
+ END_STATE();
+ case 292:
+ ACCEPT_TOKEN(sym_single_quoted_escape_sequence);
+ END_STATE();
+ case 293:
+ ACCEPT_TOKEN(sym__non_newline_whitespace);
+ if (lookahead == '\t' ||
+ lookahead == ' ') ADVANCE(293);
+ END_STATE();
+ case 294:
+ ACCEPT_TOKEN(sym_comment);
+ if (lookahead != 0 &&
+ lookahead != '\n') ADVANCE(294);
+ END_STATE();
+ default:
+ return false;
+ }
+}
+
+static const TSLexMode ts_lex_modes[STATE_COUNT] = {
+ [0] = {.lex_state = 0, .external_lex_state = 1},
+ [1] = {.lex_state = 166},
+ [2] = {.lex_state = 166},
+ [3] = {.lex_state = 166},
+ [4] = {.lex_state = 166},
+ [5] = {.lex_state = 166},
+ [6] = {.lex_state = 44, .external_lex_state = 2},
+ [7] = {.lex_state = 44, .external_lex_state = 2},
+ [8] = {.lex_state = 8},
+ [9] = {.lex_state = 31},
+ [10] = {.lex_state = 31},
+ [11] = {.lex_state = 31},
+ [12] = {.lex_state = 44, .external_lex_state = 2},
+ [13] = {.lex_state = 33, .external_lex_state = 2},
+ [14] = {.lex_state = 33, .external_lex_state = 2},
+ [15] = {.lex_state = 45, .external_lex_state = 2},
+ [16] = {.lex_state = 45, .external_lex_state = 2},
+ [17] = {.lex_state = 9},
+ [18] = {.lex_state = 9},
+ [19] = {.lex_state = 33, .external_lex_state = 2},
+ [20] = {.lex_state = 33, .external_lex_state = 2},
+ [21] = {.lex_state = 43, .external_lex_state = 2},
+ [22] = {.lex_state = 21},
+ [23] = {.lex_state = 43, .external_lex_state = 2},
+ [24] = {.lex_state = 16, .external_lex_state = 3},
+ [25] = {.lex_state = 21},
+ [26] = {.lex_state = 16, .external_lex_state = 3},
+ [27] = {.lex_state = 21},
+ [28] = {.lex_state = 43, .external_lex_state = 2},
+ [29] = {.lex_state = 26},
+ [30] = {.lex_state = 26},
+ [31] = {.lex_state = 43, .external_lex_state = 2},
+ [32] = {.lex_state = 16, .external_lex_state = 3},
+ [33] = {.lex_state = 8},
+ [34] = {.lex_state = 22},
+ [35] = {.lex_state = 16, .external_lex_state = 2},
+ [36] = {.lex_state = 23, .external_lex_state = 4},
+ [37] = {.lex_state = 22},
+ [38] = {.lex_state = 8},
+ [39] = {.lex_state = 26},
+ [40] = {.lex_state = 23, .external_lex_state = 4},
+ [41] = {.lex_state = 5},
+ [42] = {.lex_state = 10},
+ [43] = {.lex_state = 10},
+ [44] = {.lex_state = 23, .external_lex_state = 4},
+ [45] = {.lex_state = 26},
+ [46] = {.lex_state = 5},
+ [47] = {.lex_state = 26},
+ [48] = {.lex_state = 10},
+ [49] = {.lex_state = 26},
+ [50] = {.lex_state = 43, .external_lex_state = 2},
+ [51] = {.lex_state = 16, .external_lex_state = 2},
+ [52] = {.lex_state = 26},
+ [53] = {.lex_state = 45, .external_lex_state = 2},
+ [54] = {.lex_state = 11},
+ [55] = {.lex_state = 23},
+ [56] = {.lex_state = 33, .external_lex_state = 2},
+ [57] = {.lex_state = 10},
+ [58] = {.lex_state = 33, .external_lex_state = 2},
+ [59] = {.lex_state = 33, .external_lex_state = 2},
+ [60] = {.lex_state = 33, .external_lex_state = 2},
+ [61] = {.lex_state = 23},
+ [62] = {.lex_state = 34},
+ [63] = {.lex_state = 33, .external_lex_state = 2},
+ [64] = {.lex_state = 33, .external_lex_state = 2},
+ [65] = {.lex_state = 9},
+ [66] = {.lex_state = 10},
+ [67] = {.lex_state = 45, .external_lex_state = 2},
+ [68] = {.lex_state = 55},
+ [69] = {.lex_state = 23},
+ [70] = {.lex_state = 16, .external_lex_state = 2},
+ [71] = {.lex_state = 29},
+ [72] = {.lex_state = 9},
+ [73] = {.lex_state = 11},
+ [74] = {.lex_state = 44, .external_lex_state = 2},
+ [75] = {.lex_state = 36},
+ [76] = {.lex_state = 166},
+ [77] = {.lex_state = 21},
+ [78] = {.lex_state = 13},
+ [79] = {.lex_state = 21},
+ [80] = {.lex_state = 24},
+ [81] = {.lex_state = 13},
+ [82] = {.lex_state = 21},
+ [83] = {.lex_state = 12},
+ [84] = {.lex_state = 12},
+ [85] = {.lex_state = 14},
+ [86] = {.lex_state = 54},
+ [87] = {.lex_state = 24},
+ [88] = {.lex_state = 14},
+ [89] = {.lex_state = 54},
+ [90] = {.lex_state = 14},
+ [91] = {.lex_state = 54},
+ [92] = {.lex_state = 12},
+ [93] = {.lex_state = 24},
+ [94] = {.lex_state = 13},
+ [95] = {.lex_state = 27},
+ [96] = {.lex_state = 26},
+ [97] = {.lex_state = 27},
+ [98] = {.lex_state = 166},
+ [99] = {.lex_state = 27},
+ [100] = {.lex_state = 23, .external_lex_state = 4},
+ [101] = {.lex_state = 27},
+ [102] = {.lex_state = 51},
+ [103] = {.lex_state = 27},
+ [104] = {.lex_state = 8},
+ [105] = {.lex_state = 23, .external_lex_state = 4},
+ [106] = {.lex_state = 20},
+ [107] = {.lex_state = 33, .external_lex_state = 2},
+ [108] = {.lex_state = 17, .external_lex_state = 4},
+ [109] = {.lex_state = 22},
+ [110] = {.lex_state = 27},
+ [111] = {.lex_state = 17, .external_lex_state = 4},
+ [112] = {.lex_state = 17, .external_lex_state = 4},
+ [113] = {.lex_state = 55},
+ [114] = {.lex_state = 17, .external_lex_state = 4},
+ [115] = {.lex_state = 20},
+ [116] = {.lex_state = 35},
+ [117] = {.lex_state = 23, .external_lex_state = 4},
+ [118] = {.lex_state = 35},
+ [119] = {.lex_state = 14},
+ [120] = {.lex_state = 27},
+ [121] = {.lex_state = 26},
+ [122] = {.lex_state = 8},
+ [123] = {.lex_state = 166},
+ [124] = {.lex_state = 37},
+ [125] = {.lex_state = 22},
+ [126] = {.lex_state = 53},
+ [127] = {.lex_state = 23},
+ [128] = {.lex_state = 5, .external_lex_state = 4},
+ [129] = {.lex_state = 16, .external_lex_state = 4},
+ [130] = {.lex_state = 11},
+ [131] = {.lex_state = 39},
+ [132] = {.lex_state = 39},
+ [133] = {.lex_state = 11},
+ [134] = {.lex_state = 33, .external_lex_state = 2},
+ [135] = {.lex_state = 32},
+ [136] = {.lex_state = 10},
+ [137] = {.lex_state = 10},
+ [138] = {.lex_state = 5},
+ [139] = {.lex_state = 5, .external_lex_state = 4},
+ [140] = {.lex_state = 5, .external_lex_state = 4},
+ [141] = {.lex_state = 10},
+ [142] = {.lex_state = 5, .external_lex_state = 4},
+ [143] = {.lex_state = 32},
+ [144] = {.lex_state = 16, .external_lex_state = 4},
+ [145] = {.lex_state = 5, .external_lex_state = 4},
+ [146] = {.lex_state = 5},
+ [147] = {.lex_state = 5},
+ [148] = {.lex_state = 38},
+ [149] = {.lex_state = 23},
+ [150] = {.lex_state = 23},
+ [151] = {.lex_state = 5, .external_lex_state = 4},
+ [152] = {.lex_state = 16, .external_lex_state = 4},
+ [153] = {.lex_state = 5, .external_lex_state = 4},
+ [154] = {.lex_state = 5, .external_lex_state = 4},
+ [155] = {.lex_state = 5, .external_lex_state = 4},
+ [156] = {.lex_state = 166},
+ [157] = {.lex_state = 41},
+ [158] = {.lex_state = 32},
+ [159] = {.lex_state = 5},
+ [160] = {.lex_state = 5},
+ [161] = {.lex_state = 14},
+ [162] = {.lex_state = 12},
+ [163] = {.lex_state = 12},
+ [164] = {.lex_state = 47},
+ [165] = {.lex_state = 47},
+ [166] = {.lex_state = 47},
+ [167] = {.lex_state = 47},
+ [168] = {.lex_state = 17},
+ [169] = {.lex_state = 47},
+ [170] = {.lex_state = 47},
+ [171] = {.lex_state = 47},
+ [172] = {.lex_state = 47},
+ [173] = {.lex_state = 16, .external_lex_state = 4},
+ [174] = {.lex_state = 47},
+ [175] = {.lex_state = 47},
+ [176] = {.lex_state = 47},
+ [177] = {.lex_state = 47},
+ [178] = {.lex_state = 166},
+ [179] = {.lex_state = 47},
+ [180] = {.lex_state = 47},
+ [181] = {.lex_state = 166, .external_lex_state = 5},
+ [182] = {.lex_state = 47},
+ [183] = {.lex_state = 166, .external_lex_state = 5},
+ [184] = {.lex_state = 47},
+ [185] = {.lex_state = 47},
+ [186] = {.lex_state = 166},
+ [187] = {.lex_state = 47},
+ [188] = {.lex_state = 166},
+ [189] = {.lex_state = 47},
+ [190] = {.lex_state = 166},
+ [191] = {.lex_state = 166},
+ [192] = {.lex_state = 47},
+ [193] = {.lex_state = 16},
+ [194] = {.lex_state = 13},
+ [195] = {.lex_state = 17, .external_lex_state = 4},
+ [196] = {.lex_state = 166},
+ [197] = {.lex_state = 13},
+ [198] = {.lex_state = 14},
+ [199] = {.lex_state = 47},
+ [200] = {.lex_state = 13},
+ [201] = {.lex_state = 17},
+ [202] = {.lex_state = 10},
+ [203] = {.lex_state = 16},
+ [204] = {.lex_state = 17},
+ [205] = {.lex_state = 12},
+ [206] = {.lex_state = 14},
+ [207] = {.lex_state = 24},
+ [208] = {.lex_state = 24},
+ [209] = {.lex_state = 166, .external_lex_state = 5},
+ [210] = {.lex_state = 166},
+ [211] = {.lex_state = 24},
+ [212] = {.lex_state = 54},
+ [213] = {.lex_state = 16},
+ [214] = {.lex_state = 54},
+ [215] = {.lex_state = 54},
+ [216] = {.lex_state = 47},
+ [217] = {.lex_state = 14},
+ [218] = {.lex_state = 38},
+ [219] = {.lex_state = 20},
+ [220] = {.lex_state = 17},
+ [221] = {.lex_state = 14},
+ [222] = {.lex_state = 55},
+ [223] = {.lex_state = 20},
+ [224] = {.lex_state = 20},
+ [225] = {.lex_state = 5, .external_lex_state = 4},
+ [226] = {.lex_state = 20},
+ [227] = {.lex_state = 20},
+ [228] = {.lex_state = 166},
+ [229] = {.lex_state = 16},
+ [230] = {.lex_state = 166},
+ [231] = {.lex_state = 5, .external_lex_state = 4},
+ [232] = {.lex_state = 166, .external_lex_state = 5},
+ [233] = {.lex_state = 5, .external_lex_state = 4},
+ [234] = {.lex_state = 5, .external_lex_state = 4},
+ [235] = {.lex_state = 166},
+ [236] = {.lex_state = 166},
+ [237] = {.lex_state = 5},
+ [238] = {.lex_state = 56},
+ [239] = {.lex_state = 14},
+ [240] = {.lex_state = 5, .external_lex_state = 4},
+ [241] = {.lex_state = 166},
+ [242] = {.lex_state = 14},
+ [243] = {.lex_state = 5},
+ [244] = {.lex_state = 166},
+ [245] = {.lex_state = 56},
+ [246] = {.lex_state = 14},
+ [247] = {.lex_state = 46},
+ [248] = {.lex_state = 57},
+ [249] = {.lex_state = 5},
+ [250] = {.lex_state = 5},
+ [251] = {.lex_state = 5},
+ [252] = {.lex_state = 166},
+ [253] = {.lex_state = 48},
+ [254] = {.lex_state = 48},
+ [255] = {.lex_state = 57},
+ [256] = {.lex_state = 5},
+ [257] = {.lex_state = 166},
+ [258] = {.lex_state = 5},
+ [259] = {.lex_state = 5},
+ [260] = {.lex_state = 259},
+ [261] = {.lex_state = 259},
+ [262] = {.lex_state = 166},
+ [263] = {.lex_state = 5},
+ [264] = {.lex_state = 50},
+ [265] = {.lex_state = 166},
+ [266] = {.lex_state = 166},
+ [267] = {.lex_state = 5},
+ [268] = {.lex_state = 166},
+ [269] = {.lex_state = 166},
+ [270] = {.lex_state = 5},
+ [271] = {.lex_state = 56},
+ [272] = {.lex_state = 5},
+ [273] = {.lex_state = 166},
+ [274] = {.lex_state = 201},
+ [275] = {.lex_state = 201},
+ [276] = {.lex_state = 5},
+ [277] = {.lex_state = 166},
+ [278] = {.lex_state = 57},
+ [279] = {.lex_state = 5},
+ [280] = {.lex_state = 52},
+ [281] = {.lex_state = 166},
+ [282] = {.lex_state = 57},
+ [283] = {.lex_state = 5},
+ [284] = {.lex_state = 5},
+ [285] = {.lex_state = 166},
+ [286] = {.lex_state = 5},
+ [287] = {.lex_state = 5},
+ [288] = {.lex_state = 166},
+ [289] = {.lex_state = 166},
+ [290] = {.lex_state = 5},
+ [291] = {.lex_state = 166},
+ [292] = {.lex_state = 166},
+ [293] = {.lex_state = 5},
+ [294] = {.lex_state = 166},
+ [295] = {.lex_state = 166},
+ [296] = {.lex_state = 5},
+ [297] = {.lex_state = 166},
+ [298] = {.lex_state = 58},
+ [299] = {.lex_state = 166},
+ [300] = {.lex_state = 166},
+ [301] = {.lex_state = 166},
+ [302] = {.lex_state = 5},
+ [303] = {.lex_state = 166},
+ [304] = {.lex_state = 5},
+ [305] = {.lex_state = 166},
+ [306] = {.lex_state = 166},
+ [307] = {.lex_state = 58},
+ [308] = {.lex_state = 166},
+ [309] = {.lex_state = 58},
+ [310] = {.lex_state = 166},
+ [311] = {.lex_state = 58},
+ [312] = {.lex_state = 166},
+ [313] = {.lex_state = 58},
+ [314] = {.lex_state = 58},
+ [315] = {.lex_state = 58},
+ [316] = {.lex_state = 58},
+ [317] = {.lex_state = 58},
+ [318] = {.lex_state = 58},
+ [319] = {.lex_state = 58},
+ [320] = {.lex_state = 58},
+ [321] = {.lex_state = 58},
+ [322] = {.lex_state = 58},
+ [323] = {.lex_state = 50},
+ [324] = {.lex_state = 50},
+};
+
+static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
+ [0] = {
+ [ts_builtin_sym_end] = ACTIONS(1),
+ [anon_sym_COLON] = ACTIONS(1),
+ [aux_sym__immediate_user_name_or_group_fragment_token1] = ACTIONS(1),
+ [anon_sym_EQ] = ACTIONS(1),
+ [aux_sym_path_token1] = ACTIONS(1),
+ [anon_sym_DOLLAR] = ACTIONS(1),
+ [anon_sym_DOLLAR2] = ACTIONS(1),
+ [anon_sym_LBRACE] = ACTIONS(1),
+ [anon_sym_RBRACE] = ACTIONS(1),
+ [sym_variable] = ACTIONS(1),
+ [aux_sym_image_name_token1] = ACTIONS(1),
+ [anon_sym_AT] = ACTIONS(1),
+ [anon_sym_DASH_DASH] = ACTIONS(1),
+ [anon_sym_COMMA] = ACTIONS(1),
+ [aux_sym_shell_fragment_token2] = ACTIONS(1),
+ [sym_line_continuation] = ACTIONS(3),
+ [anon_sym_LBRACK] = ACTIONS(1),
+ [anon_sym_COMMA2] = ACTIONS(1),
+ [anon_sym_RBRACK] = ACTIONS(1),
+ [anon_sym_DQUOTE] = ACTIONS(1),
+ [anon_sym_BSLASH] = ACTIONS(1),
+ [anon_sym_SQUOTE] = ACTIONS(1),
+ [sym_comment] = ACTIONS(5),
+ [sym_heredoc_marker] = ACTIONS(1),
+ [sym_heredoc_line] = ACTIONS(1),
+ [sym_heredoc_end] = ACTIONS(1),
+ [sym_heredoc_nl] = ACTIONS(1),
+ [sym_error_sentinel] = ACTIONS(1),
+ },
+ [1] = {
+ [sym_source_file] = STATE(273),
+ [sym__instruction] = STATE(267),
+ [sym_from_instruction] = STATE(267),
+ [sym_run_instruction] = STATE(267),
+ [sym_cmd_instruction] = STATE(267),
+ [sym_label_instruction] = STATE(267),
+ [sym_expose_instruction] = STATE(267),
+ [sym_env_instruction] = STATE(267),
+ [sym_add_instruction] = STATE(267),
+ [sym_copy_instruction] = STATE(267),
+ [sym_entrypoint_instruction] = STATE(267),
+ [sym_volume_instruction] = STATE(267),
+ [sym_user_instruction] = STATE(267),
+ [sym_workdir_instruction] = STATE(267),
+ [sym_arg_instruction] = STATE(267),
+ [sym_onbuild_instruction] = STATE(267),
+ [sym_stopsignal_instruction] = STATE(267),
+ [sym_healthcheck_instruction] = STATE(267),
+ [sym_shell_instruction] = STATE(267),
+ [sym_maintainer_instruction] = STATE(267),
+ [sym_cross_build_instruction] = STATE(267),
+ [aux_sym_source_file_repeat1] = STATE(2),
+ [ts_builtin_sym_end] = ACTIONS(7),
+ [aux_sym_from_instruction_token1] = ACTIONS(9),
+ [aux_sym_run_instruction_token1] = ACTIONS(11),
+ [aux_sym_cmd_instruction_token1] = ACTIONS(13),
+ [aux_sym_label_instruction_token1] = ACTIONS(15),
+ [aux_sym_expose_instruction_token1] = ACTIONS(17),
+ [aux_sym_env_instruction_token1] = ACTIONS(19),
+ [aux_sym_add_instruction_token1] = ACTIONS(21),
+ [aux_sym_copy_instruction_token1] = ACTIONS(23),
+ [aux_sym_entrypoint_instruction_token1] = ACTIONS(25),
+ [aux_sym_volume_instruction_token1] = ACTIONS(27),
+ [aux_sym_user_instruction_token1] = ACTIONS(29),
+ [aux_sym_workdir_instruction_token1] = ACTIONS(31),
+ [aux_sym_arg_instruction_token1] = ACTIONS(33),
+ [aux_sym_onbuild_instruction_token1] = ACTIONS(35),
+ [aux_sym_stopsignal_instruction_token1] = ACTIONS(37),
+ [aux_sym_healthcheck_instruction_token1] = ACTIONS(39),
+ [aux_sym_shell_instruction_token1] = ACTIONS(41),
+ [aux_sym_maintainer_instruction_token1] = ACTIONS(43),
+ [aux_sym_cross_build_instruction_token1] = ACTIONS(45),
+ [sym_line_continuation] = ACTIONS(3),
+ [sym_comment] = ACTIONS(3),
+ },
+};
+
+static const uint16_t ts_small_parse_table[] = {
+ [0] = 23,
+ ACTIONS(9), 1,
+ aux_sym_from_instruction_token1,
+ ACTIONS(11), 1,
+ aux_sym_run_instruction_token1,
+ ACTIONS(13), 1,
+ aux_sym_cmd_instruction_token1,
+ ACTIONS(15), 1,
+ aux_sym_label_instruction_token1,
+ ACTIONS(17), 1,
+ aux_sym_expose_instruction_token1,
+ ACTIONS(19), 1,
+ aux_sym_env_instruction_token1,
+ ACTIONS(21), 1,
+ aux_sym_add_instruction_token1,
+ ACTIONS(23), 1,
+ aux_sym_copy_instruction_token1,
+ ACTIONS(25), 1,
+ aux_sym_entrypoint_instruction_token1,
+ ACTIONS(27), 1,
+ aux_sym_volume_instruction_token1,
+ ACTIONS(29), 1,
+ aux_sym_user_instruction_token1,
+ ACTIONS(31), 1,
+ aux_sym_workdir_instruction_token1,
+ ACTIONS(33), 1,
+ aux_sym_arg_instruction_token1,
+ ACTIONS(35), 1,
+ aux_sym_onbuild_instruction_token1,
+ ACTIONS(37), 1,
+ aux_sym_stopsignal_instruction_token1,
+ ACTIONS(39), 1,
+ aux_sym_healthcheck_instruction_token1,
+ ACTIONS(41), 1,
+ aux_sym_shell_instruction_token1,
+ ACTIONS(43), 1,
+ aux_sym_maintainer_instruction_token1,
+ ACTIONS(45), 1,
+ aux_sym_cross_build_instruction_token1,
+ ACTIONS(47), 1,
+ ts_builtin_sym_end,
+ STATE(3), 1,
+ aux_sym_source_file_repeat1,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(267), 20,
+ sym__instruction,
+ sym_from_instruction,
+ sym_run_instruction,
+ sym_cmd_instruction,
+ sym_label_instruction,
+ sym_expose_instruction,
+ sym_env_instruction,
+ sym_add_instruction,
+ sym_copy_instruction,
+ sym_entrypoint_instruction,
+ sym_volume_instruction,
+ sym_user_instruction,
+ sym_workdir_instruction,
+ sym_arg_instruction,
+ sym_onbuild_instruction,
+ sym_stopsignal_instruction,
+ sym_healthcheck_instruction,
+ sym_shell_instruction,
+ sym_maintainer_instruction,
+ sym_cross_build_instruction,
+ [90] = 23,
+ ACTIONS(49), 1,
+ ts_builtin_sym_end,
+ ACTIONS(51), 1,
+ aux_sym_from_instruction_token1,
+ ACTIONS(54), 1,
+ aux_sym_run_instruction_token1,
+ ACTIONS(57), 1,
+ aux_sym_cmd_instruction_token1,
+ ACTIONS(60), 1,
+ aux_sym_label_instruction_token1,
+ ACTIONS(63), 1,
+ aux_sym_expose_instruction_token1,
+ ACTIONS(66), 1,
+ aux_sym_env_instruction_token1,
+ ACTIONS(69), 1,
+ aux_sym_add_instruction_token1,
+ ACTIONS(72), 1,
+ aux_sym_copy_instruction_token1,
+ ACTIONS(75), 1,
+ aux_sym_entrypoint_instruction_token1,
+ ACTIONS(78), 1,
+ aux_sym_volume_instruction_token1,
+ ACTIONS(81), 1,
+ aux_sym_user_instruction_token1,
+ ACTIONS(84), 1,
+ aux_sym_workdir_instruction_token1,
+ ACTIONS(87), 1,
+ aux_sym_arg_instruction_token1,
+ ACTIONS(90), 1,
+ aux_sym_onbuild_instruction_token1,
+ ACTIONS(93), 1,
+ aux_sym_stopsignal_instruction_token1,
+ ACTIONS(96), 1,
+ aux_sym_healthcheck_instruction_token1,
+ ACTIONS(99), 1,
+ aux_sym_shell_instruction_token1,
+ ACTIONS(102), 1,
+ aux_sym_maintainer_instruction_token1,
+ ACTIONS(105), 1,
+ aux_sym_cross_build_instruction_token1,
+ STATE(3), 1,
+ aux_sym_source_file_repeat1,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(267), 20,
+ sym__instruction,
+ sym_from_instruction,
+ sym_run_instruction,
+ sym_cmd_instruction,
+ sym_label_instruction,
+ sym_expose_instruction,
+ sym_env_instruction,
+ sym_add_instruction,
+ sym_copy_instruction,
+ sym_entrypoint_instruction,
+ sym_volume_instruction,
+ sym_user_instruction,
+ sym_workdir_instruction,
+ sym_arg_instruction,
+ sym_onbuild_instruction,
+ sym_stopsignal_instruction,
+ sym_healthcheck_instruction,
+ sym_shell_instruction,
+ sym_maintainer_instruction,
+ sym_cross_build_instruction,
+ [180] = 21,
+ ACTIONS(9), 1,
+ aux_sym_from_instruction_token1,
+ ACTIONS(11), 1,
+ aux_sym_run_instruction_token1,
+ ACTIONS(13), 1,
+ aux_sym_cmd_instruction_token1,
+ ACTIONS(15), 1,
+ aux_sym_label_instruction_token1,
+ ACTIONS(17), 1,
+ aux_sym_expose_instruction_token1,
+ ACTIONS(19), 1,
+ aux_sym_env_instruction_token1,
+ ACTIONS(21), 1,
+ aux_sym_add_instruction_token1,
+ ACTIONS(23), 1,
+ aux_sym_copy_instruction_token1,
+ ACTIONS(25), 1,
+ aux_sym_entrypoint_instruction_token1,
+ ACTIONS(27), 1,
+ aux_sym_volume_instruction_token1,
+ ACTIONS(29), 1,
+ aux_sym_user_instruction_token1,
+ ACTIONS(31), 1,
+ aux_sym_workdir_instruction_token1,
+ ACTIONS(33), 1,
+ aux_sym_arg_instruction_token1,
+ ACTIONS(35), 1,
+ aux_sym_onbuild_instruction_token1,
+ ACTIONS(37), 1,
+ aux_sym_stopsignal_instruction_token1,
+ ACTIONS(39), 1,
+ aux_sym_healthcheck_instruction_token1,
+ ACTIONS(41), 1,
+ aux_sym_shell_instruction_token1,
+ ACTIONS(43), 1,
+ aux_sym_maintainer_instruction_token1,
+ ACTIONS(45), 1,
+ aux_sym_cross_build_instruction_token1,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(279), 20,
+ sym__instruction,
+ sym_from_instruction,
+ sym_run_instruction,
+ sym_cmd_instruction,
+ sym_label_instruction,
+ sym_expose_instruction,
+ sym_env_instruction,
+ sym_add_instruction,
+ sym_copy_instruction,
+ sym_entrypoint_instruction,
+ sym_volume_instruction,
+ sym_user_instruction,
+ sym_workdir_instruction,
+ sym_arg_instruction,
+ sym_onbuild_instruction,
+ sym_stopsignal_instruction,
+ sym_healthcheck_instruction,
+ sym_shell_instruction,
+ sym_maintainer_instruction,
+ sym_cross_build_instruction,
+ [264] = 2,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(49), 20,
+ ts_builtin_sym_end,
+ aux_sym_from_instruction_token1,
+ aux_sym_run_instruction_token1,
+ aux_sym_cmd_instruction_token1,
+ aux_sym_label_instruction_token1,
+ aux_sym_expose_instruction_token1,
+ aux_sym_env_instruction_token1,
+ aux_sym_add_instruction_token1,
+ aux_sym_copy_instruction_token1,
+ aux_sym_entrypoint_instruction_token1,
+ aux_sym_volume_instruction_token1,
+ aux_sym_user_instruction_token1,
+ aux_sym_workdir_instruction_token1,
+ aux_sym_arg_instruction_token1,
+ aux_sym_onbuild_instruction_token1,
+ aux_sym_stopsignal_instruction_token1,
+ aux_sym_healthcheck_instruction_token1,
+ aux_sym_shell_instruction_token1,
+ aux_sym_maintainer_instruction_token1,
+ aux_sym_cross_build_instruction_token1,
+ [291] = 9,
+ ACTIONS(110), 1,
+ anon_sym_DASH_DASH,
+ ACTIONS(112), 1,
+ anon_sym_LBRACK,
+ ACTIONS(114), 1,
+ sym_heredoc_marker,
+ STATE(26), 1,
+ aux_sym_shell_fragment_repeat1,
+ STATE(129), 1,
+ sym_shell_fragment,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(128), 2,
+ sym_shell_command,
+ sym_json_string_array,
+ STATE(7), 3,
+ sym_param,
+ sym_mount_param,
+ aux_sym_run_instruction_repeat1,
+ ACTIONS(108), 4,
+ aux_sym_path_token2,
+ aux_sym_shell_fragment_token2,
+ aux_sym_shell_fragment_token3,
+ aux_sym_shell_fragment_token4,
+ [326] = 9,
+ ACTIONS(110), 1,
+ anon_sym_DASH_DASH,
+ ACTIONS(112), 1,
+ anon_sym_LBRACK,
+ ACTIONS(114), 1,
+ sym_heredoc_marker,
+ STATE(26), 1,
+ aux_sym_shell_fragment_repeat1,
+ STATE(129), 1,
+ sym_shell_fragment,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(151), 2,
+ sym_shell_command,
+ sym_json_string_array,
+ STATE(12), 3,
+ sym_param,
+ sym_mount_param,
+ aux_sym_run_instruction_repeat1,
+ ACTIONS(108), 4,
+ aux_sym_path_token2,
+ aux_sym_shell_fragment_token2,
+ aux_sym_shell_fragment_token3,
+ aux_sym_shell_fragment_token4,
+ [361] = 9,
+ ACTIONS(116), 1,
+ anon_sym_LF,
+ ACTIONS(118), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(120), 1,
+ aux_sym__env_key_token1,
+ ACTIONS(122), 1,
+ anon_sym_DQUOTE,
+ ACTIONS(124), 1,
+ anon_sym_SQUOTE,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(126), 2,
+ aux_sym_unquoted_string_token1,
+ anon_sym_BSLASH2,
+ STATE(38), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_unquoted_string_repeat1,
+ STATE(219), 3,
+ sym_double_quoted_string,
+ sym_single_quoted_string,
+ sym_unquoted_string,
+ [395] = 8,
+ ACTIONS(3), 1,
+ sym_line_continuation,
+ ACTIONS(5), 1,
+ sym_comment,
+ ACTIONS(128), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(130), 1,
+ anon_sym_DQUOTE,
+ ACTIONS(132), 1,
+ anon_sym_SQUOTE,
+ ACTIONS(134), 2,
+ aux_sym_unquoted_string_token1,
+ anon_sym_BSLASH2,
+ STATE(17), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_unquoted_string_repeat1,
+ STATE(304), 3,
+ sym_double_quoted_string,
+ sym_single_quoted_string,
+ sym_unquoted_string,
+ [425] = 8,
+ ACTIONS(3), 1,
+ sym_line_continuation,
+ ACTIONS(5), 1,
+ sym_comment,
+ ACTIONS(128), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(130), 1,
+ anon_sym_DQUOTE,
+ ACTIONS(132), 1,
+ anon_sym_SQUOTE,
+ ACTIONS(134), 2,
+ aux_sym_unquoted_string_token1,
+ anon_sym_BSLASH2,
+ STATE(17), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_unquoted_string_repeat1,
+ STATE(146), 3,
+ sym_double_quoted_string,
+ sym_single_quoted_string,
+ sym_unquoted_string,
+ [455] = 8,
+ ACTIONS(3), 1,
+ sym_line_continuation,
+ ACTIONS(5), 1,
+ sym_comment,
+ ACTIONS(128), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(130), 1,
+ anon_sym_DQUOTE,
+ ACTIONS(132), 1,
+ anon_sym_SQUOTE,
+ ACTIONS(134), 2,
+ aux_sym_unquoted_string_token1,
+ anon_sym_BSLASH2,
+ STATE(17), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_unquoted_string_repeat1,
+ STATE(296), 3,
+ sym_double_quoted_string,
+ sym_single_quoted_string,
+ sym_unquoted_string,
+ [485] = 5,
+ ACTIONS(138), 1,
+ anon_sym_DASH_DASH,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(141), 2,
+ sym_heredoc_marker,
+ anon_sym_LBRACK,
+ STATE(12), 3,
+ sym_param,
+ sym_mount_param,
+ aux_sym_run_instruction_repeat1,
+ ACTIONS(136), 4,
+ aux_sym_path_token2,
+ aux_sym_shell_fragment_token2,
+ aux_sym_shell_fragment_token3,
+ aux_sym_shell_fragment_token4,
+ [508] = 11,
+ ACTIONS(3), 1,
+ sym_line_continuation,
+ ACTIONS(5), 1,
+ sym_comment,
+ ACTIONS(143), 1,
+ aux_sym_path_token1,
+ ACTIONS(145), 1,
+ aux_sym_path_with_heredoc_token1,
+ ACTIONS(147), 1,
+ anon_sym_DOLLAR,
+ ACTIONS(149), 1,
+ anon_sym_DASH_DASH,
+ ACTIONS(151), 1,
+ sym_heredoc_marker,
+ STATE(63), 1,
+ aux_sym_add_instruction_repeat2,
+ STATE(86), 1,
+ sym_expansion,
+ STATE(253), 1,
+ sym_path_with_heredoc,
+ STATE(20), 2,
+ sym_param,
+ aux_sym_add_instruction_repeat1,
+ [543] = 11,
+ ACTIONS(3), 1,
+ sym_line_continuation,
+ ACTIONS(5), 1,
+ sym_comment,
+ ACTIONS(143), 1,
+ aux_sym_path_token1,
+ ACTIONS(145), 1,
+ aux_sym_path_with_heredoc_token1,
+ ACTIONS(147), 1,
+ anon_sym_DOLLAR,
+ ACTIONS(149), 1,
+ anon_sym_DASH_DASH,
+ ACTIONS(151), 1,
+ sym_heredoc_marker,
+ STATE(64), 1,
+ aux_sym_add_instruction_repeat2,
+ STATE(86), 1,
+ sym_expansion,
+ STATE(253), 1,
+ sym_path_with_heredoc,
+ STATE(19), 2,
+ sym_param,
+ aux_sym_add_instruction_repeat1,
+ [578] = 8,
+ ACTIONS(155), 1,
+ aux_sym_shell_fragment_token2,
+ ACTIONS(157), 1,
+ anon_sym_LBRACK,
+ ACTIONS(159), 1,
+ sym_heredoc_marker,
+ STATE(35), 1,
+ aux_sym_shell_fragment_repeat1,
+ STATE(193), 1,
+ sym_shell_fragment,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(251), 2,
+ sym_shell_command,
+ sym_json_string_array,
+ ACTIONS(153), 3,
+ aux_sym_path_token2,
+ aux_sym_shell_fragment_token3,
+ aux_sym_shell_fragment_token4,
+ [607] = 8,
+ ACTIONS(155), 1,
+ aux_sym_shell_fragment_token2,
+ ACTIONS(157), 1,
+ anon_sym_LBRACK,
+ ACTIONS(159), 1,
+ sym_heredoc_marker,
+ STATE(35), 1,
+ aux_sym_shell_fragment_repeat1,
+ STATE(193), 1,
+ sym_shell_fragment,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(258), 2,
+ sym_shell_command,
+ sym_json_string_array,
+ ACTIONS(153), 3,
+ aux_sym_path_token2,
+ aux_sym_shell_fragment_token3,
+ aux_sym_shell_fragment_token4,
+ [636] = 6,
+ ACTIONS(128), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(161), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(165), 2,
+ aux_sym_unquoted_string_token1,
+ anon_sym_BSLASH2,
+ ACTIONS(163), 3,
+ aux_sym_label_pair_token1,
+ anon_sym_DQUOTE,
+ anon_sym_SQUOTE,
+ STATE(18), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_unquoted_string_repeat1,
+ [661] = 6,
+ ACTIONS(167), 1,
+ anon_sym_LF,
+ ACTIONS(169), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(174), 2,
+ aux_sym_unquoted_string_token1,
+ anon_sym_BSLASH2,
+ ACTIONS(172), 3,
+ aux_sym_label_pair_token1,
+ anon_sym_DQUOTE,
+ anon_sym_SQUOTE,
+ STATE(18), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_unquoted_string_repeat1,
+ [686] = 11,
+ ACTIONS(3), 1,
+ sym_line_continuation,
+ ACTIONS(5), 1,
+ sym_comment,
+ ACTIONS(143), 1,
+ aux_sym_path_token1,
+ ACTIONS(145), 1,
+ aux_sym_path_with_heredoc_token1,
+ ACTIONS(147), 1,
+ anon_sym_DOLLAR,
+ ACTIONS(149), 1,
+ anon_sym_DASH_DASH,
+ ACTIONS(151), 1,
+ sym_heredoc_marker,
+ STATE(60), 1,
+ aux_sym_add_instruction_repeat2,
+ STATE(86), 1,
+ sym_expansion,
+ STATE(253), 1,
+ sym_path_with_heredoc,
+ STATE(56), 2,
+ sym_param,
+ aux_sym_add_instruction_repeat1,
+ [721] = 11,
+ ACTIONS(3), 1,
+ sym_line_continuation,
+ ACTIONS(5), 1,
+ sym_comment,
+ ACTIONS(143), 1,
+ aux_sym_path_token1,
+ ACTIONS(145), 1,
+ aux_sym_path_with_heredoc_token1,
+ ACTIONS(147), 1,
+ anon_sym_DOLLAR,
+ ACTIONS(149), 1,
+ anon_sym_DASH_DASH,
+ ACTIONS(151), 1,
+ sym_heredoc_marker,
+ STATE(58), 1,
+ aux_sym_add_instruction_repeat2,
+ STATE(86), 1,
+ sym_expansion,
+ STATE(253), 1,
+ sym_path_with_heredoc,
+ STATE(56), 2,
+ sym_param,
+ aux_sym_add_instruction_repeat1,
+ [756] = 5,
+ ACTIONS(181), 1,
+ anon_sym_COMMA,
+ STATE(23), 1,
+ aux_sym_mount_param_repeat1,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(179), 3,
+ sym_heredoc_marker,
+ anon_sym_DASH_DASH,
+ anon_sym_LBRACK,
+ ACTIONS(177), 4,
+ aux_sym_path_token2,
+ aux_sym_shell_fragment_token2,
+ aux_sym_shell_fragment_token3,
+ aux_sym_shell_fragment_token4,
+ [778] = 6,
+ ACTIONS(185), 1,
+ aux_sym_from_instruction_token2,
+ ACTIONS(187), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(189), 1,
+ aux_sym_image_name_token2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(183), 3,
+ anon_sym_LF,
+ anon_sym_COLON,
+ anon_sym_AT,
+ STATE(27), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_image_name_repeat1,
+ [802] = 5,
+ ACTIONS(181), 1,
+ anon_sym_COMMA,
+ STATE(28), 1,
+ aux_sym_mount_param_repeat1,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(193), 3,
+ sym_heredoc_marker,
+ anon_sym_DASH_DASH,
+ anon_sym_LBRACK,
+ ACTIONS(191), 4,
+ aux_sym_path_token2,
+ aux_sym_shell_fragment_token2,
+ aux_sym_shell_fragment_token3,
+ aux_sym_shell_fragment_token4,
+ [824] = 6,
+ ACTIONS(200), 1,
+ sym_required_line_continuation,
+ ACTIONS(202), 1,
+ sym_heredoc_marker,
+ STATE(24), 1,
+ aux_sym_shell_fragment_repeat1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(195), 2,
+ sym_heredoc_nl,
+ anon_sym_LF,
+ ACTIONS(197), 4,
+ aux_sym_path_token2,
+ aux_sym_shell_fragment_token2,
+ aux_sym_shell_fragment_token3,
+ aux_sym_shell_fragment_token4,
+ [848] = 6,
+ ACTIONS(187), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(207), 1,
+ aux_sym_from_instruction_token2,
+ ACTIONS(209), 1,
+ aux_sym_image_name_token2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(205), 3,
+ anon_sym_LF,
+ anon_sym_COLON,
+ anon_sym_AT,
+ STATE(22), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_image_name_repeat1,
+ [872] = 6,
+ ACTIONS(114), 1,
+ sym_heredoc_marker,
+ ACTIONS(215), 1,
+ sym_required_line_continuation,
+ STATE(24), 1,
+ aux_sym_shell_fragment_repeat1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(211), 2,
+ sym_heredoc_nl,
+ anon_sym_LF,
+ ACTIONS(213), 4,
+ aux_sym_path_token2,
+ aux_sym_shell_fragment_token2,
+ aux_sym_shell_fragment_token3,
+ aux_sym_shell_fragment_token4,
+ [896] = 6,
+ ACTIONS(219), 1,
+ aux_sym_from_instruction_token2,
+ ACTIONS(221), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(224), 1,
+ aux_sym_image_name_token2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(217), 3,
+ anon_sym_LF,
+ anon_sym_COLON,
+ anon_sym_AT,
+ STATE(27), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_image_name_repeat1,
+ [920] = 5,
+ ACTIONS(231), 1,
+ anon_sym_COMMA,
+ STATE(28), 1,
+ aux_sym_mount_param_repeat1,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(229), 3,
+ sym_heredoc_marker,
+ anon_sym_DASH_DASH,
+ anon_sym_LBRACK,
+ ACTIONS(227), 4,
+ aux_sym_path_token2,
+ aux_sym_shell_fragment_token2,
+ aux_sym_shell_fragment_token3,
+ aux_sym_shell_fragment_token4,
+ [942] = 6,
+ ACTIONS(234), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(236), 1,
+ anon_sym_DQUOTE,
+ ACTIONS(240), 1,
+ sym_double_quoted_escape_sequence,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(238), 2,
+ aux_sym_double_quoted_string_token1,
+ anon_sym_BSLASH,
+ STATE(47), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_double_quoted_string_repeat1,
+ [965] = 6,
+ ACTIONS(234), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(240), 1,
+ sym_double_quoted_escape_sequence,
+ ACTIONS(242), 1,
+ anon_sym_DQUOTE,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(238), 2,
+ aux_sym_double_quoted_string_token1,
+ anon_sym_BSLASH,
+ STATE(47), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_double_quoted_string_repeat1,
+ [988] = 3,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(227), 4,
+ aux_sym_path_token2,
+ aux_sym_shell_fragment_token2,
+ aux_sym_shell_fragment_token3,
+ aux_sym_shell_fragment_token4,
+ ACTIONS(229), 4,
+ sym_heredoc_marker,
+ anon_sym_DASH_DASH,
+ anon_sym_COMMA,
+ anon_sym_LBRACK,
+ [1005] = 3,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(195), 3,
+ sym_heredoc_marker,
+ sym_heredoc_nl,
+ anon_sym_LF,
+ ACTIONS(200), 5,
+ aux_sym_path_token2,
+ aux_sym_shell_fragment_token2,
+ aux_sym_shell_fragment_token3,
+ aux_sym_shell_fragment_token4,
+ sym_required_line_continuation,
+ [1022] = 6,
+ ACTIONS(167), 1,
+ anon_sym_LF,
+ ACTIONS(172), 1,
+ aux_sym__env_key_token1,
+ ACTIONS(244), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(247), 2,
+ aux_sym_unquoted_string_token1,
+ anon_sym_BSLASH2,
+ STATE(33), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_unquoted_string_repeat1,
+ [1045] = 6,
+ ACTIONS(252), 1,
+ aux_sym_from_instruction_token2,
+ ACTIONS(254), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(256), 1,
+ aux_sym_image_tag_token1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(250), 2,
+ anon_sym_LF,
+ anon_sym_AT,
+ STATE(37), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_image_tag_repeat1,
+ [1068] = 6,
+ ACTIONS(159), 1,
+ sym_heredoc_marker,
+ ACTIONS(211), 1,
+ anon_sym_LF,
+ ACTIONS(215), 1,
+ sym_required_line_continuation,
+ STATE(51), 1,
+ aux_sym_shell_fragment_repeat1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(258), 4,
+ aux_sym_path_token2,
+ aux_sym_shell_fragment_token2,
+ aux_sym_shell_fragment_token3,
+ aux_sym_shell_fragment_token4,
+ [1091] = 6,
+ ACTIONS(260), 1,
+ anon_sym_LF,
+ ACTIONS(262), 1,
+ aux_sym_path_token3,
+ ACTIONS(264), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(266), 2,
+ sym_heredoc_nl,
+ sym__non_newline_whitespace,
+ STATE(44), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_path_repeat1,
+ [1114] = 6,
+ ACTIONS(270), 1,
+ aux_sym_from_instruction_token2,
+ ACTIONS(272), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(275), 1,
+ aux_sym_image_tag_token1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(268), 2,
+ anon_sym_LF,
+ anon_sym_AT,
+ STATE(37), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_image_tag_repeat1,
+ [1137] = 6,
+ ACTIONS(118), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(161), 1,
+ anon_sym_LF,
+ ACTIONS(163), 1,
+ aux_sym__env_key_token1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(278), 2,
+ aux_sym_unquoted_string_token1,
+ anon_sym_BSLASH2,
+ STATE(33), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_unquoted_string_repeat1,
+ [1160] = 6,
+ ACTIONS(234), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(280), 1,
+ anon_sym_DQUOTE,
+ ACTIONS(284), 1,
+ sym_double_quoted_escape_sequence,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(282), 2,
+ aux_sym_double_quoted_string_token1,
+ anon_sym_BSLASH,
+ STATE(45), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_double_quoted_string_repeat1,
+ [1183] = 6,
+ ACTIONS(286), 1,
+ anon_sym_LF,
+ ACTIONS(288), 1,
+ aux_sym_path_token3,
+ ACTIONS(291), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(294), 2,
+ sym_heredoc_nl,
+ sym__non_newline_whitespace,
+ STATE(40), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_path_repeat1,
+ [1206] = 7,
+ ACTIONS(296), 1,
+ anon_sym_LF,
+ ACTIONS(298), 1,
+ aux_sym_label_pair_token1,
+ ACTIONS(300), 1,
+ anon_sym_DQUOTE,
+ ACTIONS(302), 1,
+ anon_sym_SQUOTE,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(46), 2,
+ sym_label_pair,
+ aux_sym_label_instruction_repeat1,
+ STATE(257), 2,
+ sym_double_quoted_string,
+ sym_single_quoted_string,
+ [1231] = 5,
+ ACTIONS(306), 1,
+ aux_sym__immediate_user_name_or_group_fragment_token1,
+ ACTIONS(308), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(304), 2,
+ anon_sym_LF,
+ anon_sym_COLON,
+ STATE(43), 4,
+ sym__immediate_user_name_or_group_fragment,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym__user_name_or_group_repeat1,
+ [1252] = 5,
+ ACTIONS(312), 1,
+ aux_sym__immediate_user_name_or_group_fragment_token1,
+ ACTIONS(315), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(310), 2,
+ anon_sym_LF,
+ anon_sym_COLON,
+ STATE(43), 4,
+ sym__immediate_user_name_or_group_fragment,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym__user_name_or_group_repeat1,
+ [1273] = 6,
+ ACTIONS(264), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(318), 1,
+ anon_sym_LF,
+ ACTIONS(320), 1,
+ aux_sym_path_token3,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(322), 2,
+ sym_heredoc_nl,
+ sym__non_newline_whitespace,
+ STATE(40), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_path_repeat1,
+ [1296] = 6,
+ ACTIONS(234), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(240), 1,
+ sym_double_quoted_escape_sequence,
+ ACTIONS(324), 1,
+ anon_sym_DQUOTE,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(238), 2,
+ aux_sym_double_quoted_string_token1,
+ anon_sym_BSLASH,
+ STATE(47), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_double_quoted_string_repeat1,
+ [1319] = 7,
+ ACTIONS(326), 1,
+ anon_sym_LF,
+ ACTIONS(328), 1,
+ aux_sym_label_pair_token1,
+ ACTIONS(331), 1,
+ anon_sym_DQUOTE,
+ ACTIONS(334), 1,
+ anon_sym_SQUOTE,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(46), 2,
+ sym_label_pair,
+ aux_sym_label_instruction_repeat1,
+ STATE(257), 2,
+ sym_double_quoted_string,
+ sym_single_quoted_string,
+ [1344] = 6,
+ ACTIONS(337), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(340), 1,
+ anon_sym_DQUOTE,
+ ACTIONS(345), 1,
+ sym_double_quoted_escape_sequence,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(342), 2,
+ aux_sym_double_quoted_string_token1,
+ anon_sym_BSLASH,
+ STATE(47), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_double_quoted_string_repeat1,
+ [1367] = 5,
+ ACTIONS(308), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(350), 1,
+ aux_sym__immediate_user_name_or_group_fragment_token1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(348), 2,
+ anon_sym_LF,
+ anon_sym_COLON,
+ STATE(42), 4,
+ sym__immediate_user_name_or_group_fragment,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym__user_name_or_group_repeat1,
+ [1388] = 6,
+ ACTIONS(234), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(352), 1,
+ anon_sym_DQUOTE,
+ ACTIONS(356), 1,
+ sym_double_quoted_escape_sequence,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(354), 2,
+ aux_sym_double_quoted_string_token1,
+ anon_sym_BSLASH,
+ STATE(29), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_double_quoted_string_repeat1,
+ [1411] = 3,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(358), 4,
+ aux_sym_path_token2,
+ aux_sym_shell_fragment_token2,
+ aux_sym_shell_fragment_token3,
+ aux_sym_shell_fragment_token4,
+ ACTIONS(360), 4,
+ sym_heredoc_marker,
+ anon_sym_DASH_DASH,
+ anon_sym_COMMA,
+ anon_sym_LBRACK,
+ [1428] = 6,
+ ACTIONS(195), 1,
+ anon_sym_LF,
+ ACTIONS(200), 1,
+ sym_required_line_continuation,
+ ACTIONS(365), 1,
+ sym_heredoc_marker,
+ STATE(51), 1,
+ aux_sym_shell_fragment_repeat1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(362), 4,
+ aux_sym_path_token2,
+ aux_sym_shell_fragment_token2,
+ aux_sym_shell_fragment_token3,
+ aux_sym_shell_fragment_token4,
+ [1451] = 6,
+ ACTIONS(234), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(368), 1,
+ anon_sym_DQUOTE,
+ ACTIONS(372), 1,
+ sym_double_quoted_escape_sequence,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(370), 2,
+ aux_sym_double_quoted_string_token1,
+ anon_sym_BSLASH,
+ STATE(30), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_double_quoted_string_repeat1,
+ [1474] = 6,
+ ACTIONS(155), 1,
+ aux_sym_shell_fragment_token2,
+ ACTIONS(159), 1,
+ sym_heredoc_marker,
+ STATE(35), 1,
+ aux_sym_shell_fragment_repeat1,
+ STATE(229), 1,
+ sym_shell_fragment,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(153), 3,
+ aux_sym_path_token2,
+ aux_sym_shell_fragment_token3,
+ aux_sym_shell_fragment_token4,
+ [1496] = 6,
+ ACTIONS(374), 1,
+ anon_sym_LF,
+ ACTIONS(376), 1,
+ aux_sym_from_instruction_token2,
+ ACTIONS(378), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(381), 1,
+ aux_sym_image_digest_token1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(54), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_image_digest_repeat1,
+ [1518] = 6,
+ ACTIONS(384), 1,
+ anon_sym_LF,
+ ACTIONS(386), 1,
+ aux_sym_path_token3,
+ ACTIONS(388), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(390), 1,
+ sym__non_newline_whitespace,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(61), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_path_repeat1,
+ [1540] = 6,
+ ACTIONS(3), 1,
+ sym_line_continuation,
+ ACTIONS(5), 1,
+ sym_comment,
+ ACTIONS(392), 1,
+ aux_sym_path_token1,
+ ACTIONS(396), 1,
+ anon_sym_DASH_DASH,
+ STATE(56), 2,
+ sym_param,
+ aux_sym_add_instruction_repeat1,
+ ACTIONS(394), 3,
+ sym_heredoc_marker,
+ aux_sym_path_with_heredoc_token1,
+ anon_sym_DOLLAR,
+ [1562] = 6,
+ ACTIONS(399), 1,
+ anon_sym_LF,
+ ACTIONS(401), 1,
+ aux_sym__immediate_user_name_or_group_fragment_token1,
+ ACTIONS(404), 1,
+ anon_sym_DOLLAR2,
+ STATE(57), 1,
+ aux_sym__immediate_user_name_or_group,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(202), 3,
+ sym__immediate_user_name_or_group_fragment,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ [1584] = 9,
+ ACTIONS(3), 1,
+ sym_line_continuation,
+ ACTIONS(5), 1,
+ sym_comment,
+ ACTIONS(407), 1,
+ aux_sym_path_token1,
+ ACTIONS(409), 1,
+ aux_sym_path_with_heredoc_token1,
+ ACTIONS(411), 1,
+ anon_sym_DOLLAR,
+ ACTIONS(413), 1,
+ sym_heredoc_marker,
+ STATE(36), 1,
+ sym_expansion,
+ STATE(59), 1,
+ aux_sym_add_instruction_repeat2,
+ STATE(108), 1,
+ sym_path_with_heredoc,
+ [1612] = 9,
+ ACTIONS(3), 1,
+ sym_line_continuation,
+ ACTIONS(5), 1,
+ sym_comment,
+ ACTIONS(415), 1,
+ aux_sym_path_token1,
+ ACTIONS(418), 1,
+ aux_sym_path_with_heredoc_token1,
+ ACTIONS(421), 1,
+ anon_sym_DOLLAR,
+ ACTIONS(424), 1,
+ sym_heredoc_marker,
+ STATE(59), 1,
+ aux_sym_add_instruction_repeat2,
+ STATE(86), 1,
+ sym_expansion,
+ STATE(253), 1,
+ sym_path_with_heredoc,
+ [1640] = 9,
+ ACTIONS(3), 1,
+ sym_line_continuation,
+ ACTIONS(5), 1,
+ sym_comment,
+ ACTIONS(407), 1,
+ aux_sym_path_token1,
+ ACTIONS(409), 1,
+ aux_sym_path_with_heredoc_token1,
+ ACTIONS(411), 1,
+ anon_sym_DOLLAR,
+ ACTIONS(413), 1,
+ sym_heredoc_marker,
+ STATE(36), 1,
+ sym_expansion,
+ STATE(59), 1,
+ aux_sym_add_instruction_repeat2,
+ STATE(112), 1,
+ sym_path_with_heredoc,
+ [1668] = 6,
+ ACTIONS(388), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(427), 1,
+ anon_sym_LF,
+ ACTIONS(429), 1,
+ aux_sym_path_token3,
+ ACTIONS(431), 1,
+ sym__non_newline_whitespace,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(69), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_path_repeat1,
+ [1690] = 9,
+ ACTIONS(3), 1,
+ sym_line_continuation,
+ ACTIONS(5), 1,
+ sym_comment,
+ ACTIONS(157), 1,
+ anon_sym_LBRACK,
+ ACTIONS(433), 1,
+ aux_sym_path_token1,
+ ACTIONS(435), 1,
+ aux_sym_path_token2,
+ ACTIONS(437), 1,
+ anon_sym_DOLLAR,
+ STATE(55), 1,
+ sym_expansion,
+ STATE(201), 1,
+ sym_path,
+ STATE(287), 1,
+ sym_json_string_array,
+ [1718] = 9,
+ ACTIONS(3), 1,
+ sym_line_continuation,
+ ACTIONS(5), 1,
+ sym_comment,
+ ACTIONS(407), 1,
+ aux_sym_path_token1,
+ ACTIONS(409), 1,
+ aux_sym_path_with_heredoc_token1,
+ ACTIONS(411), 1,
+ anon_sym_DOLLAR,
+ ACTIONS(413), 1,
+ sym_heredoc_marker,
+ STATE(36), 1,
+ sym_expansion,
+ STATE(59), 1,
+ aux_sym_add_instruction_repeat2,
+ STATE(111), 1,
+ sym_path_with_heredoc,
+ [1746] = 9,
+ ACTIONS(3), 1,
+ sym_line_continuation,
+ ACTIONS(5), 1,
+ sym_comment,
+ ACTIONS(407), 1,
+ aux_sym_path_token1,
+ ACTIONS(409), 1,
+ aux_sym_path_with_heredoc_token1,
+ ACTIONS(411), 1,
+ anon_sym_DOLLAR,
+ ACTIONS(413), 1,
+ sym_heredoc_marker,
+ STATE(36), 1,
+ sym_expansion,
+ STATE(59), 1,
+ aux_sym_add_instruction_repeat2,
+ STATE(114), 1,
+ sym_path_with_heredoc,
+ [1774] = 3,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(439), 2,
+ anon_sym_LF,
+ anon_sym_DOLLAR2,
+ ACTIONS(441), 5,
+ aux_sym_label_pair_token1,
+ anon_sym_DQUOTE,
+ anon_sym_SQUOTE,
+ aux_sym_unquoted_string_token1,
+ anon_sym_BSLASH2,
+ [1790] = 6,
+ ACTIONS(308), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(443), 1,
+ anon_sym_LF,
+ ACTIONS(445), 1,
+ aux_sym__immediate_user_name_or_group_fragment_token1,
+ STATE(57), 1,
+ aux_sym__immediate_user_name_or_group,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(202), 3,
+ sym__immediate_user_name_or_group_fragment,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ [1812] = 6,
+ ACTIONS(114), 1,
+ sym_heredoc_marker,
+ ACTIONS(447), 1,
+ aux_sym_shell_fragment_token2,
+ STATE(26), 1,
+ aux_sym_shell_fragment_repeat1,
+ STATE(173), 1,
+ sym_shell_fragment,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(108), 3,
+ aux_sym_path_token2,
+ aux_sym_shell_fragment_token3,
+ aux_sym_shell_fragment_token4,
+ [1834] = 9,
+ ACTIONS(3), 1,
+ sym_line_continuation,
+ ACTIONS(5), 1,
+ sym_comment,
+ ACTIONS(449), 1,
+ anon_sym_DOLLAR,
+ ACTIONS(451), 1,
+ aux_sym_image_name_token1,
+ ACTIONS(453), 1,
+ anon_sym_DASH_DASH,
+ STATE(25), 1,
+ sym_expansion,
+ STATE(88), 1,
+ sym_image_name,
+ STATE(113), 1,
+ sym_param,
+ STATE(242), 1,
+ sym_image_spec,
+ [1862] = 6,
+ ACTIONS(286), 1,
+ anon_sym_LF,
+ ACTIONS(294), 1,
+ sym__non_newline_whitespace,
+ ACTIONS(455), 1,
+ aux_sym_path_token3,
+ ACTIONS(458), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(69), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_path_repeat1,
+ [1884] = 3,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(195), 2,
+ sym_heredoc_marker,
+ anon_sym_LF,
+ ACTIONS(200), 5,
+ aux_sym_path_token2,
+ aux_sym_shell_fragment_token2,
+ aux_sym_shell_fragment_token3,
+ aux_sym_shell_fragment_token4,
+ sym_required_line_continuation,
+ [1900] = 6,
+ ACTIONS(461), 1,
+ aux_sym_label_pair_token1,
+ ACTIONS(463), 1,
+ anon_sym_DQUOTE,
+ ACTIONS(465), 1,
+ anon_sym_SQUOTE,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(41), 2,
+ sym_label_pair,
+ aux_sym_label_instruction_repeat1,
+ STATE(257), 2,
+ sym_double_quoted_string,
+ sym_single_quoted_string,
+ [1922] = 3,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(467), 2,
+ anon_sym_LF,
+ anon_sym_DOLLAR2,
+ ACTIONS(469), 5,
+ aux_sym_label_pair_token1,
+ anon_sym_DQUOTE,
+ anon_sym_SQUOTE,
+ aux_sym_unquoted_string_token1,
+ anon_sym_BSLASH2,
+ [1938] = 6,
+ ACTIONS(471), 1,
+ anon_sym_LF,
+ ACTIONS(473), 1,
+ aux_sym_from_instruction_token2,
+ ACTIONS(475), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(477), 1,
+ aux_sym_image_digest_token1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(54), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_image_digest_repeat1,
+ [1960] = 3,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(481), 3,
+ sym_heredoc_marker,
+ anon_sym_DASH_DASH,
+ anon_sym_LBRACK,
+ ACTIONS(479), 4,
+ aux_sym_path_token2,
+ aux_sym_shell_fragment_token2,
+ aux_sym_shell_fragment_token3,
+ aux_sym_shell_fragment_token4,
+ [1976] = 5,
+ ACTIONS(308), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(445), 1,
+ aux_sym__immediate_user_name_or_group_fragment_token1,
+ STATE(66), 1,
+ aux_sym__immediate_user_name_or_group,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(202), 3,
+ sym__immediate_user_name_or_group_fragment,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ [1995] = 6,
+ ACTIONS(13), 1,
+ aux_sym_cmd_instruction_token1,
+ ACTIONS(483), 1,
+ anon_sym_NONE,
+ ACTIONS(485), 1,
+ anon_sym_DASH_DASH,
+ STATE(284), 1,
+ sym_cmd_instruction,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(98), 2,
+ sym_param,
+ aux_sym_add_instruction_repeat1,
+ [2016] = 3,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(489), 2,
+ aux_sym_from_instruction_token2,
+ aux_sym_image_name_token2,
+ ACTIONS(487), 4,
+ anon_sym_LF,
+ anon_sym_COLON,
+ anon_sym_DOLLAR2,
+ anon_sym_AT,
+ [2031] = 5,
+ ACTIONS(491), 1,
+ anon_sym_LF,
+ ACTIONS(493), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(495), 1,
+ aux_sym_image_alias_token2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(81), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_image_alias_repeat1,
+ [2050] = 3,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(441), 2,
+ aux_sym_from_instruction_token2,
+ aux_sym_image_name_token2,
+ ACTIONS(439), 4,
+ anon_sym_LF,
+ anon_sym_COLON,
+ anon_sym_DOLLAR2,
+ anon_sym_AT,
+ [2065] = 5,
+ ACTIONS(390), 1,
+ anon_sym_LF,
+ ACTIONS(497), 1,
+ aux_sym_path_token3,
+ ACTIONS(499), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(87), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_path_repeat1,
+ [2084] = 5,
+ ACTIONS(493), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(501), 1,
+ anon_sym_LF,
+ ACTIONS(503), 1,
+ aux_sym_image_alias_token2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(94), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_image_alias_repeat1,
+ [2103] = 3,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(469), 2,
+ aux_sym_from_instruction_token2,
+ aux_sym_image_name_token2,
+ ACTIONS(467), 4,
+ anon_sym_LF,
+ anon_sym_COLON,
+ anon_sym_DOLLAR2,
+ anon_sym_AT,
+ [2118] = 5,
+ ACTIONS(505), 1,
+ anon_sym_LF,
+ ACTIONS(507), 1,
+ aux_sym__stopsignal_value_token2,
+ ACTIONS(510), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(83), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym__stopsignal_value_repeat1,
+ [2137] = 5,
+ ACTIONS(513), 1,
+ anon_sym_LF,
+ ACTIONS(515), 1,
+ aux_sym__stopsignal_value_token2,
+ ACTIONS(517), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(83), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym__stopsignal_value_repeat1,
+ [2156] = 5,
+ ACTIONS(519), 1,
+ anon_sym_LF,
+ ACTIONS(521), 1,
+ anon_sym_DOLLAR,
+ ACTIONS(523), 1,
+ aux_sym_expose_port_token1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(90), 3,
+ sym_expansion,
+ sym_expose_port,
+ aux_sym_expose_instruction_repeat1,
+ [2175] = 5,
+ ACTIONS(266), 1,
+ sym__non_newline_whitespace,
+ ACTIONS(525), 1,
+ aux_sym_path_token3,
+ ACTIONS(527), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(89), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_path_repeat1,
+ [2194] = 5,
+ ACTIONS(431), 1,
+ anon_sym_LF,
+ ACTIONS(499), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(529), 1,
+ aux_sym_path_token3,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(93), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_path_repeat1,
+ [2213] = 7,
+ ACTIONS(531), 1,
+ anon_sym_LF,
+ ACTIONS(533), 1,
+ aux_sym_from_instruction_token2,
+ ACTIONS(535), 1,
+ anon_sym_COLON,
+ ACTIONS(537), 1,
+ anon_sym_AT,
+ STATE(161), 1,
+ sym_image_tag,
+ STATE(239), 1,
+ sym_image_digest,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [2236] = 5,
+ ACTIONS(322), 1,
+ sym__non_newline_whitespace,
+ ACTIONS(527), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(539), 1,
+ aux_sym_path_token3,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(91), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_path_repeat1,
+ [2255] = 5,
+ ACTIONS(541), 1,
+ anon_sym_LF,
+ ACTIONS(543), 1,
+ anon_sym_DOLLAR,
+ ACTIONS(546), 1,
+ aux_sym_expose_port_token1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(90), 3,
+ sym_expansion,
+ sym_expose_port,
+ aux_sym_expose_instruction_repeat1,
+ [2274] = 5,
+ ACTIONS(294), 1,
+ sym__non_newline_whitespace,
+ ACTIONS(549), 1,
+ aux_sym_path_token3,
+ ACTIONS(552), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(91), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_path_repeat1,
+ [2293] = 5,
+ ACTIONS(517), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(555), 1,
+ anon_sym_LF,
+ ACTIONS(557), 1,
+ aux_sym__stopsignal_value_token2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(84), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym__stopsignal_value_repeat1,
+ [2312] = 5,
+ ACTIONS(294), 1,
+ anon_sym_LF,
+ ACTIONS(559), 1,
+ aux_sym_path_token3,
+ ACTIONS(562), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(93), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_path_repeat1,
+ [2331] = 5,
+ ACTIONS(565), 1,
+ anon_sym_LF,
+ ACTIONS(567), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(570), 1,
+ aux_sym_image_alias_token2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(94), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_image_alias_repeat1,
+ [2350] = 5,
+ ACTIONS(575), 1,
+ anon_sym_SQUOTE,
+ ACTIONS(577), 1,
+ sym_single_quoted_escape_sequence,
+ STATE(110), 1,
+ aux_sym_single_quoted_string_repeat1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(573), 2,
+ anon_sym_BSLASH,
+ aux_sym_single_quoted_string_token1,
+ [2368] = 3,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(467), 2,
+ anon_sym_DOLLAR2,
+ sym_double_quoted_escape_sequence,
+ ACTIONS(469), 3,
+ anon_sym_DQUOTE,
+ aux_sym_double_quoted_string_token1,
+ anon_sym_BSLASH,
+ [2382] = 5,
+ ACTIONS(577), 1,
+ sym_single_quoted_escape_sequence,
+ ACTIONS(579), 1,
+ anon_sym_SQUOTE,
+ STATE(110), 1,
+ aux_sym_single_quoted_string_repeat1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(573), 2,
+ anon_sym_BSLASH,
+ aux_sym_single_quoted_string_token1,
+ [2400] = 5,
+ ACTIONS(13), 1,
+ aux_sym_cmd_instruction_token1,
+ ACTIONS(485), 1,
+ anon_sym_DASH_DASH,
+ STATE(263), 1,
+ sym_cmd_instruction,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(156), 2,
+ sym_param,
+ aux_sym_add_instruction_repeat1,
+ [2418] = 5,
+ ACTIONS(583), 1,
+ anon_sym_SQUOTE,
+ ACTIONS(585), 1,
+ sym_single_quoted_escape_sequence,
+ STATE(97), 1,
+ aux_sym_single_quoted_string_repeat1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(581), 2,
+ anon_sym_BSLASH,
+ aux_sym_single_quoted_string_token1,
+ [2436] = 3,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(441), 2,
+ anon_sym_LF,
+ aux_sym_path_token3,
+ ACTIONS(439), 3,
+ sym_heredoc_nl,
+ anon_sym_DOLLAR2,
+ sym__non_newline_whitespace,
+ [2450] = 5,
+ ACTIONS(577), 1,
+ sym_single_quoted_escape_sequence,
+ ACTIONS(587), 1,
+ anon_sym_SQUOTE,
+ STATE(110), 1,
+ aux_sym_single_quoted_string_repeat1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(573), 2,
+ anon_sym_BSLASH,
+ aux_sym_single_quoted_string_token1,
+ [2468] = 5,
+ ACTIONS(589), 1,
+ aux_sym__env_key_token1,
+ STATE(247), 1,
+ sym__env_key,
+ STATE(256), 1,
+ sym__spaced_env_pair,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(115), 2,
+ sym_env_pair,
+ aux_sym_env_instruction_repeat1,
+ [2486] = 5,
+ ACTIONS(593), 1,
+ anon_sym_SQUOTE,
+ ACTIONS(595), 1,
+ sym_single_quoted_escape_sequence,
+ STATE(101), 1,
+ aux_sym_single_quoted_string_repeat1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(591), 2,
+ anon_sym_BSLASH,
+ aux_sym_single_quoted_string_token1,
+ [2504] = 3,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(467), 2,
+ anon_sym_LF,
+ anon_sym_DOLLAR2,
+ ACTIONS(469), 3,
+ aux_sym__env_key_token1,
+ aux_sym_unquoted_string_token1,
+ anon_sym_BSLASH2,
+ [2518] = 3,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(489), 2,
+ anon_sym_LF,
+ aux_sym_path_token3,
+ ACTIONS(487), 3,
+ sym_heredoc_nl,
+ anon_sym_DOLLAR2,
+ sym__non_newline_whitespace,
+ [2532] = 5,
+ ACTIONS(597), 1,
+ anon_sym_LF,
+ ACTIONS(599), 1,
+ aux_sym__env_key_token1,
+ STATE(265), 1,
+ sym__env_key,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(106), 2,
+ sym_env_pair,
+ aux_sym_env_instruction_repeat1,
+ [2550] = 4,
+ ACTIONS(3), 1,
+ sym_line_continuation,
+ ACTIONS(5), 1,
+ sym_comment,
+ ACTIONS(479), 1,
+ aux_sym_path_token1,
+ ACTIONS(481), 4,
+ sym_heredoc_marker,
+ aux_sym_path_with_heredoc_token1,
+ anon_sym_DOLLAR,
+ anon_sym_DASH_DASH,
+ [2566] = 5,
+ ACTIONS(602), 1,
+ anon_sym_LF,
+ ACTIONS(604), 1,
+ sym__non_newline_whitespace,
+ ACTIONS(606), 1,
+ sym_heredoc_nl,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(140), 2,
+ sym_heredoc_block,
+ aux_sym_run_instruction_repeat2,
+ [2584] = 3,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(441), 2,
+ aux_sym_from_instruction_token2,
+ aux_sym_image_tag_token1,
+ ACTIONS(439), 3,
+ anon_sym_LF,
+ anon_sym_DOLLAR2,
+ anon_sym_AT,
+ [2598] = 5,
+ ACTIONS(611), 1,
+ anon_sym_SQUOTE,
+ ACTIONS(613), 1,
+ sym_single_quoted_escape_sequence,
+ STATE(110), 1,
+ aux_sym_single_quoted_string_repeat1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(608), 2,
+ anon_sym_BSLASH,
+ aux_sym_single_quoted_string_token1,
+ [2616] = 5,
+ ACTIONS(604), 1,
+ sym__non_newline_whitespace,
+ ACTIONS(606), 1,
+ sym_heredoc_nl,
+ ACTIONS(616), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(153), 2,
+ sym_heredoc_block,
+ aux_sym_run_instruction_repeat2,
+ [2634] = 5,
+ ACTIONS(604), 1,
+ sym__non_newline_whitespace,
+ ACTIONS(606), 1,
+ sym_heredoc_nl,
+ ACTIONS(618), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(139), 2,
+ sym_heredoc_block,
+ aux_sym_run_instruction_repeat2,
+ [2652] = 7,
+ ACTIONS(3), 1,
+ sym_line_continuation,
+ ACTIONS(5), 1,
+ sym_comment,
+ ACTIONS(449), 1,
+ anon_sym_DOLLAR,
+ ACTIONS(451), 1,
+ aux_sym_image_name_token1,
+ STATE(25), 1,
+ sym_expansion,
+ STATE(88), 1,
+ sym_image_name,
+ STATE(221), 1,
+ sym_image_spec,
+ [2674] = 5,
+ ACTIONS(604), 1,
+ sym__non_newline_whitespace,
+ ACTIONS(606), 1,
+ sym_heredoc_nl,
+ ACTIONS(620), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(155), 2,
+ sym_heredoc_block,
+ aux_sym_run_instruction_repeat2,
+ [2692] = 5,
+ ACTIONS(622), 1,
+ anon_sym_LF,
+ ACTIONS(624), 1,
+ aux_sym__env_key_token1,
+ STATE(265), 1,
+ sym__env_key,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(106), 2,
+ sym_env_pair,
+ aux_sym_env_instruction_repeat1,
+ [2710] = 7,
+ ACTIONS(3), 1,
+ sym_line_continuation,
+ ACTIONS(5), 1,
+ sym_comment,
+ ACTIONS(433), 1,
+ aux_sym_path_token1,
+ ACTIONS(435), 1,
+ aux_sym_path_token2,
+ ACTIONS(437), 1,
+ anon_sym_DOLLAR,
+ STATE(55), 1,
+ sym_expansion,
+ STATE(220), 1,
+ sym_path,
+ [2732] = 3,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(469), 2,
+ anon_sym_LF,
+ aux_sym_path_token3,
+ ACTIONS(467), 3,
+ sym_heredoc_nl,
+ anon_sym_DOLLAR2,
+ sym__non_newline_whitespace,
+ [2746] = 7,
+ ACTIONS(3), 1,
+ sym_line_continuation,
+ ACTIONS(5), 1,
+ sym_comment,
+ ACTIONS(626), 1,
+ aux_sym_path_token1,
+ ACTIONS(628), 1,
+ aux_sym_path_token2,
+ ACTIONS(630), 1,
+ anon_sym_DOLLAR,
+ STATE(80), 1,
+ sym_expansion,
+ STATE(276), 1,
+ sym_path,
+ [2768] = 4,
+ ACTIONS(632), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(634), 2,
+ anon_sym_DOLLAR,
+ aux_sym_expose_port_token1,
+ ACTIONS(636), 2,
+ anon_sym_SLASHtcp,
+ anon_sym_SLASHudp,
+ [2784] = 5,
+ ACTIONS(640), 1,
+ anon_sym_SQUOTE,
+ ACTIONS(642), 1,
+ sym_single_quoted_escape_sequence,
+ STATE(95), 1,
+ aux_sym_single_quoted_string_repeat1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(638), 2,
+ anon_sym_BSLASH,
+ aux_sym_single_quoted_string_token1,
+ [2802] = 3,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(439), 2,
+ anon_sym_DOLLAR2,
+ sym_double_quoted_escape_sequence,
+ ACTIONS(441), 3,
+ anon_sym_DQUOTE,
+ aux_sym_double_quoted_string_token1,
+ anon_sym_BSLASH,
+ [2816] = 3,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(439), 2,
+ anon_sym_LF,
+ anon_sym_DOLLAR2,
+ ACTIONS(441), 3,
+ aux_sym__env_key_token1,
+ aux_sym_unquoted_string_token1,
+ anon_sym_BSLASH2,
+ [2830] = 4,
+ ACTIONS(644), 1,
+ anon_sym_DOLLAR,
+ ACTIONS(646), 1,
+ aux_sym_expose_port_token1,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(85), 3,
+ sym_expansion,
+ sym_expose_port,
+ aux_sym_expose_instruction_repeat1,
+ [2846] = 4,
+ ACTIONS(475), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(648), 1,
+ aux_sym_image_digest_token1,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(73), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_image_digest_repeat1,
+ [2862] = 3,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(469), 2,
+ aux_sym_from_instruction_token2,
+ aux_sym_image_tag_token1,
+ ACTIONS(467), 3,
+ anon_sym_LF,
+ anon_sym_DOLLAR2,
+ anon_sym_AT,
+ [2876] = 5,
+ ACTIONS(3), 1,
+ sym_line_continuation,
+ ACTIONS(5), 1,
+ sym_comment,
+ ACTIONS(254), 1,
+ anon_sym_DOLLAR2,
+ ACTIONS(650), 1,
+ aux_sym_image_tag_token1,
+ STATE(34), 3,
+ sym__immediate_expansion,
+ sym__imm_expansion,
+ aux_sym_image_tag_repeat1,
+ [2894] = 3,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(467), 2,
+ anon_sym_DOLLAR2,
+ sym__non_newline_whitespace,
+ ACTIONS(469), 2,
+ anon_sym_LF,
+ aux_sym_path_token3,
+ [2907] = 4,
+ ACTIONS(606), 1,
+ sym_heredoc_nl,
+ ACTIONS(652), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(154), 2,
+ sym_heredoc_block,
+ aux_sym_run_instruction_repeat2,
+ [2922] = 4,
+ ACTIONS(656), 1,
+ sym_required_line_continuation,
+ STATE(152), 1,
+ aux_sym_shell_command_repeat1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(654), 2,
+ sym_heredoc_nl,
+ anon_sym_LF,
+ [2937] = 3,
+ ACTIONS(469), 1,
+ aux_sym_from_instruction_token2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(467), 3,
+ anon_sym_LF,
+ anon_sym_DOLLAR2,
+ aux_sym_image_digest_token1,
+ [2950] = 5,
+ ACTIONS(658), 1,
+ anon_sym_DOLLAR,
+ ACTIONS(660), 1,
+ aux_sym_image_alias_token1,
+ STATE(78), 1,
+ sym_expansion,
+ STATE(259), 1,
+ sym_image_alias,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [2967] = 5,
+ ACTIONS(658), 1,
+ anon_sym_DOLLAR,
+ ACTIONS(660), 1,
+ aux_sym_image_alias_token1,
+ STATE(78), 1,
+ sym_expansion,
+ STATE(293), 1,
+ sym_image_alias,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [2984] = 3,
+ ACTIONS(441), 1,
+ aux_sym_from_instruction_token2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(439), 3,
+ anon_sym_LF,
+ anon_sym_DOLLAR2,
+ aux_sym_image_digest_token1,
+ [2997] = 4,
+ ACTIONS(3), 1,
+ sym_line_continuation,
+ ACTIONS(5), 1,
+ sym_comment,
+ ACTIONS(662), 1,
+ aux_sym_path_token1,
+ ACTIONS(664), 3,
+ sym_heredoc_marker,
+ aux_sym_path_with_heredoc_token1,
+ anon_sym_DOLLAR,
+ [3012] = 5,
+ ACTIONS(666), 1,
+ anon_sym_DQUOTE,
+ ACTIONS(668), 1,
+ aux_sym_json_string_token1,
+ ACTIONS(670), 1,
+ sym_json_escape_sequence,
+ STATE(143), 1,
+ aux_sym_json_string_repeat1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3029] = 2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(467), 4,
+ anon_sym_LF,
+ anon_sym_COLON,
+ aux_sym__immediate_user_name_or_group_fragment_token1,
+ anon_sym_DOLLAR2,
+ [3040] = 2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(439), 4,
+ anon_sym_LF,
+ anon_sym_COLON,
+ aux_sym__immediate_user_name_or_group_fragment_token1,
+ anon_sym_DOLLAR2,
+ [3051] = 3,
+ ACTIONS(672), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(674), 3,
+ aux_sym_label_pair_token1,
+ anon_sym_DQUOTE,
+ anon_sym_SQUOTE,
+ [3064] = 4,
+ ACTIONS(606), 1,
+ sym_heredoc_nl,
+ ACTIONS(676), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(142), 2,
+ sym_heredoc_block,
+ aux_sym_run_instruction_repeat2,
+ [3079] = 4,
+ ACTIONS(606), 1,
+ sym_heredoc_nl,
+ ACTIONS(678), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(142), 2,
+ sym_heredoc_block,
+ aux_sym_run_instruction_repeat2,
+ [3094] = 2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(487), 4,
+ anon_sym_LF,
+ anon_sym_COLON,
+ aux_sym__immediate_user_name_or_group_fragment_token1,
+ anon_sym_DOLLAR2,
+ [3105] = 4,
+ ACTIONS(680), 1,
+ anon_sym_LF,
+ ACTIONS(682), 1,
+ sym_heredoc_nl,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(142), 2,
+ sym_heredoc_block,
+ aux_sym_run_instruction_repeat2,
+ [3120] = 5,
+ ACTIONS(685), 1,
+ anon_sym_DQUOTE,
+ ACTIONS(687), 1,
+ aux_sym_json_string_token1,
+ ACTIONS(690), 1,
+ sym_json_escape_sequence,
+ STATE(143), 1,
+ aux_sym_json_string_repeat1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3137] = 4,
+ ACTIONS(695), 1,
+ sym_required_line_continuation,
+ STATE(144), 1,
+ aux_sym_shell_command_repeat1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(693), 2,
+ sym_heredoc_nl,
+ anon_sym_LF,
+ [3152] = 4,
+ ACTIONS(606), 1,
+ sym_heredoc_nl,
+ ACTIONS(698), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(142), 2,
+ sym_heredoc_block,
+ aux_sym_run_instruction_repeat2,
+ [3167] = 3,
+ ACTIONS(700), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(702), 3,
+ aux_sym_label_pair_token1,
+ anon_sym_DQUOTE,
+ anon_sym_SQUOTE,
+ [3180] = 3,
+ ACTIONS(704), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(706), 3,
+ aux_sym_label_pair_token1,
+ anon_sym_DQUOTE,
+ anon_sym_SQUOTE,
+ [3193] = 5,
+ ACTIONS(708), 1,
+ aux_sym__stopsignal_value_token1,
+ ACTIONS(710), 1,
+ anon_sym_DOLLAR,
+ STATE(92), 1,
+ sym_expansion,
+ STATE(283), 1,
+ sym__stopsignal_value,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3210] = 3,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(439), 2,
+ anon_sym_DOLLAR2,
+ sym__non_newline_whitespace,
+ ACTIONS(441), 2,
+ anon_sym_LF,
+ aux_sym_path_token3,
+ [3223] = 3,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(487), 2,
+ anon_sym_DOLLAR2,
+ sym__non_newline_whitespace,
+ ACTIONS(489), 2,
+ anon_sym_LF,
+ aux_sym_path_token3,
+ [3236] = 4,
+ ACTIONS(606), 1,
+ sym_heredoc_nl,
+ ACTIONS(712), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(145), 2,
+ sym_heredoc_block,
+ aux_sym_run_instruction_repeat2,
+ [3251] = 4,
+ ACTIONS(656), 1,
+ sym_required_line_continuation,
+ STATE(144), 1,
+ aux_sym_shell_command_repeat1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(714), 2,
+ sym_heredoc_nl,
+ anon_sym_LF,
+ [3266] = 4,
+ ACTIONS(606), 1,
+ sym_heredoc_nl,
+ ACTIONS(716), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(142), 2,
+ sym_heredoc_block,
+ aux_sym_run_instruction_repeat2,
+ [3281] = 4,
+ ACTIONS(606), 1,
+ sym_heredoc_nl,
+ ACTIONS(712), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(142), 2,
+ sym_heredoc_block,
+ aux_sym_run_instruction_repeat2,
+ [3296] = 4,
+ ACTIONS(606), 1,
+ sym_heredoc_nl,
+ ACTIONS(718), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(142), 2,
+ sym_heredoc_block,
+ aux_sym_run_instruction_repeat2,
+ [3311] = 4,
+ ACTIONS(394), 1,
+ aux_sym_cmd_instruction_token1,
+ ACTIONS(720), 1,
+ anon_sym_DASH_DASH,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ STATE(156), 2,
+ sym_param,
+ aux_sym_add_instruction_repeat1,
+ [3326] = 5,
+ ACTIONS(723), 1,
+ aux_sym__user_name_or_group_token1,
+ ACTIONS(725), 1,
+ anon_sym_DOLLAR,
+ STATE(48), 1,
+ sym_expansion,
+ STATE(243), 1,
+ sym__user_name_or_group,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3343] = 5,
+ ACTIONS(727), 1,
+ anon_sym_DQUOTE,
+ ACTIONS(729), 1,
+ aux_sym_json_string_token1,
+ ACTIONS(731), 1,
+ sym_json_escape_sequence,
+ STATE(135), 1,
+ aux_sym_json_string_repeat1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3360] = 3,
+ ACTIONS(733), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(735), 3,
+ aux_sym_label_pair_token1,
+ anon_sym_DQUOTE,
+ anon_sym_SQUOTE,
+ [3373] = 3,
+ ACTIONS(737), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(739), 3,
+ aux_sym_label_pair_token1,
+ anon_sym_DQUOTE,
+ anon_sym_SQUOTE,
+ [3386] = 5,
+ ACTIONS(537), 1,
+ anon_sym_AT,
+ ACTIONS(741), 1,
+ anon_sym_LF,
+ ACTIONS(743), 1,
+ aux_sym_from_instruction_token2,
+ STATE(246), 1,
+ sym_image_digest,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3403] = 2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(439), 3,
+ anon_sym_LF,
+ aux_sym__stopsignal_value_token2,
+ anon_sym_DOLLAR2,
+ [3413] = 2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(467), 3,
+ anon_sym_LF,
+ aux_sym__stopsignal_value_token2,
+ anon_sym_DOLLAR2,
+ [3423] = 4,
+ ACTIONS(745), 1,
+ anon_sym_LBRACE,
+ ACTIONS(747), 1,
+ sym_variable,
+ STATE(194), 1,
+ sym__expansion_body,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3437] = 4,
+ ACTIONS(749), 1,
+ anon_sym_LBRACE,
+ ACTIONS(751), 1,
+ sym_variable,
+ STATE(100), 1,
+ sym__expansion_body,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3451] = 4,
+ ACTIONS(753), 1,
+ anon_sym_LBRACE,
+ ACTIONS(755), 1,
+ sym_variable,
+ STATE(122), 1,
+ sym__expansion_body,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3465] = 4,
+ ACTIONS(757), 1,
+ anon_sym_LBRACE,
+ ACTIONS(759), 1,
+ sym_variable,
+ STATE(65), 1,
+ sym__expansion_body,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3479] = 4,
+ ACTIONS(761), 1,
+ anon_sym_LF,
+ ACTIONS(763), 1,
+ sym__non_newline_whitespace,
+ STATE(168), 1,
+ aux_sym_volume_instruction_repeat1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3493] = 4,
+ ACTIONS(745), 1,
+ anon_sym_LBRACE,
+ ACTIONS(766), 1,
+ sym_variable,
+ STATE(200), 1,
+ sym__expansion_body,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3507] = 4,
+ ACTIONS(768), 1,
+ anon_sym_LBRACE,
+ ACTIONS(770), 1,
+ sym_variable,
+ STATE(133), 1,
+ sym__expansion_body,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3521] = 4,
+ ACTIONS(749), 1,
+ anon_sym_LBRACE,
+ ACTIONS(772), 1,
+ sym_variable,
+ STATE(105), 1,
+ sym__expansion_body,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3535] = 4,
+ ACTIONS(774), 1,
+ anon_sym_LBRACE,
+ ACTIONS(776), 1,
+ sym_variable,
+ STATE(109), 1,
+ sym__expansion_body,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3549] = 3,
+ ACTIONS(778), 1,
+ sym_required_line_continuation,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(693), 2,
+ sym_heredoc_nl,
+ anon_sym_LF,
+ [3561] = 4,
+ ACTIONS(780), 1,
+ anon_sym_LBRACE,
+ ACTIONS(782), 1,
+ sym_variable,
+ STATE(205), 1,
+ sym__expansion_body,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3575] = 4,
+ ACTIONS(780), 1,
+ anon_sym_LBRACE,
+ ACTIONS(784), 1,
+ sym_variable,
+ STATE(162), 1,
+ sym__expansion_body,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3589] = 4,
+ ACTIONS(786), 1,
+ anon_sym_LBRACE,
+ ACTIONS(788), 1,
+ sym_variable,
+ STATE(211), 1,
+ sym__expansion_body,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3603] = 4,
+ ACTIONS(786), 1,
+ anon_sym_LBRACE,
+ ACTIONS(790), 1,
+ sym_variable,
+ STATE(208), 1,
+ sym__expansion_body,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3617] = 4,
+ ACTIONS(792), 1,
+ anon_sym_COMMA2,
+ ACTIONS(795), 1,
+ anon_sym_RBRACK,
+ STATE(178), 1,
+ aux_sym_json_string_array_repeat1,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3631] = 4,
+ ACTIONS(797), 1,
+ anon_sym_LBRACE,
+ ACTIONS(799), 1,
+ sym_variable,
+ STATE(141), 1,
+ sym__expansion_body,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3645] = 4,
+ ACTIONS(797), 1,
+ anon_sym_LBRACE,
+ ACTIONS(801), 1,
+ sym_variable,
+ STATE(137), 1,
+ sym__expansion_body,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3659] = 4,
+ ACTIONS(803), 1,
+ sym_heredoc_line,
+ ACTIONS(806), 1,
+ sym_heredoc_end,
+ STATE(181), 1,
+ aux_sym_heredoc_block_repeat1,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3673] = 4,
+ ACTIONS(808), 1,
+ anon_sym_LBRACE,
+ ACTIONS(810), 1,
+ sym_variable,
+ STATE(150), 1,
+ sym__expansion_body,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3687] = 4,
+ ACTIONS(812), 1,
+ sym_heredoc_line,
+ ACTIONS(814), 1,
+ sym_heredoc_end,
+ STATE(181), 1,
+ aux_sym_heredoc_block_repeat1,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3701] = 4,
+ ACTIONS(808), 1,
+ anon_sym_LBRACE,
+ ACTIONS(816), 1,
+ sym_variable,
+ STATE(149), 1,
+ sym__expansion_body,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3715] = 4,
+ ACTIONS(818), 1,
+ anon_sym_LBRACE,
+ ACTIONS(820), 1,
+ sym_variable,
+ STATE(215), 1,
+ sym__expansion_body,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3729] = 4,
+ ACTIONS(822), 1,
+ anon_sym_COMMA2,
+ ACTIONS(824), 1,
+ anon_sym_RBRACK,
+ STATE(178), 1,
+ aux_sym_json_string_array_repeat1,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3743] = 4,
+ ACTIONS(818), 1,
+ anon_sym_LBRACE,
+ ACTIONS(826), 1,
+ sym_variable,
+ STATE(214), 1,
+ sym__expansion_body,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3757] = 4,
+ ACTIONS(822), 1,
+ anon_sym_COMMA2,
+ ACTIONS(828), 1,
+ anon_sym_RBRACK,
+ STATE(178), 1,
+ aux_sym_json_string_array_repeat1,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3771] = 4,
+ ACTIONS(830), 1,
+ anon_sym_LBRACE,
+ ACTIONS(832), 1,
+ sym_variable,
+ STATE(77), 1,
+ sym__expansion_body,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3785] = 4,
+ ACTIONS(822), 1,
+ anon_sym_COMMA2,
+ ACTIONS(834), 1,
+ anon_sym_RBRACK,
+ STATE(188), 1,
+ aux_sym_json_string_array_repeat1,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3799] = 4,
+ ACTIONS(836), 1,
+ anon_sym_RBRACK,
+ ACTIONS(838), 1,
+ anon_sym_DQUOTE,
+ STATE(190), 1,
+ sym_json_string,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3813] = 4,
+ ACTIONS(840), 1,
+ anon_sym_LBRACE,
+ ACTIONS(842), 1,
+ sym_variable,
+ STATE(198), 1,
+ sym__expansion_body,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3827] = 4,
+ ACTIONS(654), 1,
+ anon_sym_LF,
+ ACTIONS(844), 1,
+ sym_required_line_continuation,
+ STATE(203), 1,
+ aux_sym_shell_command_repeat1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3841] = 2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(439), 3,
+ anon_sym_LF,
+ anon_sym_DOLLAR2,
+ aux_sym_image_alias_token2,
+ [3851] = 3,
+ ACTIONS(260), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(266), 2,
+ sym_heredoc_nl,
+ sym__non_newline_whitespace,
+ [3863] = 4,
+ ACTIONS(838), 1,
+ anon_sym_DQUOTE,
+ ACTIONS(846), 1,
+ anon_sym_RBRACK,
+ STATE(210), 1,
+ sym_json_string,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3877] = 2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(467), 3,
+ anon_sym_LF,
+ anon_sym_DOLLAR2,
+ aux_sym_image_alias_token2,
+ [3887] = 3,
+ ACTIONS(487), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(489), 2,
+ anon_sym_DOLLAR,
+ aux_sym_expose_port_token1,
+ [3899] = 4,
+ ACTIONS(848), 1,
+ anon_sym_LBRACE,
+ ACTIONS(850), 1,
+ sym_variable,
+ STATE(121), 1,
+ sym__expansion_body,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3913] = 2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(487), 3,
+ anon_sym_LF,
+ anon_sym_DOLLAR2,
+ aux_sym_image_alias_token2,
+ [3923] = 4,
+ ACTIONS(852), 1,
+ anon_sym_LF,
+ ACTIONS(854), 1,
+ sym__non_newline_whitespace,
+ STATE(204), 1,
+ aux_sym_volume_instruction_repeat1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3937] = 2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(856), 3,
+ anon_sym_LF,
+ aux_sym__immediate_user_name_or_group_fragment_token1,
+ anon_sym_DOLLAR2,
+ [3947] = 4,
+ ACTIONS(714), 1,
+ anon_sym_LF,
+ ACTIONS(844), 1,
+ sym_required_line_continuation,
+ STATE(213), 1,
+ aux_sym_shell_command_repeat1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3961] = 4,
+ ACTIONS(854), 1,
+ sym__non_newline_whitespace,
+ ACTIONS(858), 1,
+ anon_sym_LF,
+ STATE(168), 1,
+ aux_sym_volume_instruction_repeat1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [3975] = 2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(487), 3,
+ anon_sym_LF,
+ aux_sym__stopsignal_value_token2,
+ anon_sym_DOLLAR2,
+ [3985] = 3,
+ ACTIONS(860), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(862), 2,
+ anon_sym_DOLLAR,
+ aux_sym_expose_port_token1,
+ [3997] = 3,
+ ACTIONS(469), 1,
+ aux_sym_path_token3,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(467), 2,
+ anon_sym_LF,
+ anon_sym_DOLLAR2,
+ [4009] = 3,
+ ACTIONS(441), 1,
+ aux_sym_path_token3,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(439), 2,
+ anon_sym_LF,
+ anon_sym_DOLLAR2,
+ [4021] = 4,
+ ACTIONS(812), 1,
+ sym_heredoc_line,
+ ACTIONS(864), 1,
+ sym_heredoc_end,
+ STATE(183), 1,
+ aux_sym_heredoc_block_repeat1,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4035] = 4,
+ ACTIONS(822), 1,
+ anon_sym_COMMA2,
+ ACTIONS(866), 1,
+ anon_sym_RBRACK,
+ STATE(186), 1,
+ aux_sym_json_string_array_repeat1,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4049] = 3,
+ ACTIONS(489), 1,
+ aux_sym_path_token3,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(487), 2,
+ anon_sym_LF,
+ anon_sym_DOLLAR2,
+ [4061] = 3,
+ ACTIONS(469), 1,
+ aux_sym_path_token3,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(467), 2,
+ anon_sym_DOLLAR2,
+ sym__non_newline_whitespace,
+ [4073] = 4,
+ ACTIONS(693), 1,
+ anon_sym_LF,
+ ACTIONS(868), 1,
+ sym_required_line_continuation,
+ STATE(213), 1,
+ aux_sym_shell_command_repeat1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4087] = 3,
+ ACTIONS(441), 1,
+ aux_sym_path_token3,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(439), 2,
+ anon_sym_DOLLAR2,
+ sym__non_newline_whitespace,
+ [4099] = 3,
+ ACTIONS(489), 1,
+ aux_sym_path_token3,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(487), 2,
+ anon_sym_DOLLAR2,
+ sym__non_newline_whitespace,
+ [4111] = 4,
+ ACTIONS(830), 1,
+ anon_sym_LBRACE,
+ ACTIONS(871), 1,
+ sym_variable,
+ STATE(79), 1,
+ sym__expansion_body,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4125] = 3,
+ ACTIONS(467), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(469), 2,
+ anon_sym_DOLLAR,
+ aux_sym_expose_port_token1,
+ [4137] = 3,
+ ACTIONS(873), 1,
+ aux_sym_param_token1,
+ ACTIONS(875), 1,
+ anon_sym_mount,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4148] = 3,
+ ACTIONS(877), 1,
+ anon_sym_LF,
+ ACTIONS(879), 1,
+ aux_sym__env_key_token1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4159] = 3,
+ ACTIONS(761), 1,
+ anon_sym_LF,
+ ACTIONS(881), 1,
+ sym__non_newline_whitespace,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4170] = 3,
+ ACTIONS(883), 1,
+ anon_sym_LF,
+ ACTIONS(885), 1,
+ aux_sym_from_instruction_token2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4181] = 4,
+ ACTIONS(3), 1,
+ sym_line_continuation,
+ ACTIONS(5), 1,
+ sym_comment,
+ ACTIONS(479), 1,
+ aux_sym_image_name_token1,
+ ACTIONS(481), 1,
+ anon_sym_DOLLAR,
+ [4194] = 3,
+ ACTIONS(672), 1,
+ anon_sym_LF,
+ ACTIONS(674), 1,
+ aux_sym__env_key_token1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4205] = 3,
+ ACTIONS(704), 1,
+ anon_sym_LF,
+ ACTIONS(706), 1,
+ aux_sym__env_key_token1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4216] = 2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(887), 2,
+ sym_heredoc_nl,
+ anon_sym_LF,
+ [4225] = 3,
+ ACTIONS(733), 1,
+ anon_sym_LF,
+ ACTIONS(735), 1,
+ aux_sym__env_key_token1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4236] = 3,
+ ACTIONS(737), 1,
+ anon_sym_LF,
+ ACTIONS(739), 1,
+ aux_sym__env_key_token1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4247] = 2,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(889), 2,
+ anon_sym_COMMA2,
+ anon_sym_RBRACK,
+ [4256] = 3,
+ ACTIONS(693), 1,
+ anon_sym_LF,
+ ACTIONS(778), 1,
+ sym_required_line_continuation,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4267] = 2,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(795), 2,
+ anon_sym_COMMA2,
+ anon_sym_RBRACK,
+ [4276] = 2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(891), 2,
+ sym_heredoc_nl,
+ anon_sym_LF,
+ [4285] = 2,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(806), 2,
+ sym_heredoc_line,
+ sym_heredoc_end,
+ [4294] = 2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(893), 2,
+ sym_heredoc_nl,
+ anon_sym_LF,
+ [4303] = 2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(895), 2,
+ sym_heredoc_nl,
+ anon_sym_LF,
+ [4312] = 2,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(481), 2,
+ aux_sym_cmd_instruction_token1,
+ anon_sym_DASH_DASH,
+ [4321] = 3,
+ ACTIONS(157), 1,
+ anon_sym_LBRACK,
+ STATE(286), 1,
+ sym_json_string_array,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4332] = 3,
+ ACTIONS(897), 1,
+ anon_sym_LF,
+ ACTIONS(899), 1,
+ anon_sym_EQ,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4343] = 4,
+ ACTIONS(3), 1,
+ sym_line_continuation,
+ ACTIONS(5), 1,
+ sym_comment,
+ ACTIONS(901), 1,
+ aux_sym_mount_param_param_token1,
+ STATE(31), 1,
+ sym_mount_param_param,
+ [4356] = 3,
+ ACTIONS(903), 1,
+ anon_sym_LF,
+ ACTIONS(905), 1,
+ aux_sym_from_instruction_token2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4367] = 2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(907), 2,
+ sym_heredoc_nl,
+ anon_sym_LF,
+ [4376] = 3,
+ ACTIONS(838), 1,
+ anon_sym_DQUOTE,
+ STATE(230), 1,
+ sym_json_string,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4387] = 3,
+ ACTIONS(909), 1,
+ anon_sym_LF,
+ ACTIONS(911), 1,
+ aux_sym_from_instruction_token2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4398] = 3,
+ ACTIONS(913), 1,
+ anon_sym_LF,
+ ACTIONS(915), 1,
+ anon_sym_COLON,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4409] = 2,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ ACTIONS(917), 2,
+ anon_sym_COMMA2,
+ anon_sym_RBRACK,
+ [4418] = 4,
+ ACTIONS(3), 1,
+ sym_line_continuation,
+ ACTIONS(5), 1,
+ sym_comment,
+ ACTIONS(901), 1,
+ aux_sym_mount_param_param_token1,
+ STATE(21), 1,
+ sym_mount_param_param,
+ [4431] = 3,
+ ACTIONS(919), 1,
+ anon_sym_LF,
+ ACTIONS(921), 1,
+ aux_sym_from_instruction_token2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4442] = 3,
+ ACTIONS(923), 1,
+ anon_sym_EQ,
+ ACTIONS(925), 1,
+ aux_sym__spaced_env_pair_token1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4453] = 3,
+ ACTIONS(3), 1,
+ sym_line_continuation,
+ ACTIONS(5), 1,
+ sym_comment,
+ ACTIONS(927), 1,
+ aux_sym_param_token2,
+ [4463] = 2,
+ ACTIONS(929), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4471] = 2,
+ ACTIONS(887), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4479] = 2,
+ ACTIONS(931), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4487] = 2,
+ ACTIONS(933), 1,
+ anon_sym_RBRACE,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4495] = 2,
+ ACTIONS(604), 1,
+ sym__non_newline_whitespace,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4503] = 2,
+ ACTIONS(266), 1,
+ sym__non_newline_whitespace,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4511] = 3,
+ ACTIONS(3), 1,
+ sym_line_continuation,
+ ACTIONS(5), 1,
+ sym_comment,
+ ACTIONS(935), 1,
+ aux_sym_param_token2,
+ [4521] = 2,
+ ACTIONS(937), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4529] = 2,
+ ACTIONS(939), 1,
+ anon_sym_EQ,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4537] = 2,
+ ACTIONS(941), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4545] = 2,
+ ACTIONS(943), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4553] = 2,
+ ACTIONS(945), 1,
+ aux_sym_shell_fragment_token1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4561] = 2,
+ ACTIONS(947), 1,
+ aux_sym_shell_fragment_token1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4569] = 2,
+ ACTIONS(949), 1,
+ anon_sym_EQ,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4577] = 2,
+ ACTIONS(951), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4585] = 2,
+ ACTIONS(953), 1,
+ aux_sym_param_token1,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4593] = 2,
+ ACTIONS(923), 1,
+ anon_sym_EQ,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4601] = 2,
+ ACTIONS(704), 1,
+ anon_sym_EQ,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4609] = 2,
+ ACTIONS(955), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4617] = 2,
+ ACTIONS(957), 1,
+ anon_sym_RBRACE,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4625] = 2,
+ ACTIONS(672), 1,
+ anon_sym_EQ,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4633] = 2,
+ ACTIONS(907), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4641] = 3,
+ ACTIONS(3), 1,
+ sym_line_continuation,
+ ACTIONS(5), 1,
+ sym_comment,
+ ACTIONS(959), 1,
+ aux_sym_mount_param_param_token1,
+ [4651] = 2,
+ ACTIONS(961), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4659] = 2,
+ ACTIONS(963), 1,
+ ts_builtin_sym_end,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4667] = 2,
+ ACTIONS(965), 1,
+ aux_sym_maintainer_instruction_token2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4675] = 2,
+ ACTIONS(967), 1,
+ aux_sym_maintainer_instruction_token2,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4683] = 2,
+ ACTIONS(969), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4691] = 2,
+ ACTIONS(971), 1,
+ anon_sym_RBRACE,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4699] = 3,
+ ACTIONS(3), 1,
+ sym_line_continuation,
+ ACTIONS(5), 1,
+ sym_comment,
+ ACTIONS(973), 1,
+ aux_sym_param_token2,
+ [4709] = 2,
+ ACTIONS(975), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4717] = 2,
+ ACTIONS(977), 1,
+ aux_sym_arg_instruction_token2,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4725] = 2,
+ ACTIONS(979), 1,
+ anon_sym_RBRACE,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4733] = 3,
+ ACTIONS(3), 1,
+ sym_line_continuation,
+ ACTIONS(5), 1,
+ sym_comment,
+ ACTIONS(981), 1,
+ aux_sym_param_token2,
+ [4743] = 2,
+ ACTIONS(983), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4751] = 2,
+ ACTIONS(985), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4759] = 2,
+ ACTIONS(987), 1,
+ anon_sym_RBRACE,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4767] = 2,
+ ACTIONS(989), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4775] = 2,
+ ACTIONS(991), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4783] = 2,
+ ACTIONS(993), 1,
+ anon_sym_RBRACE,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4791] = 2,
+ ACTIONS(733), 1,
+ anon_sym_EQ,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4799] = 2,
+ ACTIONS(995), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4807] = 2,
+ ACTIONS(997), 1,
+ anon_sym_RBRACE,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4815] = 2,
+ ACTIONS(999), 1,
+ anon_sym_EQ,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4823] = 2,
+ ACTIONS(1001), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4831] = 2,
+ ACTIONS(1003), 1,
+ anon_sym_RBRACE,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4839] = 2,
+ ACTIONS(737), 1,
+ anon_sym_EQ,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4847] = 2,
+ ACTIONS(1005), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4855] = 2,
+ ACTIONS(1007), 1,
+ anon_sym_RBRACE,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4863] = 2,
+ ACTIONS(1009), 1,
+ aux_sym__expansion_body_token1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4871] = 2,
+ ACTIONS(1011), 1,
+ anon_sym_RBRACE,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4879] = 2,
+ ACTIONS(1013), 1,
+ anon_sym_EQ,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4887] = 2,
+ ACTIONS(1015), 1,
+ anon_sym_RBRACE,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4895] = 2,
+ ACTIONS(891), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4903] = 2,
+ ACTIONS(1017), 1,
+ anon_sym_RBRACE,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4911] = 2,
+ ACTIONS(1019), 1,
+ anon_sym_LF,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4919] = 2,
+ ACTIONS(1021), 1,
+ anon_sym_RBRACE,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4927] = 2,
+ ACTIONS(1023), 1,
+ anon_sym_RBRACE,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4935] = 2,
+ ACTIONS(1025), 1,
+ aux_sym__expansion_body_token1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4943] = 2,
+ ACTIONS(1027), 1,
+ anon_sym_EQ,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4951] = 2,
+ ACTIONS(1029), 1,
+ aux_sym__expansion_body_token1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4959] = 2,
+ ACTIONS(1031), 1,
+ anon_sym_EQ,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4967] = 2,
+ ACTIONS(1033), 1,
+ aux_sym__expansion_body_token1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4975] = 2,
+ ACTIONS(1035), 1,
+ anon_sym_EQ,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4983] = 2,
+ ACTIONS(1037), 1,
+ aux_sym__expansion_body_token1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4991] = 2,
+ ACTIONS(1039), 1,
+ aux_sym__expansion_body_token1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [4999] = 2,
+ ACTIONS(1041), 1,
+ aux_sym__expansion_body_token1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [5007] = 2,
+ ACTIONS(1043), 1,
+ aux_sym__expansion_body_token1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [5015] = 2,
+ ACTIONS(1045), 1,
+ aux_sym__expansion_body_token1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [5023] = 2,
+ ACTIONS(1047), 1,
+ aux_sym__expansion_body_token1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [5031] = 2,
+ ACTIONS(1049), 1,
+ aux_sym__expansion_body_token1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [5039] = 2,
+ ACTIONS(1051), 1,
+ aux_sym__expansion_body_token1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [5047] = 2,
+ ACTIONS(1053), 1,
+ aux_sym__expansion_body_token1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [5055] = 2,
+ ACTIONS(1055), 1,
+ aux_sym__expansion_body_token1,
+ ACTIONS(5), 2,
+ sym_line_continuation,
+ sym_comment,
+ [5063] = 2,
+ ACTIONS(1057), 1,
+ aux_sym_param_token1,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+ [5071] = 2,
+ ACTIONS(1059), 1,
+ aux_sym_param_token1,
+ ACTIONS(3), 2,
+ sym_line_continuation,
+ sym_comment,
+};
+
+static const uint32_t ts_small_parse_table_map[] = {
+ [SMALL_STATE(2)] = 0,
+ [SMALL_STATE(3)] = 90,
+ [SMALL_STATE(4)] = 180,
+ [SMALL_STATE(5)] = 264,
+ [SMALL_STATE(6)] = 291,
+ [SMALL_STATE(7)] = 326,
+ [SMALL_STATE(8)] = 361,
+ [SMALL_STATE(9)] = 395,
+ [SMALL_STATE(10)] = 425,
+ [SMALL_STATE(11)] = 455,
+ [SMALL_STATE(12)] = 485,
+ [SMALL_STATE(13)] = 508,
+ [SMALL_STATE(14)] = 543,
+ [SMALL_STATE(15)] = 578,
+ [SMALL_STATE(16)] = 607,
+ [SMALL_STATE(17)] = 636,
+ [SMALL_STATE(18)] = 661,
+ [SMALL_STATE(19)] = 686,
+ [SMALL_STATE(20)] = 721,
+ [SMALL_STATE(21)] = 756,
+ [SMALL_STATE(22)] = 778,
+ [SMALL_STATE(23)] = 802,
+ [SMALL_STATE(24)] = 824,
+ [SMALL_STATE(25)] = 848,
+ [SMALL_STATE(26)] = 872,
+ [SMALL_STATE(27)] = 896,
+ [SMALL_STATE(28)] = 920,
+ [SMALL_STATE(29)] = 942,
+ [SMALL_STATE(30)] = 965,
+ [SMALL_STATE(31)] = 988,
+ [SMALL_STATE(32)] = 1005,
+ [SMALL_STATE(33)] = 1022,
+ [SMALL_STATE(34)] = 1045,
+ [SMALL_STATE(35)] = 1068,
+ [SMALL_STATE(36)] = 1091,
+ [SMALL_STATE(37)] = 1114,
+ [SMALL_STATE(38)] = 1137,
+ [SMALL_STATE(39)] = 1160,
+ [SMALL_STATE(40)] = 1183,
+ [SMALL_STATE(41)] = 1206,
+ [SMALL_STATE(42)] = 1231,
+ [SMALL_STATE(43)] = 1252,
+ [SMALL_STATE(44)] = 1273,
+ [SMALL_STATE(45)] = 1296,
+ [SMALL_STATE(46)] = 1319,
+ [SMALL_STATE(47)] = 1344,
+ [SMALL_STATE(48)] = 1367,
+ [SMALL_STATE(49)] = 1388,
+ [SMALL_STATE(50)] = 1411,
+ [SMALL_STATE(51)] = 1428,
+ [SMALL_STATE(52)] = 1451,
+ [SMALL_STATE(53)] = 1474,
+ [SMALL_STATE(54)] = 1496,
+ [SMALL_STATE(55)] = 1518,
+ [SMALL_STATE(56)] = 1540,
+ [SMALL_STATE(57)] = 1562,
+ [SMALL_STATE(58)] = 1584,
+ [SMALL_STATE(59)] = 1612,
+ [SMALL_STATE(60)] = 1640,
+ [SMALL_STATE(61)] = 1668,
+ [SMALL_STATE(62)] = 1690,
+ [SMALL_STATE(63)] = 1718,
+ [SMALL_STATE(64)] = 1746,
+ [SMALL_STATE(65)] = 1774,
+ [SMALL_STATE(66)] = 1790,
+ [SMALL_STATE(67)] = 1812,
+ [SMALL_STATE(68)] = 1834,
+ [SMALL_STATE(69)] = 1862,
+ [SMALL_STATE(70)] = 1884,
+ [SMALL_STATE(71)] = 1900,
+ [SMALL_STATE(72)] = 1922,
+ [SMALL_STATE(73)] = 1938,
+ [SMALL_STATE(74)] = 1960,
+ [SMALL_STATE(75)] = 1976,
+ [SMALL_STATE(76)] = 1995,
+ [SMALL_STATE(77)] = 2016,
+ [SMALL_STATE(78)] = 2031,
+ [SMALL_STATE(79)] = 2050,
+ [SMALL_STATE(80)] = 2065,
+ [SMALL_STATE(81)] = 2084,
+ [SMALL_STATE(82)] = 2103,
+ [SMALL_STATE(83)] = 2118,
+ [SMALL_STATE(84)] = 2137,
+ [SMALL_STATE(85)] = 2156,
+ [SMALL_STATE(86)] = 2175,
+ [SMALL_STATE(87)] = 2194,
+ [SMALL_STATE(88)] = 2213,
+ [SMALL_STATE(89)] = 2236,
+ [SMALL_STATE(90)] = 2255,
+ [SMALL_STATE(91)] = 2274,
+ [SMALL_STATE(92)] = 2293,
+ [SMALL_STATE(93)] = 2312,
+ [SMALL_STATE(94)] = 2331,
+ [SMALL_STATE(95)] = 2350,
+ [SMALL_STATE(96)] = 2368,
+ [SMALL_STATE(97)] = 2382,
+ [SMALL_STATE(98)] = 2400,
+ [SMALL_STATE(99)] = 2418,
+ [SMALL_STATE(100)] = 2436,
+ [SMALL_STATE(101)] = 2450,
+ [SMALL_STATE(102)] = 2468,
+ [SMALL_STATE(103)] = 2486,
+ [SMALL_STATE(104)] = 2504,
+ [SMALL_STATE(105)] = 2518,
+ [SMALL_STATE(106)] = 2532,
+ [SMALL_STATE(107)] = 2550,
+ [SMALL_STATE(108)] = 2566,
+ [SMALL_STATE(109)] = 2584,
+ [SMALL_STATE(110)] = 2598,
+ [SMALL_STATE(111)] = 2616,
+ [SMALL_STATE(112)] = 2634,
+ [SMALL_STATE(113)] = 2652,
+ [SMALL_STATE(114)] = 2674,
+ [SMALL_STATE(115)] = 2692,
+ [SMALL_STATE(116)] = 2710,
+ [SMALL_STATE(117)] = 2732,
+ [SMALL_STATE(118)] = 2746,
+ [SMALL_STATE(119)] = 2768,
+ [SMALL_STATE(120)] = 2784,
+ [SMALL_STATE(121)] = 2802,
+ [SMALL_STATE(122)] = 2816,
+ [SMALL_STATE(123)] = 2830,
+ [SMALL_STATE(124)] = 2846,
+ [SMALL_STATE(125)] = 2862,
+ [SMALL_STATE(126)] = 2876,
+ [SMALL_STATE(127)] = 2894,
+ [SMALL_STATE(128)] = 2907,
+ [SMALL_STATE(129)] = 2922,
+ [SMALL_STATE(130)] = 2937,
+ [SMALL_STATE(131)] = 2950,
+ [SMALL_STATE(132)] = 2967,
+ [SMALL_STATE(133)] = 2984,
+ [SMALL_STATE(134)] = 2997,
+ [SMALL_STATE(135)] = 3012,
+ [SMALL_STATE(136)] = 3029,
+ [SMALL_STATE(137)] = 3040,
+ [SMALL_STATE(138)] = 3051,
+ [SMALL_STATE(139)] = 3064,
+ [SMALL_STATE(140)] = 3079,
+ [SMALL_STATE(141)] = 3094,
+ [SMALL_STATE(142)] = 3105,
+ [SMALL_STATE(143)] = 3120,
+ [SMALL_STATE(144)] = 3137,
+ [SMALL_STATE(145)] = 3152,
+ [SMALL_STATE(146)] = 3167,
+ [SMALL_STATE(147)] = 3180,
+ [SMALL_STATE(148)] = 3193,
+ [SMALL_STATE(149)] = 3210,
+ [SMALL_STATE(150)] = 3223,
+ [SMALL_STATE(151)] = 3236,
+ [SMALL_STATE(152)] = 3251,
+ [SMALL_STATE(153)] = 3266,
+ [SMALL_STATE(154)] = 3281,
+ [SMALL_STATE(155)] = 3296,
+ [SMALL_STATE(156)] = 3311,
+ [SMALL_STATE(157)] = 3326,
+ [SMALL_STATE(158)] = 3343,
+ [SMALL_STATE(159)] = 3360,
+ [SMALL_STATE(160)] = 3373,
+ [SMALL_STATE(161)] = 3386,
+ [SMALL_STATE(162)] = 3403,
+ [SMALL_STATE(163)] = 3413,
+ [SMALL_STATE(164)] = 3423,
+ [SMALL_STATE(165)] = 3437,
+ [SMALL_STATE(166)] = 3451,
+ [SMALL_STATE(167)] = 3465,
+ [SMALL_STATE(168)] = 3479,
+ [SMALL_STATE(169)] = 3493,
+ [SMALL_STATE(170)] = 3507,
+ [SMALL_STATE(171)] = 3521,
+ [SMALL_STATE(172)] = 3535,
+ [SMALL_STATE(173)] = 3549,
+ [SMALL_STATE(174)] = 3561,
+ [SMALL_STATE(175)] = 3575,
+ [SMALL_STATE(176)] = 3589,
+ [SMALL_STATE(177)] = 3603,
+ [SMALL_STATE(178)] = 3617,
+ [SMALL_STATE(179)] = 3631,
+ [SMALL_STATE(180)] = 3645,
+ [SMALL_STATE(181)] = 3659,
+ [SMALL_STATE(182)] = 3673,
+ [SMALL_STATE(183)] = 3687,
+ [SMALL_STATE(184)] = 3701,
+ [SMALL_STATE(185)] = 3715,
+ [SMALL_STATE(186)] = 3729,
+ [SMALL_STATE(187)] = 3743,
+ [SMALL_STATE(188)] = 3757,
+ [SMALL_STATE(189)] = 3771,
+ [SMALL_STATE(190)] = 3785,
+ [SMALL_STATE(191)] = 3799,
+ [SMALL_STATE(192)] = 3813,
+ [SMALL_STATE(193)] = 3827,
+ [SMALL_STATE(194)] = 3841,
+ [SMALL_STATE(195)] = 3851,
+ [SMALL_STATE(196)] = 3863,
+ [SMALL_STATE(197)] = 3877,
+ [SMALL_STATE(198)] = 3887,
+ [SMALL_STATE(199)] = 3899,
+ [SMALL_STATE(200)] = 3913,
+ [SMALL_STATE(201)] = 3923,
+ [SMALL_STATE(202)] = 3937,
+ [SMALL_STATE(203)] = 3947,
+ [SMALL_STATE(204)] = 3961,
+ [SMALL_STATE(205)] = 3975,
+ [SMALL_STATE(206)] = 3985,
+ [SMALL_STATE(207)] = 3997,
+ [SMALL_STATE(208)] = 4009,
+ [SMALL_STATE(209)] = 4021,
+ [SMALL_STATE(210)] = 4035,
+ [SMALL_STATE(211)] = 4049,
+ [SMALL_STATE(212)] = 4061,
+ [SMALL_STATE(213)] = 4073,
+ [SMALL_STATE(214)] = 4087,
+ [SMALL_STATE(215)] = 4099,
+ [SMALL_STATE(216)] = 4111,
+ [SMALL_STATE(217)] = 4125,
+ [SMALL_STATE(218)] = 4137,
+ [SMALL_STATE(219)] = 4148,
+ [SMALL_STATE(220)] = 4159,
+ [SMALL_STATE(221)] = 4170,
+ [SMALL_STATE(222)] = 4181,
+ [SMALL_STATE(223)] = 4194,
+ [SMALL_STATE(224)] = 4205,
+ [SMALL_STATE(225)] = 4216,
+ [SMALL_STATE(226)] = 4225,
+ [SMALL_STATE(227)] = 4236,
+ [SMALL_STATE(228)] = 4247,
+ [SMALL_STATE(229)] = 4256,
+ [SMALL_STATE(230)] = 4267,
+ [SMALL_STATE(231)] = 4276,
+ [SMALL_STATE(232)] = 4285,
+ [SMALL_STATE(233)] = 4294,
+ [SMALL_STATE(234)] = 4303,
+ [SMALL_STATE(235)] = 4312,
+ [SMALL_STATE(236)] = 4321,
+ [SMALL_STATE(237)] = 4332,
+ [SMALL_STATE(238)] = 4343,
+ [SMALL_STATE(239)] = 4356,
+ [SMALL_STATE(240)] = 4367,
+ [SMALL_STATE(241)] = 4376,
+ [SMALL_STATE(242)] = 4387,
+ [SMALL_STATE(243)] = 4398,
+ [SMALL_STATE(244)] = 4409,
+ [SMALL_STATE(245)] = 4418,
+ [SMALL_STATE(246)] = 4431,
+ [SMALL_STATE(247)] = 4442,
+ [SMALL_STATE(248)] = 4453,
+ [SMALL_STATE(249)] = 4463,
+ [SMALL_STATE(250)] = 4471,
+ [SMALL_STATE(251)] = 4479,
+ [SMALL_STATE(252)] = 4487,
+ [SMALL_STATE(253)] = 4495,
+ [SMALL_STATE(254)] = 4503,
+ [SMALL_STATE(255)] = 4511,
+ [SMALL_STATE(256)] = 4521,
+ [SMALL_STATE(257)] = 4529,
+ [SMALL_STATE(258)] = 4537,
+ [SMALL_STATE(259)] = 4545,
+ [SMALL_STATE(260)] = 4553,
+ [SMALL_STATE(261)] = 4561,
+ [SMALL_STATE(262)] = 4569,
+ [SMALL_STATE(263)] = 4577,
+ [SMALL_STATE(264)] = 4585,
+ [SMALL_STATE(265)] = 4593,
+ [SMALL_STATE(266)] = 4601,
+ [SMALL_STATE(267)] = 4609,
+ [SMALL_STATE(268)] = 4617,
+ [SMALL_STATE(269)] = 4625,
+ [SMALL_STATE(270)] = 4633,
+ [SMALL_STATE(271)] = 4641,
+ [SMALL_STATE(272)] = 4651,
+ [SMALL_STATE(273)] = 4659,
+ [SMALL_STATE(274)] = 4667,
+ [SMALL_STATE(275)] = 4675,
+ [SMALL_STATE(276)] = 4683,
+ [SMALL_STATE(277)] = 4691,
+ [SMALL_STATE(278)] = 4699,
+ [SMALL_STATE(279)] = 4709,
+ [SMALL_STATE(280)] = 4717,
+ [SMALL_STATE(281)] = 4725,
+ [SMALL_STATE(282)] = 4733,
+ [SMALL_STATE(283)] = 4743,
+ [SMALL_STATE(284)] = 4751,
+ [SMALL_STATE(285)] = 4759,
+ [SMALL_STATE(286)] = 4767,
+ [SMALL_STATE(287)] = 4775,
+ [SMALL_STATE(288)] = 4783,
+ [SMALL_STATE(289)] = 4791,
+ [SMALL_STATE(290)] = 4799,
+ [SMALL_STATE(291)] = 4807,
+ [SMALL_STATE(292)] = 4815,
+ [SMALL_STATE(293)] = 4823,
+ [SMALL_STATE(294)] = 4831,
+ [SMALL_STATE(295)] = 4839,
+ [SMALL_STATE(296)] = 4847,
+ [SMALL_STATE(297)] = 4855,
+ [SMALL_STATE(298)] = 4863,
+ [SMALL_STATE(299)] = 4871,
+ [SMALL_STATE(300)] = 4879,
+ [SMALL_STATE(301)] = 4887,
+ [SMALL_STATE(302)] = 4895,
+ [SMALL_STATE(303)] = 4903,
+ [SMALL_STATE(304)] = 4911,
+ [SMALL_STATE(305)] = 4919,
+ [SMALL_STATE(306)] = 4927,
+ [SMALL_STATE(307)] = 4935,
+ [SMALL_STATE(308)] = 4943,
+ [SMALL_STATE(309)] = 4951,
+ [SMALL_STATE(310)] = 4959,
+ [SMALL_STATE(311)] = 4967,
+ [SMALL_STATE(312)] = 4975,
+ [SMALL_STATE(313)] = 4983,
+ [SMALL_STATE(314)] = 4991,
+ [SMALL_STATE(315)] = 4999,
+ [SMALL_STATE(316)] = 5007,
+ [SMALL_STATE(317)] = 5015,
+ [SMALL_STATE(318)] = 5023,
+ [SMALL_STATE(319)] = 5031,
+ [SMALL_STATE(320)] = 5039,
+ [SMALL_STATE(321)] = 5047,
+ [SMALL_STATE(322)] = 5055,
+ [SMALL_STATE(323)] = 5063,
+ [SMALL_STATE(324)] = 5071,
+};
+
+static const TSParseActionEntry ts_parse_actions[] = {
+ [0] = {.entry = {.count = 0, .reusable = false}},
+ [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(),
+ [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(),
+ [5] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(),
+ [7] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 0, 0, 0),
+ [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68),
+ [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6),
+ [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16),
+ [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71),
+ [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123),
+ [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102),
+ [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13),
+ [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14),
+ [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15),
+ [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62),
+ [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157),
+ [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118),
+ [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(280),
+ [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4),
+ [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148),
+ [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76),
+ [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(236),
+ [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(275),
+ [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(274),
+ [47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, 0, 0),
+ [49] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0),
+ [51] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(68),
+ [54] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(6),
+ [57] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(16),
+ [60] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(71),
+ [63] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(123),
+ [66] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(102),
+ [69] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(13),
+ [72] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(14),
+ [75] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(15),
+ [78] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(62),
+ [81] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(157),
+ [84] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(118),
+ [87] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(280),
+ [90] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(4),
+ [93] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(148),
+ [96] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(76),
+ [99] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(236),
+ [102] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(275),
+ [105] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(274),
+ [108] = {.entry = {.count = 1, .reusable = false}}, SHIFT(26),
+ [110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218),
+ [112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196),
+ [114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(260),
+ [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_env_pair, 2, 0, 1),
+ [118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166),
+ [120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_env_pair, 2, 0, 1),
+ [122] = {.entry = {.count = 1, .reusable = false}}, SHIFT(49),
+ [124] = {.entry = {.count = 1, .reusable = false}}, SHIFT(99),
+ [126] = {.entry = {.count = 1, .reusable = false}}, SHIFT(38),
+ [128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167),
+ [130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52),
+ [132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103),
+ [134] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17),
+ [136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_run_instruction_repeat1, 2, 0, 0),
+ [138] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_run_instruction_repeat1, 2, 0, 0), SHIFT_REPEAT(218),
+ [141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_run_instruction_repeat1, 2, 0, 0),
+ [143] = {.entry = {.count = 1, .reusable = false}}, SHIFT(86),
+ [145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86),
+ [147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185),
+ [149] = {.entry = {.count = 1, .reusable = true}}, SHIFT(323),
+ [151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(254),
+ [153] = {.entry = {.count = 1, .reusable = false}}, SHIFT(35),
+ [155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35),
+ [157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191),
+ [159] = {.entry = {.count = 1, .reusable = true}}, SHIFT(261),
+ [161] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unquoted_string, 1, 0, 0),
+ [163] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unquoted_string, 1, 0, 0),
+ [165] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18),
+ [167] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_unquoted_string_repeat1, 2, 0, 0),
+ [169] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_unquoted_string_repeat1, 2, 0, 0), SHIFT_REPEAT(167),
+ [172] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_unquoted_string_repeat1, 2, 0, 0),
+ [174] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_unquoted_string_repeat1, 2, 0, 0), SHIFT_REPEAT(18),
+ [177] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_mount_param, 4, 0, 13),
+ [179] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_mount_param, 4, 0, 13),
+ [181] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238),
+ [183] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_image_name, 2, 0, 0),
+ [185] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_image_name, 2, 0, 0),
+ [187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216),
+ [189] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27),
+ [191] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_mount_param, 5, 0, 15),
+ [193] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_mount_param, 5, 0, 15),
+ [195] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_shell_fragment_repeat1, 2, 0, 0),
+ [197] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_shell_fragment_repeat1, 2, 0, 0), SHIFT_REPEAT(24),
+ [200] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_shell_fragment_repeat1, 2, 0, 0),
+ [202] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_shell_fragment_repeat1, 2, 0, 0), SHIFT_REPEAT(260),
+ [205] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_image_name, 1, 0, 0),
+ [207] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_image_name, 1, 0, 0),
+ [209] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22),
+ [211] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_shell_fragment, 1, 0, 0),
+ [213] = {.entry = {.count = 1, .reusable = false}}, SHIFT(24),
+ [215] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_shell_fragment, 1, 0, 0),
+ [217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_image_name_repeat1, 2, 0, 0),
+ [219] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_image_name_repeat1, 2, 0, 0),
+ [221] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_image_name_repeat1, 2, 0, 0), SHIFT_REPEAT(216),
+ [224] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_image_name_repeat1, 2, 0, 0), SHIFT_REPEAT(27),
+ [227] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_mount_param_repeat1, 2, 0, 0),
+ [229] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_mount_param_repeat1, 2, 0, 0),
+ [231] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_mount_param_repeat1, 2, 0, 0), SHIFT_REPEAT(238),
+ [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199),
+ [236] = {.entry = {.count = 1, .reusable = false}}, SHIFT(226),
+ [238] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47),
+ [240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47),
+ [242] = {.entry = {.count = 1, .reusable = false}}, SHIFT(159),
+ [244] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_unquoted_string_repeat1, 2, 0, 0), SHIFT_REPEAT(166),
+ [247] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_unquoted_string_repeat1, 2, 0, 0), SHIFT_REPEAT(33),
+ [250] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_image_tag, 2, 0, 0),
+ [252] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_image_tag, 2, 0, 0),
+ [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172),
+ [256] = {.entry = {.count = 1, .reusable = false}}, SHIFT(37),
+ [258] = {.entry = {.count = 1, .reusable = false}}, SHIFT(51),
+ [260] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_path_with_heredoc, 1, 0, 0),
+ [262] = {.entry = {.count = 1, .reusable = false}}, SHIFT(44),
+ [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165),
+ [266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_path_with_heredoc, 1, 0, 0),
+ [268] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_image_tag_repeat1, 2, 0, 0),
+ [270] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_image_tag_repeat1, 2, 0, 0),
+ [272] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_image_tag_repeat1, 2, 0, 0), SHIFT_REPEAT(172),
+ [275] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_image_tag_repeat1, 2, 0, 0), SHIFT_REPEAT(37),
+ [278] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33),
+ [280] = {.entry = {.count = 1, .reusable = false}}, SHIFT(269),
+ [282] = {.entry = {.count = 1, .reusable = false}}, SHIFT(45),
+ [284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45),
+ [286] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_path_repeat1, 2, 0, 0),
+ [288] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_path_repeat1, 2, 0, 0), SHIFT_REPEAT(40),
+ [291] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_path_repeat1, 2, 0, 0), SHIFT_REPEAT(165),
+ [294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_path_repeat1, 2, 0, 0),
+ [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label_instruction, 2, 0, 0),
+ [298] = {.entry = {.count = 1, .reusable = false}}, SHIFT(257),
+ [300] = {.entry = {.count = 1, .reusable = false}}, SHIFT(39),
+ [302] = {.entry = {.count = 1, .reusable = false}}, SHIFT(120),
+ [304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__user_name_or_group, 2, 0, 0),
+ [306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43),
+ [308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180),
+ [310] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__user_name_or_group_repeat1, 2, 0, 0),
+ [312] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__user_name_or_group_repeat1, 2, 0, 0), SHIFT_REPEAT(43),
+ [315] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__user_name_or_group_repeat1, 2, 0, 0), SHIFT_REPEAT(180),
+ [318] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_path_with_heredoc, 2, 0, 0),
+ [320] = {.entry = {.count = 1, .reusable = false}}, SHIFT(40),
+ [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_path_with_heredoc, 2, 0, 0),
+ [324] = {.entry = {.count = 1, .reusable = false}}, SHIFT(289),
+ [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_label_instruction_repeat1, 2, 0, 0),
+ [328] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_label_instruction_repeat1, 2, 0, 0), SHIFT_REPEAT(257),
+ [331] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_label_instruction_repeat1, 2, 0, 0), SHIFT_REPEAT(39),
+ [334] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_label_instruction_repeat1, 2, 0, 0), SHIFT_REPEAT(120),
+ [337] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_double_quoted_string_repeat1, 2, 0, 0), SHIFT_REPEAT(199),
+ [340] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_double_quoted_string_repeat1, 2, 0, 0),
+ [342] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_double_quoted_string_repeat1, 2, 0, 0), SHIFT_REPEAT(47),
+ [345] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_double_quoted_string_repeat1, 2, 0, 0), SHIFT_REPEAT(47),
+ [348] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__user_name_or_group, 1, 0, 0),
+ [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42),
+ [352] = {.entry = {.count = 1, .reusable = false}}, SHIFT(223),
+ [354] = {.entry = {.count = 1, .reusable = false}}, SHIFT(29),
+ [356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29),
+ [358] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_mount_param_param, 3, 0, 0),
+ [360] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_mount_param_param, 3, 0, 0),
+ [362] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_shell_fragment_repeat1, 2, 0, 0), SHIFT_REPEAT(51),
+ [365] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_shell_fragment_repeat1, 2, 0, 0), SHIFT_REPEAT(261),
+ [368] = {.entry = {.count = 1, .reusable = false}}, SHIFT(138),
+ [370] = {.entry = {.count = 1, .reusable = false}}, SHIFT(30),
+ [372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30),
+ [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_image_digest_repeat1, 2, 0, 0),
+ [376] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_image_digest_repeat1, 2, 0, 0),
+ [378] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_image_digest_repeat1, 2, 0, 0), SHIFT_REPEAT(170),
+ [381] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_image_digest_repeat1, 2, 0, 0), SHIFT_REPEAT(54),
+ [384] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_path, 1, 0, 0),
+ [386] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61),
+ [388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184),
+ [390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_path, 1, 0, 0),
+ [392] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_add_instruction_repeat1, 2, 0, 0),
+ [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_add_instruction_repeat1, 2, 0, 0),
+ [396] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_add_instruction_repeat1, 2, 0, 0), SHIFT_REPEAT(323),
+ [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__immediate_user_name_or_group, 2, 0, 0),
+ [401] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__immediate_user_name_or_group, 2, 0, 0), SHIFT_REPEAT(202),
+ [404] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__immediate_user_name_or_group, 2, 0, 0), SHIFT_REPEAT(180),
+ [407] = {.entry = {.count = 1, .reusable = false}}, SHIFT(36),
+ [409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36),
+ [411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171),
+ [413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195),
+ [415] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_add_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(86),
+ [418] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_add_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(86),
+ [421] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_add_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(185),
+ [424] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_add_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(254),
+ [427] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_path, 2, 0, 0),
+ [429] = {.entry = {.count = 1, .reusable = false}}, SHIFT(69),
+ [431] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_path, 2, 0, 0),
+ [433] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55),
+ [435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55),
+ [437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182),
+ [439] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__imm_expansion, 2, 0, 0),
+ [441] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__imm_expansion, 2, 0, 0),
+ [443] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_user_instruction, 4, 0, 11),
+ [445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202),
+ [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26),
+ [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189),
+ [451] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25),
+ [453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(264),
+ [455] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_path_repeat1, 2, 0, 0), SHIFT_REPEAT(69),
+ [458] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_path_repeat1, 2, 0, 0), SHIFT_REPEAT(184),
+ [461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(257),
+ [463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39),
+ [465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120),
+ [467] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expansion_body, 3, 0, 0),
+ [469] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expansion_body, 3, 0, 0),
+ [471] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_image_digest, 2, 0, 0),
+ [473] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_image_digest, 2, 0, 0),
+ [475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170),
+ [477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54),
+ [479] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_param, 4, 0, 13),
+ [481] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_param, 4, 0, 13),
+ [483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(284),
+ [485] = {.entry = {.count = 1, .reusable = true}}, SHIFT(324),
+ [487] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expansion, 2, 0, 0),
+ [489] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expansion, 2, 0, 0),
+ [491] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_image_alias, 1, 0, 0),
+ [493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164),
+ [495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81),
+ [497] = {.entry = {.count = 1, .reusable = false}}, SHIFT(87),
+ [499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177),
+ [501] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_image_alias, 2, 0, 0),
+ [503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94),
+ [505] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__stopsignal_value_repeat1, 2, 0, 0),
+ [507] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__stopsignal_value_repeat1, 2, 0, 0), SHIFT_REPEAT(83),
+ [510] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__stopsignal_value_repeat1, 2, 0, 0), SHIFT_REPEAT(175),
+ [513] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__stopsignal_value, 2, 0, 0),
+ [515] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83),
+ [517] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175),
+ [519] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expose_instruction, 2, 0, 0),
+ [521] = {.entry = {.count = 1, .reusable = false}}, SHIFT(192),
+ [523] = {.entry = {.count = 1, .reusable = false}}, SHIFT(119),
+ [525] = {.entry = {.count = 1, .reusable = false}}, SHIFT(89),
+ [527] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187),
+ [529] = {.entry = {.count = 1, .reusable = false}}, SHIFT(93),
+ [531] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_image_spec, 1, 0, 1),
+ [533] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_image_spec, 1, 0, 1),
+ [535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126),
+ [537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124),
+ [539] = {.entry = {.count = 1, .reusable = false}}, SHIFT(91),
+ [541] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_expose_instruction_repeat1, 2, 0, 0),
+ [543] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_expose_instruction_repeat1, 2, 0, 0), SHIFT_REPEAT(192),
+ [546] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_expose_instruction_repeat1, 2, 0, 0), SHIFT_REPEAT(119),
+ [549] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_path_repeat1, 2, 0, 0), SHIFT_REPEAT(91),
+ [552] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_path_repeat1, 2, 0, 0), SHIFT_REPEAT(187),
+ [555] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__stopsignal_value, 1, 0, 0),
+ [557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84),
+ [559] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_path_repeat1, 2, 0, 0), SHIFT_REPEAT(93),
+ [562] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_path_repeat1, 2, 0, 0), SHIFT_REPEAT(177),
+ [565] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_image_alias_repeat1, 2, 0, 0),
+ [567] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_image_alias_repeat1, 2, 0, 0), SHIFT_REPEAT(164),
+ [570] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_image_alias_repeat1, 2, 0, 0), SHIFT_REPEAT(94),
+ [573] = {.entry = {.count = 1, .reusable = false}}, SHIFT(110),
+ [575] = {.entry = {.count = 1, .reusable = false}}, SHIFT(295),
+ [577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110),
+ [579] = {.entry = {.count = 1, .reusable = false}}, SHIFT(227),
+ [581] = {.entry = {.count = 1, .reusable = false}}, SHIFT(97),
+ [583] = {.entry = {.count = 1, .reusable = false}}, SHIFT(224),
+ [585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97),
+ [587] = {.entry = {.count = 1, .reusable = false}}, SHIFT(160),
+ [589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247),
+ [591] = {.entry = {.count = 1, .reusable = false}}, SHIFT(101),
+ [593] = {.entry = {.count = 1, .reusable = false}}, SHIFT(147),
+ [595] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101),
+ [597] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_env_instruction_repeat1, 2, 0, 0),
+ [599] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_env_instruction_repeat1, 2, 0, 0), SHIFT_REPEAT(265),
+ [602] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_add_instruction, 4, 0, 0),
+ [604] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134),
+ [606] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209),
+ [608] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_single_quoted_string_repeat1, 2, 0, 0), SHIFT_REPEAT(110),
+ [611] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_single_quoted_string_repeat1, 2, 0, 0),
+ [613] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_single_quoted_string_repeat1, 2, 0, 0), SHIFT_REPEAT(110),
+ [616] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_add_instruction, 3, 0, 0),
+ [618] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_copy_instruction, 4, 0, 0),
+ [620] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_copy_instruction, 3, 0, 0),
+ [622] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_env_instruction, 2, 0, 0),
+ [624] = {.entry = {.count = 1, .reusable = false}}, SHIFT(265),
+ [626] = {.entry = {.count = 1, .reusable = false}}, SHIFT(80),
+ [628] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80),
+ [630] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176),
+ [632] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expose_port, 1, 0, 0),
+ [634] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expose_port, 1, 0, 0),
+ [636] = {.entry = {.count = 1, .reusable = false}}, SHIFT(206),
+ [638] = {.entry = {.count = 1, .reusable = false}}, SHIFT(95),
+ [640] = {.entry = {.count = 1, .reusable = false}}, SHIFT(266),
+ [642] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95),
+ [644] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192),
+ [646] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119),
+ [648] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73),
+ [650] = {.entry = {.count = 1, .reusable = false}}, SHIFT(34),
+ [652] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_run_instruction, 2, 0, 0),
+ [654] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_shell_command, 1, 0, 0),
+ [656] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67),
+ [658] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169),
+ [660] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78),
+ [662] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_add_instruction_repeat2, 2, 0, 0),
+ [664] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_add_instruction_repeat2, 2, 0, 0),
+ [666] = {.entry = {.count = 1, .reusable = false}}, SHIFT(228),
+ [668] = {.entry = {.count = 1, .reusable = false}}, SHIFT(143),
+ [670] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143),
+ [672] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_double_quoted_string, 2, 0, 0),
+ [674] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_double_quoted_string, 2, 0, 0),
+ [676] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_copy_instruction, 5, 0, 0),
+ [678] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_add_instruction, 5, 0, 0),
+ [680] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_run_instruction_repeat2, 2, 0, 0),
+ [682] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_run_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(209),
+ [685] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_json_string_repeat1, 2, 0, 0),
+ [687] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_json_string_repeat1, 2, 0, 0), SHIFT_REPEAT(143),
+ [690] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_json_string_repeat1, 2, 0, 0), SHIFT_REPEAT(143),
+ [693] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_shell_command_repeat1, 2, 0, 0),
+ [695] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_shell_command_repeat1, 2, 0, 0), SHIFT_REPEAT(67),
+ [698] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_run_instruction, 4, 0, 0),
+ [700] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label_pair, 3, 0, 9),
+ [702] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_label_pair, 3, 0, 9),
+ [704] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_single_quoted_string, 2, 0, 0),
+ [706] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_single_quoted_string, 2, 0, 0),
+ [708] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92),
+ [710] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174),
+ [712] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_run_instruction, 3, 0, 0),
+ [714] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_shell_command, 2, 0, 0),
+ [716] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_add_instruction, 4, 0, 0),
+ [718] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_copy_instruction, 4, 0, 0),
+ [720] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_add_instruction_repeat1, 2, 0, 0), SHIFT_REPEAT(324),
+ [723] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48),
+ [725] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179),
+ [727] = {.entry = {.count = 1, .reusable = false}}, SHIFT(244),
+ [729] = {.entry = {.count = 1, .reusable = false}}, SHIFT(135),
+ [731] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135),
+ [733] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_double_quoted_string, 3, 0, 0),
+ [735] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_double_quoted_string, 3, 0, 0),
+ [737] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_single_quoted_string, 3, 0, 0),
+ [739] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_single_quoted_string, 3, 0, 0),
+ [741] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_image_spec, 2, 0, 5),
+ [743] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_image_spec, 2, 0, 5),
+ [745] = {.entry = {.count = 1, .reusable = true}}, SHIFT(318),
+ [747] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194),
+ [749] = {.entry = {.count = 1, .reusable = true}}, SHIFT(317),
+ [751] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100),
+ [753] = {.entry = {.count = 1, .reusable = true}}, SHIFT(322),
+ [755] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122),
+ [757] = {.entry = {.count = 1, .reusable = true}}, SHIFT(321),
+ [759] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65),
+ [761] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_volume_instruction_repeat1, 2, 0, 0),
+ [763] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_volume_instruction_repeat1, 2, 0, 0), SHIFT_REPEAT(116),
+ [766] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200),
+ [768] = {.entry = {.count = 1, .reusable = true}}, SHIFT(320),
+ [770] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133),
+ [772] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105),
+ [774] = {.entry = {.count = 1, .reusable = true}}, SHIFT(319),
+ [776] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109),
+ [778] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_shell_command_repeat1, 2, 0, 0),
+ [780] = {.entry = {.count = 1, .reusable = true}}, SHIFT(315),
+ [782] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205),
+ [784] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162),
+ [786] = {.entry = {.count = 1, .reusable = true}}, SHIFT(314),
+ [788] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211),
+ [790] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208),
+ [792] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_json_string_array_repeat1, 2, 0, 0), SHIFT_REPEAT(241),
+ [795] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_json_string_array_repeat1, 2, 0, 0),
+ [797] = {.entry = {.count = 1, .reusable = true}}, SHIFT(313),
+ [799] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141),
+ [801] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137),
+ [803] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_heredoc_block_repeat1, 2, 0, 0), SHIFT_REPEAT(272),
+ [806] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_heredoc_block_repeat1, 2, 0, 0),
+ [808] = {.entry = {.count = 1, .reusable = true}}, SHIFT(311),
+ [810] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150),
+ [812] = {.entry = {.count = 1, .reusable = true}}, SHIFT(272),
+ [814] = {.entry = {.count = 1, .reusable = true}}, SHIFT(233),
+ [816] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149),
+ [818] = {.entry = {.count = 1, .reusable = true}}, SHIFT(309),
+ [820] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215),
+ [822] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241),
+ [824] = {.entry = {.count = 1, .reusable = true}}, SHIFT(231),
+ [826] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214),
+ [828] = {.entry = {.count = 1, .reusable = true}}, SHIFT(302),
+ [830] = {.entry = {.count = 1, .reusable = true}}, SHIFT(298),
+ [832] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77),
+ [834] = {.entry = {.count = 1, .reusable = true}}, SHIFT(270),
+ [836] = {.entry = {.count = 1, .reusable = true}}, SHIFT(250),
+ [838] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158),
+ [840] = {.entry = {.count = 1, .reusable = true}}, SHIFT(307),
+ [842] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198),
+ [844] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53),
+ [846] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225),
+ [848] = {.entry = {.count = 1, .reusable = true}}, SHIFT(316),
+ [850] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121),
+ [852] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_volume_instruction, 2, 0, 0),
+ [854] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116),
+ [856] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__immediate_user_name_or_group, 1, 0, 0),
+ [858] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_volume_instruction, 3, 0, 0),
+ [860] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expose_port, 2, 0, 0),
+ [862] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expose_port, 2, 0, 0),
+ [864] = {.entry = {.count = 1, .reusable = true}}, SHIFT(234),
+ [866] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240),
+ [868] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_shell_command_repeat1, 2, 0, 0), SHIFT_REPEAT(53),
+ [871] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79),
+ [873] = {.entry = {.count = 1, .reusable = false}}, SHIFT(308),
+ [875] = {.entry = {.count = 1, .reusable = false}}, SHIFT(300),
+ [877] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_env_pair, 3, 0, 10),
+ [879] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_env_pair, 3, 0, 10),
+ [881] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_volume_instruction_repeat1, 2, 0, 0),
+ [883] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_from_instruction, 3, 0, 0),
+ [885] = {.entry = {.count = 1, .reusable = false}}, SHIFT(132),
+ [887] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_json_string_array, 2, 0, 0),
+ [889] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_json_string, 3, 0, 0),
+ [891] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_json_string_array, 4, 0, 0),
+ [893] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_heredoc_block, 3, 0, 0),
+ [895] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_heredoc_block, 2, 0, 0),
+ [897] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arg_instruction, 2, 0, 4),
+ [899] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9),
+ [901] = {.entry = {.count = 1, .reusable = false}}, SHIFT(292),
+ [903] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_image_spec, 2, 0, 6),
+ [905] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_image_spec, 2, 0, 6),
+ [907] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_json_string_array, 3, 0, 0),
+ [909] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_from_instruction, 2, 0, 0),
+ [911] = {.entry = {.count = 1, .reusable = false}}, SHIFT(131),
+ [913] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_user_instruction, 2, 0, 3),
+ [915] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75),
+ [917] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_json_string, 2, 0, 0),
+ [919] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_image_spec, 3, 0, 8),
+ [921] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_image_spec, 3, 0, 8),
+ [923] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8),
+ [925] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11),
+ [927] = {.entry = {.count = 1, .reusable = false}}, SHIFT(74),
+ [929] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_maintainer_instruction, 2, 0, 0),
+ [931] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_entrypoint_instruction, 2, 0, 0),
+ [933] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82),
+ [935] = {.entry = {.count = 1, .reusable = false}}, SHIFT(222),
+ [937] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_env_instruction, 2, 0, 2),
+ [939] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10),
+ [941] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cmd_instruction, 2, 0, 0),
+ [943] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_from_instruction, 4, 0, 7),
+ [945] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32),
+ [947] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70),
+ [949] = {.entry = {.count = 1, .reusable = true}}, SHIFT(255),
+ [951] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_healthcheck_instruction, 3, 0, 0),
+ [953] = {.entry = {.count = 1, .reusable = true}}, SHIFT(262),
+ [955] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5),
+ [957] = {.entry = {.count = 1, .reusable = true}}, SHIFT(217),
+ [959] = {.entry = {.count = 1, .reusable = false}}, SHIFT(50),
+ [961] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232),
+ [963] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(),
+ [965] = {.entry = {.count = 1, .reusable = false}}, SHIFT(290),
+ [967] = {.entry = {.count = 1, .reusable = false}}, SHIFT(249),
+ [969] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_workdir_instruction, 2, 0, 0),
+ [971] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212),
+ [973] = {.entry = {.count = 1, .reusable = false}}, SHIFT(107),
+ [975] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_onbuild_instruction, 2, 0, 0),
+ [977] = {.entry = {.count = 1, .reusable = true}}, SHIFT(237),
+ [979] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127),
+ [981] = {.entry = {.count = 1, .reusable = false}}, SHIFT(235),
+ [983] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stopsignal_instruction, 2, 0, 0),
+ [985] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_healthcheck_instruction, 2, 0, 0),
+ [987] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136),
+ [989] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_shell_instruction, 2, 0, 0),
+ [991] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_volume_instruction, 2, 0, 0),
+ [993] = {.entry = {.count = 1, .reusable = true}}, SHIFT(207),
+ [995] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cross_build_instruction, 2, 0, 0),
+ [997] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163),
+ [999] = {.entry = {.count = 1, .reusable = true}}, SHIFT(271),
+ [1001] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_from_instruction, 5, 0, 14),
+ [1003] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96),
+ [1005] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__spaced_env_pair, 3, 0, 10),
+ [1007] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117),
+ [1009] = {.entry = {.count = 1, .reusable = false}}, SHIFT(252),
+ [1011] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197),
+ [1013] = {.entry = {.count = 1, .reusable = true}}, SHIFT(245),
+ [1015] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125),
+ [1017] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130),
+ [1019] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arg_instruction, 4, 0, 12),
+ [1021] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72),
+ [1023] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104),
+ [1025] = {.entry = {.count = 1, .reusable = false}}, SHIFT(268),
+ [1027] = {.entry = {.count = 1, .reusable = true}}, SHIFT(248),
+ [1029] = {.entry = {.count = 1, .reusable = false}}, SHIFT(277),
+ [1031] = {.entry = {.count = 1, .reusable = true}}, SHIFT(278),
+ [1033] = {.entry = {.count = 1, .reusable = false}}, SHIFT(281),
+ [1035] = {.entry = {.count = 1, .reusable = true}}, SHIFT(282),
+ [1037] = {.entry = {.count = 1, .reusable = false}}, SHIFT(285),
+ [1039] = {.entry = {.count = 1, .reusable = false}}, SHIFT(288),
+ [1041] = {.entry = {.count = 1, .reusable = false}}, SHIFT(291),
+ [1043] = {.entry = {.count = 1, .reusable = false}}, SHIFT(294),
+ [1045] = {.entry = {.count = 1, .reusable = false}}, SHIFT(297),
+ [1047] = {.entry = {.count = 1, .reusable = false}}, SHIFT(299),
+ [1049] = {.entry = {.count = 1, .reusable = false}}, SHIFT(301),
+ [1051] = {.entry = {.count = 1, .reusable = false}}, SHIFT(303),
+ [1053] = {.entry = {.count = 1, .reusable = false}}, SHIFT(305),
+ [1055] = {.entry = {.count = 1, .reusable = false}}, SHIFT(306),
+ [1057] = {.entry = {.count = 1, .reusable = true}}, SHIFT(310),
+ [1059] = {.entry = {.count = 1, .reusable = true}}, SHIFT(312),
+};
+
+enum ts_external_scanner_symbol_identifiers {
+ ts_external_token_heredoc_marker = 0,
+ ts_external_token_heredoc_line = 1,
+ ts_external_token_heredoc_end = 2,
+ ts_external_token_heredoc_nl = 3,
+ ts_external_token_error_sentinel = 4,
+};
+
+static const TSSymbol ts_external_scanner_symbol_map[EXTERNAL_TOKEN_COUNT] = {
+ [ts_external_token_heredoc_marker] = sym_heredoc_marker,
+ [ts_external_token_heredoc_line] = sym_heredoc_line,
+ [ts_external_token_heredoc_end] = sym_heredoc_end,
+ [ts_external_token_heredoc_nl] = sym_heredoc_nl,
+ [ts_external_token_error_sentinel] = sym_error_sentinel,
+};
+
+static const bool ts_external_scanner_states[6][EXTERNAL_TOKEN_COUNT] = {
+ [1] = {
+ [ts_external_token_heredoc_marker] = true,
+ [ts_external_token_heredoc_line] = true,
+ [ts_external_token_heredoc_end] = true,
+ [ts_external_token_heredoc_nl] = true,
+ [ts_external_token_error_sentinel] = true,
+ },
+ [2] = {
+ [ts_external_token_heredoc_marker] = true,
+ },
+ [3] = {
+ [ts_external_token_heredoc_marker] = true,
+ [ts_external_token_heredoc_nl] = true,
+ },
+ [4] = {
+ [ts_external_token_heredoc_nl] = true,
+ },
+ [5] = {
+ [ts_external_token_heredoc_line] = true,
+ [ts_external_token_heredoc_end] = true,
+ },
+};
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+void *tree_sitter_dockerfile_external_scanner_create(void);
+void tree_sitter_dockerfile_external_scanner_destroy(void *);
+bool tree_sitter_dockerfile_external_scanner_scan(void *, TSLexer *, const bool *);
+unsigned tree_sitter_dockerfile_external_scanner_serialize(void *, char *);
+void tree_sitter_dockerfile_external_scanner_deserialize(void *, const char *, unsigned);
+
+#ifdef TREE_SITTER_HIDE_SYMBOLS
+#define TS_PUBLIC
+#elif defined(_WIN32)
+#define TS_PUBLIC __declspec(dllexport)
+#else
+#define TS_PUBLIC __attribute__((visibility("default")))
+#endif
+
+TS_PUBLIC const TSLanguage *tree_sitter_dockerfile(void) {
+ static const TSLanguage language = {
+ .version = LANGUAGE_VERSION,
+ .symbol_count = SYMBOL_COUNT,
+ .alias_count = ALIAS_COUNT,
+ .token_count = TOKEN_COUNT,
+ .external_token_count = EXTERNAL_TOKEN_COUNT,
+ .state_count = STATE_COUNT,
+ .large_state_count = LARGE_STATE_COUNT,
+ .production_id_count = PRODUCTION_ID_COUNT,
+ .field_count = FIELD_COUNT,
+ .max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH,
+ .parse_table = &ts_parse_table[0][0],
+ .small_parse_table = ts_small_parse_table,
+ .small_parse_table_map = ts_small_parse_table_map,
+ .parse_actions = ts_parse_actions,
+ .symbol_names = ts_symbol_names,
+ .field_names = ts_field_names,
+ .field_map_slices = ts_field_map_slices,
+ .field_map_entries = ts_field_map_entries,
+ .symbol_metadata = ts_symbol_metadata,
+ .public_symbol_map = ts_symbol_map,
+ .alias_map = ts_non_terminal_alias_map,
+ .alias_sequences = &ts_alias_sequences[0][0],
+ .lex_modes = ts_lex_modes,
+ .lex_fn = ts_lex,
+ .external_scanner = {
+ &ts_external_scanner_states[0][0],
+ ts_external_scanner_symbol_map,
+ tree_sitter_dockerfile_external_scanner_create,
+ tree_sitter_dockerfile_external_scanner_destroy,
+ tree_sitter_dockerfile_external_scanner_scan,
+ tree_sitter_dockerfile_external_scanner_serialize,
+ tree_sitter_dockerfile_external_scanner_deserialize,
+ },
+ .primary_state_ids = ts_primary_state_ids,
+ };
+ return &language;
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/vendor/github.com/mitjafelicijan/go-tree-sitter/dockerfile/parser.h b/vendor/github.com/mitjafelicijan/go-tree-sitter/dockerfile/parser.h
new file mode 100644
index 0000000..17f0e94
--- /dev/null
+++ b/vendor/github.com/mitjafelicijan/go-tree-sitter/dockerfile/parser.h
@@ -0,0 +1,265 @@
+#ifndef TREE_SITTER_PARSER_H_
+#define TREE_SITTER_PARSER_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdlib.h>
+
+#define ts_builtin_sym_error ((TSSymbol)-1)
+#define ts_builtin_sym_end 0
+#define TREE_SITTER_SERIALIZATION_BUFFER_SIZE 1024
+
+#ifndef TREE_SITTER_API_H_
+typedef uint16_t TSStateId;
+typedef uint16_t TSSymbol;
+typedef uint16_t TSFieldId;
+typedef struct TSLanguage TSLanguage;
+#endif
+
+typedef struct {
+ TSFieldId field_id;
+ uint8_t child_index;
+ bool inherited;
+} TSFieldMapEntry;
+
+typedef struct {
+ uint16_t index;
+ uint16_t length;
+} TSFieldMapSlice;
+
+typedef struct {
+ bool visible;
+ bool named;
+ bool supertype;
+} TSSymbolMetadata;
+
+typedef struct TSLexer TSLexer;
+
+struct TSLexer {
+ int32_t lookahead;
+ TSSymbol result_symbol;
+ void (*advance)(TSLexer *, bool);
+ void (*mark_end)(TSLexer *);
+ uint32_t (*get_column)(TSLexer *);
+ bool (*is_at_included_range_start)(const TSLexer *);
+ bool (*eof)(const TSLexer *);
+};
+
+typedef enum {
+ TSParseActionTypeShift,
+ TSParseActionTypeReduce,
+ TSParseActionTypeAccept,
+ TSParseActionTypeRecover,
+} TSParseActionType;
+
+typedef union {
+ struct {
+ uint8_t type;
+ TSStateId state;
+ bool extra;
+ bool repetition;
+ } shift;
+ struct {
+ uint8_t type;
+ uint8_t child_count;
+ TSSymbol symbol;
+ int16_t dynamic_precedence;
+ uint16_t production_id;
+ } reduce;
+ uint8_t type;
+} TSParseAction;
+
+typedef struct {
+ uint16_t lex_state;
+ uint16_t external_lex_state;
+} TSLexMode;
+
+typedef union {
+ TSParseAction action;
+ struct {
+ uint8_t count;
+ bool reusable;
+ } entry;
+} TSParseActionEntry;
+
+typedef struct {
+ int32_t start;
+ int32_t end;
+} TSCharacterRange;
+
+struct TSLanguage {
+ uint32_t version;
+ uint32_t symbol_count;
+ uint32_t alias_count;
+ uint32_t token_count;
+ uint32_t external_token_count;
+ uint32_t state_count;
+ uint32_t large_state_count;
+ uint32_t production_id_count;
+ uint32_t field_count;
+ uint16_t max_alias_sequence_length;
+ const uint16_t *parse_table;
+ const uint16_t *small_parse_table;
+ const uint32_t *small_parse_table_map;
+ const TSParseActionEntry *parse_actions;
+ const char * const *symbol_names;
+ const char * const *field_names;
+ const TSFieldMapSlice *field_map_slices;
+ const TSFieldMapEntry *field_map_entries;
+ const TSSymbolMetadata *symbol_metadata;
+ const TSSymbol *public_symbol_map;
+ const uint16_t *alias_map;
+ const TSSymbol *alias_sequences;
+ const TSLexMode *lex_modes;
+ bool (*lex_fn)(TSLexer *, TSStateId);
+ bool (*keyword_lex_fn)(TSLexer *, TSStateId);
+ TSSymbol keyword_capture_token;
+ struct {
+ const bool *states;
+ const TSSymbol *symbol_map;
+ void *(*create)(void);
+ void (*destroy)(void *);
+ bool (*scan)(void *, TSLexer *, const bool *symbol_whitelist);
+ unsigned (*serialize)(void *, char *);
+ void (*deserialize)(void *, const char *, unsigned);
+ } external_scanner;
+ const TSStateId *primary_state_ids;
+};
+
+static inline bool set_contains(TSCharacterRange *ranges, uint32_t len, int32_t lookahead) {
+ uint32_t index = 0;
+ uint32_t size = len - index;
+ while (size > 1) {
+ uint32_t half_size = size / 2;
+ uint32_t mid_index = index + half_size;
+ TSCharacterRange *range = &ranges[mid_index];
+ if (lookahead >= range->start && lookahead <= range->end) {
+ return true;
+ } else if (lookahead > range->end) {
+ index = mid_index;
+ }
+ size -= half_size;
+ }
+ TSCharacterRange *range = &ranges[index];
+ return (lookahead >= range->start && lookahead <= range->end);
+}
+
+/*
+ * Lexer Macros
+ */
+
+#ifdef _MSC_VER
+#define UNUSED __pragma(warning(suppress : 4101))
+#else
+#define UNUSED __attribute__((unused))
+#endif
+
+#define START_LEXER() \
+ bool result = false; \
+ bool skip = false; \
+ UNUSED \
+ bool eof = false; \
+ int32_t lookahead; \
+ goto start; \
+ next_state: \
+ lexer->advance(lexer, skip); \
+ start: \
+ skip = false; \
+ lookahead = lexer->lookahead;
+
+#define ADVANCE(state_value) \
+ { \
+ state = state_value; \
+ goto next_state; \
+ }
+
+#define ADVANCE_MAP(...) \
+ { \
+ static const uint16_t map[] = { __VA_ARGS__ }; \
+ for (uint32_t i = 0; i < sizeof(map) / sizeof(map[0]); i += 2) { \
+ if (map[i] == lookahead) { \
+ state = map[i + 1]; \
+ goto next_state; \
+ } \
+ } \
+ }
+
+#define SKIP(state_value) \
+ { \
+ skip = true; \
+ state = state_value; \
+ goto next_state; \
+ }
+
+#define ACCEPT_TOKEN(symbol_value) \
+ result = true; \
+ lexer->result_symbol = symbol_value; \
+ lexer->mark_end(lexer);
+
+#define END_STATE() return result;
+
+/*
+ * Parse Table Macros
+ */
+
+#define SMALL_STATE(id) ((id) - LARGE_STATE_COUNT)
+
+#define STATE(id) id
+
+#define ACTIONS(id) id
+
+#define SHIFT(state_value) \
+ {{ \
+ .shift = { \
+ .type = TSParseActionTypeShift, \
+ .state = (state_value) \
+ } \
+ }}
+
+#define SHIFT_REPEAT(state_value) \
+ {{ \
+ .shift = { \
+ .type = TSParseActionTypeShift, \
+ .state = (state_value), \
+ .repetition = true \
+ } \
+ }}
+
+#define SHIFT_EXTRA() \
+ {{ \
+ .shift = { \
+ .type = TSParseActionTypeShift, \
+ .extra = true \
+ } \
+ }}
+
+#define REDUCE(symbol_name, children, precedence, prod_id) \
+ {{ \
+ .reduce = { \
+ .type = TSParseActionTypeReduce, \
+ .symbol = symbol_name, \
+ .child_count = children, \
+ .dynamic_precedence = precedence, \
+ .production_id = prod_id \
+ }, \
+ }}
+
+#define RECOVER() \
+ {{ \
+ .type = TSParseActionTypeRecover \
+ }}
+
+#define ACCEPT_INPUT() \
+ {{ \
+ .type = TSParseActionTypeAccept \
+ }}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // TREE_SITTER_PARSER_H_
diff --git a/vendor/github.com/mitjafelicijan/go-tree-sitter/dockerfile/scanner.c b/vendor/github.com/mitjafelicijan/go-tree-sitter/dockerfile/scanner.c
new file mode 100644
index 0000000..854a7d0
--- /dev/null
+++ b/vendor/github.com/mitjafelicijan/go-tree-sitter/dockerfile/scanner.c
@@ -0,0 +1,318 @@
+#include <stdbool.h>
+#include <stdlib.h>
+#include <string.h>
+#include <wctype.h>
+
+#include "parser.h"
+
+#define MAX_HEREDOCS 10
+#define DEL_SPACE 512
+
+typedef struct {
+ bool in_heredoc;
+ bool stripping_heredoc;
+ unsigned heredoc_count;
+ char *heredocs[MAX_HEREDOCS];
+} scanner_state;
+
+enum TokenType {
+ HEREDOC_MARKER,
+ HEREDOC_LINE,
+ HEREDOC_END,
+ HEREDOC_NL,
+ ERROR_SENTINEL,
+};
+
+void *tree_sitter_dockerfile_external_scanner_create() {
+ scanner_state *state = malloc(sizeof(scanner_state));
+ memset(state, 0, sizeof(scanner_state));
+ return state;
+}
+
+void tree_sitter_dockerfile_external_scanner_destroy(void *payload) {
+ if (!payload)
+ return;
+
+ scanner_state *state = payload;
+ for (unsigned i = 0; i < MAX_HEREDOCS; i++) {
+ if (state->heredocs[i]) {
+ free(state->heredocs[i]);
+ }
+ }
+
+ free(state);
+}
+
+unsigned tree_sitter_dockerfile_external_scanner_serialize(void *payload,
+ char *buffer) {
+ scanner_state *state = payload;
+
+ unsigned pos = 0;
+ buffer[pos++] = state->in_heredoc;
+ buffer[pos++] = state->stripping_heredoc;
+
+ for (unsigned i = 0; i < state->heredoc_count; i++) {
+ // Add the ending null byte to the length since we'll have to copy it as
+ // well.
+ unsigned len = strlen(state->heredocs[i]) + 1;
+
+ // If we run out of space, just drop the heredocs that don't fit.
+ // We need at least len + 1 bytes space since we'll copy len bytes below
+ // and later add a null byte at the end.
+ if (pos + len + 1 > TREE_SITTER_SERIALIZATION_BUFFER_SIZE) {
+ break;
+ }
+
+ memcpy(&buffer[pos], state->heredocs[i], len);
+ pos += len;
+ }
+
+ // Add a null byte at the end to make it easy to detect.
+ buffer[pos++] = 0;
+ return pos;
+}
+
+void tree_sitter_dockerfile_external_scanner_deserialize(void *payload,
+ const char *buffer,
+ unsigned length) {
+ scanner_state *state = payload;
+ // Free all current heredocs to avoid leaking memory when we overwrite the
+ // array later.
+ for (unsigned i = 0; i < state->heredoc_count; i++) {
+ free(state->heredocs[i]);
+ state->heredocs[i] = NULL;
+ }
+
+ if (length == 0) {
+ state->in_heredoc = false;
+ state->stripping_heredoc = false;
+ state->heredoc_count = 0;
+ } else {
+ unsigned pos = 0;
+ state->in_heredoc = buffer[pos++];
+ state->stripping_heredoc = buffer[pos++];
+
+ unsigned heredoc_count = 0;
+ for (unsigned i = 0; i < MAX_HEREDOCS; i++) {
+ unsigned len = strlen(&buffer[pos]);
+
+ // We found the ending null byte which means that we're done.
+ if (len == 0)
+ break;
+
+ // Account for the ending null byte in strings (again).
+ len++;
+ char *heredoc = malloc(len);
+ memcpy(heredoc, &buffer[pos], len);
+ state->heredocs[i] = heredoc;
+ heredoc_count++;
+
+ pos += len;
+ }
+
+ state->heredoc_count = heredoc_count;
+ }
+}
+
+static void skip_whitespace(TSLexer *lexer) {
+ while (lexer->lookahead != '\0' && lexer->lookahead != '\n' &&
+ iswspace(lexer->lookahead))
+ lexer->advance(lexer, true);
+}
+
+static bool scan_marker(scanner_state *state, TSLexer *lexer) {
+ skip_whitespace(lexer);
+
+ if (lexer->lookahead != '<')
+ return false;
+ lexer->advance(lexer, false);
+
+ if (lexer->lookahead != '<')
+ return false;
+ lexer->advance(lexer, false);
+
+ bool stripping = false;
+ if (lexer->lookahead == '-') {
+ stripping = true;
+ lexer->advance(lexer, false);
+ }
+
+ int32_t quote = 0;
+ if (lexer->lookahead == '"' || lexer->lookahead == '\'') {
+ quote = lexer->lookahead;
+ lexer->advance(lexer, false);
+ }
+
+ // Reserve a reasonable amount of space for the heredoc delimiter string.
+ // Most heredocs (like EOF, EOT, EOS, FILE, etc.) are pretty short so we'll
+ // usually only need a few bytes. We're also limited to less than 1024 bytes
+ // by tree-sitter since our state has to fit in
+ // TREE_SITTER_SERIALIZATION_BUFFER_SIZE.
+ char delimiter[DEL_SPACE];
+
+ // We start recording the actual string at position 1 since we store whether
+ // it's a stripping heredoc in the first position (with either a dash or a
+ // space).
+ unsigned del_idx = 1;
+
+ while (lexer->lookahead != '\0' &&
+ (quote ? lexer->lookahead != quote : !iswspace(lexer->lookahead))) {
+ if (lexer->lookahead == '\\') {
+ lexer->advance(lexer, false);
+
+ if (lexer->lookahead == '\0') {
+ return false;
+ }
+ }
+
+ if (del_idx > 0) {
+ delimiter[del_idx++] = lexer->lookahead;
+ }
+ lexer->advance(lexer, false);
+
+ // If we run out of space, stop recording the delimiter but keep
+ // advancing the lexer to ensure that we at least parse the marker
+ // correctly. Reserve two bytes: one for the strip indicator and
+ // one for the terminating null byte.
+ if (del_idx >= DEL_SPACE - 2) {
+ del_idx = 0;
+ }
+ }
+
+ if (quote) {
+ if (lexer->lookahead != quote) {
+ return false;
+ }
+ lexer->advance(lexer, false);
+ }
+
+ if (del_idx == 0) {
+ lexer->result_symbol = HEREDOC_MARKER;
+ return true;
+ }
+
+ delimiter[0] = stripping ? '-' : ' ';
+ delimiter[del_idx] = '\0';
+
+ // We copy the delimiter string to the heap here since we can't store our
+ // stack-allocated string in our state (which is stored on the heap).
+ char *del_copy = malloc(del_idx + 1);
+ memcpy(del_copy, delimiter, del_idx + 1);
+
+ if (state->heredoc_count == 0) {
+ state->heredoc_count = 1;
+ state->heredocs[0] = del_copy;
+ state->stripping_heredoc = stripping;
+ } else if (state->heredoc_count >= MAX_HEREDOCS) {
+ free(del_copy);
+ } else {
+ state->heredocs[state->heredoc_count++] = del_copy;
+ }
+
+ lexer->result_symbol = HEREDOC_MARKER;
+ return true;
+}
+
+static bool scan_content(scanner_state *state, TSLexer *lexer,
+ const bool *valid_symbols) {
+ if (state->heredoc_count == 0) {
+ state->in_heredoc = false;
+ return false;
+ }
+
+ state->in_heredoc = true;
+
+ if (state->stripping_heredoc) {
+ skip_whitespace(lexer);
+ }
+
+ if (valid_symbols[HEREDOC_END]) {
+ unsigned delim_idx = 1;
+ // Look for the current heredoc delimiter.
+ while (state->heredocs[0][delim_idx] != '\0' &&
+ lexer->lookahead != '\0' &&
+ lexer->lookahead == state->heredocs[0][delim_idx]) {
+ lexer->advance(lexer, false);
+ delim_idx++;
+ }
+
+ // Check if the entire string matched.
+ if (state->heredocs[0][delim_idx] == '\0') {
+ lexer->result_symbol = HEREDOC_END;
+
+ // Shift the first heredoc off the list.
+ free(state->heredocs[0]);
+
+ for (unsigned i = 1; i < state->heredoc_count; i++) {
+ state->heredocs[i - 1] = state->heredocs[i];
+ }
+ state->heredocs[state->heredoc_count - 1] = NULL;
+ state->heredoc_count--;
+
+ if (state->heredoc_count > 0) {
+ state->stripping_heredoc = state->heredocs[0][0] == '-';
+ } else {
+ state->in_heredoc = false;
+ }
+
+ return true;
+ }
+ }
+
+ if (!valid_symbols[HEREDOC_LINE])
+ return false;
+
+ lexer->result_symbol = HEREDOC_LINE;
+
+ for (;;) {
+ switch (lexer->lookahead) {
+ case '\0':
+ if (lexer->eof(lexer)) {
+ state->in_heredoc = false;
+ return true;
+ }
+ lexer->advance(lexer, false);
+ break;
+
+ case '\n':
+ return true;
+
+ default:
+ lexer->advance(lexer, false);
+ }
+ }
+}
+
+bool tree_sitter_dockerfile_external_scanner_scan(void *payload, TSLexer *lexer,
+ const bool *valid_symbols) {
+ scanner_state *state = payload;
+
+ if (valid_symbols[ERROR_SENTINEL]) {
+ if (state->in_heredoc) {
+ return scan_content(state, lexer, valid_symbols);
+ } else {
+ return scan_marker(state, lexer);
+ }
+ }
+
+ // HEREDOC_NL only matches a linebreak if there are open heredocs. This is
+ // necessary to avoid a conflict in the grammar since a normal line break
+ // could either be the start of a heredoc or the end of an instruction.
+ if (valid_symbols[HEREDOC_NL]) {
+ if (state->heredoc_count > 0 && lexer->lookahead == '\n') {
+ lexer->result_symbol = HEREDOC_NL;
+ lexer->advance(lexer, false);
+ return true;
+ }
+ }
+
+ if (valid_symbols[HEREDOC_MARKER]) {
+ return scan_marker(state, lexer);
+ }
+
+ if (valid_symbols[HEREDOC_LINE] || valid_symbols[HEREDOC_END]) {
+ return scan_content(state, lexer, valid_symbols);
+ }
+
+ return false;
+}