diff options
Diffstat (limited to 'numpy/f2py/lib/init.py')
-rw-r--r-- | numpy/f2py/lib/init.py | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/numpy/f2py/lib/init.py b/numpy/f2py/lib/init.py new file mode 100644 index 000000000..a803a9580 --- /dev/null +++ b/numpy/f2py/lib/init.py @@ -0,0 +1,85 @@ + +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 |