diff --git a/unoptimized_lr/simple_lr_tables.py b/unoptimized_lr/simple_lr_tables.py index 7f3b5611b6811b0fa825fc4103b6275629e8fc22..14928c1bea081146f408db0dfe3ac8e4f0662171 100644 --- a/unoptimized_lr/simple_lr_tables.py +++ b/unoptimized_lr/simple_lr_tables.py @@ -119,7 +119,12 @@ class ShiftReduceTable(Elaboratable): class GOTOTableBusLayout(Layout): - def __init__(self, *, row_input_width, column_input_width, output_width): + def __init__(self, *, parameters): + + row_input_width = parameters.W_state + column_input_width = parameters.W_nonterminal + output_width = (parameters.W_nonterminal + 1) + super().__init__([ # INPUTS ("row_idx", unsigned(row_input_width)), # FROM SOURCE @@ -135,8 +140,8 @@ class GOTOTableBusLayout(Layout): ]) class GOTOTableBus(Record): - def __init__(self, *, row_input_width, column_input_width, output_width): - super().__init__(TableBusLayout(row_input_width=row_input_width, column_input_width=column_input_width, output_width=output_width)) + def __init__(self, *, parameters): + super().__init__(TableBusLayout(parameters=parameters)) class GOTOtable(Elaboratable): def __init__(self, *, lang_params, input_array): @@ -175,9 +180,7 @@ class GOTOtable(Elaboratable): # Interfaces - self.bus = TableBus(row_input_width=lang_params.W_state, - column_input_width=lang_params.W_nonterminal, - output_width=self.table_width) + self.bus = TableBus(parameters=lang_params) # Prepare the table for consumption