22
33from typing import Dict , List , AbstractSet , Tuple , Optional , Hashable
44
5- from ..objects .cfg_objects import Variable , CFGConvertible
5+ from ..objects .cfg_objects import Variable , CFGObjectConvertible
66
77
88class CFGVariableConverter :
99 """A CFG Variable Converter"""
1010
1111 def __init__ (self ,
12- states : AbstractSet [CFGConvertible ],
13- stack_symbols : AbstractSet [CFGConvertible ]) -> None :
12+ states : AbstractSet [CFGObjectConvertible ],
13+ stack_symbols : AbstractSet [CFGObjectConvertible ]) -> None :
1414 self ._counter = 0
15- self ._inverse_states_d : Dict [CFGConvertible , int ] = {}
15+ self ._inverse_states_d : Dict [CFGObjectConvertible , int ] = {}
1616 self ._counter_state = 0
1717 for self ._counter_state , state in enumerate (states ):
1818 self ._inverse_states_d [state ] = self ._counter_state
1919 state .index_cfg_converter = self ._counter_state
2020 self ._counter_state += 1
21- self ._inverse_stack_symbol_d : Dict [CFGConvertible , int ] = {}
21+ self ._inverse_stack_symbol_d : Dict [CFGObjectConvertible , int ] = {}
2222 self ._counter_symbol = 0
2323 for self ._counter_symbol , symbol in enumerate (stack_symbols ):
2424 self ._inverse_stack_symbol_d [symbol ] = self ._counter_symbol
@@ -29,7 +29,7 @@ def __init__(self,
2929 for _ in range (len (stack_symbols ))] for _ in
3030 range (len (states ))]
3131
32- def _get_state_index (self , state : CFGConvertible ) -> int :
32+ def _get_state_index (self , state : CFGObjectConvertible ) -> int :
3333 """Get the state index"""
3434 if state .index_cfg_converter is None :
3535 if state not in self ._inverse_states_d :
@@ -38,7 +38,7 @@ def _get_state_index(self, state: CFGConvertible) -> int:
3838 state .index_cfg_converter = self ._inverse_states_d [state ]
3939 return state .index_cfg_converter
4040
41- def _get_symbol_index (self , symbol : CFGConvertible ) -> int :
41+ def _get_symbol_index (self , symbol : CFGObjectConvertible ) -> int :
4242 """Get the symbol index"""
4343 if symbol .index_cfg_converter is None :
4444 if symbol not in self ._inverse_stack_symbol_d :
@@ -48,9 +48,9 @@ def _get_symbol_index(self, symbol: CFGConvertible) -> int:
4848 return symbol .index_cfg_converter
4949
5050 def to_cfg_combined_variable (self ,
51- state0 : CFGConvertible ,
52- stack_symbol : CFGConvertible ,
53- state1 : CFGConvertible ) -> Variable :
51+ state0 : CFGObjectConvertible ,
52+ stack_symbol : CFGObjectConvertible ,
53+ state1 : CFGObjectConvertible ) -> Variable :
5454 """ Conversion used in the to_pda method """
5555 i_stack_symbol , i_state0 , i_state1 = self ._get_indexes (
5656 stack_symbol , state0 , state1 )
@@ -74,19 +74,19 @@ def _create_new_variable(self,
7474 return temp
7575
7676 def set_valid (self ,
77- state0 : CFGConvertible ,
78- stack_symbol : CFGConvertible ,
79- state1 : CFGConvertible ) -> None :
77+ state0 : CFGObjectConvertible ,
78+ stack_symbol : CFGObjectConvertible ,
79+ state1 : CFGObjectConvertible ) -> None :
8080 """Set valid"""
8181 i_stack_symbol , i_state0 , i_state1 = self ._get_indexes (
8282 stack_symbol , state0 , state1 )
8383 prev = self ._conversions [i_state0 ][i_stack_symbol ][i_state1 ]
8484 self ._conversions [i_state0 ][i_stack_symbol ][i_state1 ] = (True , prev [1 ])
8585
8686 def is_valid_and_get (self ,
87- state0 : CFGConvertible ,
88- stack_symbol : CFGConvertible ,
89- state1 : CFGConvertible ) -> Optional [Variable ]:
87+ state0 : CFGObjectConvertible ,
88+ stack_symbol : CFGObjectConvertible ,
89+ state1 : CFGObjectConvertible ) -> Optional [Variable ]:
9090 """Check if valid and get"""
9191 i_state0 = self ._get_state_index (state0 )
9292 i_stack_symbol = self ._get_symbol_index (stack_symbol )
@@ -102,9 +102,9 @@ def is_valid_and_get(self,
102102 return current [1 ]
103103
104104 def _get_indexes (self ,
105- stack_symbol : CFGConvertible ,
106- state0 : CFGConvertible ,
107- state1 : CFGConvertible ) \
105+ stack_symbol : CFGObjectConvertible ,
106+ state0 : CFGObjectConvertible ,
107+ state1 : CFGObjectConvertible ) \
108108 -> Tuple [int , int , int ]:
109109 i_state0 = self ._get_state_index (state0 )
110110 i_stack_symbol = self ._get_symbol_index (stack_symbol )
0 commit comments