Skip to content

Commit

Permalink
Added convenient access to element names.
Browse files Browse the repository at this point in the history
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@105 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
x97davka committed Feb 6, 1998
1 parent aaec8e9 commit 9bd2b42
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 10 deletions.
17 changes: 9 additions & 8 deletions modeq/absyn.rml
Expand Up @@ -37,6 +37,7 @@ module Absyn:
* Component list

and Element = ELEMENT of bool (* final *)
* Ident
* ElementSpec

and ClassRestriction = CL_CLASS
Expand Down Expand Up @@ -84,27 +85,27 @@ relation append =

end

relation exp_elementspec: ElementSpec => ElementSpec list =
relation exp_elementspec: ElementSpec => (Ident*ElementSpec) list =

axiom exp_elementspec(x as CLASSDEF(_,_)) => [x]
axiom exp_elementspec(x as EXTENDS(_,_)) => [x]
axiom exp_elementspec(x as CLASSDEF(_,CLASS(n,_,_,_))) => [(n,x)]
axiom exp_elementspec(x as EXTENDS(_,_)) => [("",x)]

axiom exp_elementspec(COMPONENTS(_,_,_,_,_,_,[])) => []

rule exp_elementspec(COMPONENTS(f,p,c,i,o,t,xs)) => xs'
--------------------------------------------------
exp_elementspec(COMPONENTS(f,p,c,i,o,t,x::xs)) =>
COMPONENTS(f,p,c,i,o,t,[x])::xs'
exp_elementspec(COMPONENTS(f,p,c,i,o,t,(x as COMPONENT(n,_,_))::xs)) =>
((n,COMPONENTS(f,p,c,i,o,t,[x]))::xs')

end

relation mk_elements: (bool,ElementSpec list) => Element list =
relation mk_elements: (bool,(Ident*ElementSpec) list) => Element list =

axiom mk_elements(_,[]) => []

rule mk_elements(f,ss) => ss'
------------------------
mk_elements(f,s::ss) => ELEMENT(f,s)::ss'
mk_elements(f,(n,s)::ss) => ELEMENT(f,n,s)::ss'

end

Expand All @@ -113,7 +114,7 @@ relation exp_element: Element => Element list =
rule exp_elementspec(s) => ss &
mk_elements(f,ss) => es
-------------------------------
exp_element(ELEMENT(f,s)) => es
exp_element(ELEMENT(f,_,s)) => es

end

Expand Down
3 changes: 2 additions & 1 deletion modeq/ast/modgram.g
Expand Up @@ -283,7 +283,8 @@ element :
| cc:component_clause << spec = #cc->rml; >> )
<< Attrib a = $[ELEMENT,"---"];
#0 = #(#[&a],#0);
#0->rml = Absyn__ELEMENT(RML_PRIM_MKBOOL(is_final), spec); >>
#0->rml = Absyn__ELEMENT(RML_PRIM_MKBOOL(is_final),
mk_scon(""), spec); >>
;

/*
Expand Down
2 changes: 1 addition & 1 deletion modeq/dump.rml
Expand Up @@ -297,7 +297,7 @@ and dump_element: Absyn.Element => () =
rule print "ELEMENT(" & dump_select(final,"FINAL,","") &
dump_elementspec spec & print ")"
----------------
dump_element (Absyn.ELEMENT(final,spec))
dump_element (Absyn.ELEMENT(final,_,spec))

end
and dump_elementspec: Absyn.ElementSpec => () =
Expand Down

0 comments on commit 9bd2b42

Please sign in to comment.