Skip to content

Commit

Permalink
- added new API getNamedAnnotation(class, name) to get non-standard a…
Browse files Browse the repository at this point in the history
…nnotations:

  getNamedAnnotation(Modelica.UsersGuide, __Dymola_DocumentationClass) -> {true}
  getNamedAnnotation(Modelica, __Dymola_DocumentationClass) -> {}


git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@7175 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
adrpo committed Nov 24, 2010
1 parent 0fb2618 commit 2e2d5a8
Showing 1 changed file with 35 additions and 0 deletions.
35 changes: 35 additions & 0 deletions Compiler/Interactive.mo
Expand Up @@ -2298,6 +2298,20 @@ algorithm
then
(resstr,st);

case (istmts, st as SYMBOLTABLE(ast = p))
equation
matchApiFunction(istmts, "getNamedAnnotation");
{Absyn.CREF(componentRef = cr), Absyn.CREF(componentRef = Absyn.CREF_IDENT(str, {}))} =
getApiFunctionArgs(istmts);
modelpath = Absyn.crefToPath(cr);
ErrorExt.setCheckpoint("getNamedAnnotation");
RTOpts.setEvaluateParametersInAnnotations(true);
resstr = getNamedAnnotation(modelpath, p, str, getAnnotationValue);
RTOpts.setEvaluateParametersInAnnotations(false);
ErrorExt.rollBack("getNamedAnnotation");
then
(resstr,st);

case (istmts, st as SYMBOLTABLE(ast = p))
equation
matchApiFunction(istmts, "getPackages");
Expand Down Expand Up @@ -13316,6 +13330,27 @@ algorithm
end matchcontinue;
end getNamedAnnotationStr;

protected function getAnnotationValue
input Option<Absyn.Modification> mod;
output String str;
algorithm
str := matchcontinue (mod)
local
String s;
Absyn.Exp exp;

case (SOME(Absyn.CLASSMOD(elementArgLst = {}, expOption=SOME(exp))))
equation
s = Dump.printExpStr(exp);
s = stringAppendList({"{", s, "}"});
then
s;

// adrpo: empty if no value
case (_) then "{}";
end matchcontinue;
end getAnnotationValue;

protected function getDocumentationAnnotationString
input Option<Absyn.Modification> mod;
output String docStr;
Expand Down

0 comments on commit 2e2d5a8

Please sign in to comment.