Skip to content

Commit

Permalink
print_env
Browse files Browse the repository at this point in the history
print_frame


git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@599 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
levsa committed Nov 20, 2001
1 parent b8816b5 commit 32edfb2
Showing 1 changed file with 104 additions and 0 deletions.
104 changes: 104 additions & 0 deletions modeq/env.rml
Expand Up @@ -36,8 +36,14 @@ module Env:
relation extend_frame_v : (Env, Types.Var) => Env
relation extend_frame_t : (Env,Ident,Types.Type) => Env

relation print_env : Env => ()

relation print_frame : Frame => ()

end

with "dump.rml"

(** - Values *)

val empty_frame = FRAME([])
Expand Down Expand Up @@ -69,6 +75,19 @@ end

relation extend_frame_c : (Env, SCode.Class) => Env =

(*
rule print "extend_frame_c:\n" &
print_env env &
print " + " &
print n &
print " = " &
print_env ((FRAME((n,CLASS(c,env))::items)::fs)) &
print "\n"
----------------
extend_frame_c(env as (FRAME(items)::fs),c as SCode.CLASS(n,_,_,_))
=> ((FRAME((n,CLASS(c,env))::items)::fs))
*)

axiom extend_frame_c(env as (FRAME(items)::fs),c as SCode.CLASS(n,_,_,_))
=> ((FRAME((n,CLASS(c,env))::items)::fs))

Expand All @@ -81,6 +100,19 @@ end

relation extend_frame_v : (Env,Types.Var) => Env =

(*
rule print "extend_frame_v:\n" &
print_env env &
print " + " &
print n &
print " = " &
print_env (FRAME((n,VAR(v))::items)::fs) &
print "\n"
----------------
extend_frame_v(env as (FRAME(items)::fs),v as Types.VAR(n,_,_,_,_))
=> (FRAME((n,VAR(v))::items)::fs)
*)

axiom extend_frame_v(FRAME(items)::fs,v as Types.VAR(n,_,_,_,_))
=> (FRAME((n,VAR(v))::items)::fs)

Expand All @@ -97,7 +129,79 @@ end

relation extend_frame_t : (Env,Ident,Types.Type) => Env =

(*
rule print "extend_frame_t:\n" &
print_env env &
print " + " &
print n &
print " = " &
print_env (FRAME((n,TYPE(t))::items)::fs) &
print "\n"
----------------
extend_frame_t(env as (FRAME(items)::fs), n, t)
=> (FRAME((n,TYPE(t))::items)::fs)
*)

axiom extend_frame_t(FRAME(items)::fs, n, t)
=> (FRAME((n,TYPE(t))::items)::fs)

end

relation print_env : Env => () =

rule print "Empty env\n"
-------------------
print_env []

rule print_frame fr &
print_env frs
------------
print_env fr::frs

end


relation print_frame : Frame => () =

rule print "FRAME: " &
print_frame_contents cont &
print "\n"
--------------------------------------------
print_frame FRAME(cont)

end


relation print_frame_contents: (Ident * Item) list => () =

axiom print_frame_contents []

rule print_frame_element e
-------------------------
print_frame_contents [e as (n,i)]

rule print_frame_element e & print "," & print_frame_contents rst
------------------------------------------------
print_frame_contents ((e as (n,i))::rst)
end


relation print_frame_element: (Ident * Item) => () =

rule print "v:" & print n
-------
print_frame_element ((n,VAR(_)))

rule print "c:" & print n
-------
print_frame_element ((n,CLASS(_,_)))

rule print "t:" & print n
-------
print_frame_element ((n,TYPE(_)))

end




0 comments on commit 32edfb2

Please sign in to comment.