From 0c4af3e20f5347661155873d4c6d407f1c23cea5 Mon Sep 17 00:00:00 2001 From: Camden Cheek Date: Mon, 10 May 2021 17:22:52 -0600 Subject: [PATCH] Rename env_spec to expansion --- corpus/label.txt | 8 +- corpus/vars.txt | 48 ++--- grammar.js | 24 +-- src/grammar.json | 24 +-- src/node-types.json | 22 +- src/parser.c | 488 ++++++++++++++++++++++---------------------- 6 files changed, 307 insertions(+), 307 deletions(-) diff --git a/corpus/label.txt b/corpus/label.txt index 2ad1d69..11f4709 100644 --- a/corpus/label.txt +++ b/corpus/label.txt @@ -60,7 +60,7 @@ LABEL key="value${FOO}" (label_pair key: (unquoted_string) value: (double_quoted_string - (env_spec))))) + (expansion))))) ================== Stopsignal @@ -72,7 +72,7 @@ STOPSIGNAL $FOO (source_file (stopsignal_instruction - (env_spec))) + (expansion))) ================== User @@ -85,8 +85,8 @@ USER foo$FOO:bar$BAR (source_file (user_instruction user: (unquoted_string - (env_spec)) + (expansion)) group: (unquoted_string - (env_spec)))) + (expansion)))) diff --git a/corpus/vars.txt b/corpus/vars.txt index 0f4c130..a179738 100644 --- a/corpus/vars.txt +++ b/corpus/vars.txt @@ -9,9 +9,9 @@ ADD /$FOO ./${bar} (source_file (add_instruction (path - (env_spec)) + (expansion)) (path - (env_spec)))) + (expansion)))) ================== Copy @@ -24,9 +24,9 @@ COPY $FOO ./${bar} (source_file (copy_instruction (path - (env_spec)) + (expansion)) (path - (env_spec)))) + (expansion)))) ================== Special chars @@ -39,9 +39,9 @@ COPY $FOO ./${bar:-abc} (source_file (copy_instruction (path - (env_spec)) + (expansion)) (path - (env_spec)))) + (expansion)))) ================== Env @@ -60,19 +60,19 @@ ENV TEST="foo$BAR" \ (env_pair name: (unquoted_string) value: (double_quoted_string - (env_spec))) + (expansion))) (env_pair name: (unquoted_string) value: (unquoted_string - (env_spec))) + (expansion))) (env_pair name: (unquoted_string) value: (double_quoted_string - (env_spec))) + (expansion))) (env_pair name: (unquoted_string) value: (unquoted_string - (env_spec))))) + (expansion))))) ================== Expose @@ -86,7 +86,7 @@ EXPOSE $FOO (source_file (expose_instruction (expose_port - (env_spec)))) + (expansion)))) ================== From @@ -100,13 +100,13 @@ FROM foo/$FOO:$BAR@sha256:$BAZ AS baz$QUX (from_instruction (image_spec name: (image_name - (env_spec)) + (expansion)) tag: (image_tag - (env_spec)) + (expansion)) digest: (image_digest - (env_spec))) + (expansion))) as: (image_alias - (env_spec)))) + (expansion)))) ================== Label @@ -121,7 +121,7 @@ LABEL key="value$FOO" (label_pair key: (unquoted_string) value: (double_quoted_string - (env_spec))))) + (expansion))))) ================== Stopsignal @@ -133,7 +133,7 @@ STOPSIGNAL $FOO (source_file (stopsignal_instruction - (env_spec))) + (expansion))) ================== User @@ -146,9 +146,9 @@ USER foo$FOO:bar${bar} (source_file (user_instruction user: (unquoted_string - (env_spec)) + (expansion)) group: (unquoted_string - (env_spec)))) + (expansion)))) ================== Volume @@ -162,9 +162,9 @@ volume /my$FOO /my${bar} (source_file (volume_instruction (path - (env_spec)) + (expansion)) (path - (env_spec)))) + (expansion)))) ================== Workdir @@ -177,7 +177,7 @@ WORKDIR /tmp/$FOO (source_file (workdir_instruction (path - (env_spec)))) + (expansion)))) ================== @@ -192,6 +192,6 @@ ONBUILD ADD /$FOO ./${bar} (onbuild_instruction (add_instruction (path - (env_spec)) + (expansion)) (path - (env_spec))))) + (expansion))))) diff --git a/grammar.js b/grammar.js index 7e47d19..c4ed050 100644 --- a/grammar.js +++ b/grammar.js @@ -124,7 +124,7 @@ module.exports = grammar({ _user_name_group: $ => repeat1(choice( token.immediate(/[a-z][-a-z0-9_]*/), - $.env_spec, + $.expansion, )), workdir_instruction: $ => seq( @@ -160,7 +160,7 @@ module.exports = grammar({ _stopsignal_value: $ => repeat1(choice( /[A-Z0-9]+/, - $.env_spec, + $.expansion, )), healthcheck_instruction: $ => seq( @@ -184,15 +184,15 @@ module.exports = grammar({ path: $ => seq( choice( /[^-\s]/, // cannot start with a '-' to avoid conflicts with params - $.env_spec, + $.expansion, ), repeat(choice( token.immediate(/[^\s\$]+/), - $.env_spec, + $.expansion, )), ), - env_spec: $ => seq( + expansion: $ => seq( '$', repeat1(choice( token.immediate(/[a-zA-Z][a-zA-Z0-9_]*/), @@ -218,7 +218,7 @@ module.exports = grammar({ "/udp", )), ), - $.env_spec, + $.expansion, ), label_pair: $ => seq( @@ -240,14 +240,14 @@ module.exports = grammar({ image_name: $ => repeat1(choice( token.immediate(/[^@:\s\$]+/), - $.env_spec, + $.expansion, )), image_tag: $ => seq( token.immediate(":"), repeat1(choice( token.immediate(/[^@\s\$]+/), - $.env_spec, + $.expansion, )) ), @@ -255,7 +255,7 @@ module.exports = grammar({ token.immediate("@"), repeat1(choice( token.immediate(/[a-zA-Z0-9:]+/), - $.env_spec, + $.expansion, )), ), @@ -268,7 +268,7 @@ module.exports = grammar({ image_alias: $ => repeat1(choice( /[-a-zA-Z0-9_]+/, - $.env_spec, + $.expansion, )), string_array: $ => seq( @@ -290,7 +290,7 @@ module.exports = grammar({ repeat(choice( token.immediate(prec(1, /[^"\n\\\$]+/)), $.escape_sequence, - $.env_spec, + $.expansion, )), '"' ), @@ -298,7 +298,7 @@ module.exports = grammar({ unquoted_string: $ => repeat1(choice( token.immediate(/[^\s\n\"\\\$]+/), token.immediate("\\ "), - $.env_spec, + $.expansion, )), escape_sequence: $ => token.immediate(seq( diff --git a/src/grammar.json b/src/grammar.json index 5523fd6..36ec5a9 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -536,7 +536,7 @@ }, { "type": "SYMBOL", - "name": "env_spec" + "name": "expansion" } ] } @@ -686,7 +686,7 @@ }, { "type": "SYMBOL", - "name": "env_spec" + "name": "expansion" } ] } @@ -768,7 +768,7 @@ }, { "type": "SYMBOL", - "name": "env_spec" + "name": "expansion" } ] }, @@ -786,14 +786,14 @@ }, { "type": "SYMBOL", - "name": "env_spec" + "name": "expansion" } ] } } ] }, - "env_spec": { + "expansion": { "type": "SEQ", "members": [ { @@ -911,7 +911,7 @@ }, { "type": "SYMBOL", - "name": "env_spec" + "name": "expansion" } ] }, @@ -1021,7 +1021,7 @@ }, { "type": "SYMBOL", - "name": "env_spec" + "name": "expansion" } ] } @@ -1050,7 +1050,7 @@ }, { "type": "SYMBOL", - "name": "env_spec" + "name": "expansion" } ] } @@ -1081,7 +1081,7 @@ }, { "type": "SYMBOL", - "name": "env_spec" + "name": "expansion" } ] } @@ -1137,7 +1137,7 @@ }, { "type": "SYMBOL", - "name": "env_spec" + "name": "expansion" } ] } @@ -1242,7 +1242,7 @@ }, { "type": "SYMBOL", - "name": "env_spec" + "name": "expansion" } ] } @@ -1274,7 +1274,7 @@ }, { "type": "SYMBOL", - "name": "env_spec" + "name": "expansion" } ] } diff --git a/src/node-types.json b/src/node-types.json index 2c6771a..3987a88 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -100,11 +100,11 @@ "required": false, "types": [ { - "type": "env_spec", + "type": "escape_sequence", "named": true }, { - "type": "escape_sequence", + "type": "expansion", "named": true } ] @@ -175,7 +175,7 @@ } }, { - "type": "env_spec", + "type": "expansion", "named": true, "fields": {} }, @@ -203,7 +203,7 @@ "required": false, "types": [ { - "type": "env_spec", + "type": "expansion", "named": true } ] @@ -267,7 +267,7 @@ "required": false, "types": [ { - "type": "env_spec", + "type": "expansion", "named": true } ] @@ -282,7 +282,7 @@ "required": false, "types": [ { - "type": "env_spec", + "type": "expansion", "named": true } ] @@ -297,7 +297,7 @@ "required": false, "types": [ { - "type": "env_spec", + "type": "expansion", "named": true } ] @@ -348,7 +348,7 @@ "required": false, "types": [ { - "type": "env_spec", + "type": "expansion", "named": true } ] @@ -492,7 +492,7 @@ "required": false, "types": [ { - "type": "env_spec", + "type": "expansion", "named": true } ] @@ -625,7 +625,7 @@ "required": false, "types": [ { - "type": "env_spec", + "type": "expansion", "named": true } ] @@ -655,7 +655,7 @@ "required": false, "types": [ { - "type": "env_spec", + "type": "expansion", "named": true } ] diff --git a/src/parser.c b/src/parser.c index 593baf8..76dc7d1 100644 --- a/src/parser.c +++ b/src/parser.c @@ -45,9 +45,9 @@ enum { aux_sym_path_token1 = 26, aux_sym_path_token2 = 27, anon_sym_DOLLAR = 28, - aux_sym_env_spec_token1 = 29, + aux_sym_expansion_token1 = 29, anon_sym_LBRACE = 30, - aux_sym_env_spec_token2 = 31, + aux_sym_expansion_token2 = 31, anon_sym_RBRACE = 32, aux_sym_env_pair_token1 = 33, aux_sym_expose_port_token1 = 34, @@ -98,7 +98,7 @@ enum { sym_healthcheck_instruction = 79, sym_shell_instruction = 80, sym_path = 81, - sym_env_spec = 82, + sym_expansion = 82, sym_env_pair = 83, sym_expose_port = 84, sym_label_pair = 85, @@ -120,7 +120,7 @@ enum { aux_sym_volume_instruction_repeat1 = 101, aux_sym_healthcheck_instruction_repeat1 = 102, aux_sym_path_repeat1 = 103, - aux_sym_env_spec_repeat1 = 104, + aux_sym_expansion_repeat1 = 104, aux_sym_image_name_repeat1 = 105, aux_sym_image_tag_repeat1 = 106, aux_sym_image_digest_repeat1 = 107, @@ -161,9 +161,9 @@ static const char *ts_symbol_names[] = { [aux_sym_path_token1] = "path_token1", [aux_sym_path_token2] = "path_token2", [anon_sym_DOLLAR] = "$", - [aux_sym_env_spec_token1] = "env_spec_token1", + [aux_sym_expansion_token1] = "expansion_token1", [anon_sym_LBRACE] = "{", - [aux_sym_env_spec_token2] = "env_spec_token2", + [aux_sym_expansion_token2] = "expansion_token2", [anon_sym_RBRACE] = "}", [aux_sym_env_pair_token1] = "unquoted_string", [aux_sym_expose_port_token1] = "expose_port_token1", @@ -214,7 +214,7 @@ static const char *ts_symbol_names[] = { [sym_healthcheck_instruction] = "healthcheck_instruction", [sym_shell_instruction] = "shell_instruction", [sym_path] = "path", - [sym_env_spec] = "env_spec", + [sym_expansion] = "expansion", [sym_env_pair] = "env_pair", [sym_expose_port] = "expose_port", [sym_label_pair] = "label_pair", @@ -236,7 +236,7 @@ static const char *ts_symbol_names[] = { [aux_sym_volume_instruction_repeat1] = "volume_instruction_repeat1", [aux_sym_healthcheck_instruction_repeat1] = "healthcheck_instruction_repeat1", [aux_sym_path_repeat1] = "path_repeat1", - [aux_sym_env_spec_repeat1] = "env_spec_repeat1", + [aux_sym_expansion_repeat1] = "expansion_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", @@ -277,9 +277,9 @@ static TSSymbol ts_symbol_map[] = { [aux_sym_path_token1] = aux_sym_path_token1, [aux_sym_path_token2] = aux_sym_path_token2, [anon_sym_DOLLAR] = anon_sym_DOLLAR, - [aux_sym_env_spec_token1] = aux_sym_env_spec_token1, + [aux_sym_expansion_token1] = aux_sym_expansion_token1, [anon_sym_LBRACE] = anon_sym_LBRACE, - [aux_sym_env_spec_token2] = aux_sym_env_spec_token2, + [aux_sym_expansion_token2] = aux_sym_expansion_token2, [anon_sym_RBRACE] = anon_sym_RBRACE, [aux_sym_env_pair_token1] = sym_unquoted_string, [aux_sym_expose_port_token1] = aux_sym_expose_port_token1, @@ -330,7 +330,7 @@ static TSSymbol ts_symbol_map[] = { [sym_healthcheck_instruction] = sym_healthcheck_instruction, [sym_shell_instruction] = sym_shell_instruction, [sym_path] = sym_path, - [sym_env_spec] = sym_env_spec, + [sym_expansion] = sym_expansion, [sym_env_pair] = sym_env_pair, [sym_expose_port] = sym_expose_port, [sym_label_pair] = sym_label_pair, @@ -352,7 +352,7 @@ static TSSymbol ts_symbol_map[] = { [aux_sym_volume_instruction_repeat1] = aux_sym_volume_instruction_repeat1, [aux_sym_healthcheck_instruction_repeat1] = aux_sym_healthcheck_instruction_repeat1, [aux_sym_path_repeat1] = aux_sym_path_repeat1, - [aux_sym_env_spec_repeat1] = aux_sym_env_spec_repeat1, + [aux_sym_expansion_repeat1] = aux_sym_expansion_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, @@ -480,7 +480,7 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [aux_sym_env_spec_token1] = { + [aux_sym_expansion_token1] = { .visible = false, .named = false, }, @@ -488,7 +488,7 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [aux_sym_env_spec_token2] = { + [aux_sym_expansion_token2] = { .visible = false, .named = false, }, @@ -692,7 +692,7 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_env_spec] = { + [sym_expansion] = { .visible = true, .named = true, }, @@ -780,7 +780,7 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, - [aux_sym_env_spec_repeat1] = { + [aux_sym_expansion_repeat1] = { .visible = false, .named = false, }, @@ -2433,7 +2433,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { ACCEPT_TOKEN(anon_sym_DOLLAR); END_STATE(); case 206: - ACCEPT_TOKEN(aux_sym_env_spec_token1); + ACCEPT_TOKEN(aux_sym_expansion_token1); if (lookahead == '-') ADVANCE(247); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || @@ -2441,7 +2441,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { ('a' <= lookahead && lookahead <= 'z')) ADVANCE(206); END_STATE(); case 207: - ACCEPT_TOKEN(aux_sym_env_spec_token1); + ACCEPT_TOKEN(aux_sym_expansion_token1); if (lookahead == ':') ADVANCE(241); if (lookahead == '_') ADVANCE(214); if (lookahead == 'S' || @@ -2451,7 +2451,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { ('a' <= lookahead && lookahead <= 'z')) ADVANCE(208); END_STATE(); case 208: - ACCEPT_TOKEN(aux_sym_env_spec_token1); + ACCEPT_TOKEN(aux_sym_expansion_token1); if (lookahead == ':') ADVANCE(241); if (lookahead == '_') ADVANCE(214); if (('0' <= lookahead && lookahead <= '9') || @@ -2459,7 +2459,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { ('a' <= lookahead && lookahead <= 'z')) ADVANCE(208); END_STATE(); case 209: - ACCEPT_TOKEN(aux_sym_env_spec_token1); + ACCEPT_TOKEN(aux_sym_expansion_token1); if (lookahead == '_') ADVANCE(209); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || @@ -2474,7 +2474,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead != '\\') ADVANCE(263); END_STATE(); case 210: - ACCEPT_TOKEN(aux_sym_env_spec_token1); + ACCEPT_TOKEN(aux_sym_expansion_token1); if (lookahead == 'S' || lookahead == 's') ADVANCE(215); if (('0' <= lookahead && lookahead <= '9') || @@ -2491,7 +2491,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead != '@') ADVANCE(235); END_STATE(); case 211: - ACCEPT_TOKEN(aux_sym_env_spec_token1); + ACCEPT_TOKEN(aux_sym_expansion_token1); if (lookahead == 'S' || lookahead == 's') ADVANCE(217); if (('0' <= lookahead && lookahead <= '9') || @@ -2507,7 +2507,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead != '@') ADVANCE(238); END_STATE(); case 212: - ACCEPT_TOKEN(aux_sym_env_spec_token1); + ACCEPT_TOKEN(aux_sym_expansion_token1); if (lookahead == '-' || lookahead == '.') ADVANCE(262); if (('0' <= lookahead && lookahead <= '9') || @@ -2524,21 +2524,21 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead != '\\') ADVANCE(263); END_STATE(); case 213: - ACCEPT_TOKEN(aux_sym_env_spec_token1); + ACCEPT_TOKEN(aux_sym_expansion_token1); if (lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(214); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z')) ADVANCE(213); END_STATE(); case 214: - ACCEPT_TOKEN(aux_sym_env_spec_token1); + ACCEPT_TOKEN(aux_sym_expansion_token1); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(214); END_STATE(); case 215: - ACCEPT_TOKEN(aux_sym_env_spec_token1); + ACCEPT_TOKEN(aux_sym_expansion_token1); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || @@ -2553,7 +2553,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead != '@') ADVANCE(235); END_STATE(); case 216: - ACCEPT_TOKEN(aux_sym_env_spec_token1); + ACCEPT_TOKEN(aux_sym_expansion_token1); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || @@ -2568,7 +2568,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead != '\\') ADVANCE(263); END_STATE(); case 217: - ACCEPT_TOKEN(aux_sym_env_spec_token1); + ACCEPT_TOKEN(aux_sym_expansion_token1); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || @@ -2626,13 +2626,13 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead != '$') ADVANCE(204); END_STATE(); case 223: - ACCEPT_TOKEN(aux_sym_env_spec_token2); + ACCEPT_TOKEN(aux_sym_expansion_token2); if (lookahead == '\n') ADVANCE(253); if (lookahead != 0 && lookahead != '}') ADVANCE(225); END_STATE(); case 224: - ACCEPT_TOKEN(aux_sym_env_spec_token2); + ACCEPT_TOKEN(aux_sym_expansion_token2); if (lookahead == '#') ADVANCE(279); if (lookahead == '\\') ADVANCE(223); if (lookahead == '\t' || @@ -2643,7 +2643,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead != '}') ADVANCE(225); END_STATE(); case 225: - ACCEPT_TOKEN(aux_sym_env_spec_token2); + ACCEPT_TOKEN(aux_sym_expansion_token2); if (lookahead != 0 && lookahead != '}') ADVANCE(225); END_STATE(); @@ -3363,7 +3363,7 @@ static uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_EQ] = ACTIONS(1), [aux_sym_path_token1] = ACTIONS(1), [anon_sym_DOLLAR] = ACTIONS(1), - [aux_sym_env_spec_token1] = ACTIONS(1), + [aux_sym_expansion_token1] = ACTIONS(1), [anon_sym_LBRACE] = ACTIONS(1), [anon_sym_RBRACE] = ACTIONS(1), [anon_sym_AT] = ACTIONS(1), @@ -3639,7 +3639,7 @@ static uint16_t ts_small_parse_table[] = { aux_sym_shell_instruction_token1, [289] = 8, ACTIONS(102), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(104), 1, anon_sym_LBRACE, ACTIONS(106), 1, @@ -3649,7 +3649,7 @@ static uint16_t ts_small_parse_table[] = { STATE(6), 1, sym_comment, STATE(7), 1, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, ACTIONS(98), 3, anon_sym_LF, anon_sym_COLON, @@ -3664,12 +3664,12 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(108), 1, anon_sym_POUND, ACTIONS(114), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(117), 1, anon_sym_LBRACE, STATE(7), 2, sym_comment, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, ACTIONS(110), 3, anon_sym_LF, anon_sym_COLON, @@ -3696,7 +3696,7 @@ static uint16_t ts_small_parse_table[] = { STATE(31), 1, aux_sym_unquoted_string_repeat1, STATE(98), 1, - sym_env_spec, + sym_expansion, STATE(178), 2, sym_double_quoted_string, sym_unquoted_string, @@ -3716,7 +3716,7 @@ static uint16_t ts_small_parse_table[] = { STATE(15), 1, aux_sym_image_name_repeat1, STATE(48), 1, - sym_env_spec, + sym_expansion, STATE(51), 1, sym_image_name, STATE(52), 1, @@ -3729,13 +3729,13 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(108), 1, anon_sym_POUND, ACTIONS(134), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(136), 1, anon_sym_LBRACE, STATE(10), 1, sym_comment, STATE(17), 1, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, ACTIONS(98), 2, anon_sym_LF, anon_sym_BSLASH, @@ -3757,7 +3757,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(140), 5, aux_sym_from_instruction_token2, anon_sym_DOLLAR, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, anon_sym_LBRACE, aux_sym_image_name_token1, [461] = 8, @@ -3766,13 +3766,13 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(108), 1, anon_sym_POUND, ACTIONS(142), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(144), 1, anon_sym_LBRACE, STATE(12), 1, sym_comment, STATE(20), 1, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, ACTIONS(98), 2, anon_sym_LF, anon_sym_AT, @@ -3786,7 +3786,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(108), 1, anon_sym_POUND, ACTIONS(146), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(149), 1, anon_sym_LBRACE, ACTIONS(110), 2, @@ -3794,7 +3794,7 @@ static uint16_t ts_small_parse_table[] = { anon_sym_BSLASH, STATE(13), 2, sym_comment, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, ACTIONS(112), 3, anon_sym_DOLLAR, aux_sym_label_pair_token1, @@ -3805,11 +3805,11 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(108), 1, anon_sym_POUND, ACTIONS(152), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(154), 1, anon_sym_LBRACE, STATE(13), 1, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, STATE(14), 1, sym_comment, ACTIONS(98), 2, @@ -3835,7 +3835,7 @@ static uint16_t ts_small_parse_table[] = { STATE(21), 1, aux_sym_image_name_repeat1, STATE(48), 1, - sym_env_spec, + sym_expansion, ACTIONS(156), 3, anon_sym_LF, anon_sym_COLON, @@ -3858,7 +3858,7 @@ static uint16_t ts_small_parse_table[] = { STATE(44), 1, aux_sym_unquoted_string_repeat1, STATE(98), 1, - sym_env_spec, + sym_expansion, STATE(246), 2, sym_double_quoted_string, sym_unquoted_string, @@ -3868,7 +3868,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(108), 1, anon_sym_POUND, ACTIONS(164), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(167), 1, anon_sym_LBRACE, ACTIONS(110), 2, @@ -3876,7 +3876,7 @@ static uint16_t ts_small_parse_table[] = { anon_sym_BSLASH, STATE(17), 2, sym_comment, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, ACTIONS(112), 3, anon_sym_DOLLAR, aux_sym_env_pair_token1, @@ -3895,7 +3895,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(172), 5, aux_sym_from_instruction_token2, anon_sym_DOLLAR, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, anon_sym_LBRACE, aux_sym_image_name_token1, [653] = 10, @@ -3916,7 +3916,7 @@ static uint16_t ts_small_parse_table[] = { STATE(24), 1, aux_sym_unquoted_string_repeat1, STATE(97), 1, - sym_env_spec, + sym_expansion, STATE(171), 2, sym_double_quoted_string, sym_unquoted_string, @@ -3926,7 +3926,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(108), 1, anon_sym_POUND, ACTIONS(180), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(183), 1, anon_sym_LBRACE, ACTIONS(110), 2, @@ -3934,7 +3934,7 @@ static uint16_t ts_small_parse_table[] = { anon_sym_AT, STATE(20), 2, sym_comment, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, ACTIONS(112), 3, aux_sym_from_instruction_token2, anon_sym_DOLLAR, @@ -3951,7 +3951,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(193), 1, aux_sym_image_name_token1, STATE(48), 1, - sym_env_spec, + sym_expansion, STATE(21), 2, sym_comment, aux_sym_image_name_repeat1, @@ -3967,12 +3967,12 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(110), 1, aux_sym_double_quoted_string_token1, ACTIONS(196), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(199), 1, anon_sym_LBRACE, STATE(22), 2, sym_comment, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, ACTIONS(112), 3, anon_sym_DOLLAR, anon_sym_DQUOTE, @@ -3989,7 +3989,7 @@ static uint16_t ts_small_parse_table[] = { anon_sym_BSLASH, ACTIONS(140), 5, anon_sym_DOLLAR, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, anon_sym_LBRACE, aux_sym_env_pair_token1, aux_sym_unquoted_string_token1, @@ -4013,7 +4013,7 @@ static uint16_t ts_small_parse_table[] = { STATE(27), 1, aux_sym_unquoted_string_repeat1, STATE(97), 1, - sym_env_spec, + sym_expansion, [816] = 5, ACTIONS(106), 1, anon_sym_BSLASH_LF, @@ -4026,7 +4026,7 @@ static uint16_t ts_small_parse_table[] = { anon_sym_BSLASH, ACTIONS(172), 5, anon_sym_DOLLAR, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, anon_sym_LBRACE, aux_sym_env_pair_token1, aux_sym_unquoted_string_token1, @@ -4038,13 +4038,13 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(108), 1, anon_sym_POUND, ACTIONS(208), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(210), 1, anon_sym_LBRACE, STATE(26), 1, sym_comment, STATE(30), 1, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, ACTIONS(100), 3, aux_sym_from_instruction_token2, anon_sym_DOLLAR, @@ -4065,7 +4065,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(222), 1, anon_sym_BSLASH, STATE(97), 1, - sym_env_spec, + sym_expansion, STATE(27), 2, sym_comment, aux_sym_unquoted_string_repeat1, @@ -4082,7 +4082,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(140), 5, aux_sym_from_instruction_token2, anon_sym_DOLLAR, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, anon_sym_LBRACE, aux_sym_image_tag_token1, [914] = 9, @@ -4101,7 +4101,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(231), 1, anon_sym_BSLASH, STATE(98), 1, - sym_env_spec, + sym_expansion, STATE(29), 2, sym_comment, aux_sym_unquoted_string_repeat1, @@ -4113,12 +4113,12 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(110), 1, anon_sym_LF, ACTIONS(234), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(237), 1, anon_sym_LBRACE, STATE(30), 2, sym_comment, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, ACTIONS(112), 3, aux_sym_from_instruction_token2, anon_sym_DOLLAR, @@ -4143,20 +4143,20 @@ static uint16_t ts_small_parse_table[] = { STATE(31), 1, sym_comment, STATE(98), 1, - sym_env_spec, + sym_expansion, [999] = 7, ACTIONS(106), 1, anon_sym_BSLASH_LF, ACTIONS(108), 1, anon_sym_POUND, ACTIONS(242), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(244), 1, anon_sym_LBRACE, STATE(32), 1, sym_comment, STATE(33), 1, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, ACTIONS(100), 4, anon_sym_LF, aux_sym_path_token2, @@ -4168,12 +4168,12 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(108), 1, anon_sym_POUND, ACTIONS(246), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(249), 1, anon_sym_LBRACE, STATE(33), 2, sym_comment, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, ACTIONS(112), 4, anon_sym_LF, aux_sym_path_token2, @@ -4191,7 +4191,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(259), 1, aux_sym_image_tag_token1, STATE(90), 1, - sym_env_spec, + sym_expansion, ACTIONS(252), 2, anon_sym_LF, anon_sym_AT, @@ -4214,7 +4214,7 @@ static uint16_t ts_small_parse_table[] = { STATE(35), 1, sym_comment, STATE(90), 1, - sym_env_spec, + sym_expansion, ACTIONS(262), 2, anon_sym_LF, anon_sym_AT, @@ -4226,11 +4226,11 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(108), 1, anon_sym_POUND, ACTIONS(270), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(272), 1, anon_sym_LBRACE, STATE(22), 1, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, STATE(36), 1, sym_comment, ACTIONS(100), 3, @@ -4249,7 +4249,7 @@ static uint16_t ts_small_parse_table[] = { anon_sym_BSLASH, ACTIONS(172), 5, anon_sym_DOLLAR, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, anon_sym_LBRACE, aux_sym_label_pair_token1, aux_sym_unquoted_string_token1, @@ -4265,7 +4265,7 @@ static uint16_t ts_small_parse_table[] = { anon_sym_BSLASH, ACTIONS(140), 5, anon_sym_DOLLAR, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, anon_sym_LBRACE, aux_sym_label_pair_token1, aux_sym_unquoted_string_token1, @@ -4275,13 +4275,13 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(108), 1, anon_sym_POUND, ACTIONS(274), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(276), 1, anon_sym_LBRACE, STATE(39), 1, sym_comment, STATE(40), 1, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, ACTIONS(98), 2, anon_sym_LF, anon_sym_COLON, @@ -4294,7 +4294,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(108), 1, anon_sym_POUND, ACTIONS(278), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(281), 1, anon_sym_LBRACE, ACTIONS(110), 2, @@ -4305,7 +4305,7 @@ static uint16_t ts_small_parse_table[] = { anon_sym_DOLLAR, STATE(40), 2, sym_comment, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, [1224] = 5, ACTIONS(106), 1, anon_sym_BSLASH_LF, @@ -4319,7 +4319,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(172), 5, aux_sym_from_instruction_token2, anon_sym_DOLLAR, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, anon_sym_LBRACE, aux_sym_image_tag_token1, [1245] = 8, @@ -4336,7 +4336,7 @@ static uint16_t ts_small_parse_table[] = { STATE(63), 1, aux_sym_path_repeat1, STATE(118), 1, - sym_env_spec, + sym_expansion, ACTIONS(284), 2, anon_sym_LF, sym__non_newline_whitespace, @@ -4356,7 +4356,7 @@ static uint16_t ts_small_parse_table[] = { STATE(69), 1, aux_sym_expose_instruction_repeat1, STATE(161), 1, - sym_env_spec, + sym_expansion, STATE(162), 1, sym_expose_port, [1299] = 9, @@ -4377,7 +4377,7 @@ static uint16_t ts_small_parse_table[] = { STATE(71), 1, aux_sym_unquoted_string_repeat1, STATE(98), 1, - sym_env_spec, + sym_expansion, [1327] = 8, ACTIONS(106), 1, anon_sym_BSLASH_LF, @@ -4392,7 +4392,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(303), 1, aux_sym_image_digest_token1, STATE(128), 1, - sym_env_spec, + sym_expansion, STATE(45), 2, sym_comment, aux_sym_image_digest_repeat1, @@ -4429,7 +4429,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(318), 1, sym_escape_sequence, STATE(133), 1, - sym_env_spec, + sym_expansion, STATE(47), 2, sym_comment, aux_sym_double_quoted_string_repeat1, @@ -4456,7 +4456,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(110), 1, anon_sym_LF, ACTIONS(325), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(328), 1, anon_sym_LBRACE, ACTIONS(112), 2, @@ -4464,7 +4464,7 @@ static uint16_t ts_small_parse_table[] = { aux_sym_image_alias_token1, STATE(49), 2, sym_comment, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, [1451] = 8, ACTIONS(98), 1, anon_sym_LF, @@ -4473,11 +4473,11 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(108), 1, anon_sym_POUND, ACTIONS(331), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(333), 1, anon_sym_LBRACE, STATE(49), 1, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, STATE(50), 1, sym_comment, ACTIONS(100), 2, @@ -4514,7 +4514,7 @@ static uint16_t ts_small_parse_table[] = { STATE(15), 1, aux_sym_image_name_repeat1, STATE(48), 1, - sym_env_spec, + sym_expansion, STATE(51), 1, sym_image_name, STATE(52), 1, @@ -4539,7 +4539,7 @@ static uint16_t ts_small_parse_table[] = { STATE(59), 1, aux_sym_double_quoted_string_repeat1, STATE(133), 1, - sym_env_spec, + sym_expansion, [1561] = 5, ACTIONS(106), 1, anon_sym_BSLASH_LF, @@ -4551,7 +4551,7 @@ static uint16_t ts_small_parse_table[] = { sym_comment, ACTIONS(140), 5, anon_sym_DOLLAR, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, anon_sym_LBRACE, anon_sym_DQUOTE, sym_escape_sequence, @@ -4563,7 +4563,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(110), 1, anon_sym_LF, ACTIONS(351), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(354), 1, anon_sym_LBRACE, ACTIONS(112), 2, @@ -4571,7 +4571,7 @@ static uint16_t ts_small_parse_table[] = { anon_sym_DOLLAR, STATE(55), 2, sym_comment, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, [1605] = 8, ACTIONS(98), 1, anon_sym_LF, @@ -4580,11 +4580,11 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(108), 1, anon_sym_POUND, ACTIONS(357), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(359), 1, anon_sym_LBRACE, STATE(55), 1, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, STATE(56), 1, sym_comment, ACTIONS(100), 2, @@ -4604,7 +4604,7 @@ static uint16_t ts_small_parse_table[] = { STATE(57), 1, sym_comment, STATE(118), 1, - sym_env_spec, + sym_expansion, ACTIONS(361), 2, anon_sym_LF, sym__non_newline_whitespace, @@ -4619,7 +4619,7 @@ static uint16_t ts_small_parse_table[] = { sym_comment, ACTIONS(172), 5, anon_sym_DOLLAR, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, anon_sym_LBRACE, anon_sym_DQUOTE, sym_escape_sequence, @@ -4641,7 +4641,7 @@ static uint16_t ts_small_parse_table[] = { STATE(59), 1, sym_comment, STATE(133), 1, - sym_env_spec, + sym_expansion, [1705] = 7, ACTIONS(106), 1, anon_sym_BSLASH_LF, @@ -4652,7 +4652,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(370), 1, anon_sym_DOLLAR, STATE(131), 1, - sym_env_spec, + sym_expansion, ACTIONS(365), 2, anon_sym_LF, anon_sym_COLON, @@ -4667,7 +4667,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(110), 1, anon_sym_LF, ACTIONS(373), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(376), 1, anon_sym_LBRACE, ACTIONS(112), 2, @@ -4675,7 +4675,7 @@ static uint16_t ts_small_parse_table[] = { anon_sym_DOLLAR, STATE(61), 2, sym_comment, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, [1753] = 8, ACTIONS(98), 1, anon_sym_LF, @@ -4684,11 +4684,11 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(108), 1, anon_sym_POUND, ACTIONS(379), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(381), 1, anon_sym_LBRACE, STATE(61), 1, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, STATE(62), 1, sym_comment, ACTIONS(100), 2, @@ -4704,7 +4704,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(388), 1, anon_sym_DOLLAR, STATE(118), 1, - sym_env_spec, + sym_expansion, ACTIONS(383), 2, anon_sym_LF, sym__non_newline_whitespace, @@ -4719,13 +4719,13 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(108), 1, anon_sym_POUND, ACTIONS(391), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(393), 1, anon_sym_LBRACE, STATE(64), 1, sym_comment, STATE(73), 1, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, ACTIONS(100), 2, anon_sym_DOLLAR, aux_sym_expose_port_token1, @@ -4742,7 +4742,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(140), 4, aux_sym__user_name_group_token1, anon_sym_DOLLAR, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, anon_sym_LBRACE, [1849] = 9, ACTIONS(106), 1, @@ -4762,7 +4762,7 @@ static uint16_t ts_small_parse_table[] = { STATE(66), 1, sym_comment, STATE(133), 1, - sym_env_spec, + sym_expansion, [1877] = 5, ACTIONS(106), 1, anon_sym_BSLASH_LF, @@ -4775,7 +4775,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(140), 5, aux_sym_from_instruction_token2, anon_sym_DOLLAR, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, anon_sym_LBRACE, aux_sym_image_digest_token1, [1897] = 9, @@ -4796,7 +4796,7 @@ static uint16_t ts_small_parse_table[] = { STATE(68), 1, sym_comment, STATE(133), 1, - sym_env_spec, + sym_expansion, [1925] = 8, ACTIONS(106), 1, anon_sym_BSLASH_LF, @@ -4809,7 +4809,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(404), 1, aux_sym_expose_port_token1, STATE(161), 1, - sym_env_spec, + sym_expansion, STATE(162), 1, sym_expose_port, STATE(69), 2, @@ -4828,7 +4828,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(172), 4, aux_sym__user_name_group_token1, anon_sym_DOLLAR, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, anon_sym_LBRACE, [1971] = 8, ACTIONS(106), 1, @@ -4844,7 +4844,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(231), 1, anon_sym_BSLASH, STATE(98), 1, - sym_env_spec, + sym_expansion, STATE(71), 2, sym_comment, aux_sym_unquoted_string_repeat1, @@ -4859,7 +4859,7 @@ static uint16_t ts_small_parse_table[] = { anon_sym_LF, aux_sym_path_token2, anon_sym_DOLLAR, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, anon_sym_LBRACE, sym__non_newline_whitespace, [2015] = 7, @@ -4870,7 +4870,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(110), 1, anon_sym_LF, ACTIONS(407), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(410), 1, anon_sym_LBRACE, ACTIONS(112), 2, @@ -4878,7 +4878,7 @@ static uint16_t ts_small_parse_table[] = { aux_sym_expose_port_token1, STATE(73), 2, sym_comment, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, [2039] = 9, ACTIONS(106), 1, anon_sym_BSLASH_LF, @@ -4897,7 +4897,7 @@ static uint16_t ts_small_parse_table[] = { STATE(74), 1, sym_comment, STATE(131), 1, - sym_env_spec, + sym_expansion, [2067] = 9, ACTIONS(3), 1, anon_sym_BSLASH_LF, @@ -4910,7 +4910,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(425), 1, anon_sym_LBRACK, STATE(57), 1, - sym_env_spec, + sym_expansion, STATE(75), 1, sym_comment, STATE(140), 1, @@ -4935,7 +4935,7 @@ static uint16_t ts_small_parse_table[] = { STATE(76), 1, sym_comment, STATE(128), 1, - sym_env_spec, + sym_expansion, [2123] = 4, ACTIONS(106), 1, anon_sym_BSLASH_LF, @@ -4947,7 +4947,7 @@ static uint16_t ts_small_parse_table[] = { anon_sym_LF, aux_sym_path_token2, anon_sym_DOLLAR, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, anon_sym_LBRACE, sym__non_newline_whitespace, [2141] = 5, @@ -4962,7 +4962,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(172), 5, aux_sym_from_instruction_token2, anon_sym_DOLLAR, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, anon_sym_LBRACE, aux_sym_image_digest_token1, [2161] = 7, @@ -4973,7 +4973,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(110), 1, sym__non_newline_whitespace, ACTIONS(435), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(438), 1, anon_sym_LBRACE, ACTIONS(112), 2, @@ -4981,7 +4981,7 @@ static uint16_t ts_small_parse_table[] = { anon_sym_DOLLAR, STATE(79), 2, sym_comment, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, [2185] = 9, ACTIONS(3), 1, anon_sym_BSLASH_LF, @@ -4996,7 +4996,7 @@ static uint16_t ts_small_parse_table[] = { STATE(80), 1, sym_comment, STATE(104), 1, - sym_env_spec, + sym_expansion, STATE(132), 1, sym_param, STATE(206), 1, @@ -5009,11 +5009,11 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(108), 1, anon_sym_POUND, ACTIONS(447), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(449), 1, anon_sym_LBRACE, STATE(79), 1, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, STATE(81), 1, sym_comment, ACTIONS(100), 2, @@ -5033,7 +5033,7 @@ static uint16_t ts_small_parse_table[] = { STATE(82), 1, sym_comment, STATE(104), 1, - sym_env_spec, + sym_expansion, STATE(134), 1, sym_param, STATE(207), 1, @@ -5056,7 +5056,7 @@ static uint16_t ts_small_parse_table[] = { STATE(83), 1, sym_comment, STATE(133), 1, - sym_env_spec, + sym_expansion, [2295] = 9, ACTIONS(106), 1, anon_sym_BSLASH_LF, @@ -5075,7 +5075,7 @@ static uint16_t ts_small_parse_table[] = { STATE(84), 1, sym_comment, STATE(133), 1, - sym_env_spec, + sym_expansion, [2323] = 8, ACTIONS(106), 1, anon_sym_BSLASH_LF, @@ -5092,7 +5092,7 @@ static uint16_t ts_small_parse_table[] = { STATE(85), 1, sym_comment, STATE(131), 1, - sym_env_spec, + sym_expansion, [2348] = 8, ACTIONS(3), 1, anon_sym_BSLASH_LF, @@ -5122,7 +5122,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(172), 4, aux_sym_path_token2, anon_sym_DOLLAR, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, anon_sym_LBRACE, [2392] = 8, ACTIONS(3), 1, @@ -5138,7 +5138,7 @@ static uint16_t ts_small_parse_table[] = { STATE(91), 1, aux_sym_image_alias_repeat1, STATE(160), 1, - sym_env_spec, + sym_expansion, STATE(216), 1, sym_image_alias, [2417] = 8, @@ -5157,7 +5157,7 @@ static uint16_t ts_small_parse_table[] = { STATE(95), 1, aux_sym_path_repeat1, STATE(164), 1, - sym_env_spec, + sym_expansion, [2442] = 5, ACTIONS(106), 1, anon_sym_BSLASH_LF, @@ -5188,7 +5188,7 @@ static uint16_t ts_small_parse_table[] = { STATE(100), 1, aux_sym_image_alias_repeat1, STATE(160), 1, - sym_env_spec, + sym_expansion, [2486] = 8, ACTIONS(106), 1, anon_sym_BSLASH_LF, @@ -5205,7 +5205,7 @@ static uint16_t ts_small_parse_table[] = { STATE(92), 1, sym_comment, STATE(164), 1, - sym_env_spec, + sym_expansion, [2511] = 8, ACTIONS(3), 1, anon_sym_BSLASH_LF, @@ -5220,7 +5220,7 @@ static uint16_t ts_small_parse_table[] = { STATE(93), 1, sym_comment, STATE(161), 1, - sym_env_spec, + sym_expansion, STATE(162), 1, sym_expose_port, [2536] = 5, @@ -5232,7 +5232,7 @@ static uint16_t ts_small_parse_table[] = { sym_comment, ACTIONS(138), 2, anon_sym_LF, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(140), 3, anon_sym_DOLLAR, anon_sym_LBRACE, @@ -5249,7 +5249,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(488), 1, anon_sym_DOLLAR, STATE(164), 1, - sym_env_spec, + sym_expansion, STATE(95), 2, sym_comment, aux_sym_path_repeat1, @@ -5269,7 +5269,7 @@ static uint16_t ts_small_parse_table[] = { STATE(108), 1, aux_sym__stopsignal_value, STATE(165), 1, - sym_env_spec, + sym_expansion, [2603] = 5, ACTIONS(106), 1, anon_sym_BSLASH_LF, @@ -5310,7 +5310,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(140), 4, aux_sym_path_token2, anon_sym_DOLLAR, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, anon_sym_LBRACE, [2660] = 7, ACTIONS(106), 1, @@ -5324,7 +5324,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(506), 1, aux_sym_image_alias_token1, STATE(160), 1, - sym_env_spec, + sym_expansion, STATE(100), 2, sym_comment, aux_sym_image_alias_repeat1, @@ -5342,7 +5342,7 @@ static uint16_t ts_small_parse_table[] = { STATE(101), 1, sym_comment, STATE(160), 1, - sym_env_spec, + sym_expansion, STATE(215), 1, sym_image_alias, [2708] = 7, @@ -5357,7 +5357,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(512), 1, anon_sym_DOLLAR, STATE(166), 1, - sym_env_spec, + sym_expansion, STATE(102), 2, sym_comment, aux_sym_path_repeat1, @@ -5377,7 +5377,7 @@ static uint16_t ts_small_parse_table[] = { STATE(103), 1, sym_comment, STATE(166), 1, - sym_env_spec, + sym_expansion, [2756] = 8, ACTIONS(106), 1, anon_sym_BSLASH_LF, @@ -5394,7 +5394,7 @@ static uint16_t ts_small_parse_table[] = { STATE(104), 1, sym_comment, STATE(166), 1, - sym_env_spec, + sym_expansion, [2781] = 5, ACTIONS(106), 1, anon_sym_BSLASH_LF, @@ -5404,7 +5404,7 @@ static uint16_t ts_small_parse_table[] = { sym_comment, ACTIONS(170), 2, anon_sym_LF, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(172), 3, anon_sym_DOLLAR, anon_sym_LBRACE, @@ -5421,7 +5421,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(172), 4, aux_sym_path_token2, anon_sym_DOLLAR, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, anon_sym_LBRACE, [2819] = 6, ACTIONS(106), 1, @@ -5450,7 +5450,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(530), 1, anon_sym_DOLLAR, STATE(165), 1, - sym_env_spec, + sym_expansion, STATE(108), 2, aux_sym__stopsignal_value, sym_comment, @@ -5466,7 +5466,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(140), 4, aux_sym_path_token2, anon_sym_DOLLAR, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, anon_sym_LBRACE, [2882] = 5, ACTIONS(106), 1, @@ -5477,7 +5477,7 @@ static uint16_t ts_small_parse_table[] = { sym_comment, ACTIONS(170), 2, anon_sym_LF, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(172), 3, aux_sym__stopsignal_value_token1, anon_sym_DOLLAR, @@ -5491,7 +5491,7 @@ static uint16_t ts_small_parse_table[] = { sym_comment, ACTIONS(138), 2, anon_sym_LF, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(140), 3, aux_sym__stopsignal_value_token1, anon_sym_DOLLAR, @@ -5507,7 +5507,7 @@ static uint16_t ts_small_parse_table[] = { sym_comment, ACTIONS(172), 4, anon_sym_DOLLAR, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, anon_sym_LBRACE, aux_sym_image_alias_token1, [2939] = 5, @@ -5521,7 +5521,7 @@ static uint16_t ts_small_parse_table[] = { sym_comment, ACTIONS(140), 4, anon_sym_DOLLAR, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, anon_sym_LBRACE, aux_sym_image_alias_token1, [2958] = 7, @@ -5577,7 +5577,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(541), 1, anon_sym_DOLLAR, STATE(92), 1, - sym_env_spec, + sym_expansion, STATE(117), 1, sym_comment, STATE(256), 1, @@ -5618,7 +5618,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(541), 1, anon_sym_DOLLAR, STATE(92), 1, - sym_env_spec, + sym_expansion, STATE(120), 1, sym_comment, STATE(252), 1, @@ -5647,7 +5647,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(423), 1, anon_sym_DOLLAR, STATE(57), 1, - sym_env_spec, + sym_expansion, STATE(122), 1, sym_comment, STATE(173), 1, @@ -5680,7 +5680,7 @@ static uint16_t ts_small_parse_table[] = { STATE(124), 1, sym_comment, STATE(131), 1, - sym_env_spec, + sym_expansion, [3184] = 7, ACTIONS(3), 1, anon_sym_BSLASH_LF, @@ -5691,7 +5691,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(541), 1, anon_sym_DOLLAR, STATE(92), 1, - sym_env_spec, + sym_expansion, STATE(125), 1, sym_comment, STATE(203), 1, @@ -5725,7 +5725,7 @@ static uint16_t ts_small_parse_table[] = { STATE(127), 1, sym_comment, STATE(128), 1, - sym_env_spec, + sym_expansion, [3250] = 5, ACTIONS(106), 1, anon_sym_BSLASH_LF, @@ -5751,7 +5751,7 @@ static uint16_t ts_small_parse_table[] = { STATE(35), 1, aux_sym_image_tag_repeat1, STATE(90), 1, - sym_env_spec, + sym_expansion, STATE(129), 1, sym_comment, [3290] = 6, @@ -5791,7 +5791,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(443), 1, anon_sym_DOLLAR, STATE(104), 1, - sym_env_spec, + sym_expansion, STATE(132), 1, sym_comment, STATE(244), 1, @@ -5819,7 +5819,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(443), 1, anon_sym_DOLLAR, STATE(104), 1, - sym_env_spec, + sym_expansion, STATE(134), 1, sym_comment, STATE(242), 1, @@ -5836,7 +5836,7 @@ static uint16_t ts_small_parse_table[] = { STATE(74), 1, aux_sym__user_name_group, STATE(131), 1, - sym_env_spec, + sym_expansion, STATE(135), 1, sym_comment, [3412] = 7, @@ -5849,7 +5849,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(541), 1, anon_sym_DOLLAR, STATE(92), 1, - sym_env_spec, + sym_expansion, STATE(136), 1, sym_comment, STATE(260), 1, @@ -5864,7 +5864,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(541), 1, anon_sym_DOLLAR, STATE(92), 1, - sym_env_spec, + sym_expansion, STATE(137), 1, sym_comment, STATE(237), 1, @@ -5898,7 +5898,7 @@ static uint16_t ts_small_parse_table[] = { STATE(139), 1, sym_comment, STATE(165), 1, - sym_env_spec, + sym_expansion, [3500] = 6, ACTIONS(106), 1, anon_sym_BSLASH_LF, @@ -5931,11 +5931,11 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(5), 1, anon_sym_POUND, ACTIONS(596), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(598), 1, anon_sym_LBRACE, STATE(10), 1, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, STATE(142), 1, sym_comment, [3557] = 6, @@ -5944,11 +5944,11 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(5), 1, anon_sym_POUND, ACTIONS(600), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(602), 1, anon_sym_LBRACE, STATE(14), 1, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, STATE(143), 1, sym_comment, [3576] = 6, @@ -5957,11 +5957,11 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(5), 1, anon_sym_POUND, ACTIONS(604), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(606), 1, anon_sym_LBRACE, STATE(36), 1, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, STATE(144), 1, sym_comment, [3595] = 6, @@ -5970,11 +5970,11 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(5), 1, anon_sym_POUND, ACTIONS(608), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(610), 1, anon_sym_LBRACE, STATE(26), 1, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, STATE(145), 1, sym_comment, [3614] = 6, @@ -5983,11 +5983,11 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(5), 1, anon_sym_POUND, ACTIONS(612), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(614), 1, anon_sym_LBRACE, STATE(12), 1, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, STATE(146), 1, sym_comment, [3633] = 6, @@ -5996,11 +5996,11 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(5), 1, anon_sym_POUND, ACTIONS(616), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(618), 1, anon_sym_LBRACE, STATE(50), 1, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, STATE(147), 1, sym_comment, [3652] = 6, @@ -6022,11 +6022,11 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(5), 1, anon_sym_POUND, ACTIONS(357), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(624), 1, anon_sym_LBRACE, STATE(56), 1, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, STATE(149), 1, sym_comment, [3690] = 5, @@ -6047,11 +6047,11 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(5), 1, anon_sym_POUND, ACTIONS(631), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(633), 1, anon_sym_LBRACE, STATE(62), 1, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, STATE(151), 1, sym_comment, [3726] = 6, @@ -6060,11 +6060,11 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(5), 1, anon_sym_POUND, ACTIONS(635), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(637), 1, anon_sym_LBRACE, STATE(39), 1, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, STATE(152), 1, sym_comment, [3745] = 6, @@ -6073,11 +6073,11 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(5), 1, anon_sym_POUND, ACTIONS(639), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(641), 1, anon_sym_LBRACE, STATE(32), 1, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, STATE(153), 1, sym_comment, [3764] = 6, @@ -6086,11 +6086,11 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(5), 1, anon_sym_POUND, ACTIONS(643), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(645), 1, anon_sym_LBRACE, STATE(81), 1, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, STATE(154), 1, sym_comment, [3783] = 6, @@ -6099,11 +6099,11 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(5), 1, anon_sym_POUND, ACTIONS(391), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(647), 1, anon_sym_LBRACE, STATE(64), 1, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, STATE(155), 1, sym_comment, [3802] = 6, @@ -6138,11 +6138,11 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(5), 1, anon_sym_POUND, ACTIONS(653), 1, - aux_sym_env_spec_token1, + aux_sym_expansion_token1, ACTIONS(655), 1, anon_sym_LBRACE, STATE(6), 1, - aux_sym_env_spec_repeat1, + aux_sym_expansion_repeat1, STATE(158), 1, sym_comment, [3859] = 6, @@ -6588,7 +6588,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(108), 1, anon_sym_POUND, ACTIONS(755), 1, - aux_sym_env_spec_token2, + aux_sym_expansion_token2, STATE(199), 1, sym_comment, [4500] = 4, @@ -7155,7 +7155,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(108), 1, anon_sym_POUND, ACTIONS(881), 1, - aux_sym_env_spec_token2, + aux_sym_expansion_token2, STATE(262), 1, sym_comment, [5319] = 4, @@ -7191,7 +7191,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(108), 1, anon_sym_POUND, ACTIONS(889), 1, - aux_sym_env_spec_token2, + aux_sym_expansion_token2, STATE(266), 1, sym_comment, [5371] = 4, @@ -7209,7 +7209,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(108), 1, anon_sym_POUND, ACTIONS(893), 1, - aux_sym_env_spec_token2, + aux_sym_expansion_token2, STATE(268), 1, sym_comment, [5397] = 4, @@ -7218,7 +7218,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(108), 1, anon_sym_POUND, ACTIONS(895), 1, - aux_sym_env_spec_token2, + aux_sym_expansion_token2, STATE(269), 1, sym_comment, [5410] = 4, @@ -7227,7 +7227,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(108), 1, anon_sym_POUND, ACTIONS(897), 1, - aux_sym_env_spec_token2, + aux_sym_expansion_token2, STATE(270), 1, sym_comment, [5423] = 4, @@ -7236,7 +7236,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(108), 1, anon_sym_POUND, ACTIONS(899), 1, - aux_sym_env_spec_token2, + aux_sym_expansion_token2, STATE(271), 1, sym_comment, [5436] = 4, @@ -7245,7 +7245,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(108), 1, anon_sym_POUND, ACTIONS(901), 1, - aux_sym_env_spec_token2, + aux_sym_expansion_token2, STATE(272), 1, sym_comment, [5449] = 4, @@ -7254,7 +7254,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(108), 1, anon_sym_POUND, ACTIONS(903), 1, - aux_sym_env_spec_token2, + aux_sym_expansion_token2, STATE(273), 1, sym_comment, [5462] = 4, @@ -7263,7 +7263,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(108), 1, anon_sym_POUND, ACTIONS(905), 1, - aux_sym_env_spec_token2, + aux_sym_expansion_token2, STATE(274), 1, sym_comment, [5475] = 4, @@ -7272,7 +7272,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(108), 1, anon_sym_POUND, ACTIONS(907), 1, - aux_sym_env_spec_token2, + aux_sym_expansion_token2, STATE(275), 1, sym_comment, [5488] = 4, @@ -7281,7 +7281,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(108), 1, anon_sym_POUND, ACTIONS(909), 1, - aux_sym_env_spec_token2, + aux_sym_expansion_token2, STATE(276), 1, sym_comment, [5501] = 4, @@ -7290,7 +7290,7 @@ static uint16_t ts_small_parse_table[] = { ACTIONS(108), 1, anon_sym_POUND, ACTIONS(911), 1, - aux_sym_env_spec_token2, + aux_sym_expansion_token2, STATE(277), 1, sym_comment, [5514] = 4, @@ -7630,16 +7630,16 @@ static TSParseActionEntry ts_parse_actions[] = { [90] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(222), [93] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(221), [96] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [98] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_env_spec, 2), - [100] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_env_spec, 2), + [98] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expansion, 2), + [100] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expansion, 2), [102] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18), [104] = {.entry = {.count = 1, .reusable = false}}, SHIFT(199), [106] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), [108] = {.entry = {.count = 1, .reusable = false}}, SHIFT(232), - [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_env_spec_repeat1, 2), - [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_env_spec_repeat1, 2), - [114] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_env_spec_repeat1, 2), SHIFT_REPEAT(18), - [117] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_env_spec_repeat1, 2), SHIFT_REPEAT(199), + [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_expansion_repeat1, 2), + [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_expansion_repeat1, 2), + [114] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_expansion_repeat1, 2), SHIFT_REPEAT(18), + [117] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_expansion_repeat1, 2), SHIFT_REPEAT(199), [120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143), [122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), [124] = {.entry = {.count = 1, .reusable = false}}, SHIFT(98), @@ -7649,33 +7649,33 @@ static TSParseActionEntry ts_parse_actions[] = { [132] = {.entry = {.count = 1, .reusable = false}}, SHIFT(213), [134] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), [136] = {.entry = {.count = 1, .reusable = false}}, SHIFT(277), - [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_env_spec_repeat1, 3), - [140] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_env_spec_repeat1, 3), + [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_expansion_repeat1, 3), + [140] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_expansion_repeat1, 3), [142] = {.entry = {.count = 1, .reusable = false}}, SHIFT(41), [144] = {.entry = {.count = 1, .reusable = false}}, SHIFT(273), - [146] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_env_spec_repeat1, 2), SHIFT_REPEAT(37), - [149] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_env_spec_repeat1, 2), SHIFT_REPEAT(276), + [146] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_expansion_repeat1, 2), SHIFT_REPEAT(37), + [149] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_expansion_repeat1, 2), SHIFT_REPEAT(276), [152] = {.entry = {.count = 1, .reusable = false}}, SHIFT(37), [154] = {.entry = {.count = 1, .reusable = false}}, SHIFT(276), [156] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_image_name, 1), [158] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_image_name, 1), [160] = {.entry = {.count = 1, .reusable = false}}, SHIFT(158), [162] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), - [164] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_env_spec_repeat1, 2), SHIFT_REPEAT(25), - [167] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_env_spec_repeat1, 2), SHIFT_REPEAT(277), - [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_env_spec_repeat1, 1), - [172] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_env_spec_repeat1, 1), + [164] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_expansion_repeat1, 2), SHIFT_REPEAT(25), + [167] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_expansion_repeat1, 2), SHIFT_REPEAT(277), + [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_expansion_repeat1, 1), + [172] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_expansion_repeat1, 1), [174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), [176] = {.entry = {.count = 1, .reusable = false}}, SHIFT(97), [178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), - [180] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_env_spec_repeat1, 2), SHIFT_REPEAT(41), - [183] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_env_spec_repeat1, 2), SHIFT_REPEAT(273), + [180] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_expansion_repeat1, 2), SHIFT_REPEAT(41), + [183] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_expansion_repeat1, 2), SHIFT_REPEAT(273), [186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_image_name_repeat1, 2), [188] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_image_name_repeat1, 2), [190] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_image_name_repeat1, 2), SHIFT_REPEAT(158), [193] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_image_name_repeat1, 2), SHIFT_REPEAT(48), - [196] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_env_spec_repeat1, 2), SHIFT_REPEAT(58), - [199] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_env_spec_repeat1, 2), SHIFT_REPEAT(275), + [196] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_expansion_repeat1, 2), SHIFT_REPEAT(58), + [199] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_expansion_repeat1, 2), SHIFT_REPEAT(275), [202] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unquoted_string, 1), [204] = {.entry = {.count = 1, .reusable = false}}, SHIFT(142), [206] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unquoted_string, 1), @@ -7689,13 +7689,13 @@ static TSParseActionEntry ts_parse_actions[] = { [225] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_unquoted_string_repeat1, 2), SHIFT_REPEAT(143), [228] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_unquoted_string_repeat1, 2), SHIFT_REPEAT(98), [231] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_unquoted_string_repeat1, 2), SHIFT_REPEAT(98), - [234] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_env_spec_repeat1, 2), SHIFT_REPEAT(78), - [237] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_env_spec_repeat1, 2), SHIFT_REPEAT(274), + [234] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_expansion_repeat1, 2), SHIFT_REPEAT(78), + [237] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_expansion_repeat1, 2), SHIFT_REPEAT(274), [240] = {.entry = {.count = 1, .reusable = false}}, SHIFT(143), [242] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77), [244] = {.entry = {.count = 1, .reusable = false}}, SHIFT(268), - [246] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_env_spec_repeat1, 2), SHIFT_REPEAT(77), - [249] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_env_spec_repeat1, 2), SHIFT_REPEAT(268), + [246] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_expansion_repeat1, 2), SHIFT_REPEAT(77), + [249] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_expansion_repeat1, 2), SHIFT_REPEAT(268), [252] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_image_tag_repeat1, 2), [254] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_image_tag_repeat1, 2), [256] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_image_tag_repeat1, 2), SHIFT_REPEAT(146), @@ -7708,8 +7708,8 @@ static TSParseActionEntry ts_parse_actions[] = { [272] = {.entry = {.count = 1, .reusable = false}}, SHIFT(275), [274] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), [276] = {.entry = {.count = 1, .reusable = false}}, SHIFT(269), - [278] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_env_spec_repeat1, 2), SHIFT_REPEAT(70), - [281] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_env_spec_repeat1, 2), SHIFT_REPEAT(269), + [278] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_expansion_repeat1, 2), SHIFT_REPEAT(70), + [281] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_expansion_repeat1, 2), SHIFT_REPEAT(269), [284] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_path, 2), [286] = {.entry = {.count = 1, .reusable = false}}, SHIFT(118), [288] = {.entry = {.count = 1, .reusable = false}}, SHIFT(153), @@ -7728,8 +7728,8 @@ static TSParseActionEntry ts_parse_actions[] = { [318] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_double_quoted_string_repeat1, 2), SHIFT_REPEAT(133), [321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_image_name_repeat1, 1), [323] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_image_name_repeat1, 1), - [325] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_env_spec_repeat1, 2), SHIFT_REPEAT(112), - [328] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_env_spec_repeat1, 2), SHIFT_REPEAT(272), + [325] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_expansion_repeat1, 2), SHIFT_REPEAT(112), + [328] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_expansion_repeat1, 2), SHIFT_REPEAT(272), [331] = {.entry = {.count = 1, .reusable = false}}, SHIFT(112), [333] = {.entry = {.count = 1, .reusable = false}}, SHIFT(272), [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_image_spec, 1, .production_id = 1), @@ -7740,8 +7740,8 @@ static TSParseActionEntry ts_parse_actions[] = { [345] = {.entry = {.count = 1, .reusable = false}}, SHIFT(177), [347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), [349] = {.entry = {.count = 1, .reusable = false}}, SHIFT(133), - [351] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_env_spec_repeat1, 2), SHIFT_REPEAT(110), - [354] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_env_spec_repeat1, 2), SHIFT_REPEAT(271), + [351] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_expansion_repeat1, 2), SHIFT_REPEAT(110), + [354] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_expansion_repeat1, 2), SHIFT_REPEAT(271), [357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), [359] = {.entry = {.count = 1, .reusable = false}}, SHIFT(271), [361] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_path, 1), @@ -7749,8 +7749,8 @@ static TSParseActionEntry ts_parse_actions[] = { [365] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__user_name_group, 2), [367] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__user_name_group, 2), SHIFT_REPEAT(131), [370] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__user_name_group, 2), SHIFT_REPEAT(152), - [373] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_env_spec_repeat1, 2), SHIFT_REPEAT(106), - [376] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_env_spec_repeat1, 2), SHIFT_REPEAT(270), + [373] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_expansion_repeat1, 2), SHIFT_REPEAT(106), + [376] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_expansion_repeat1, 2), SHIFT_REPEAT(270), [379] = {.entry = {.count = 1, .reusable = false}}, SHIFT(106), [381] = {.entry = {.count = 1, .reusable = false}}, SHIFT(270), [383] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_path_repeat1, 2), @@ -7763,8 +7763,8 @@ static TSParseActionEntry ts_parse_actions[] = { [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_expose_instruction_repeat1, 2), [401] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_expose_instruction_repeat1, 2), SHIFT_REPEAT(155), [404] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_expose_instruction_repeat1, 2), SHIFT_REPEAT(107), - [407] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_env_spec_repeat1, 2), SHIFT_REPEAT(105), - [410] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_env_spec_repeat1, 2), SHIFT_REPEAT(262), + [407] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_expansion_repeat1, 2), SHIFT_REPEAT(105), + [410] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_expansion_repeat1, 2), SHIFT_REPEAT(262), [413] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_user_instruction, 3, .production_id = 2), [415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), [417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), @@ -7776,8 +7776,8 @@ static TSParseActionEntry ts_parse_actions[] = { [429] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_image_digest, 2), [431] = {.entry = {.count = 1, .reusable = false}}, SHIFT(145), [433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), - [435] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_env_spec_repeat1, 2), SHIFT_REPEAT(87), - [438] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_env_spec_repeat1, 2), SHIFT_REPEAT(266), + [435] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_expansion_repeat1, 2), SHIFT_REPEAT(87), + [438] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_expansion_repeat1, 2), SHIFT_REPEAT(266), [441] = {.entry = {.count = 1, .reusable = false}}, SHIFT(104), [443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), [445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(278),