@@ -47,57 +47,60 @@ encapsulated package Interactive
4747 - Modelica models in SCode form (to speed up instantiation. not impl. yet)"
4848
4949//public imports
50- public import Absyn;
51- public import ConnectionGraph;
52- public import DAE;
53- public import FCore;
54- public import Global;
55- public import GlobalScript;
56- public import SCode;
57- public import SCodeUtil;
58- public import Settings;
59- public import Values;
50+ import Absyn;
51+ import ConnectionGraph;
52+ import DAE;
53+ import FCore;
54+ import Global;
55+ import GlobalScript;
56+ import SCode;
57+ import SCodeUtil;
58+ import Settings;
59+ import Values;
6060
6161// protected imports
62- protected import Ceval;
63- protected import CevalScript;
64- protected import ClassInf;
65- protected import ClockIndexes;
66- protected import Config;
67- protected import Connect;
68- protected import Constants;
69- protected import DAEUtil;
70- protected import Debug;
71- protected import Dump;
72- protected import Error;
73- protected import ErrorExt;
74- protected import ExpressionDump;
75- protected import ExpressionSimplify;
76- protected import FBuiltin;
77- protected import Flags;
78- protected import FGraph;
79- protected import GlobalScriptDump;
80- protected import GlobalScriptUtil;
81- protected import InnerOuter;
82- protected import Inst;
83- protected import InstUtil;
84- protected import InstTypes;
85- protected import List;
86- protected import Lookup;
87- protected import MetaUtil;
88- protected import Mod;
89- protected import Parser;
90- protected import Prefix;
91- protected import Print;
92- protected import Refactor;
93- protected import Static;
94- protected import StaticScript;
95- protected import StringUtil;
96- protected import System;
97- protected import Types;
98- protected import UnitAbsyn;
99- protected import Util;
100- protected import ValuesUtil;
62+ protected
63+
64+ import Ceval;
65+ import CevalScript;
66+ import ClassInf;
67+ import ClockIndexes;
68+ import Config;
69+ import Connect;
70+ import Constants;
71+ import DAEUtil;
72+ import Debug;
73+ import DoubleEndedList;
74+ import Dump;
75+ import Error;
76+ import ErrorExt;
77+ import ExpressionDump;
78+ import ExpressionSimplify;
79+ import FBuiltin;
80+ import Flags;
81+ import FGraph;
82+ import GlobalScriptDump;
83+ import GlobalScriptUtil;
84+ import InnerOuter;
85+ import Inst;
86+ import InstUtil;
87+ import InstTypes;
88+ import List;
89+ import Lookup;
90+ import MetaUtil;
91+ import Mod;
92+ import Parser;
93+ import Prefix;
94+ import Print;
95+ import Refactor;
96+ import Static;
97+ import StaticScript;
98+ import StringUtil;
99+ import System;
100+ import Types;
101+ import UnitAbsyn;
102+ import Util;
103+ import ValuesUtil;
101104import MetaModelica.Dangerous;
102105
103106protected uniontype AnnotationType
@@ -12022,9 +12025,12 @@ public function getClassnamesInElts
1202212025 input list<Absyn.ElementItem> inAbsynElementItemLst;
1202312026 input Boolean includeConstants;
1202412027 output list<String> outStringLst;
12028+ protected
12029+ DoubleEndedList<String> delst;
1202512030algorithm
12026- outStringLst:=
12027- matchcontinue (inAbsynElementItemLst,includeConstants)
12031+ delst := DoubleEndedList.fromList({});
12032+ for elt in inAbsynElementItemLst loop
12033+ _ := match elt
1202812034 local
1202912035 list<String> res;
1203012036 String id;
@@ -12033,36 +12039,28 @@ algorithm
1203312039 list<Absyn.ComponentItem> lst;
1203412040 list<String> names;
1203512041
12036- case ({},_) then {};
12037-
12038- case ((Absyn.ELEMENTITEM(element = Absyn.ELEMENT(specification = Absyn.CLASSDEF(class_ =
12039- Absyn.CLASS(body = Absyn.CLASS_EXTENDS(baseClassName = id))))) :: rest),c)
12040- equation
12041- res = getClassnamesInElts(rest,c);
12042- then
12043- (id :: res);
12042+ case Absyn.ELEMENTITEM(element = Absyn.ELEMENT(specification = Absyn.CLASSDEF(class_ =
12043+ Absyn.CLASS(body = Absyn.CLASS_EXTENDS(baseClassName = id)))))
12044+ algorithm
12045+ DoubleEndedList.push_back(delst, id);
12046+ then ();
1204412047
12045- case ((Absyn.ELEMENTITEM(element = Absyn.ELEMENT(specification = Absyn.CLASSDEF(class_ =
12046- Absyn.CLASS(name = id)))) :: rest),c)
12047- equation
12048- res = getClassnamesInElts(rest,c);
12049- then
12050- (id :: res);
12048+ case Absyn.ELEMENTITEM(element = Absyn.ELEMENT(specification = Absyn.CLASSDEF(class_ =
12049+ Absyn.CLASS(name = id))))
12050+ algorithm
12051+ DoubleEndedList.push_back(delst, id);
12052+ then ();
1205112053
12052- case ((Absyn.ELEMENTITEM(element = Absyn.ELEMENT(specification = Absyn.COMPONENTS(attributes = Absyn.ATTR(variability = Absyn.CONST()),
12053- components = lst))) :: rest),true)
12054- equation
12055- names = getComponentItemsName(lst,false);
12056- res = getClassnamesInElts(rest,true);
12057- then
12058- listAppend(names, res);
12054+ case Absyn.ELEMENTITEM(element = Absyn.ELEMENT(specification = Absyn.COMPONENTS(attributes = Absyn.ATTR(variability = Absyn.CONST()),
12055+ components = lst))) guard includeConstants
12056+ algorithm
12057+ DoubleEndedList.push_list_back(delst, getComponentItemsName(lst,false));
12058+ then ();
1205912059
12060- case ((_ :: rest),c)
12061- equation
12062- res = getClassnamesInElts(rest,c);
12063- then
12064- res;
12065- end matchcontinue;
12060+ else ();
12061+ end match;
12062+ end for;
12063+ outStringLst := DoubleEndedList.toListAndClear(delst);
1206612064end getClassnamesInElts;
1206712065
1206812066protected function getBaseClasses
0 commit comments