diff options
author | Ryo Nihei <nihei.dev@gmail.com> | 2021-07-17 17:29:31 +0900 |
---|---|---|
committer | Ryo Nihei <nihei.dev@gmail.com> | 2021-07-17 17:29:31 +0900 |
commit | 2c22c1e193ce8b3abd6f1436457ff92a40646e45 (patch) | |
tree | 2979b4d644e038ae2ec84a201c2557d3db5e1570 /grammar/grammar.go | |
parent | Improve syntax error messages (diff) | |
download | cotia-2c22c1e193ce8b3abd6f1436457ff92a40646e45.tar.gz cotia-2c22c1e193ce8b3abd6f1436457ff92a40646e45.tar.xz |
Detect multiple syntax errors in a single parse
Diffstat (limited to 'grammar/grammar.go')
-rw-r--r-- | grammar/grammar.go | 4 |
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{} |