6.1.1.2.1.2.1.5. pycropml.transpiler.generators.cpp2Generator module

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

Bases: Cpp2Trans

This class generate the C++ composite class.

assign_param()[source]
constr_wrap()[source]
copy_constructor(node)[source]
copyconstructor_wrap()[source]
estimate_wrap()[source]
format()[source]
get_composite_inputs()[source]
get_mo(varname)[source]
getter(m, node)[source]
init_composite()[source]
init_wrap()[source]
load_param_wrap()[source]
output_wrap()[source]
private_wrap()[source]
setter(m, node)[source]
struct_name_for(arg_name)[source]
tran_assign_param()[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.cpp2Generator.Cpp2Generator(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_assignments(node)[source]

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

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]
struct_name_for(arg_name)[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_local(node)[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.cpp2Generator.Cpp2Trans(models, tree=None)[source]

Bases: Cpp2Generator

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']}
copy_constructor(node)[source]
create_members(node, is_composite=False)[source]
create_public_methods_hpp(node, typ, mc=None, h=None, init=False, iscompo=False, is_param_struct=False)[source]
generate(nodes, typ)[source]
generate_hpp(node, typ, dc=False, mc=None, h=None, init=False, is_composite=False, ns=None, is_param_struct=False)[source]
get_composite_inputs()[source]
getset(node, wrap=False)[source]
instance_models()[source]
model_to_node()[source]
private(node)[source]
pycropml.transpiler.generators.cpp2Generator.get_key(my_dict, val)[source]
pycropml.transpiler.generators.cpp2Generator.header_composite(models, rep, name)[source]

Header file of model composite

pycropml.transpiler.generators.cpp2Generator.header_cpp(models, rep, name)[source]
pycropml.transpiler.generators.cpp2Generator.header_mu_cpp(models, rep, name)[source]
pycropml.transpiler.generators.cpp2Generator.to_struct_cpp2(models, rep, name)[source]
pycropml.transpiler.generators.cpp2Generator.to_wrapper_cpp(models, rep, name)[source]