Skip to content

Commit

Permalink
- Instantiation/typing of functions for SCodeInst.
Browse files Browse the repository at this point in the history
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@11948 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
perost committed May 29, 2012
1 parent 5c26799 commit 7302fe4
Show file tree
Hide file tree
Showing 11 changed files with 469 additions and 73 deletions.
8 changes: 8 additions & 0 deletions Compiler/FrontEnd/InstTypes.mo
Expand Up @@ -275,4 +275,12 @@ public uniontype Equation
end NORETCALL_EQUATION;
end Equation;

public uniontype FunctionSlot
record SLOT
String name;
Option<DAE.Exp> arg;
Option<DAE.Exp> defaultValue;
end SLOT;
end FunctionSlot;

end InstTypes;
15 changes: 15 additions & 0 deletions Compiler/FrontEnd/InstUtil.mo
Expand Up @@ -462,6 +462,21 @@ algorithm
end match;
end getBindingExp;

public function getBindingExpOpt
input Binding inBinding;
output Option<DAE.Exp> outExp;
algorithm
outExp := match(inBinding)
local
DAE.Exp exp;

case InstTypes.UNTYPED_BINDING(bindingExp = exp) then SOME(exp);
case InstTypes.TYPED_BINDING(bindingExp = exp) then SOME(exp);
else NONE();

end match;
end getBindingExpOpt;

public function makeEnumType
input list<SCode.Enum> inEnumLiterals;
input Absyn.Path inEnumPath;
Expand Down
8 changes: 4 additions & 4 deletions Compiler/FrontEnd/SCodeDependency.mo
Expand Up @@ -170,14 +170,14 @@ algorithm
case (Absyn.IDENT(name = _), _, _, _)
equation
(item, _, env, _) =
SCodeLookup.lookupName(inPath, inEnv, inInfo, NONE());
SCodeLookup.lookupNameSilent(inPath, inEnv, inInfo);
then
(item, env);

case (Absyn.QUALIFIED(name = id, path = rest_path), _, _, _)
equation
(item, _, env, _) =
SCodeLookup.lookupName(Absyn.IDENT(id), inEnv, inInfo, NONE());
SCodeLookup.lookupNameSilent(Absyn.IDENT(id), inEnv, inInfo);
analyseItem(item, env);
(item, env) = lookupNameInItem(rest_path, item, env, inPrintError);
then
Expand Down Expand Up @@ -1098,7 +1098,7 @@ algorithm

case (_, _, _)
equation
(item, _, env, _) = SCodeLookup.lookupName(inPath, inEnv, inInfo, NONE());
(item, _, env, _) = SCodeLookup.lookupNameSilent(inPath, inEnv, inInfo);
then
(SOME(item), SOME(env));

Expand Down Expand Up @@ -1286,7 +1286,7 @@ protected
Env env;
algorithm
(item, _, env, _) :=
SCodeLookup.lookupName(Absyn.IDENT(inName), inEnv, inInfo, NONE());
SCodeLookup.lookupNameSilent(Absyn.IDENT(inName), inEnv, inInfo);
analyseItem(item, env);
end analyseAnnotationName;

Expand Down
2 changes: 1 addition & 1 deletion Compiler/FrontEnd/SCodeEnv.mo
Expand Up @@ -895,7 +895,7 @@ algorithm
equation
bc = Absyn.removePartialPrefix(getEnvPath(inEnv), inBaseClass);
(item, bc, env, _) =
SCodeLookup.lookupName(inBaseClass, inEnv, inInfo, NONE());
SCodeLookup.lookupNameSilent(inBaseClass, inEnv, inInfo);
bc = mergePathWithEnvPath(bc, env);
then
(SOME(bc), SOME(item));
Expand Down
4 changes: 2 additions & 2 deletions Compiler/FrontEnd/SCodeFlatten.mo
Expand Up @@ -155,8 +155,8 @@ algorithm
_ := matchcontinue(inEnv)
case _
equation
(_, _, _, _) = SCodeLookup.lookupName(Absyn.IDENT("cardinality"), inEnv,
Absyn.dummyInfo, NONE());
(_, _, _, _) = SCodeLookup.lookupNameSilent(Absyn.IDENT("cardinality"),
inEnv, Absyn.dummyInfo);
System.setUsesCardinality(true);
then
();
Expand Down
2 changes: 1 addition & 1 deletion Compiler/FrontEnd/SCodeFlattenRedeclare.mo
Expand Up @@ -629,7 +629,7 @@ algorithm
path = Absyn.crefToPath(inCref);
(SCodeEnv.VAR(var = SCode.COMPONENT(name = name, attributes = SCode.ATTR(
variability = SCode.CONST()))), path, env, SCodeLookup.CLASS_ORIGIN()) =
SCodeLookup.lookupName(path, inEnv, Absyn.dummyInfo, NONE());
SCodeLookup.lookupNameSilent(path, inEnv, Absyn.dummyInfo);
path = SCodeEnv.mergePathWithEnvPath(Absyn.IDENT(name), env);
cref = Absyn.pathToCref(path);
then
Expand Down

0 comments on commit 7302fe4

Please sign in to comment.