6.1.1.2.1.2.1.6. pycropml.transpiler.generators.cppGenerator module

class pycropml.transpiler.generators.cppGenerator.CppCompo(tree=None, modelt=None, name=None)[source]

Bases: CppTrans

This class generate the C++ composite class.

assignParam()[source]
constrWrap()[source]
copyconstrWrap()[source]
copyconstructor(node)[source]
estimateWrap()[source]
format()[source]
getRealInputs()[source]
get_mo(varname)[source]
getter(m, node)[source]
initCompo()[source]
initWrap()[source]
loadParamWrap()[source]
outputWrap()[source]
privateWrap()[source]
setter(m, node)[source]
tranAssignParam()[source]
visit_assignment(node)[source]
visit_declaration(node)[source]
visit_function_definition(node)[source]
visit_local(node)[source]
visit_module(node)[source]
visit_return(node)[source]
wrapper()[source]
class pycropml.transpiler.generators.cppGenerator.CppGenerator(tree, model=None, name=None)[source]

Bases: CodeGenerator, CppRules

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

add_features(node)[source]
array_parameter(params)[source]
getter(m, node)[source]
static internal_declaration(node)[source]

create a list of all the internal declaration nodes for a given function node

static retrieve_params(node)[source]
setter(m, node)[source]
templateArr(node)[source]
transform_return(node)[source]
visit_ExprStatNode(node)[source]
visit_array(node)[source]
visit_array_decl(node, pa=None)[source]
if pa:

v =self.array_parameter([pa])[0] if pa.name in v: size = v[pa.name] else: size = pa.elts[0].value

if not isinstance(node[1], list):
if pa:

self.write(“%s>(%s)”%(self.types[node[1]],size))

self.write(‘%s> ‘%self.types[node[1]])

else:

visit_assignment(node)[source]
visit_binary_op(node)[source]
visit_bool(node)[source]
visit_bool_decl(node, pa=None)[source]
visit_breakstatnode(node)[source]
visit_call(node)[source]
visit_comparison(node)[source]
visit_cond_expr_node(node)[source]
visit_constant(node)[source]
visit_continuestatnode(node)[source]
visit_custom_call(node)[source]

TODO

visit_datetime(node)[source]
visit_datetime_decl(node)[source]
visit_decl(node, pa=None)[source]
visit_declaration(node)[source]
visit_dict(node)[source]
visit_dict_decl(node)[source]
visit_double(node)[source]
visit_else_statement(node)[source]
visit_elseif_statement(node)[source]
visit_float(node)[source]
visit_float_decl(node, pa=None)[source]
visit_for_iterator(node)[source]
visit_for_iterator_with_index(node)[source]
visit_for_range_statement(node)[source]
visit_for_sequence_with_index(node)[source]

TODO

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]
visit_index(node)[source]
visit_int_decl(node, pa=None)[source]
visit_list(node)[source]
visit_list_decl(node, pa=None)[source]
visit_method_call(node)[source]
visit_module(node)[source]
visit_none(node)[source]
visit_notAnumber(node)[source]
visit_pair(node)[source]
visit_print(node)[source]
visit_return(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, pa=None)[source]
visit_tuple(node)[source]
visit_tuple_decl(node)[source]
visit_unary_op(node)[source]
visit_while_statement(node)[source]
class pycropml.transpiler.generators.cppGenerator.CppTrans(models, tree=None)[source]

Bases: CppGenerator

This class used to generates states, rates, auxiliary, exogenous classes for C++ languages.

DATATYPE = {'BOOLEAN': 'bool', 'DATE': 'str', 'DATEARRAY': ['array', 'str'], 'DATELIST': ['list', 'str'], 'DOUBLE': 'float', 'DOUBLEARRAY': ['array', 'float'], 'DOUBLELIST': ['list', 'float'], 'INT': 'int', 'INTARRAY': ['array', 'int'], 'INTLIST': ['list', 'int'], 'STRING': 'str', 'STRINGARRAY': ['array', 'str'], 'STRINGLIST': ['list', 'str']}
copyconstructor(node)[source]
generate(nodes, typ)[source]
generate_hpp(node, typ, dc=False, mc=None, h=None, init=False, iscompo=False, ns=None)[source]
getRealInputs()[source]
getset(node, wrap=False)[source]
instanceModels()[source]
model2Node()[source]
private(node)[source]
private_hpp(node, iscompo=False)[source]
public_hpp(node, typ, mc=None, h=None, init=False, iscompo=False)[source]
pycropml.transpiler.generators.cppGenerator.get_key(my_dict, val)[source]
pycropml.transpiler.generators.cppGenerator.headerCompo(models, rep, name)[source]

Header file of model composite

pycropml.transpiler.generators.cppGenerator.header_cpp(models, rep, name)[source]
pycropml.transpiler.generators.cppGenerator.header_mu_cpp(models, rep, name)[source]
pycropml.transpiler.generators.cppGenerator.header_mu_cpp2(model, rep, name)[source]
pycropml.transpiler.generators.cppGenerator.to_struct_cpp(models, rep, name)[source]
pycropml.transpiler.generators.cppGenerator.to_wrapper_cpp(models, rep, name)[source]