diff options
Diffstat (limited to 'grammar/grammar.go')
-rw-r--r-- | grammar/grammar.go | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/grammar/grammar.go b/grammar/grammar.go index 00c894c..a43b133 100644 --- a/grammar/grammar.go +++ b/grammar/grammar.go @@ -487,7 +487,15 @@ func Compile(gram *Grammar) (*spec.CompiledGrammar, error) { return nil, err } - tab, err := genSLRParsingTable(lr0, gram.productionSet, followSet, len(terms), len(nonTerms)) + slr := &slrTableBuilder{ + automaton: lr0, + prods: gram.productionSet, + follow: followSet, + termCount: len(terms), + nonTermCount: len(nonTerms), + symTab: gram.symbolTable, + } + tab, err := slr.build() if err != nil { return nil, err } |