diff --git a/unoptimized_lr/simple_lr_table.py b/unoptimized_lr/simple_lr_table.py index e72ddf9c360c24ec78694688fc34fbad19021fea..5f45e0efd812ae03cc0d0ad7c4ab23be722014ef 100644 --- a/unoptimized_lr/simple_lr_table.py +++ b/unoptimized_lr/simple_lr_table.py @@ -220,7 +220,7 @@ class ReduceRuleTable(Elaboratable): def __init__(self, *, lang_params, input_array): # Parameters - # So the Reduce Rule lookup table is a one-dimensional array, indexed by + # The Reduce Rule lookup table is a one-dimensional array, indexed by # rule number: # Each element of the array is of the form: @@ -231,11 +231,8 @@ class ReduceRuleTable(Elaboratable): # TIW = (WLongestRule + number of bits to index the nonterminals) - self.table_width = (nonterminal_bits + 1) - print(number_of_nonterminals) - self.table_depth = number_of_nonterminals * number_of_states - - self.number_of_nonterminals = number_of_nonterminals + self.table_width = (lang_params.W_max_RHS + lang_paramsW_nonterminal) + self.table_depth = lang_param.number_of_nonterminals # Interfaces @@ -243,7 +240,7 @@ class ReduceRuleTable(Elaboratable): output_width=self.table_width) - self.mem = Memory(width=self.table_width, depth=self.table_depth, init=rasterized) + self.mem = Memory(width=self.table_width, depth=self.table_depth, init=input_array) def elaborate(self, platform):