allow one-letter environment variables
This fixes issue #11. Previously, we required environment variable names to be one ASCII letter followed by one or more characters, but this makes the following characters optional.
This commit is contained in:
parent
4e5f9a0a61
commit
d34a0cebd0
|
@ -26,6 +26,20 @@ ENV TEST_2=value\ 2
|
||||||
name: (unquoted_string)
|
name: (unquoted_string)
|
||||||
value: (unquoted_string))))
|
value: (unquoted_string))))
|
||||||
|
|
||||||
|
=========================================================
|
||||||
|
Single-letter variable
|
||||||
|
=========================================================
|
||||||
|
|
||||||
|
ENV X=42
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
(source_file
|
||||||
|
(env_instruction
|
||||||
|
(env_pair
|
||||||
|
(unquoted_string)
|
||||||
|
(unquoted_string))))
|
||||||
|
|
||||||
================================================================================
|
================================================================================
|
||||||
Multiple
|
Multiple
|
||||||
================================================================================
|
================================================================================
|
||||||
|
|
|
@ -195,7 +195,7 @@ module.exports = grammar({
|
||||||
),
|
),
|
||||||
|
|
||||||
_env_key: ($) =>
|
_env_key: ($) =>
|
||||||
alias(/[a-zA-Z][a-zA-Z0-9_]*[a-zA-Z0-9]/, $.unquoted_string),
|
alias(/[a-zA-Z]([a-zA-Z0-9_]*[a-zA-Z0-9])?/, $.unquoted_string),
|
||||||
|
|
||||||
expose_port: ($) => seq(/\d+/, optional(choice("/tcp", "/udp"))),
|
expose_port: ($) => seq(/\d+/, optional(choice("/tcp", "/udp"))),
|
||||||
|
|
||||||
|
|
|
@ -941,7 +941,7 @@
|
||||||
"type": "ALIAS",
|
"type": "ALIAS",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "PATTERN",
|
"type": "PATTERN",
|
||||||
"value": "[a-zA-Z][a-zA-Z0-9_]*[a-zA-Z0-9]"
|
"value": "[a-zA-Z]([a-zA-Z0-9_]*[a-zA-Z0-9])?"
|
||||||
},
|
},
|
||||||
"named": true,
|
"named": true,
|
||||||
"value": "unquoted_string"
|
"value": "unquoted_string"
|
||||||
|
|
|
@ -1078,7 +1078,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
|
||||||
lookahead == '\r' ||
|
lookahead == '\r' ||
|
||||||
lookahead == ' ') SKIP(5)
|
lookahead == ' ') SKIP(5)
|
||||||
if (('A' <= lookahead && lookahead <= 'Z') ||
|
if (('A' <= lookahead && lookahead <= 'Z') ||
|
||||||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(52);
|
('a' <= lookahead && lookahead <= 'z')) ADVANCE(204);
|
||||||
END_STATE();
|
END_STATE();
|
||||||
case 6:
|
case 6:
|
||||||
if (lookahead == '\n') ADVANCE(160);
|
if (lookahead == '\n') ADVANCE(160);
|
||||||
|
@ -1283,7 +1283,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
|
||||||
lookahead == '\r' ||
|
lookahead == '\r' ||
|
||||||
lookahead == ' ') SKIP(22)
|
lookahead == ' ') SKIP(22)
|
||||||
if (('A' <= lookahead && lookahead <= 'Z') ||
|
if (('A' <= lookahead && lookahead <= 'Z') ||
|
||||||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(52);
|
('a' <= lookahead && lookahead <= 'z')) ADVANCE(204);
|
||||||
END_STATE();
|
END_STATE();
|
||||||
case 23:
|
case 23:
|
||||||
if (lookahead == '\n') ADVANCE(160);
|
if (lookahead == '\n') ADVANCE(160);
|
||||||
|
@ -1488,7 +1488,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
|
||||||
lookahead == '\r' ||
|
lookahead == '\r' ||
|
||||||
lookahead == ' ') SKIP(45)
|
lookahead == ' ') SKIP(45)
|
||||||
if (('A' <= lookahead && lookahead <= 'Z') ||
|
if (('A' <= lookahead && lookahead <= 'Z') ||
|
||||||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(52);
|
('a' <= lookahead && lookahead <= 'z')) ADVANCE(204);
|
||||||
END_STATE();
|
END_STATE();
|
||||||
case 46:
|
case 46:
|
||||||
if (lookahead == '\\') ADVANCE(1);
|
if (lookahead == '\\') ADVANCE(1);
|
||||||
|
|
Loading…
Reference in a new issue