diff --git a/doc/lectures.tex b/doc/lectures.tex index c12e8fbb3..6865ef6a4 100644 --- a/doc/lectures.tex +++ b/doc/lectures.tex @@ -79,7 +79,7 @@ keywords={let, begin, end, in, match, type, and, fun, function, try, with, class, object, method, of, rec, repeat, until, while, not, do, done, as, val, inherit, module, sig, @type, struct, -if, then, else, open, virtual, new, fresh, skip, od, fi, elif, for, local, return, read, write}, +if, then, else, open, virtual, new, fresh, skip, od, fi, elif, for, local, return, read, write, fi, case, esac, od}, sensitive=true, %basicstyle=\small, commentstyle=\scriptsize\rmfamily, @@ -125,5 +125,6 @@ language=ocaml \input{05} \input{06} \input{07} +\input{08} \end{document} diff --git a/src/Driver.ml b/src/Driver.ml index 2239a6693..04bb8fe88 100644 --- a/src/Driver.ml +++ b/src/Driver.ml @@ -4,7 +4,7 @@ let parse infile = let s = Util.read infile in Util.parse (object - inherit Matcher.t s + inherit Matcher.stream s inherit Util.Lexers.decimal s inherit Util.Lexers.string s inherit Util.Lexers.char s diff --git a/src/SM.ml b/src/SM.ml index 10c1b5d46..1c62fb7e2 100644 --- a/src/SM.ml +++ b/src/SM.ml @@ -33,7 +33,7 @@ with show (* The type for the stack machine program *) type prg = insn list -let print_prg p = List.iter (fun i -> Printf.printf "%s\n\!" (show(insn) i)) p +let print_prg p = List.iter (fun i -> Printf.printf "%s\n" (show(insn) i)) p (* The type for the stack machine configuration: control stack, stack and configuration from statement interpreter diff --git a/src/X86.ml b/src/X86.ml index 3f194c49c..354efa0c6 100644 --- a/src/X86.ml +++ b/src/X86.ml @@ -103,7 +103,7 @@ open SM of x86 instructions *) let compile env code = - (*SM.print_prg code;*) + SM.print_prg code; flush stdout; let suffix = function | "<" -> "l" @@ -279,7 +279,7 @@ let compile env code = else [Binop (op, x, y); Or1 y] ) | LABEL s -> (if env#is_barrier then (env#drop_barrier)#retrieve_stack s else env), [Label s] - + | JMP l -> (env#set_stack l)#set_barrier, [Jmp l] | CJMP (s, l) ->