aboutsummaryrefslogtreecommitdiff
path: root/driver/parser_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'driver/parser_test.go')
-rw-r--r--driver/parser_test.go52
1 files changed, 52 insertions, 0 deletions
diff --git a/driver/parser_test.go b/driver/parser_test.go
index d50ee85..9467d6c 100644
--- a/driver/parser_test.go
+++ b/driver/parser_test.go
@@ -395,6 +395,58 @@ b: "a";
`,
specErr: true,
},
+ // Invalid associativity type
+ {
+ specSrc: `
+%foo
+
+s
+ : a
+ ;
+
+a: 'a';
+`,
+ specErr: true,
+ },
+ // Associativity needs at least one symbol.
+ {
+ specSrc: `
+%left
+
+s
+ : a
+ ;
+
+a: 'a';
+`,
+ specErr: true,
+ },
+ // Associativity cannot take an undefined symbol.
+ {
+ specSrc: `
+%left b
+
+s
+ : a
+ ;
+
+a: 'a';
+`,
+ specErr: true,
+ },
+ // Associativity cannot take a non-terminal symbol.
+ {
+ specSrc: `
+%left s
+
+s
+ : a
+ ;
+
+a: 'a';
+`,
+ specErr: true,
+ },
}
classes := []grammar.Class{