Skip to content

Commit

Permalink
Remove separate memberVariableDefinePreVariables
Browse files Browse the repository at this point in the history
The function was misleading because the defined algebraic variables
go beyond pre variables.

Belonging to [master]:
  - OpenModelica/OMCompiler#2716
  • Loading branch information
rfranke authored and OpenModelica-Hudson committed Oct 11, 2018
1 parent dcd7c9e commit 2904807
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 74 deletions.
125 changes: 56 additions & 69 deletions Compiler/Template/CodegenCpp.tpl
Expand Up @@ -42,7 +42,6 @@ template translateModel(SimCode simCode)
stateDerVectorName, false), 'OMCpp<%fileNamePrefix%>.cpp')
let()= textFile(simulationHeaderFile(simCode , contextOther,&extraFuncs , &extraFuncsDecl, className, "", "", "",
memberVariableDefine(modelInfo, varToArrayIndexMapping, '<%numRealVars%> - 1', '<%numIntVars%> - 1', '<%numBoolVars%> - 1', '<%numStringVars%> - 1', Flags.isSet(Flags.GEN_DEBUG_SYMBOLS), false),
memberVariableDefinePreVariables(modelInfo, varToArrayIndexMapping, '<%numRealVars%> - 1', '<%numIntVars%> - 1', '<%numBoolVars%> - 1', '<%numStringVars%> - 1', Flags.isSet(Flags.GEN_DEBUG_SYMBOLS), false),
false), 'OMCpp<%fileNamePrefix%>.h')
let()= textFile(simulationTypesHeaderFile(simCode, &extraFuncs, &extraFuncsDecl, "", &dummyTypeElemCreation, modelInfo.functions, literals, stateDerVectorName, false), 'OMCpp<%fileNamePrefix%>Types.h')
let()= textFile(simulationMakefile(target,simCode , &extraFuncs , &extraFuncsDecl, "","","","","",false), '<%fileNamePrefix%>.makefile')
Expand Down Expand Up @@ -116,15 +115,15 @@ template translateFunctions(FunctionCode functionCode)
end translateFunctions;

template simulationHeaderFile(SimCode simCode ,Context context,Text& extraFuncs,Text& extraFuncsDecl,Text extraFuncsNamespace, String additionalIncludes,
String additionalPublicMembers, String additionalProtectedMembers, String memberVariableDefinitions, String memberPreVariableDefinitions, Boolean useFlatArrayNotation)
String additionalPublicMembers, String additionalProtectedMembers, String memberVariableDefinitions, Boolean useFlatArrayNotation)
"Generates code for header file for simulation target."
::=
match simCode
case SIMCODE(__) then
<<
<%generateHeaderIncludeString(simCode, &extraFuncs , &extraFuncsDecl, extraFuncsNamespace)%>
<%additionalIncludes%>
<%generateClassDeclarationCode(simCode ,context, &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, additionalPublicMembers, additionalProtectedMembers, memberVariableDefinitions, memberPreVariableDefinitions, useFlatArrayNotation)%>
<%generateClassDeclarationCode(simCode ,context, &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, additionalPublicMembers, additionalProtectedMembers, memberVariableDefinitions, useFlatArrayNotation)%>
>>
end simulationHeaderFile;

Expand Down Expand Up @@ -6852,7 +6851,7 @@ end generateAlgloopHeaderInlcudeString;

template generateClassDeclarationCode(SimCode simCode,Context context,Text& extraFuncs,Text& extraFuncsDecl,Text extraFuncsNamespace,
String additionalPublicMembers, String additionalProtectedMembers, String memberVariableDefinitions,
String memberPreVariableDefinitions, Boolean useFlatArrayNotation)
Boolean useFlatArrayNotation)
"Generates class declarations."
::=
match simCode
Expand Down Expand Up @@ -6948,7 +6947,6 @@ match modelInfo
int* _stateActivator;

<%memberVariableDefinitions%>
<%memberPreVariableDefinitions%>
<%conditionvariables%>
Functions* _functions;

Expand Down Expand Up @@ -7750,84 +7748,73 @@ template memberVariableDefine(ModelInfo modelInfo, HashTableCrIListArray.HashTab
::=
match modelInfo
case MODELINFO(vars=SIMVARS(__)) then
<<
/*state vars*/
<%vars.stateVars |> var =>
<<
/*state vars*/
<%vars.stateVars |> var =>
memberVariableDefine2(var, varToArrayIndexMapping, indexForUndefinedReferencesReal, useFlatArrayNotation, createDebugCode, "Real", true)
;separator="\n"%>
/*derivative vars*/
<%vars.derivativeVars |> var =>
;separator="\n"%>
/*derivative vars*/
<%vars.derivativeVars |> var =>
memberVariableDefine2(var, varToArrayIndexMapping, indexForUndefinedReferencesReal, useFlatArrayNotation, createDebugCode, "Real", true)
;separator="\n"%>
/*parameter real vars*/
<%vars.paramVars |> var =>
;separator="\n"%>
/*real algvars*/
<%vars.algVars |> var =>
memberVariableDefine2(var, varToArrayIndexMapping, indexForUndefinedReferencesReal, useFlatArrayNotation, createDebugCode, "Real", true)
;separator="\n"%>
/*parameter int vars*/
<%vars.intParamVars |> var =>
;separator="\n"%>
/*discrete algvars*/
<%vars.discreteAlgVars |> var =>
memberVariableDefine2(var, varToArrayIndexMapping, indexForUndefinedReferencesReal, useFlatArrayNotation, createDebugCode, "Real", true)
;separator="\n"%>
/*int algvars*/
<%vars.intAlgVars |> var =>
memberVariableDefine2(var, varToArrayIndexMapping, indexForUndefinedReferencesInt, useFlatArrayNotation, createDebugCode, "Int", true)
;separator="\n"%>
/*parameter bool vars*/
<%vars.boolParamVars |> var =>
;separator="\n"%>
/*bool algvars*/
<%vars.boolAlgVars |> var =>
memberVariableDefine2(var, varToArrayIndexMapping, indexForUndefinedReferencesBool, useFlatArrayNotation, createDebugCode, "Bool", true)
;separator="\n"%>
/*string parameter variables*/
<%vars.stringParamVars |> var =>
memberVariableDefine2(var, varToArrayIndexMapping, indexForUndefinedReferencesString, useFlatArrayNotation, createDebugCode, "String", true)
;separator="\n"%>
/*string alias variables*/
<%vars.stringAliasVars |> var =>
;separator="\n"%>
/*string algvars*/
<%vars.stringAlgVars |> var =>
memberVariableDefine2(var, varToArrayIndexMapping, indexForUndefinedReferencesString, useFlatArrayNotation, createDebugCode, "String", true)
;separator="\n"%>
/*external variables*/
<%vars.extObjVars |> var =>
memberVariableDefine2(var, varToArrayIndexMapping, indexForUndefinedReferencesReal, useFlatArrayNotation, createDebugCode, "Real", false)
;separator="\n"%>
/*alias real vars*/
<%vars.aliasVars |> var =>
;separator="\n"%>
/*parameter real vars*/
<%vars.paramVars |> var =>
memberVariableDefine2(var, varToArrayIndexMapping, indexForUndefinedReferencesReal, useFlatArrayNotation, createDebugCode, "Real", true)
;separator="\n"%>
/*alias int vars*/
<%vars.intAliasVars |> var =>
;separator="\n"%>
/*parameter int vars*/
<%vars.intParamVars |> var =>
memberVariableDefine2(var, varToArrayIndexMapping, indexForUndefinedReferencesInt, useFlatArrayNotation, createDebugCode, "Int", true)
;separator="\n"%>
/*alias bool vars*/
<%vars.boolAliasVars |> var =>
;separator="\n"%>
/*parameter bool vars*/
<%vars.boolParamVars |> var =>
memberVariableDefine2(var, varToArrayIndexMapping, indexForUndefinedReferencesBool, useFlatArrayNotation, createDebugCode, "Bool", true)
;separator="\n"%>
/*string algvars*/
<%vars.stringAlgVars |> var =>
;separator="\n"%>
/*string parameter variables*/
<%vars.stringParamVars |> var =>
memberVariableDefine2(var, varToArrayIndexMapping, indexForUndefinedReferencesString, useFlatArrayNotation, createDebugCode, "String", true)
;separator="\n"%>
>>
end memberVariableDefine;

template memberVariableDefinePreVariables(ModelInfo modelInfo, HashTableCrIListArray.HashTable varToArrayIndexMapping, Text indexForUndefinedReferencesReal, Text indexForUndefinedReferencesInt,
Text indexForUndefinedReferencesBool, Text indexForUndefinedReferencesString, Boolean createDebugCode, Boolean useFlatArrayNotation)
"Define membervariable in simulation file."
::=
match modelInfo
case MODELINFO(vars=SIMVARS(__)) then
<<
//Variables saved for pre, edge and change operator
/*real algvars*/
<%vars.algVars |> var =>
memberVariableDefine2(var, varToArrayIndexMapping, indexForUndefinedReferencesReal, useFlatArrayNotation, createDebugCode, "Real", true)
;separator="\n"%>
/*discrete algvars*/
<%vars.discreteAlgVars |> var =>
;separator="\n"%>
/*alias real vars*/
<%vars.aliasVars |> var =>
memberVariableDefine2(var, varToArrayIndexMapping, indexForUndefinedReferencesReal, useFlatArrayNotation, createDebugCode, "Real", true)
;separator="\n"%>
/*int algvars*/
<%vars.intAlgVars |> var =>
;separator="\n"%>
/*alias int vars*/
<%vars.intAliasVars |> var =>
memberVariableDefine2(var, varToArrayIndexMapping, indexForUndefinedReferencesInt, useFlatArrayNotation, createDebugCode, "Int", true)
;separator="\n"%>
/*bool algvars*/
<%vars.boolAlgVars |> var =>
;separator="\n"%>
/*alias bool vars*/
<%vars.boolAliasVars |> var =>
memberVariableDefine2(var, varToArrayIndexMapping, indexForUndefinedReferencesBool, useFlatArrayNotation, createDebugCode, "Bool", true)
;separator="\n"%>
;separator="\n"%>
/*string alias variables*/
<%vars.stringAliasVars |> var =>
memberVariableDefine2(var, varToArrayIndexMapping, indexForUndefinedReferencesString, useFlatArrayNotation, createDebugCode, "String", true)
;separator="\n"%>
/*external variables*/
<%vars.extObjVars |> var =>
memberVariableDefine2(var, varToArrayIndexMapping, indexForUndefinedReferencesReal, useFlatArrayNotation, createDebugCode, "Real", false)
;separator="\n"%>
>>
end memberVariableDefinePreVariables;
end memberVariableDefine;

template memberVariableInitialize(ModelInfo modelInfo, HashTableCrIListArray.HashTable varToArrayIndexMapping, Text indexForUndefinedReferencesReal, Text indexForUndefinedReferencesInt,
Text indexForUndefinedReferencesBool, Text indexForUndefinedReferencesString, Boolean createDebugCode, Boolean useFlatArrayNotation, Text& additionalConstructorVariables, Text& additionalFunctionDefinitions)
Expand Down
4 changes: 1 addition & 3 deletions Compiler/Template/CodegenCppHpcom.tpl
Expand Up @@ -53,9 +53,7 @@ template translateModel(SimCode simCode)
"",
additionalHpcomProtectedMemberDeclaration(simCode, &extraFuncs, &extraFuncsDecl, "", false),
memberVariableDefine(modelInfo, varToArrayIndexMapping, '<%numRealVars%>-1', '<%numIntVars%>-1', '<%numBoolVars%>-1', '<%numStringVars%>-1', Flags.isSet(Flags.GEN_DEBUG_SYMBOLS), false),
memberVariableDefinePreVariables(modelInfo, varToArrayIndexMapping, '<%numRealVars%>-1', '<%numIntVars%>-1', '<%numBoolVars%>-1', '<%numStringVars%>-1', Flags.isSet(Flags.GEN_DEBUG_SYMBOLS), false), false),
//CodegenCpp.MemberVariablePreVariables(modelInfo,false), false),
'OMCpp<%fileNamePrefix%>.h')
false), 'OMCpp<%fileNamePrefix%>.h')

