aboutsummaryrefslogtreecommitdiff
path: root/spec/parser_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'spec/parser_test.go')
-rw-r--r--spec/parser_test.go54
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