Skip to content

Commit 7a4dc58

Browse files
committed
Fix Cpp test.
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@24687 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
1 parent b366981 commit 7a4dc58

File tree

1 file changed

+90
-32
lines changed

1 file changed

+90
-32
lines changed

Compiler/Template/CodegenCpp.tpl

Lines changed: 90 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -6195,12 +6195,47 @@ case MODELINFO(vars=SIMVARS(__)) then
61956195
;separator=","%><%if vars.stringAliasVars then "," else "" %>
61966196
>>
61976197
end InitAlgloopParams;
6198+
6199+
// template MemberVariableDefine(String type,SimVar simVar, String arrayName, Boolean useFlatArrayNotation)
6200+
// ::=
6201+
// match simVar
6202+
6203+
// case SIMVAR(numArrayElement={},arrayCref=NONE(),name=CREF_IDENT(subscriptLst=_::_)) then ''
6204+
6205+
// case SIMVAR(numArrayElement={},arrayCref=NONE()) then
6206+
// <<
6207+
// <%type%> <%cref(name,useFlatArrayNotation)%>;
6208+
// >>
6209+
// case v as SIMVAR(name=name, type_ = T_ARRAY(__), arrayCref=SOME(_),numArrayElement=num) then
6210+
// let &dims = buffer "" /*BUFD*/
6211+
// let arrayName = arraycref2(name,dims)
6212+
// let arraysize = arrayextentDims(name,v.numArrayElement)
6213+
// let test = v.numArrayElement |> index => '<%index%>'; separator=","
6214+
// <<
6215+
// StatArrayDim<%dims%><<%variableType(type_)%>, <%arraysize%> > <%arrayName%> /*testarray3 <%test%> */;
6216+
// >>
6217+
6218+
// case v as SIMVAR(name=CREF_QUAL(__),arrayCref=SOME(_),numArrayElement=num) then
6219+
// <<
6220+
// <%type%> <%cref(name,useFlatArrayNotation)%>;
6221+
// >>
6222+
// case SIMVAR(numArrayElement=_::_) then
6223+
// let& dims = buffer "" /*BUFD*/
6224+
// let varName = arraycref2(name,dims)
6225+
// let varType = variableType(type_)
6226+
// match dims
6227+
// case "0" then '<%varType%> <%varName%>;'
6228+
// else ''
6229+
// end MemberVariableDefine;
61986230

61996231
template MemberVariableDefine(String type,SimVar simVar, String arrayName, Boolean useFlatArrayNotation)
62006232
::=
62016233
match simVar
62026234

6203-
case SIMVAR(numArrayElement={},arrayCref=NONE(),name=CREF_IDENT(subscriptLst=_::_)) then ''
6235+
case SIMVAR(numArrayElement={},arrayCref=NONE(),name=CREF_IDENT(subscriptLst=_::_)) then
6236+
<<
6237+
/*<%type%> <%cref(name,useFlatArrayNotation)%>;*/
6238+
>>
62046239

62056240
case SIMVAR(numArrayElement={},arrayCref=NONE()) then
62066241
<<
@@ -6210,29 +6245,47 @@ match simVar
62106245
then
62116246
let &dims = buffer "" /*BUFD*/
62126247
let arrayName = arraycref2(name,dims)
6213-
let arraysize = arrayextentDims(name,v.numArrayElement)
6214-
<<
6215-
StatArrayDim<%dims%><<%variableType(type_)%>, <%arraysize%> > <%arrayName%>;
6216-
>>
6248+
let arraysize = arrayextentDims(name,v.numArrayElement)
6249+
let test = v.numArrayElement |> index => '<%index%>'; separator=","
6250+
let varType = variableType(type_)
6251+
6252+
match dims
6253+
case "0" then
6254+
<<
6255+
<%varType%> <%arrayName%>; /*testarray1 <%test%> */;
6256+
>>
6257+
else
6258+
<<
6259+
StatArrayDim<%dims%><<%varType%>, <%arraysize%> > <%arrayName%>; /*testarray2 <%test%> */;
6260+
>>
62176261
case v as SIMVAR(name=CREF_QUAL(__),arrayCref=SOME(_),numArrayElement=num) then
62186262
let &dims = buffer "" /*BUFD*/
62196263
let arrayName = arraycref2(name,dims)
6220-
let arraysize = arrayextentDims(name,v.numArrayElement)
6221-
/*previous multiarray
6222-
<<
6223-
multi_array<<%variableType(type_)%>,<%dims%>> <%arrayName%>;
6224-
>>*/
6225-
//
6226-
let test = v.numArrayElement |> index => '<%index%>'; separator=","
6264+
let arraysize = arrayextentDims(name,v.numArrayElement)
6265+
let varType = variableType(type_)
6266+
6267+
/*previous multiarray
62276268
<<
6228-
StatArrayDim<%dims%><<%variableType(type_)%>, <%arraysize%> > <%arrayName%> /*testarray3 <%test%> */;
6229-
>>
6269+
multi_array<<%variableType(type_)%>,<%dims%>> <%arrayName%>;
6270+
>>*/
6271+
//
6272+
let test = v.numArrayElement |> index => '<%index%>'; separator=","
6273+
match dims
6274+
case "0" then
6275+
<<
6276+
<%varType%> <%arrayName%>; /*testarray3 <%test%> */;
6277+
>>
6278+
else
6279+
<<
6280+
StatArrayDim<%dims%><<%varType%>, <%arraysize%> > <%arrayName%> /*testarray4 <%test%> */;
6281+
>>
62306282
case SIMVAR(numArrayElement=_::_) then
6283+
let test = numArrayElement |> index => '<%index%>'; separator=","
62316284
let& dims = buffer "" /*BUFD*/
62326285
let varName = arraycref2(name,dims)
62336286
let varType = variableType(type_)
62346287
match dims
6235-
case "0" then '<%varType%> <%varName%>;'
6288+
case "0" then '/*this*/<%varType%> <%varName%>; /*testscalar <%test%> */;'
62366289
else ''
62376290
end MemberVariableDefine;
62386291

@@ -6283,26 +6336,31 @@ match simVar
62836336
then
62846337
let &dims = buffer "" /*BUFD*/
62856338
let arrayName = arraycref2(name,dims)
6286-
let typeString = variableType(type_)
6287-
let arraysize = arrayextentDims(name,v.numArrayElement)
6288-
<<
6289-
StatArrayDim<%dims%><<%typeString%>,<%arraysize%>> <%arrayName%>/*testarray2*/;
6290-
>>
6339+
let typeString = variableType(type_)
6340+
let arraysize = arrayextentDims(name,v.numArrayElement)
6341+
match dims
6342+
case "0" then
6343+
<<
6344+
<%typeString%> <%arrayName%>; /*testarray1*/;
6345+
>>
6346+
else
6347+
<<
6348+
StatArrayDim<%dims%><<%typeString%>,<%arraysize%>> <%arrayName%>/*testarray2*/;
6349+
>>
62916350
case v as SIMVAR(name=CREF_QUAL(__),arrayCref=SOME(_),numArrayElement=num) then
62926351
let &dims = buffer "" /*BUFD*/
62936352
let arrayName = arraycref2(name,dims)
6294-
6295-
//ComponentRef cr, Text& dims
6296-
let array_dimensions = arrayextentDims(name, v.numArrayElement)
6297-
//numArrayElement
6298-
6299-
/*previous multi_array<<
6300-
multi_array<<%variableType(type_)%>,<%dims%>> <%arrayName%>;
6301-
>>
6302-
*/
6303-
<<
6304-
StatArrayDim<%dims%><<%variableType(type_)%>, <%array_dimensions%>> <%arrayName%> /*testarray*/;
6305-
>>
6353+
let typeString = variableType(type_)
6354+
let array_dimensions = arrayextentDims(name, v.numArrayElement)
6355+
match dims
6356+
case "0" then
6357+
<<
6358+
<%typeString%> <%arrayName%>; /*testarray3*/;
6359+
>>
6360+
else
6361+
<<
6362+
StatArrayDim<%dims%><<%typeString%>, <%array_dimensions%>> <%arrayName%> /*testarray4*/;
6363+
>>
63066364
/*special case for varibales that marked as array but are not arrays */
63076365
case SIMVAR(numArrayElement=_::_) then
63086366
let& dims = buffer "" /*BUFD*/

0 commit comments

Comments
 (0)