UtilContコンパイラ

UtilContのソースプログラムを入力して下さい。


入力の文法カテゴリ:
Expr(式) Decls (宣言 つまり、 変数 = 式; 変数 = 式; … ; 変数 = 式
出力にdo式を使いますか:
はい do式を使います いいえ `bindM`を使います

入力例(コピペして使って下さい):
foo = \ n ->
  begin
    setM xP 1;
    setM yP n;
    while getM yP > 0 do
      begin
        val r = getM xP in
        val n = getM yP in
        begin
          if n==10 then break
          else if n==3 then
            begin
              setM xP r;
              setM yP (n-1);
              continue
            end
          else ();
          setM xP (r*n);
          setM yP (n-1)
        end
      end;
    getM xP
  end
;
bar = \ x -> begin     
	       setM xP 1;
	     label1:
	       if getM xP > 100 then
	         goto label2
	       else ();
	       setM xP (getM xP * 2);
	       goto label1;
	     label2:
	       getM xP
	     end
;
fact = \ n -> if n==0 then 1 else n*fact(n-1)

Koji Kagawa