am_out.sa
Generated by gen_html_sa_files from ICSI. Contact gomes@icsi.berkeley.edu for details
---------------------------> Sather 1.1 source file <--------------------------
-- Copyright (C) International Computer Science Institute, 1995. COPYRIGHT --
-- NOTICE: This code is provided "AS IS" WITHOUT ANY WARRANTY and is subject --
-- to the terms of the SATHER LIBRARY GENERAL PUBLIC LICENSE contained in --
-- the file "Doc/License" of the Sather distribution. The license is also --
-- available from ICSI, 1947 Center St., Suite 600, Berkeley CA 94704, USA. --
--------> Please email comments to sather-bugs@icsi.berkeley.edu. <----------
-- am_out.sa: Print out AM representation for debugging.
class AM_OUT
class AM_OUT is
-- Output AM code for debugging purposes.
AM_one_stmt(a:$AM_STMT) is
n::=a.next;
a.next:=void;
AM_out(a);-- AM_OUT::AM_out
a.next:=n;
end;
AM_out(a:$AM) is AM_out(a,0,0); end;-- AM_OUT::AM_out
AM_out(a:$AM,first:INT,indent:INT) is
prindent(first);-- AM_OUT::prindent
if void(a) then #OUT + "(void($AM))\n"; return end;-- OUT::create OUT::plus
#OUT+SYS::str_for_tp(SYS::tp(a))+"["+SYS::id(a)+"] ";-- OUT::create OUT::plus SYS::str_for_tp SYS::tp OUT::plus OUT::plus SYS::id OUT::plus
typecase a
when AM_OB_DEF then AM_OB_DEF_out(a,0,indent);-- AM_OUT::AM_OB_DEF_out
when AM_ROUT_DEF then AM_ROUT_DEF_out(a,0,indent);-- AM_OUT::AM_ROUT_DEF_out
when AM_ASSIGN_STMT then AM_ASSIGN_STMT_out(a,0,indent);-- AM_OUT::AM_ASSIGN_STMT_out
when AM_COMMENT_STMT then AM_COMMENT_STMT_out(a,0,indent);-- AM_OUT::AM_COMMENT_STMT_out
when AM_IF_STMT then AM_IF_STMT_out(a,0,indent);-- AM_OUT::AM_IF_STMT_out
when AM_LOOP_STMT then AM_LOOP_STMT_out(a,0,indent);-- AM_OUT::AM_LOOP_STMT_out
when AM_BREAK_STMT then AM_BREAK_STMT_out(a,0,indent);-- AM_OUT::AM_BREAK_STMT_out
when AM_RETURN_STMT then AM_RETURN_STMT_out(a,0,indent);-- AM_OUT::AM_RETURN_STMT_out
when AM_YIELD_STMT then AM_YIELD_STMT_out(a,0,indent);-- AM_OUT::AM_YIELD_STMT_out
when AM_CASE_STMT then AM_CASE_STMT_out(a,0,indent);-- AM_OUT::AM_CASE_STMT_out
when AM_TYPECASE_STMT then AM_TYPECASE_STMT_out(a,0,indent);-- AM_OUT::AM_TYPECASE_STMT_out
when AM_PRE_STMT then AM_PRE_STMT_out(a,0,indent);-- AM_OUT::AM_PRE_STMT_out
when AM_POST_STMT then AM_POST_STMT_out(a,0,indent);-- AM_OUT::AM_POST_STMT_out
when AM_INITIAL_STMT then AM_INITIAL_STMT_out(a,0,indent);-- AM_OUT::AM_INITIAL_STMT_out
when AM_ASSERT_STMT then AM_ASSERT_STMT_out(a,0,indent);-- AM_OUT::AM_ASSERT_STMT_out
when AM_INVARIANT_STMT then AM_INVARIANT_STMT_out(a,0,indent);-- AM_OUT::AM_INVARIANT_STMT_out
when AM_PROTECT_STMT then AM_PROTECT_STMT_out(a,0,indent);-- AM_OUT::AM_PROTECT_STMT_out
when AM_RAISE_STMT then AM_RAISE_STMT_out(a,0,indent); -- AM_OUT::AM_RAISE_STMT_out
when AM_EXPR_STMT then AM_EXPR_STMT_out(a,0,indent);-- AM_OUT::AM_EXPR_STMT_out
when AM_LOCAL_EXPR then AM_LOCAL_EXPR_out(a,0,indent);-- AM_OUT::AM_LOCAL_EXPR_out
when AM_ARRAY_EXPR then AM_ARRAY_EXPR_out(a,0,indent);-- AM_OUT::AM_ARRAY_EXPR_out
when AM_BND_CREATE_EXPR then AM_BND_CREATE_EXPR_out(a,0,indent);-- AM_OUT::AM_BND_CREATE_EXPR_out
when AM_IF_EXPR then AM_IF_EXPR_out(a,0,indent);-- AM_OUT::AM_IF_EXPR_out
when AM_NEW_EXPR then AM_NEW_EXPR_out(a,0,indent);-- AM_OUT::AM_NEW_EXPR_out
when AM_IS_VOID_EXPR then AM_IS_VOID_EXPR_out(a,0,indent); -- AM_OUT::AM_IS_VOID_EXPR_out
when AM_GLOBAL_EXPR then AM_GLOBAL_EXPR_out(a,0,indent);-- AM_OUT::AM_GLOBAL_EXPR_out
when AM_ATTR_EXPR then AM_ATTR_EXPR_out(a,0,indent);-- AM_OUT::AM_ATTR_EXPR_out
when AM_VATTR_ASSIGN_EXPR then AM_VATTR_ASSIGN_EXPR_out(a,0,indent);-- AM_OUT::AM_VATTR_ASSIGN_EXPR_out
when AM_VARR_ASSIGN_EXPR then AM_VARR_ASSIGN_EXPR_out(a,0,indent); -- AM_OUT::AM_VARR_ASSIGN_EXPR_out
when AM_EXCEPT_EXPR then AM_EXCEPT_EXPR_out(a,0,indent); -- AM_OUT::AM_EXCEPT_EXPR_out
when AM_STMT_EXPR then AM_STMT_EXPR_out(a,0,indent); -- AM_OUT::AM_STMT_EXPR_out
when AM_CALL_ARG then AM_CALL_ARG_out(a,0,indent);-- AM_OUT::AM_CALL_ARG_out
when AM_FORMAL_ARG then AM_FORMAL_ARG_out(a,0,indent);-- AM_OUT::AM_FORMAL_ARG_out
when AM_ROUT_CALL_EXPR then AM_ROUT_CALL_EXPR_out(a,0,indent);-- AM_OUT::AM_ROUT_CALL_EXPR_out
when AM_ITER_CALL_EXPR then AM_ITER_CALL_EXPR_out(a,0,indent);-- AM_OUT::AM_ITER_CALL_EXPR_out
when AM_BND_ROUT_CALL_EXPR then AM_BND_ROUT_CALL_EXPR_out(a,0,indent);-- AM_OUT::AM_BND_ROUT_CALL_EXPR_out
when AM_BND_ITER_CALL_EXPR then AM_BND_ITER_CALL_EXPR_out(a,0,indent);-- AM_OUT::AM_BND_ITER_CALL_EXPR_out
when AM_EXT_CALL_EXPR then AM_EXT_CALL_EXPR_out(a,0,indent);-- AM_OUT::AM_EXT_CALL_EXPR_out
when AM_VOID_CONST then AM_VOID_CONST_out(a,0,indent);-- AM_OUT::AM_VOID_CONST_out
when AM_ARR_CONST then AM_ARR_CONST_out(a,0,indent);-- AM_OUT::AM_ARR_CONST_out
when AM_BOOL_CONST then AM_BOOL_CONST_out(a,0,indent);-- AM_OUT::AM_BOOL_CONST_out
when AM_CHAR_CONST then AM_CHAR_CONST_out(a,0,indent);-- AM_OUT::AM_CHAR_CONST_out
when AM_STR_CONST then AM_STR_CONST_out(a,0,indent);-- AM_OUT::AM_STR_CONST_out
when AM_INT_CONST then AM_INT_CONST_out(a,0,indent);-- AM_OUT::AM_INT_CONST_out
when AM_INTI_CONST then AM_INTI_CONST_out(a,0,indent);-- AM_OUT::AM_INTI_CONST_out
when AM_FLT_CONST then AM_FLT_CONST_out(a,0,indent);-- AM_OUT::AM_FLT_CONST_out
when AM_FLTD_CONST then AM_FLTD_CONST_out(a,0,indent);-- AM_OUT::AM_FLTD_CONST_out
when AM_FLTX_CONST then AM_FLTX_CONST_out(a,0,indent);-- AM_OUT::AM_FLTX_CONST_out
when AM_FLTDX_CONST then AM_FLTDX_CONST_out(a,0,indent);-- AM_OUT::AM_FLTDX_CONST_out
when AM_FLTI_CONST then AM_FLTI_CONST_out(a,0,indent);-- AM_OUT::AM_FLTI_CONST_out
--pSather
when AM_ATTACH_STMT then AM_ATTACH_STMT_out(a,0,indent);-- AM_OUT::AM_ATTACH_STMT_out
when AM_LOCK_STMT then AM_LOCK_STMT_out(a,0,indent);-- AM_OUT::AM_LOCK_STMT_out
when AM_UNLOCK_STMT then AM_UNLOCK_STMT_out(a,0,indent);-- AM_OUT::AM_UNLOCK_STMT_out
when AM_WITH_NEAR_STMT then AM_WITH_NEAR_STMT_out(a,0,indent);-- AM_OUT::AM_WITH_NEAR_STMT_out
when AM_SYNC_STMT then AM_SYNC_STMT_out(a,0,indent);-- AM_OUT::AM_SYNC_STMT_out
when AM_PREFETCH_STMT then AM_PREFETCH_STMT_out(a,0,indent);-- AM_OUT::AM_PREFETCH_STMT_out
when AM_WAITFOR_STMT then AM_WAITFOR_STMT_out(a,0,indent);-- AM_OUT::AM_WAITFOR_STMT_out
--pSather
when AM_HERE_EXPR then AM_HERE_EXPR_out(a,0,indent);-- AM_OUT::AM_HERE_EXPR_out
when AM_ANY_EXPR then AM_ANY_EXPR_out(a,0,indent);-- AM_OUT::AM_ANY_EXPR_out
when AM_WHERE_EXPR then AM_WHERE_EXPR_out(a,0,indent);-- AM_OUT::AM_WHERE_EXPR_out
when AM_NEAR_EXPR then AM_NEAR_EXPR_out(a,0,indent);-- AM_OUT::AM_NEAR_EXPR_out
when AM_FAR_EXPR then AM_FAR_EXPR_out(a,0,indent);-- AM_OUT::AM_FAR_EXPR_out
when AM_AT_EXPR then AM_AT_EXPR_out(a,0,indent);-- AM_OUT::AM_AT_EXPR_out
when AM_CLUSTER_EXPR then AM_CLUSTER_EXPR_out(a,0,indent);-- AM_OUT::AM_CLUSTER_EXPR_out
when AM_CLUSTER_SIZE_EXPR then AM_CLUSTER_SIZE_EXPR_out(a,0,indent); -- AM_OUT::AM_CLUSTER_SIZE_EXPR_out
end;
typecase a
when $AM_STMT then
if ~void(a.next) then AM_out(a.next,indent,indent); end;-- BOOL::not AM_OUT::AM_out
else end;
end;
private prindent(i:INT) is
loop
i.times!;-- INT::times!
#OUT+" ";-- OUT::create OUT::plus
end;
end;
private AM_OB_DEF_out(a:AM_OB_DEF,first:INT,indent:INT) is
if void(a.tp) then #OUT + "void(tp) " -- AM_OB_DEF::tp OUT::create
else #OUT + "tp=" + a.tp.str + " " end; #OUT + "\n";-- OUT::plus OUT::create OUT::plus OUT::plus AM_OB_DEF::tp OUT::plus OUT::create OUT::plus
if void(a.at) then #OUT + "void(attributes)" -- AM_OB_DEF::at OUT::create
else-- OUT::plus
#OUT+"\n";prindent(indent+11);-- OUT::create OUT::plus AM_OUT::prindent INT::plus
#OUT + "attributes= ";-- OUT::create OUT::plus
loop p::=a.at.pairs!;-- AM_OB_DEF::at FMAP{2}::pairs!
#OUT + "(" + p.t1.str + "->" + p.t2.str + ") " end end;-- OUT::create OUT::plus OUT::plus TUP{2}::t1 IDENT::str OUT::plus OUT::plus TUP{2}::t2 OUT::plus
#OUT+"\n";prindent(indent+11);-- OUT::create OUT::plus AM_OUT::prindent INT::plus
#OUT + "(array type=";-- OUT::create OUT::plus
if void(a.arr) then #OUT + "void" else #OUT + a.arr.str end;-- AM_OB_DEF::arr OUT::create OUT::plus OUT::create OUT::plus AM_OB_DEF::arr
#OUT + "\n" end;-- OUT::create OUT::plus
private AM_ROUT_DEF_out(a:AM_ROUT_DEF,first:INT,indent:INT) is
if void(a.sig) then #OUT + " void(sig)";-- AM_ROUT_DEF::sig OUT::create OUT::plus
else #OUT + " sig=" + a.sig.str;-- OUT::create OUT::plus OUT::plus AM_ROUT_DEF::sig SIG::str
end;
if a.sig.needs_import then #OUT+" needs_import"; end;-- AM_ROUT_DEF::sig SIG::needs_import OUT::create OUT::plus
if a.sig.needs_export then #OUT+" needs_export"; end;-- AM_ROUT_DEF::sig SIG::needs_export OUT::create OUT::plus
if a.is_abstract then #OUT + " is abstract"; return; end;-- AM_ROUT_DEF::is_abstract OUT::create OUT::plus
#OUT+"\n";-- OUT::create OUT::plus
if a.size>1 then-- AM_ROUT_DEF::size INT::is_lt
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "args=";-- OUT::create OUT::plus
AM_out(a[1],0,indent+8);-- AM_OUT::AM_out AM_ROUT_DEF::aget INT::plus
i:INT:=2;
loop
AM_out(a[2.upto!(a.asize-1)],indent+8,indent+8);-- AM_OUT::AM_out AM_ROUT_DEF::aget INT::upto! AM_ROUT_DEF::asize INT::minus INT::plus INT::plus
end;
end;
prindent(indent+3);-- AM_OUT::prindent INT::plus
if ~void(a.specul_prefetch) then #OUT+"prefetch: ";AM_out(a.specul_prefetch,indent+10,indent+10);#OUT+"\n";prindent(indent+3); end;-- AM_ROUT_DEF::specul_prefetch BOOL::not OUT::create OUT::plus AM_OUT::AM_out AM_ROUT_DEF::specul_prefetch INT::plus INT::plus OUT::create OUT::plus AM_OUT::prindent INT::plus
if void(a.locals) then #OUT + "void(locals)\n";-- AM_ROUT_DEF::locals OUT::create OUT::plus
else
#OUT + "locals=";-- OUT::create OUT::plus
i:INT:=0;
AM_out(a.locals[0],indent+10,indent+10);-- AM_OUT::AM_out AM_ROUT_DEF::locals FLIST{1}::aget INT::plus INT::plus
if a.locals.size>1 then -- AM_ROUT_DEF::locals FLIST{1}::size INT::is_lt
loop;
AM_out(a.locals[1.upto!(a.locals.size-1)],indent+10,indent+10);-- AM_OUT::AM_out AM_ROUT_DEF::locals FLIST{1}::aget INT::upto! AM_ROUT_DEF::locals FLIST{1}::size INT::minus INT::plus INT::plus
end;
end;
end;
prindent(indent+3);-- AM_OUT::prindent INT::plus
if void(a.code) then #OUT + "void(code)\n";-- AM_ROUT_DEF::code OUT::create OUT::plus
else #OUT + "code="; AM_out(a.code,0,indent+8);-- OUT::create OUT::plus AM_OUT::AM_out AM_ROUT_DEF::code INT::plus
end;
end;
private AM_COMMENT_STMT_out(a:AM_COMMENT_STMT,first:INT,indent:INT) is
#OUT + "/* "+a.comment+" */\n";-- OUT::create OUT::plus OUT::plus AM_COMMENT_STMT::comment OUT::plus
end;
private AM_ASSIGN_STMT_out(a:AM_ASSIGN_STMT,first:INT,indent:INT) is
#OUT + "\n";-- OUT::create OUT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "dest="; AM_out(a.dest,0,indent+8); -- OUT::create OUT::plus AM_OUT::AM_out AM_ASSIGN_STMT::dest INT::plus
#OUT+"\n";-- OUT::create OUT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "src= "; AM_out(a.src,0,indent+8);-- OUT::create OUT::plus AM_OUT::AM_out AM_ASSIGN_STMT::src INT::plus
#OUT+"\n";-- OUT::create OUT::plus
end;
private AM_IF_STMT_out(a:AM_IF_STMT,first:INT,indent:INT) is
#OUT + "\n";-- OUT::create OUT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "test= "; AM_out(a.test,0,indent+12); #OUT+"\n";-- OUT::create OUT::plus AM_OUT::AM_out AM_IF_STMT::test INT::plus OUT::create OUT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "if_true= "; AM_out(a.if_true,0,indent+12);-- OUT::create OUT::plus AM_OUT::AM_out AM_IF_STMT::if_true INT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "if_false="; AM_out(a.if_false,0,indent+12) end;-- OUT::create OUT::plus AM_OUT::AM_out AM_IF_STMT::if_false INT::plus
private AM_LOOP_STMT_out(a:AM_LOOP_STMT,first:INT,indent:INT) is
if a.has_yield then #OUT + " has_yield=true"-- AM_LOOP_STMT::has_yield OUT::create
else #OUT + " has_yield=false" end;-- OUT::plus OUT::create OUT::plus
#OUT+"\n";-- OUT::create OUT::plus
if ~void(a.its) then-- AM_LOOP_STMT::its BOOL::not
prindent(indent+3);#OUT+"its=";-- AM_OUT::prindent INT::plus OUT::create OUT::plus
loop #OUT+",".separate!(a.its.elt!.fun.str); end;-- OUT::create OUT::plus STR::separate! AM_LOOP_STMT::its FLIST{1}::elt! AM_ITER_CALL_EXPR::fun SIG::str
#OUT+"\n";-- OUT::create OUT::plus
end;
prindent(indent+3);#OUT+"init=";-- AM_OUT::prindent INT::plus OUT::create OUT::plus
AM_out(a.init,0,indent+8);-- AM_OUT::AM_out AM_LOOP_STMT::init INT::plus
AM_out(a.body,indent+3,indent+3) end;-- AM_OUT::AM_out AM_LOOP_STMT::body INT::plus INT::plus
private AM_BREAK_STMT_out(a:AM_BREAK_STMT,first:INT,indent:INT) is
#OUT + "\n" end;-- OUT::create OUT::plus
private AM_RETURN_STMT_out(a:AM_RETURN_STMT,first:INT,indent:INT) is
#OUT + "\n";-- OUT::create OUT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "val="; AM_out(a.val,0,indent+7);-- OUT::create OUT::plus AM_OUT::AM_out AM_RETURN_STMT::val INT::plus
#OUT+"\n";-- OUT::create OUT::plus
end;
private AM_YIELD_STMT_out(a:AM_YIELD_STMT,first:INT,indent:INT) is
prindent(indent+3);#OUT + "ret=" + a.ret; #OUT+"\n";-- AM_OUT::prindent INT::plus OUT::create OUT::plus OUT::plus AM_YIELD_STMT::ret OUT::create OUT::plus
prindent(indent+3);#OUT + "val="; AM_out(a.val,0,indent+7); #OUT+"\n";-- AM_OUT::prindent INT::plus OUT::create OUT::plus AM_OUT::AM_out AM_YIELD_STMT::val INT::plus OUT::create OUT::plus
end;
private AM_CASE_STMT_out(a:AM_CASE_STMT,first:INT,indent:INT) is
prindent(indent);-- AM_OUT::prindent
#OUT + "test="; AM_out(a.test,0,indent+8); #OUT+"\n";-- OUT::create OUT::plus AM_OUT::AM_out AM_CASE_STMT::test INT::plus OUT::create OUT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "branches:\n";-- OUT::create OUT::plus
i:INT:=0;
loop while!(i<a.tgts.size);-- INT::is_lt AM_CASE_STMT::tgts FLIST{1}::size
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "cond: ";-- OUT::create OUT::plus
j:INT:=0;
loop
AM_OUT::AM_out(a.tgts[i].elt!);-- AM_OUT::AM_out AM_CASE_STMT::tgts FLIST{1}::aget FLIST{1}::elt!
#OUT+", ";-- OUT::create OUT::plus
end;
#OUT + "\n";-- OUT::create OUT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT+"code: ";-- OUT::create OUT::plus
AM_out(a.stmts[i],0,indent+10);-- AM_OUT::AM_out AM_CASE_STMT::stmts FLIST{1}::aget INT::plus
i:=i+1;-- INT::plus
end;
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "else_stmts: "; AM_out(a.else_stmts,0,indent+15) -- OUT::create OUT::plus AM_OUT::AM_out AM_CASE_STMT::else_stmts INT::plus
end;
private AM_TYPECASE_STMT_out(a:AM_TYPECASE_STMT,first:INT,indent:INT) is
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "test="; AM_out(a.test,0,indent+8); #OUT+"\n";-- OUT::create OUT::plus AM_OUT::AM_out AM_TYPECASE_STMT::test INT::plus OUT::create OUT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "branches:\n";-- OUT::create OUT::plus
i:INT:=0;
loop while!(i<a.tgts.size);-- INT::is_lt AM_TYPECASE_STMT::tgts FLIST{1}::size
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "type: "+a.tgts[i].str+"\n";-- OUT::create OUT::plus OUT::plus AM_TYPECASE_STMT::tgts FLIST{1}::aget OUT::plus
AM_out(a.stmts[i],indent+6,indent+6);-- AM_OUT::AM_out AM_TYPECASE_STMT::stmts FLIST{1}::aget INT::plus INT::plus
i:=i+1;-- INT::plus
end;
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT+"else_stmts="; AM_out(a.else_stmts,0,indent+14);-- OUT::create OUT::plus AM_OUT::AM_out AM_TYPECASE_STMT::else_stmts INT::plus
end;
private AM_PRE_STMT_out(a:AM_PRE_STMT,first:INT,indent:INT) is
if void(a) then #OUT + "void(AM_PRE_STMT)\n"; return end;-- OUT::create OUT::plus
#OUT + "AM_PRE_STMT";-- OUT::create OUT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "test="; AM_out(a.test,0,indent+9); #OUT+"\n"; end;-- OUT::create OUT::plus AM_OUT::AM_out AM_PRE_STMT::test INT::plus OUT::create OUT::plus
private AM_POST_STMT_out(a:AM_POST_STMT,first:INT,indent:INT) is
#OUT + "\n";-- OUT::create OUT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "test="; AM_out(a.test,0,indent+9); #OUT+"\n"; end;-- OUT::create OUT::plus AM_OUT::AM_out AM_POST_STMT::test INT::plus OUT::create OUT::plus
private AM_INITIAL_STMT_out(a:AM_INITIAL_STMT,first:INT,indent:INT) is
#OUT + "\n";-- OUT::create OUT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "stmts="; AM_out(a.stmts,0,indent+9);-- OUT::create OUT::plus AM_OUT::AM_out AM_INITIAL_STMT::stmts INT::plus
end;
private AM_ASSERT_STMT_out(a:AM_ASSERT_STMT,first:INT,indent:INT) is
#OUT + "\n";prindent(indent+3);-- OUT::create OUT::plus AM_OUT::prindent INT::plus
#OUT + "test="; AM_out(a.test,0,indent+8);-- OUT::create OUT::plus AM_OUT::AM_out AM_ASSERT_STMT::test INT::plus
#OUT + "\n";-- OUT::create OUT::plus
end;
private AM_INVARIANT_STMT_out(a:AM_INVARIANT_STMT,first:INT,indent:INT) is
#OUT + "\n" end;-- OUT::create OUT::plus
private AM_PROTECT_STMT_out(a:AM_PROTECT_STMT,first:INT,indent:INT) is
#OUT + "\n";-- OUT::create OUT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "body="; AM_out(a.body,0,indent+8); -- OUT::create OUT::plus AM_OUT::AM_out AM_PROTECT_STMT::body INT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "branches:\n";-- OUT::create OUT::plus
i:INT:=0;
loop while!(i<a.tgts.size);-- INT::is_lt AM_PROTECT_STMT::tgts FLIST{1}::size
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "type: "+a.tgts[i].str+"\n";-- OUT::create OUT::plus OUT::plus AM_PROTECT_STMT::tgts FLIST{1}::aget OUT::plus
AM_out(a.stmts[i],indent+6,indent+6);-- AM_OUT::AM_out AM_PROTECT_STMT::stmts FLIST{1}::aget INT::plus INT::plus
i:=i+1;-- INT::plus
end;
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT+"else_stmts="; AM_out(a.else_stmts,0,indent+14);-- OUT::create OUT::plus AM_OUT::AM_out AM_PROTECT_STMT::else_stmts INT::plus
end;
private AM_RAISE_STMT_out(a:AM_RAISE_STMT,first:INT,indent:INT) is
#OUT + " val="; AM_out(a.val,0,indent+18);#OUT+"\n"; end;-- OUT::create OUT::plus AM_OUT::AM_out AM_RAISE_STMT::val INT::plus OUT::create OUT::plus
private AM_EXPR_STMT_out(a:AM_EXPR_STMT,first:INT,indent:INT) is
#OUT + "\n";-- OUT::create OUT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "expr="; AM_out(a.expr,0,indent+8);#OUT+"\n"; end;-- OUT::create OUT::plus AM_OUT::AM_out AM_EXPR_STMT::expr INT::plus OUT::create OUT::plus
private AM_SYNC_STMT_out(a:AM_SYNC_STMT,first:INT,indent:INT) is
#OUT+"\n";-- OUT::create OUT::plus
end;
private AM_PREFETCH_STMT_out(a:AM_PREFETCH_STMT,first:INT,indent:INT) is
#OUT + " prefetch=";AM_out(a.prefetch,0,indent+29);-- OUT::create OUT::plus AM_OUT::AM_out AM_PREFETCH_STMT::prefetch INT::plus
#OUT+"\n";-- OUT::create OUT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "dest="; AM_out(a.dest,0,indent+8); -- OUT::create OUT::plus AM_OUT::AM_out AM_PREFETCH_STMT::dest INT::plus
#OUT+"\n";-- OUT::create OUT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "src= "; AM_out(a.src,0,indent+8);-- OUT::create OUT::plus AM_OUT::AM_out AM_PREFETCH_STMT::src INT::plus
#OUT+"\n";-- OUT::create OUT::plus
end;
private AM_WAITFOR_STMT_out(a:AM_WAITFOR_STMT,first:INT,indent:INT) is
#OUT + " prefetch=";AM_out(a.prefetch,0,indent+29);-- OUT::create OUT::plus AM_OUT::AM_out AM_WAITFOR_STMT::prefetch INT::plus
#OUT+"\n";-- OUT::create OUT::plus
end;
private AM_ATTACH_STMT_out(a:AM_ATTACH_STMT,first:INT,indent:INT) is
--pSather
#OUT + "\n";-- OUT::create OUT::plus
#OUT + "routine=" + a.rout.str + "\n";-- OUT::create OUT::plus OUT::plus AM_ATTACH_STMT::rout SIG::str OUT::plus
#OUT + "helper= "; AM_LOCAL_EXPR_out(a.helper,0,indent+11); #OUT+"\n";-- OUT::create OUT::plus AM_OUT::AM_LOCAL_EXPR_out AM_ATTACH_STMT::helper INT::plus OUT::create OUT::plus
#OUT + "gate= "; AM_LOCAL_EXPR_out(a.gate,0,indent+11); #OUT+"\n";-- OUT::create OUT::plus AM_OUT::AM_LOCAL_EXPR_out AM_ATTACH_STMT::gate INT::plus OUT::create OUT::plus
#OUT + "at= ";-- OUT::create OUT::plus
if void(a.at) then #OUT+" any" else AM_out(a.at,0,indent+11); end;-- AM_ATTACH_STMT::at OUT::create OUT::plus AM_OUT::AM_out AM_ATTACH_STMT::at INT::plus
#OUT+"\n";-- OUT::create OUT::plus
end;
private AM_LOCK_STMT_out(a:AM_LOCK_STMT,first:INT,indent:INT) is
--pSather
#OUT + "\n";-- OUT::create OUT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
i:INT:=0;
loop while!(i<a.guards.size);-- INT::is_lt AM_LOCK_STMT::guards FLIST{1}::size
#OUT + "GUARD ";-- OUT::create OUT::plus
AM_out(a.guards[i],0,9);-- AM_OUT::AM_out AM_LOCK_STMT::guards FLIST{1}::aget
#OUT + "\n";-- OUT::create OUT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT+"LOCK ";-- OUT::create OUT::plus
loop lck::=a.locks[i].elt!;-- AM_LOCK_STMT::locks FLIST{1}::aget ARRAY{1}::elt!
AM_out(lck,0,indent+9);#OUT+", ";-- AM_OUT::AM_out INT::plus OUT::create OUT::plus
end;
#OUT + "\n";-- OUT::create OUT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "THEN ";-- OUT::create OUT::plus
AM_out(a.stmts[i],0,indent+9);-- AM_OUT::AM_out AM_LOCK_STMT::stmts FLIST{1}::aget INT::plus
#OUT+"\n";-- OUT::create OUT::plus
i := 1+ 1;-- INT::plus
end;
#OUT+"ELSE_STMT "; AM_out(a.else_stmts,0,13);-- OUT::create OUT::plus AM_OUT::AM_out AM_LOCK_STMT::else_stmts
end;
private AM_UNLOCK_STMT_out(a:AM_UNLOCK_STMT,first:INT,indent:INT) is
--pSather
-- #OUT + " expr="; AM_out(a.lock)
end;
private AM_WITH_NEAR_STMT_out(a:AM_WITH_NEAR_STMT,first:INT,indent:INT) is
--pSather
#OUT + "\n";-- OUT::create OUT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "near="; AM_out(a.near_part,0,indent+8);-- OUT::create OUT::plus AM_OUT::AM_out AM_WITH_NEAR_STMT::near_part INT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "else="; AM_out(a.else_part,0,indent+8);-- OUT::create OUT::plus AM_OUT::AM_out AM_WITH_NEAR_STMT::else_part INT::plus
end;
private AM_LOCAL_EXPR_out(a:AM_LOCAL_EXPR,first:INT,indent:INT) is
if void(a.name) and void(a.tp_at) then-- AM_LOCAL_EXPR::name AM_LOCAL_EXPR::tp_at
#OUT + "noname:notype"-- OUT::create
elsif void(a.name) then-- OUT::plus AM_LOCAL_EXPR::name
#OUT + "noname:" + a.tp_at.str;-- OUT::create OUT::plus OUT::plus AM_LOCAL_EXPR::tp_at
elsif void(a.tp_at) then -- AM_LOCAL_EXPR::tp_at
#OUT + a.name.str + ":notype";-- OUT::create OUT::plus AM_LOCAL_EXPR::name IDENT::str OUT::plus
else #OUT + a.name.str + ":" + a.tp_at.str;-- OUT::create OUT::plus AM_LOCAL_EXPR::name IDENT::str OUT::plus OUT::plus AM_LOCAL_EXPR::tp_at
end;
end;
private AM_ARRAY_EXPR_out(a:AM_ARRAY_EXPR,first:INT,indent:INT) is
#OUT + " tp=" + a.tp_at.str+" |";-- OUT::create OUT::plus OUT::plus AM_ARRAY_EXPR::tp_at OUT::plus
loop i::=a.ind!;-- AM_ARRAY_EXPR::ind!
if i/=0 then #OUT + "), ";-- INT::is_eq BOOL::not OUT::create OUT::plus
else #OUT+"(";-- OUT::create OUT::plus
end;
AM_out(a.elt!,0,0);-- AM_OUT::AM_out AM_ARRAY_EXPR::elt!
end;
#OUT+")|";-- OUT::create OUT::plus
end;
private AM_BND_CREATE_EXPR_out(a:AM_BND_CREATE_EXPR,first:INT,indent:INT) is
#OUT + "\n";-- OUT::create OUT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "args=(";-- OUT::create OUT::plus
loop i::=a.ind!; -- AM_BND_CREATE_EXPR::ind!
if i/=0 then #OUT + " " end; -- INT::is_eq BOOL::not OUT::create OUT::plus
AM_out(a[i]);-- AM_OUT::AM_out AM_BND_CREATE_EXPR::aget
end;
#OUT + ")\n";-- OUT::create OUT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "fun=" + a.fun.str+"\n"; -- OUT::create OUT::plus OUT::plus AM_BND_CREATE_EXPR::fun SIG::str OUT::plus
#OUT + "bnd_args=";-- OUT::create OUT::plus
loop j::=a.bnd_args.ind!;-- AM_BND_CREATE_EXPR::bnd_args ARRAY{1}::ind!
if j/=0 then #OUT + " " end; -- INT::is_eq BOOL::not OUT::create OUT::plus
#OUT + a.bnd_args[j] end;-- OUT::create OUT::plus AM_BND_CREATE_EXPR::bnd_args ARRAY{1}::aget
#OUT + "\n";-- OUT::create OUT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT+"unbnd_args=";-- OUT::create OUT::plus
loop j::=a.unbnd_args.ind!;-- AM_BND_CREATE_EXPR::unbnd_args ARRAY{1}::ind!
if j/=0 then #OUT + " " end; -- INT::is_eq BOOL::not OUT::create OUT::plus
#OUT + a.unbnd_args[j] end;-- OUT::create OUT::plus AM_BND_CREATE_EXPR::unbnd_args ARRAY{1}::aget
#OUT + "\n";-- OUT::create OUT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "tp_at=" + a.tp_at.str end;-- OUT::create OUT::plus OUT::plus AM_BND_CREATE_EXPR::tp_at
private AM_IF_EXPR_out(a:AM_IF_EXPR,first:INT,indent:INT) is
#OUT + "\n";-- OUT::create OUT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "test= "; AM_out(a.test,0,indent+12);-- OUT::create OUT::plus AM_OUT::AM_out AM_IF_EXPR::test INT::plus
#OUT+"\n";prindent(indent+3);-- OUT::create OUT::plus AM_OUT::prindent INT::plus
#OUT + "if_true= "; AM_out(a.if_true,0,indent+12);-- OUT::create OUT::plus AM_OUT::AM_out AM_IF_EXPR::if_true INT::plus
#OUT+"\n";prindent(indent+3);-- OUT::create OUT::plus AM_OUT::prindent INT::plus
#OUT + "if_false="; AM_out(a.if_false,0,indent+12);-- OUT::create OUT::plus AM_OUT::AM_out AM_IF_EXPR::if_false INT::plus
end;
private AM_NEW_EXPR_out(a:AM_NEW_EXPR,first:INT,indent:INT) is
#OUT + "asz="; AM_out(a.asz,0,indent+16);-- OUT::create OUT::plus AM_OUT::AM_out AM_NEW_EXPR::asz INT::plus
end;
private AM_IS_VOID_EXPR_out(a:AM_IS_VOID_EXPR,first:INT,indent:INT) is
#OUT + "arg="; AM_out(a.arg,0,indent+20); -- OUT::create OUT::plus AM_OUT::AM_out AM_IS_VOID_EXPR::arg INT::plus
end;
private AM_GLOBAL_EXPR_out(a:AM_GLOBAL_EXPR,first:INT,indent:INT) is
#OUT + "name=";-- OUT::create OUT::plus
if void(a.name) then #OUT + "void" else #OUT + a.name.str end;-- AM_GLOBAL_EXPR::name OUT::create OUT::plus OUT::create OUT::plus AM_GLOBAL_EXPR::name IDENT::str
#OUT + " tp=";-- OUT::create OUT::plus
if void(a.tp_at) then #OUT + "void" else #OUT + a.tp_at.str end;-- AM_GLOBAL_EXPR::tp_at OUT::create OUT::plus OUT::create OUT::plus AM_GLOBAL_EXPR::tp_at
#OUT + " class_tp=";-- OUT::create OUT::plus
if void(a.class_tp) then #OUT + "void" else -- AM_GLOBAL_EXPR::class_tp OUT::create OUT::plus
#OUT + a.class_tp.str end;-- OUT::create OUT::plus AM_GLOBAL_EXPR::class_tp
--# if void(a.invar_ent) then
--# #OUT+" invar=void";
--# else
--# #OUT+" invar/=void";
--# end;
#OUT+"\n";prindent(indent+3);-- OUT::create OUT::plus AM_OUT::prindent INT::plus
#OUT + "init="; AM_out(a.init,0,indent+8);-- OUT::create OUT::plus AM_OUT::AM_out AM_GLOBAL_EXPR::init INT::plus
end;
private AM_ATTR_EXPR_out(a:AM_ATTR_EXPR,first:INT,indent:INT) is
#OUT + " ob="; AM_out(a.ob,0,0); -- OUT::create OUT::plus AM_OUT::AM_out AM_ATTR_EXPR::ob
#OUT + " at=" + a.at.str;-- OUT::create OUT::plus OUT::plus AM_ATTR_EXPR::at IDENT::str
#OUT + " self_tp=" + a.self_tp.str; -- OUT::create OUT::plus OUT::plus AM_ATTR_EXPR::self_tp
#OUT + " tp=" + a.tp_at.str end;-- OUT::create OUT::plus OUT::plus AM_ATTR_EXPR::tp_at
private AM_VATTR_ASSIGN_EXPR_out(a:AM_VATTR_ASSIGN_EXPR,first:INT,indent:INT) is
if void(a.ob) then #OUT + " void(ob)"; -- AM_VATTR_ASSIGN_EXPR::ob OUT::create OUT::plus
else #OUT + " ob="; AM_out(a.ob,0,0) end; -- OUT::create OUT::plus AM_OUT::AM_out AM_VATTR_ASSIGN_EXPR::ob
if void(a.at) then #OUT + " void(at)";-- AM_VATTR_ASSIGN_EXPR::at OUT::create OUT::plus
else #OUT + " at=" + a.at.str end;-- OUT::create OUT::plus OUT::plus AM_VATTR_ASSIGN_EXPR::at IDENT::str
if void(a.val) then #OUT + " void(val)";-- AM_VATTR_ASSIGN_EXPR::val OUT::create OUT::plus
else #OUT + " val="; AM_out(a.val,0,0) end end; -- OUT::create OUT::plus AM_OUT::AM_out AM_VATTR_ASSIGN_EXPR::val
private AM_VARR_ASSIGN_EXPR_out(a:AM_VARR_ASSIGN_EXPR,first:INT,indent:INT) is
if void(a.ob) then #OUT + " void(ob)"; -- AM_VARR_ASSIGN_EXPR::ob OUT::create OUT::plus
else #OUT + " ob="; AM_out(a.ob,0,0) end; -- OUT::create OUT::plus AM_OUT::AM_out AM_VARR_ASSIGN_EXPR::ob
if void(a.ind) then #OUT + " void(ind)";-- AM_VARR_ASSIGN_EXPR::ind OUT::create OUT::plus
else #OUT + " ind="; AM_out(a.ind,0,0) end;-- OUT::create OUT::plus AM_OUT::AM_out AM_VARR_ASSIGN_EXPR::ind
if void(a.val) then #OUT + " void(val)";-- AM_VARR_ASSIGN_EXPR::val OUT::create OUT::plus
else #OUT + " val="; AM_out(a.val,0,0) end end;-- OUT::create OUT::plus AM_OUT::AM_out AM_VARR_ASSIGN_EXPR::val
private AM_EXCEPT_EXPR_out(a:AM_EXCEPT_EXPR,first:INT,indent:INT) is
end;
private AM_STMT_EXPR_out(a:AM_STMT_EXPR,first:INT,indent:INT) is
#OUT + "\n";-- OUT::create OUT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
if void(a.stmts) then #OUT + " void(stmts)"; -- AM_STMT_EXPR::stmts OUT::create OUT::plus
else #OUT + "stmts="; AM_out(a.stmts,0,indent+9) end;-- OUT::create OUT::plus AM_OUT::AM_out AM_STMT_EXPR::stmts INT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
if void(a.expr) then #OUT + " void(expr)";-- AM_STMT_EXPR::expr OUT::create OUT::plus
else #OUT + "expr= "; AM_out(a.expr,0,indent+9) end end;-- OUT::create OUT::plus AM_OUT::AM_out AM_STMT_EXPR::expr INT::plus
private AM_HERE_EXPR_out(a:AM_HERE_EXPR,first:INT,indent:INT) is
--pSather
end;
private AM_ANY_EXPR_out(a:AM_ANY_EXPR,first:INT,indent:INT) is
--pSather
end;
private AM_WHERE_EXPR_out(a:AM_WHERE_EXPR,first:INT,indent:INT) is
--pSather
#OUT + " expr="; AM_out(a.arg,0,indent+19); end;-- OUT::create OUT::plus AM_OUT::AM_out AM_WHERE_EXPR::arg INT::plus
private AM_NEAR_EXPR_out(a:AM_NEAR_EXPR,first:INT,indent:INT) is
--pSather
#OUT + " expr="; AM_out(a.arg,0,indent+18); end;-- OUT::create OUT::plus AM_OUT::AM_out AM_NEAR_EXPR::arg INT::plus
private AM_FAR_EXPR_out(a:AM_FAR_EXPR,first:INT,indent:INT) is
--pSather
#OUT + " expr="; AM_out(a.arg,0,17); end;-- OUT::create OUT::plus AM_OUT::AM_out AM_FAR_EXPR::arg
private AM_AT_EXPR_out(a:AM_AT_EXPR,first:INT,indent:INT) is
--pSather
#OUT + " expr="; AM_out(a.e,0,indent+15); -- OUT::create OUT::plus AM_OUT::AM_out AM_AT_EXPR::e INT::plus
#OUT + " at="; AM_out(a.at,0,0); end;-- OUT::create OUT::plus AM_OUT::AM_out AM_AT_EXPR::at
private AM_CLUSTER_EXPR_out(a:AM_CLUSTER_EXPR,first:INT,indent:INT) is
--pSather
end;
private AM_CLUSTER_SIZE_EXPR_out(a:AM_CLUSTER_SIZE_EXPR,first:INT,indent:INT) is
--pSather
#OUT + "cluster_size";-- OUT::create OUT::plus
end;
private AM_CALL_ARG_out(a:AM_CALL_ARG, first:INT, indent:INT) is
#OUT + " (";-- OUT::create OUT::plus
#OUT + " mode=" + a.mode.str; -- OUT::create OUT::plus OUT::plus AM_CALL_ARG::mode
#OUT + " expr="; -- OUT::create OUT::plus
AM_out(a.expr,0,indent+8); -- AM_OUT::AM_out AM_CALL_ARG::expr INT::plus
#OUT + ")";-- OUT::create OUT::plus
end;
private AM_FORMAL_ARG_out(a:AM_FORMAL_ARG, first:INT, indent:INT) is
#OUT + " (";-- OUT::create OUT::plus
#OUT + " mode=" + a.mode.str; -- OUT::create OUT::plus OUT::plus AM_FORMAL_ARG::mode
#OUT + " expr="; -- OUT::create OUT::plus
AM_out(a.expr,0,indent+8); -- AM_OUT::AM_out AM_FORMAL_ARG::expr INT::plus
#OUT + ")";-- OUT::create OUT::plus
end;
private AM_ROUT_CALL_EXPR_out(a:AM_ROUT_CALL_EXPR,first:INT,indent:INT) is
#OUT + " fun=" + a.fun.str+"\n";-- OUT::create OUT::plus OUT::plus AM_ROUT_CALL_EXPR::fun SIG::str OUT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "args=";-- OUT::create OUT::plus
loop i::=a.ind!;-- AM_ROUT_CALL_EXPR::ind!
if i/=0 then prindent(indent+8); end;-- INT::is_eq BOOL::not AM_OUT::prindent INT::plus
AM_out(a.elt!,0,indent+8);-- AM_OUT::AM_out AM_ROUT_CALL_EXPR::elt! INT::plus
#OUT+"\n";-- OUT::create OUT::plus
end;
end;
private AM_ITER_CALL_EXPR_out(a:AM_ITER_CALL_EXPR,first:INT,indent:INT) is
#OUT + "fun=" + a.fun.str+" init_before_loop="+a.init_before_loop+"\n";-- OUT::create OUT::plus OUT::plus AM_ITER_CALL_EXPR::fun SIG::str OUT::plus OUT::plus AM_ITER_CALL_EXPR::init_before_loop OUT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "init="; AM_out(a.init,0,indent+8);-- OUT::create OUT::plus AM_OUT::AM_out AM_ITER_CALL_EXPR::init INT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "args=";-- OUT::create OUT::plus
loop i::=a.ind!;-- AM_ITER_CALL_EXPR::ind!
if i/=0 then prindent(indent+8); end;-- INT::is_eq BOOL::not AM_OUT::prindent INT::plus
AM_out(a.elt!,0,indent+8);-- AM_OUT::AM_out AM_ITER_CALL_EXPR::elt! INT::plus
#OUT+"\n";-- OUT::create OUT::plus
end;
end;
private AM_BND_ROUT_CALL_EXPR_out(a:AM_BND_ROUT_CALL_EXPR,first:INT,indent:INT) is
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "br="; AM_out(a.br); #OUT+"\n";-- OUT::create OUT::plus AM_OUT::AM_out AM_BND_ROUT_CALL_EXPR::br OUT::create OUT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "args=";-- OUT::create OUT::plus
loop i::=a.ind!;-- AM_BND_ROUT_CALL_EXPR::ind!
if i/=0 then prindent(indent+8); end;-- INT::is_eq BOOL::not AM_OUT::prindent INT::plus
AM_out(a.elt!,0,indent+8);-- AM_OUT::AM_out AM_BND_ROUT_CALL_EXPR::elt! INT::plus
#OUT+"\n";-- OUT::create OUT::plus
end;
end;
private AM_BND_ITER_CALL_EXPR_out(a:AM_BND_ITER_CALL_EXPR,first:INT,indent:INT) is
#OUT + "bi="; AM_out(a.bi,0,indent+25);#OUT+"\n";-- OUT::create OUT::plus AM_OUT::AM_out AM_BND_ITER_CALL_EXPR::bi INT::plus OUT::create OUT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "init="; AM_out(a.init,0,indent+8); -- OUT::create OUT::plus AM_OUT::AM_out AM_BND_ITER_CALL_EXPR::init INT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "args=";-- OUT::create OUT::plus
loop i::=a.ind!;-- AM_BND_ITER_CALL_EXPR::ind!
if i/=0 then prindent(indent+8); end;-- INT::is_eq BOOL::not AM_OUT::prindent INT::plus
AM_out(a.elt!,0,indent+8);-- AM_OUT::AM_out AM_BND_ITER_CALL_EXPR::elt! INT::plus
#OUT+"\n";-- OUT::create OUT::plus
end;
end;
private AM_EXT_CALL_EXPR_out(a:AM_EXT_CALL_EXPR,first:INT,indent:INT) is
#OUT + "fun=" + a.fun.str+"\n";-- OUT::create OUT::plus OUT::plus AM_EXT_CALL_EXPR::fun SIG::str OUT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "args=";-- OUT::create OUT::plus
loop i::=a.ind!;-- AM_EXT_CALL_EXPR::ind!
if i/=0 then prindent(indent+8); end;-- INT::is_eq BOOL::not AM_OUT::prindent INT::plus
AM_out(a.elt!,0,indent+8);-- AM_OUT::AM_out AM_EXT_CALL_EXPR::elt! INT::plus
#OUT+"\n";-- OUT::create OUT::plus
end;
end;
private AM_VOID_CONST_out(a:AM_VOID_CONST,first:INT,indent:INT) is
if void(a.tp_at) then #OUT + "void" else -- AM_VOID_CONST::tp_at OUT::create OUT::plus
#OUT + a.tp_at.str; end; end;-- OUT::create OUT::plus AM_VOID_CONST::tp_at
private AM_ARR_CONST_out(a:AM_ARR_CONST,first:INT,indent:INT) is
#OUT + "elt_tp=" + a.elt_tp.str+"\n";-- OUT::create OUT::plus OUT::plus AM_ARR_CONST::elt_tp TP_CLASS::str OUT::plus
prindent(indent+3);-- AM_OUT::prindent INT::plus
#OUT + "elts=";-- OUT::create OUT::plus
loop AM_out(a.elts.elt!) end end; -- AM_OUT::AM_out AM_ARR_CONST::elts ARRAY{1}::elt!
private AM_BOOL_CONST_out(a:AM_BOOL_CONST,first:INT,indent:INT) is
if a.val then #OUT + "val=true" -- AM_BOOL_CONST::val OUT::create
else #OUT + " val=false" end end;-- OUT::plus OUT::create OUT::plus
private AM_CHAR_CONST_out(a:AM_CHAR_CONST,first:INT,indent:INT) is
#OUT + "bval='" + a.bval + "'" end;-- OUT::create OUT::plus OUT::plus AM_CHAR_CONST::bval OUT::plus
private AM_STR_CONST_out(a:AM_STR_CONST,first:INT,indent:INT) is
#OUT + "bval=" + a.bval end;-- OUT::create OUT::plus OUT::plus AM_STR_CONST::bval
private AM_INT_CONST_out(a:AM_INT_CONST,first:INT,indent:INT) is
#OUT + "val=" + a.val end;-- OUT::create OUT::plus OUT::plus AM_INT_CONST::val
private AM_INTI_CONST_out(a:AM_INTI_CONST,first:INT,indent:INT) is
#OUT + "val=" + a.val.str end;-- OUT::create OUT::plus OUT::plus AM_INTI_CONST::val INTI::str
private AM_FLT_CONST_out(a:AM_FLT_CONST,first:INT,indent:INT) is
#OUT + "val=" + a.val.str end;-- OUT::create OUT::plus OUT::plus AM_FLT_CONST::val RAT::str
private AM_FLTD_CONST_out(a:AM_FLTD_CONST,first:INT,indent:INT) is
#OUT + "val=" + a.val.str end;-- OUT::create OUT::plus OUT::plus AM_FLTD_CONST::val RAT::str
private AM_FLTX_CONST_out(a:AM_FLTX_CONST,first:INT,indent:INT) is
#OUT + "val=" + a.val.str end; -- OUT::create OUT::plus OUT::plus AM_FLTX_CONST::val RAT::str
private AM_FLTDX_CONST_out(a:AM_FLTDX_CONST,first:INT,indent:INT) is
#OUT + "val=" + a.val.str end; -- OUT::create OUT::plus OUT::plus AM_FLTDX_CONST::val RAT::str
private AM_FLTI_CONST_out(a:AM_FLTI_CONST,first:INT,indent:INT) is
#OUT + "val=" + a.val.str end; -- OUT::create OUT::plus OUT::plus AM_FLTI_CONST::val RAT::str
end; -- class AM_OUT
-- vim:sw=3:nosmartindent