let() = textFile(simulationTypesHeaderFile(simCode, &extraFuncs, &extraFuncsDecl, "", &dummyTypeElemCreation, modelInfo.functions, literals,stateDerVectorName,false), 'OMCpp<%fileNamePrefix%>Types.h')
let() = textFile(simulationMakefile(target,simCode, &extraFuncs, &extraFuncsDecl, ""), '<%fileNamePrefix%>.makefile')
Expand Down
3 changes: 1 addition & 2 deletions Compiler/Template/CodegenFMUCppHpcom.tpl
Expand Up @@ -98,8 +98,7 @@ template translateModel(SimCode simCode, String FMUVersion, String FMUType)
"",
additionalHpcomProtectedMemberDeclaration(simCode, &extraFuncs, &extraFuncsDecl, "", false),
CodegenCpp.memberVariableDefine(modelInfo, varToArrayIndexMapping, '<%numRealVars%>-1', '<%numIntVars%>-1', '<%numBoolVars%>-1', '<%numStringVars%>-1', Flags.isSet(Flags.GEN_DEBUG_SYMBOLS), false),
CodegenCpp.memberVariableDefinePreVariables(modelInfo, varToArrayIndexMapping, '<%numRealVars%>-1', '<%numIntVars%>-1', '<%numBoolVars%>-1', '<%numStringVars%>-1', Flags.isSet(Flags.GEN_DEBUG_SYMBOLS), false), false),
'OMCpp<%fileNamePrefix%>.h')
false), 'OMCpp<%fileNamePrefix%>.h')
""
// empty result of the top-level template .., only side effects
end match
Expand Down

0 comments on commit 2904807

Please sign in to comment.