📄 test_02.mal
字号:
# Monet Mil to Mal compiler# Copyright (c) 2001-2004, CWI. All rights reserved.#Predefined code segment#The compiler can not guarantee an accurate compilation,#because MIL unlike MAL is a dynamically typed language.#A few guidelines to maximize usefullness.#- make the type of variables explicit, in particular 'nil'#- upon advice of M2m to remap identifiers, change it in your program directly#include "mil_prelude"; io.print("setoid(oid(20000000));"); aa_a := oid(20000000); ba_a := setoid(aa_a); io.print("var x := new(oid,chr);"); x := new(nil:oid,nil:chr); io.print("x.insert(oid(1),'a');"); ca_a := oid(1); da_a := insert(x,ca_a,'a'); io.print("x.insert(oid(2),'a');"); ea_a := oid(2); fa_a := insert(x,ea_a,'a'); io.print("x.insert(oid(3),'b');"); ga_a := oid(3); ha_a := insert(x,ga_a,'b'); io.print("x.insert(oid(4),'b');"); ia_a := oid(4); ja_a := insert(x,ia_a,'b'); io.print("x.insert(oid(5),'b');"); ka_a := oid(5); la_a := insert(x,ka_a,'b'); io.print("x.insert(oid(6),'b');"); ma_a := oid(6); na_a := insert(x,ma_a,'b'); io.print("x.insert(oid(7),'c');"); oa_a := oid(7); pa_a := insert(x,oa_a,'c'); io.print("x.insert(oid(8),'c');"); qa_a := oid(8); ra_a := insert(x,qa_a,'c'); io.print("x.rename(\"x\");"); sa_a := bat.setName(x,"x"); io.print("x.roles(\"oid\",\"x\");"); ta_a := roles(x,"oid","x"); io.print("x.persists(true);"); ua_a := persists(x,true); io.print("var y:= new(oid,chr);"); y := new(nil:oid,nil:chr); io.print("y.insert(oid(1),'a');"); va_a := oid(1); wa_a := insert(y,va_a,'a'); io.print("y.insert(oid(2),'c');"); xa_a := oid(2); ya_a := insert(y,xa_a,'c'); io.print("y.insert(oid(3),'b');"); ab_a := oid(3); bb_a := insert(y,ab_a,'b'); io.print("y.insert(oid(4),'b');"); cb_a := oid(4); db_a := insert(y,cb_a,'b'); io.print("y.insert(oid(5),'b');"); eb_a := oid(5); fb_a := insert(y,eb_a,'b'); io.print("y.insert(oid(6),'c');"); gb_a := oid(6); hb_a := insert(y,gb_a,'c'); io.print("y.insert(oid(7),'a');"); ib_a := oid(7); jb_a := insert(y,ib_a,'a'); io.print("y.insert(oid(8),'a');"); kb_a := oid(8); lb_a := insert(y,kb_a,'a'); io.print("y.rename(\"y\");"); mb_a := bat.setName(y,"y"); io.print("y.roles(\"oid\",\"y\");"); nb_a := roles(y,"oid","y"); io.print("y.persists(true);"); ob_a := persists(y,true); io.print("var z:= new(oid,chr);"); z := new(nil:oid,nil:chr); io.print("z.insert(oid(1),'c');"); pb_a := oid(1); qb_a := insert(z,pb_a,'c'); io.print("z.insert(oid(2),'a');"); rb_a := oid(2); sb_a := insert(z,rb_a,'a'); io.print("z.insert(oid(3),'b');"); tb_a := oid(3); ub_a := insert(z,tb_a,'b'); io.print("z.insert(oid(4),'c');"); vb_a := oid(4); wb_a := insert(z,vb_a,'c'); io.print("z.insert(oid(5),'a');"); xb_a := oid(5); yb_a := insert(z,xb_a,'a'); io.print("z.insert(oid(6),'a');"); ac_a := oid(6); bc_a := insert(z,ac_a,'a'); io.print("z.insert(oid(7),'c');"); cc_a := oid(7); dc_a := insert(z,cc_a,'c'); io.print("z.insert(oid(8),'a');"); ec_a := oid(8); fc_a := insert(z,ec_a,'a'); io.print("z.rename(\"z\");"); gc_a := bat.setName(z,"z"); io.print("y.roles(\"oid\",\"z\");"); hc_a := roles(y,"oid","z"); io.print("z.persists(true);"); ic_a := persists(z,true); io.print("print(x,y,z);"); jc_a := print(x,y,z); io.print("var t1 := x.CTgroup();"); t1 := group(x); io.print("t1.print();"); kc_a := print(t1); io.print("var t2 := t1.CTderive(y);"); t2 := group(t1,y); io.print("t2.print();"); lc_a := print(t2); io.print("t2 := t1.CTgroup(y);"); t2 := group(t1,y); io.print("t2.print();"); mc_a := print(t2); io.print("#print(t2.histogram,x,y);\n"); io.print("#CTprint(t2.histogram,y);"); io.print("#CTprint(t2.histogram,y);\n"); io.print(""); io.print("#x1y := CTderive(x1,y);\n"); io.print("#h := x1y.histogram();"); io.print("#h := x1y.histogram();\n"); io.print("#h.roles(\"count\",\"oid\");"); io.print("#h.roles(\"count\",\"oid\");\n"); io.print("#print(h.reverse,x,y);"); io.print("#print(h.reverse,x,y);\n"); io.print("#"); io.print("#\n"); io.print("#x1yz := CTderive(x1y,z);"); io.print("#x1yz := CTderive(x1y,z);\n"); io.print("#h := x1yz.histogram();"); io.print("#h := x1yz.histogram();\n"); io.print("#h.roles(\"count\",\"oid\");"); io.print("#h.roles(\"count\",\"oid\");\n"); io.print("#print(h.reverse,x,y,z);"); io.print("#print(h.reverse,x,y,z);\n"); io.print("#"); io.print("#\n"); io.print("#"); io.print("#\n"); io.print("#CThistogram(x1).print;"); io.print("#CThistogram(x1).print;\n"); io.print("#CThistogram(x1y).print;"); io.print("#CThistogram(x1y).print;\n"); io.print("#CThistogram(x1yz).print;"); io.print("#CThistogram(x1yz).print;\n"); io.print(""); io.print("quit();"); nc_a := quit();#Identifer 'rename' mapped to 'bat.setName'#Identifer 'CTgroup' mapped to 'group'#Identifer 'CTderive' mapped to 'group'
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -