from block import * from stmt import * basic_blocks = [ProgramBlock,PythonModuleBlock,ModuleBlock,BlockDataBlock, SubroutineBlock,FunctionBlock,InterfaceBlock,TypeBlock] stmt_blocks = [DoBlock,IfThenBlock,SelectBlock] Block.classes['free90'] = [ProgramBlock,ModuleBlock,BlockDataBlock, SubroutineBlock,FunctionBlock,InterfaceBlock,TypeBlock] + stmt_blocks Block.classes['fix90'] = Block.classes['free90'] Block.classes['fix77'] = [ProgramBlock,BlockDataBlock,SubroutineBlock,FunctionBlock] + stmt_blocks Block.classes['pyf'] = [PythonModuleBlock] + Block.classes['free90'] ProgramBlock.classes['free90'] = [ModuleBlock,SubroutineBlock,FunctionBlock,InterfaceBlock,TypeBlock] + stmt_blocks ProgramBlock.classes['fix90'] = ProgramBlock.classes['free90'] ProgramBlock.classes['fix77'] = [SubroutineBlock,FunctionBlock] + stmt_blocks ProgramBlock.classes['pyf'] = ProgramBlock.classes['free90'] ModuleBlock.classes['free90'] = [ModuleBlock,SubroutineBlock,FunctionBlock,InterfaceBlock,TypeBlock] ModuleBlock.classes['fix90'] = ModuleBlock.classes['free90'] ModuleBlock.classes['fix77'] = [] ModuleBlock.classes['pyf'] = ModuleBlock.classes['free90'] BlockDataBlock.classes['free90'] = [TypeBlock] BlockDataBlock.classes['fix90'] = BlockDataBlock.classes['free90'] BlockDataBlock.classes['fix77'] = [] BlockDataBlock.classes['pyf'] = BlockDataBlock.classes['free90'] PythonModuleBlock.classes['free90'] = [ModuleBlock,SubroutineBlock,FunctionBlock,InterfaceBlock,TypeBlock] PythonModuleBlock.classes['fix90'] = PythonModuleBlock.classes['free90'] PythonModuleBlock.classes['fix77'] = [] PythonModuleBlock.classes['pyf'] = PythonModuleBlock.classes['free90'] InterfaceBlock.classes['free90'] = [ModuleBlock,SubroutineBlock,FunctionBlock,InterfaceBlock,TypeBlock] + stmt_blocks InterfaceBlock.classes['fix90'] = InterfaceBlock.classes['free90'] InterfaceBlock.classes['fix77'] = [] InterfaceBlock.classes['pyf'] = InterfaceBlock.classes['free90'] SubroutineBlock.classes['free90'] = [InterfaceBlock,TypeBlock] + stmt_blocks SubroutineBlock.classes['fix90'] = SubroutineBlock.classes['free90'] SubroutineBlock.classes['fix77'] = stmt_blocks SubroutineBlock.classes['pyf'] = SubroutineBlock.classes['free90'] FunctionBlock.classes = SubroutineBlock.classes TypeBlock.classes['free90'] = [ModuleBlock, SubroutineBlock, FunctionBlock, InterfaceBlock, TypeBlock] + stmt_blocks TypeBlock.classes['fix90'] = TypeBlock.classes['free90'] TypeBlock.classes['fix77'] = [] TypeBlock.classes['pyf'] = TypeBlock.classes['free90'] StatementBlock.classes['free90'] = stmt_blocks StatementBlock.classes['fix90'] = StatementBlock.classes['free90'] StatementBlock.classes['fix77'] = stmt_blocks StatementBlock.classes['pyf'] = StatementBlock.classes['free90'] # Initialize stmt_cls attributes ProgramBlock.stmt_cls = Program ModuleBlock.stmt_cls = Module PythonModuleBlock.stmt_cls = PythonModule BlockDataBlock.stmt_cls = BlockData InterfaceBlock.stmt_cls = Interface SubroutineBlock.stmt_cls = Subroutine FunctionBlock.stmt_cls = Function TypeBlock.stmt_cls = Type IfThenBlock.stmt_cls = IfThen DoBlock.stmt_cls = Do SelectBlock.stmt_cls = Select ProgramBlock.end_stmt_cls = EndProgram ModuleBlock.end_stmt_cls = EndModule PythonModuleBlock.end_stmt_cls = EndPythonModule BlockDataBlock.end_stmt_cls = EndBlockData InterfaceBlock.end_stmt_cls = EndInterface SubroutineBlock.end_stmt_cls = EndSubroutine FunctionBlock.end_stmt_cls = EndFunction TypeBlock.end_stmt_cls = EndType IfThenBlock.end_stmt_cls = EndIfThen DoBlock.end_stmt_cls = EndDo SelectBlock.end_stmt_cls = EndSelect