aboutsummaryrefslogtreecommitdiff
path: root/grammar
diff options
context:
space:
mode:
authorRyo Nihei <nihei.dev@gmail.com>2021-07-17 17:29:31 +0900
committerRyo Nihei <nihei.dev@gmail.com>2021-07-17 17:29:31 +0900
commit2c22c1e193ce8b3abd6f1436457ff92a40646e45 (patch)
tree2979b4d644e038ae2ec84a201c2557d3db5e1570 /grammar
parentImprove syntax error messages (diff)
downloadcotia-2c22c1e193ce8b3abd6f1436457ff92a40646e45.tar.gz
cotia-2c22c1e193ce8b3abd6f1436457ff92a40646e45.tar.xz
Detect multiple syntax errors in a single parse
Diffstat (limited to 'grammar')
-rw-r--r--grammar/grammar.go4
1 files changed, 4 insertions, 0 deletions
diff --git a/grammar/grammar.go b/grammar/grammar.go
index b9f65dc..b4827df 100644
--- a/grammar/grammar.go
+++ b/grammar/grammar.go
@@ -144,6 +144,10 @@ func NewGrammar(root *spec.RootNode) (*Grammar, error) {
}
}
+ if len(root.Productions) == 0 {
+ return nil, fmt.Errorf("a grammar must have at least one production")
+ }
+
prods := newProductionSet()
var augStartSym symbol
astActs := map[productionID][]*astActionEntry{}