Skip to content

Commit

Permalink
Fix index of metarecords when comments are used within uniontypes
Browse files Browse the repository at this point in the history
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@16789 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
sjoelund committed Aug 13, 2013
1 parent 1215d96 commit 1b2385b
Showing 1 changed file with 9 additions and 31 deletions.
40 changes: 9 additions & 31 deletions Compiler/FrontEnd/MetaUtil.mo
Original file line number Diff line number Diff line change
Expand Up @@ -488,27 +488,6 @@ algorithm
end fixElement;


function fixElementItem
input Absyn.ElementItem elementItemin;
input String name;
input Integer index;
input Boolean singleton;
output Absyn.ElementItem elementItemout;

algorithm
elementItemout := match(elementItemin,name,index,singleton)
local
Absyn.Element element;
case(Absyn.ELEMENTITEM(element),_,_,_)
equation
element = fixElement(element,name,index,singleton);
then Absyn.ELEMENTITEM(element);
// Don't fix comments, annotations
case(_,_,_,_)
then elementItemin;
end match;
end fixElementItem;


function fixElementItems
input list<Absyn.ElementItem> elementItemsin;
Expand All @@ -517,20 +496,19 @@ function fixElementItems
input Boolean singleton;
output list<Absyn.ElementItem> elementItemsout;
algorithm
elementItemsout := matchcontinue(elementItemsin,name,index,singleton)
elementItemsout := match (elementItemsin,name,index,singleton)
local
Absyn.ElementItem element;
Absyn.Element element;
Absyn.ElementItem elementitem;
list<Absyn.ElementItem> rest;
case(element::rest,_,_,_)
case({},_,_,_) then {};
case(Absyn.ELEMENTITEM(element)::rest,_,_,_)
equation
element = fixElementItem(element,name,index,singleton);
element = fixElement(element,name,index,singleton);
rest = fixElementItems(rest,name,index+1,singleton);
then (element::rest);
case(element::{},_,_,_)
equation
element = fixElementItem(element,name,index,singleton);
then (element::{});
end matchcontinue;
then (Absyn.ELEMENTITEM(element)::rest);
case (elementitem::rest,_,_,_) then fixElementItems(rest,name,index,singleton);
end match;
end fixElementItems;

/* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^END^OF^HELPERFUNCTIONS^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ */
Expand Down

0 comments on commit 1b2385b

Please sign in to comment.