/* lisp-object QuickHandy-object ----------- ----------------- Number Int Symbol String */ global error_message = NIL; #include "lisp.qhl" #include "symbol" #include "eval" #include "subr" #include "read" function write_error_message() { if(typeof(error_message) == QH_String) writeln(error_message); error_message = NIL; putchar('\a'); } setq_symbol_value("nil", "nil"); setq_symbol_value("NIL", "nil"); setq_symbol_value("t", "t"); setq_symbol_value("T", "t"); if(ARGC == 1) { eval_file(ARGV(0)); exit(0); } while(1) { write(">"); local expr = lisp_read::read_from_file(); if(error_message) // check the syntax { write_error_message(); continue; } if(expr == NIL) { writeln(); exit(0); } expr = eval(expr); if(error_message) { write_error_message(); continue; } lisp::print(expr); }