Skip to content

Commit aa8e80b

Browse files
committed
Flat modelica output improvements.
- Don't quote time. - Handle builtin call names correctly.
1 parent 4737bf6 commit aa8e80b

File tree

3 files changed

+13
-12
lines changed

3 files changed

+13
-12
lines changed

OMCompiler/Compiler/NFFrontEnd/NFCall.mo

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -578,7 +578,7 @@ public
578578

579579
case UNTYPED_ARRAY_CONSTRUCTOR()
580580
algorithm
581-
name := AbsynUtil.pathString(Function.name(NFBuiltinFuncs.ARRAY_FUNC));
581+
name := AbsynUtil.pathString(Function.nameConsiderBuiltin(NFBuiltinFuncs.ARRAY_FUNC));
582582
arg_str := Expression.toString(call.exp);
583583
c := stringDelimitList(list(InstNode.name(Util.tuple21(iter)) + " in " +
584584
Expression.toString(Util.tuple22(iter)) for iter in call.iters), ", ");
@@ -596,14 +596,14 @@ public
596596

597597
case TYPED_CALL()
598598
algorithm
599-
name := AbsynUtil.pathString(Function.name(call.fn));
599+
name := AbsynUtil.pathString(Function.nameConsiderBuiltin(call.fn));
600600
arg_str := stringDelimitList(list(Expression.toString(arg) for arg in call.arguments), ", ");
601601
then
602602
name + "(" + arg_str + ")";
603603

604604
case TYPED_ARRAY_CONSTRUCTOR()
605605
algorithm
606-
name := AbsynUtil.pathString(Function.name(NFBuiltinFuncs.ARRAY_FUNC));
606+
name := AbsynUtil.pathString(Function.nameConsiderBuiltin(NFBuiltinFuncs.ARRAY_FUNC));
607607
arg_str := Expression.toString(call.exp);
608608
c := stringDelimitList(list(InstNode.name(Util.tuple21(iter)) + " in " +
609609
Expression.toString(Util.tuple22(iter)) for iter in call.iters), ", ");
@@ -612,7 +612,7 @@ public
612612

613613
case TYPED_REDUCTION()
614614
algorithm
615-
name := AbsynUtil.pathString(Function.name(call.fn));
615+
name := AbsynUtil.pathString(Function.nameConsiderBuiltin(call.fn));
616616
arg_str := Expression.toString(call.exp);
617617
c := stringDelimitList(list(InstNode.name(Util.tuple21(iter)) + " in " +
618618
Expression.toString(Util.tuple22(iter)) for iter in call.iters), ", ");
@@ -633,7 +633,7 @@ public
633633
str := match call
634634
case TYPED_CALL()
635635
algorithm
636-
name := AbsynUtil.pathString(Function.name(call.fn));
636+
name := AbsynUtil.pathString(Function.nameConsiderBuiltin(call.fn));
637637
arg_str := stringDelimitList(list(Expression.toFlatString(arg) for arg in call.arguments), ", ");
638638
then
639639
if Function.isBuiltin(call.fn) then
@@ -649,7 +649,7 @@ public
649649
// calls are reverted to their original form here.
650650
str := toFlatString(devectorizeCall(call));
651651
else
652-
name := AbsynUtil.pathString(Function.name(NFBuiltinFuncs.ARRAY_FUNC));
652+
name := AbsynUtil.pathString(Function.nameConsiderBuiltin(NFBuiltinFuncs.ARRAY_FUNC));
653653
arg_str := Expression.toFlatString(call.exp);
654654
c := stringDelimitList(list(InstNode.name(Util.tuple21(iter)) + " in " +
655655
Expression.toFlatString(Util.tuple22(iter)) for iter in call.iters), ", ");
@@ -660,7 +660,7 @@ public
660660

661661
case TYPED_REDUCTION()
662662
algorithm
663-
name := AbsynUtil.pathString(Function.name(call.fn));
663+
name := AbsynUtil.pathString(Function.nameConsiderBuiltin(call.fn));
664664
arg_str := Expression.toFlatString(call.exp);
665665
c := stringDelimitList(list(InstNode.name(Util.tuple21(iter)) + " in " +
666666
Expression.toFlatString(Util.tuple22(iter)) for iter in call.iters), ", ");

OMCompiler/Compiler/NFFrontEnd/NFComponentRef.mo

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -695,7 +695,12 @@ public
695695
algorithm
696696
(cr, subs) := stripSubscripts(cref);
697697
strl := toFlatString_impl(cr, strl);
698-
str := stringAppendList({"'", stringDelimitList(strl, "."), "'", Subscript.toFlatStringList(subs)});
698+
699+
str := match listHead(strl)
700+
case "time" then "time";
701+
case "_" then "_";
702+
else stringAppendList({"'", stringDelimitList(strl, "."), "'", Subscript.toFlatStringList(subs)});
703+
end match;
699704
end toFlatString;
700705

701706
function toFlatString_impl

OMCompiler/Compiler/NFFrontEnd/NFInst.mo

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -175,10 +175,6 @@ algorithm
175175
// to the model.
176176
flatModel := Package.collectConstants(flatModel, functions);
177177

178-
//if Config.flatModelica() then
179-
// FlatModel.printFlatString(flatModel, FunctionTree.listValues(functions));
180-
//end if;
181-
182178
// Scalarize array components in the flat model.
183179
if Flags.isSet(Flags.NF_SCALARIZE) then
184180
flatModel := Scalarize.scalarize(flatModel);

0 commit comments

Comments
 (0)