@@ -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
61996231template MemberVariableDefine(String type,SimVar simVar, String arrayName, Boolean useFlatArrayNotation)
62006232::=
62016233match 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 ''
62376290end 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