diff --git a/.codeclimate.yml b/.codeclimate.yml index 86a544009..2a697a2ca 100644 --- a/.codeclimate.yml +++ b/.codeclimate.yml @@ -64,4 +64,5 @@ exclude_patterns: - "tests/" - "mcore_*/" - ".tox/" + - "manticore/ethereum/parsetab.py" diff --git a/manticore/ethereum/parsetab.py b/manticore/ethereum/parsetab.py new file mode 100644 index 000000000..9cdf3e2ad --- /dev/null +++ b/manticore/ethereum/parsetab.py @@ -0,0 +1,50 @@ + +# parsetab.py +# This file is automatically generated. Do not edit. +# pylint: disable=W,C,R +_tabversion = '3.10' + +_lr_method = 'LALR' + +_lr_signature = 'ADDRESS BOOL BYTES BYTESM COMMA FIXED FIXEDMN FUNCTION INT INTN LBRAKET LPAREN NUMBER RBRAKET RPAREN STRING UFIXED UFIXEDMN UINT UINTN\n T : UINTN\n T : UINT\n T : INTN\n T : INT\n T : ADDRESS\n T : BOOL\n T : FIXEDMN\n T : UFIXEDMN\n T : FIXED\n T : UFIXED\n T : BYTESM\n T : FUNCTION\n T : BYTES\n T : STRING\n\n \n TL : T\n \n TL : T COMMA TL\n \n T : LPAREN TL RPAREN\n \n T : LPAREN RPAREN\n \n T : T LBRAKET RBRAKET\n \n T : T LBRAKET NUMBER RBRAKET\n ' + +_lr_action_items = {'UINTN':([0,16,24,],[2,2,2,]),'UINT':([0,16,24,],[3,3,3,]),'INTN':([0,16,24,],[4,4,4,]),'INT':([0,16,24,],[5,5,5,]),'ADDRESS':([0,16,24,],[6,6,6,]),'BOOL':([0,16,24,],[7,7,7,]),'FIXEDMN':([0,16,24,],[8,8,8,]),'UFIXEDMN':([0,16,24,],[9,9,9,]),'FIXED':([0,16,24,],[10,10,10,]),'UFIXED':([0,16,24,],[11,11,11,]),'BYTESM':([0,16,24,],[12,12,12,]),'FUNCTION':([0,16,24,],[13,13,13,]),'BYTES':([0,16,24,],[14,14,14,]),'STRING':([0,16,24,],[15,15,15,]),'LPAREN':([0,16,24,],[16,16,16,]),'$end':([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,19,21,23,25,],[0,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11,-12,-13,-14,-18,-19,-17,-20,]),'LBRAKET':([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,19,20,21,23,25,],[17,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11,-12,-13,-14,-18,17,-19,-17,-20,]),'COMMA':([2,3,4,5,6,7,8,9,10,11,12,13,14,15,19,20,21,23,25,],[-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11,-12,-13,-14,-18,24,-19,-17,-20,]),'RPAREN':([2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,20,21,23,25,26,],[-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11,-12,-13,-14,19,23,-18,-15,-19,-17,-20,-16,]),'RBRAKET':([17,22,],[21,25,]),'NUMBER':([17,],[22,]),} + +_lr_action = {} +for _k, _v in _lr_action_items.items(): + for _x,_y in zip(_v[0],_v[1]): + if not _x in _lr_action: _lr_action[_x] = {} + _lr_action[_x][_k] = _y +del _lr_action_items + +_lr_goto_items = {'T':([0,16,24,],[1,20,20,]),'TL':([16,24,],[18,26,]),} + +_lr_goto = {} +for _k, _v in _lr_goto_items.items(): + for _x, _y in zip(_v[0], _v[1]): + if not _x in _lr_goto: _lr_goto[_x] = {} + _lr_goto[_x][_k] = _y +del _lr_goto_items +_lr_productions = [ + ("S' -> T","S'",1,None,None,None), + ('T -> UINTN','T',1,'p_basic_type','abitypes.py',154), + ('T -> UINT','T',1,'p_basic_type','abitypes.py',155), + ('T -> INTN','T',1,'p_basic_type','abitypes.py',156), + ('T -> INT','T',1,'p_basic_type','abitypes.py',157), + ('T -> ADDRESS','T',1,'p_basic_type','abitypes.py',158), + ('T -> BOOL','T',1,'p_basic_type','abitypes.py',159), + ('T -> FIXEDMN','T',1,'p_basic_type','abitypes.py',160), + ('T -> UFIXEDMN','T',1,'p_basic_type','abitypes.py',161), + ('T -> FIXED','T',1,'p_basic_type','abitypes.py',162), + ('T -> UFIXED','T',1,'p_basic_type','abitypes.py',163), + ('T -> BYTESM','T',1,'p_basic_type','abitypes.py',164), + ('T -> FUNCTION','T',1,'p_basic_type','abitypes.py',165), + ('T -> BYTES','T',1,'p_basic_type','abitypes.py',166), + ('T -> STRING','T',1,'p_basic_type','abitypes.py',167), + ('TL -> T','TL',1,'p_type_list_one','abitypes.py',175), + ('TL -> T COMMA TL','TL',3,'p_type_list','abitypes.py',182), + ('T -> LPAREN TL RPAREN','T',3,'p_tuple','abitypes.py',189), + ('T -> LPAREN RPAREN','T',2,'p_tuple_empty','abitypes.py',196), + ('T -> T LBRAKET RBRAKET','T',3,'p_dynamic_type','abitypes.py',203), + ('T -> T LBRAKET NUMBER RBRAKET','T',4,'p_dynamic_fixed_type','abitypes.py',212), +] diff --git a/tox.ini b/tox.ini index 220ad6dee..4673e80d5 100644 --- a/tox.ini +++ b/tox.ini @@ -20,4 +20,4 @@ exclude = docs/,examples/,scripts/,tests/ [flake8] ignore = E265,E501,F403,F405,E266,E712,F841,E741,E722,E731 max-line-length = 160 -exclude = .tox,.*.egg,.git,docs/,examples/,scripts/,tests/,parsetab.py,iterpickle.py +exclude = .tox,.*.egg,.git,docs/,examples/,scripts/,tests/,iterpickle.py