📄 test1.ml
字号:
#load "sem.cmo";;
#load "instr.cmo";;
#load "lexes.cmo";;
#load "parser.cmo";;
#load "syntax.cmo";;
open Sem;;
open Instr;;
open Syntax;;
let compile source =let syn_tree = analyse source in sem_compute syn_tree ;;
#load "sem.cmo";;
#load "instr.cmo";;
#load "lexes.cmo";;
#load "parser.cmo";;
#load "syntax.cmo";;
#load "code.cmo";;
open Sem;;
open Instr;;
open Syntax;;
open Code;;
let compile source =
let syn_tree = analyse source in
let sem_tree = sem_compute syn_tree in
let inst_list = code sem_tree
in i_print inst_list;;
compile "
program exam;
var z:integer;
proc q(x:integer;var y:integer);
begin
if x<=0 then x:=1
else begin end;
if x>1 then q(x-1,z)
else begin
z := 1;
y := x*z
end
end;
begin
z := 0;
q(10,z)
end.
"
;;
compile "
program test0;
begin
end.
"
;;
compile "
program essai;
var tab : array [0..10] of integer;
proc p1(var p : array [x..y] of integer);
begin
end;
begin
p1(tab)
end.
";;
compile "
program essai;
var tab : array [0..10] of integer;
proc p1(p : array [x..y] of integer);
var z:integer;
begin
z:=x;
z:=y
end;
begin
p1(tab)
end.
";;
compile "
program test1;
var x,y : integer;
proc q();
proc r();
begin
x := 0
end;
begin
y := 0
end;
begin
x := y
end.
";;
compile "
program test1;
var x: integer;
var y:integer;
proc q();
proc r();
begin
x := 0
end;
begin
y := 0
end;
begin
x := y
end.
";;
compile "
program test2;
var x,y,z:integer;
proc swap(var x:integer; var y:integer);
var z:integer;
begin
z := x;
x := y;
y := z
end;
proc aff(var x:integer; y:integer);
begin
x := y
end;
proc max(x:integer;y:integer;var z:integer);
begin
if x < y
then z := y
else z := x
end;
begin
swap(x,y);
aff(z,1)
end.
";;
compile "
program toto;
var a:array [1..10] of integer;
proc swap(var x:integer; var y:integer);
var z:integer;
begin
z := x;
x := y;
y := z
end;
proc q(var x:integer;y:boolean);
var z:array[x..100] of boolean;
begin
z[(x+100)/2] := not y
end;
begin
swap(a[1],a[3])
end.
";;
compile "
program toto;
var z:integer;
proc q(x:integer; var y:integer);
begin
if x<=0 then x := 1
else begin end;
if x>1 then
q(x-1,z)
else
z := 1;
y := x*z
end;
begin
z := 0;
q(10,z)
end.
";;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -