5.1.1.2.1.1.1.4. pycropml.transpiler.generators.fortranGenerator module

class pycropml.transpiler.generators.fortranGenerator.FortranCompo(tree=None, model=None, name=None)[source]

Bases: pycropml.transpiler.generators.fortranGenerator.FortranGenerator

This class used to generates states, rates and auxiliary classes for Fortran90 language.

visit_importfrom(node)[source]

self.newline(node) self.write(‘Use ‘) for idx, item in enumerate(node.name):

if idx:
self.write(‘, ‘)

self.write(“%smod”%item.split(“model_”)[1].capitalize())

class pycropml.transpiler.generators.fortranGenerator.FortranGenerator(tree, model=None, name=None)[source]

Bases: pycropml.transpiler.codeGenerator.CodeGenerator, pycropml.transpiler.rules.fortranRules.FortranRules

This class contains the specific properties of fortran language and use the NodeVisitor to generate a fortran code source from a well formed syntax tree.

add_features(node)[source]
binop_precedence = {'!=': 4, '%': 11, '&': 7, '*': 11, '**': 12, '+': 9, '-': 9, '/': 11, '//': 11, '<': 4, '<<': 8, '<=': 4, '==': 4, '>': 4, '>=': 4, '>>': 8, '@': 11, '^': 6, 'and': 2, 'in': 4, 'is': 4, 'is_not': 4, 'not_in': 4, 'or': 1, '|': 5}
body(statements)[source]
checkIndex(node)[source]
doc = None

# get constant parameters in models if inp.inputtype==”parameter”:

#print(inp.name, model.name) if inp.parametercategory==”constant”:

self.mod_parameters.append(inp.name)
Type:for inp in self.model.inputs
internal_declaration(node)[source]
part_declaration(node)[source]
retrieve_params(node)[source]
transform_return(node)[source]
unop_precedence = {'!': 3, '+': 10, '-': 10, 'not': 3, '~': 10}
visit_ExprStatNode(node)[source]
visit_array_decl(node)[source]
visit_assignment(node)[source]
visit_binary_op(node)[source]
visit_bool(node)[source]
visit_bool_decl(node)[source]
visit_breakstatnode(node)[source]
visit_call(node)[source]
visit_comparison(node)[source]
visit_cond_expr_node(node)[source]
visit_continuestatnode(node)[source]
visit_custom_call(node)[source]
visit_datetime(node)[source]
visit_datetime_decl(node)[source]
visit_decl(nodeT)[source]
visit_declaration(node)[source]
visit_else_statement(node)[source]
visit_elseif_statement(node)[source]
visit_float(node)[source]
visit_float_decl(node)[source]
visit_for_iterator(node)[source]
visit_for_iterator_with_index(node)[source]
visit_for_range_statement(node)[source]
visit_for_sequence(node)[source]
visit_for_statement(node)[source]
visit_function_definition(node)[source]
visit_if_statement(node)[source]
visit_implicit_return(node)[source]
visit_import(node)[source]
visit_importfrom(node)[source]

self.newline(node) self.write(‘from %s import ‘ % (node.namespace)) for idx, item in enumerate(node.name):

if idx:
self.write(‘, ‘)

self.write(item)

visit_index(node)[source]
visit_int(node)[source]
visit_int_decl(node)[source]
visit_list(node)[source]
visit_list_decl(node)[source]
visit_method_call(node)[source]
visit_module(node)[source]
visit_notAnumber(node)[source]
visit_pair(node)[source]
visit_sliceindex(node)[source]
visit_standard_call(node)[source]
visit_standard_method_call(node)[source]
visit_str(node)[source]
visit_str_decl(node)[source]
visit_subroutine(node)[source]
visit_tab(node)[source]
visit_unary_op(node)[source]
visit_while_statement(node)[source]
pycropml.transpiler.generators.fortranGenerator.checkList(list1, list2)[source]
pycropml.transpiler.generators.fortranGenerator.valParam(model, name)[source]