diff options
author | Ryo Nihei <nihei.dev@gmail.com> | 2022-05-14 14:42:00 +0900 |
---|---|---|
committer | Ryo Nihei <nihei.dev@gmail.com> | 2022-05-15 20:42:28 +0900 |
commit | a443f0a1a4b79faa0b0271b72ea4a8e5f3d03ffd (patch) | |
tree | 10ba6c9806ec2bd831fe62d34e1da22daaf5e0e0 /spec/parser_test.go | |
parent | Prohibit using escape sequences in string literals (diff) | |
download | cotia-a443f0a1a4b79faa0b0271b72ea4a8e5f3d03ffd.tar.gz cotia-a443f0a1a4b79faa0b0271b72ea4a8e5f3d03ffd.tar.xz |
Prohibit applying the expansion operator to anything other than identifiers
Diffstat (limited to 'spec/parser_test.go')
-rw-r--r-- | spec/parser_test.go | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/spec/parser_test.go b/spec/parser_test.go index 15f1330..c7d43de 100644 --- a/spec/parser_test.go +++ b/spec/parser_test.go @@ -599,6 +599,60 @@ bar: "bar"; }, }, { + caption: "an expansion operator must be preceded by an identifier", + src: ` +s + : foo #ast ... + ; +`, + synErr: synErrStrayExpOp, + }, + { + caption: "an expansion operator must be preceded by an identifier", + src: ` +a + : foo #ast ... foo + ; +`, + synErr: synErrStrayExpOp, + }, + { + caption: "an expansion operator cannot be applied to a pattern", + src: ` +a + : "foo" #ast "foo"... + ; +`, + synErr: synErrInvalidExpOperand, + }, + { + caption: "an expansion operator cannot be applied to a string", + src: ` +a + : 'foo' #ast 'foo'... + ; +`, + synErr: synErrInvalidExpOperand, + }, + { + caption: "an expansion operator cannot be applied to an ordered symbol", + src: ` +a + : foo #ast $foo... + ; +`, + synErr: synErrInvalidExpOperand, + }, + { + caption: "an expansion operator cannot be applied to a directive group", + src: ` +a + : foo #ast ()... + ; +`, + synErr: synErrInvalidExpOperand, + }, + { caption: "an AST has node positions", src: ` exp |