summaryrefslogtreecommitdiff
path: root/numpy/f2py/lib/init.py
diff options
context:
space:
mode:
Diffstat (limited to 'numpy/f2py/lib/init.py')
-rw-r--r--numpy/f2py/lib/init.py85
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