diff options
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{} |