open Node let _ = try let lexbuf = Lexing.from_channel stdin in (* while true do *) let result = Parser.program Lexer.token lexbuf in List.iter (fun x -> print_exp x ; print_newline() ) result; print_env !global_env; print_newline(); print_newline(); (* Bruijnize the environment *) (* global_env := List.rev_map (fun (s,e) -> (s,expand (bruijnize e))) !global_env; *) (* Bruijnize and interpret *) List.iter begin fun x -> print_string "Interpreting: "; print_exp (bruijnize x); print_newline(); let ans = eval (bruijnize x) in print_string "Result: "; print_exp(ans); print_newline() end result; () (* done *) with Lexer.Eof -> print_string "There are "; print_int (List.length !global_env); print_string " in the list.\n"; print_env !global_env; print_newline(); print_string "hmmm...\n"; exit 0