//////////////////////////////// //PaScheme PaScheme// //////////////////////////////// // // // Distribute under GPL v.2 // // or later // // (c)2002 Petr Cermak // // xgxg@seznam.cz // //////////////////////////////// #ifndef CONSTS_H #define CONSTS_H /* * Built-in functions */ Object* (* const functions[]) (Object* args, HDef* defs) = { &plus_f, &minus_f, &mult_f, &div_f, &g_f, &l_f, &ge_f, &le_f, &ne_f, &eq_f, &lambda_f, &cond_f, &if_f, &cons_f, &car_f, &cdr_f, &null_f, &list_f, "e_f, &spy_f, &eval_f }; char* const fcstr[] = { "+", "-", "*", "/", ">", "<", ">=", "<=", "!=", "=", "lambda", "cond", "if", "cons", "car", "cdr", "null?", "list", "quote", "spy", "eval" }; const int NBIFS=21; Object* bif_objects[NBIFS]; // filled in function create_bifobjs /* * Common defines */ #define CR 13 #define LF 10 #define SP 32 #define LP '(' #define RP ')' #define QU '"' #define AP '\'' #define TB 9 #define DEFINE "define" // error return values #define EIOE 1 #define EMEM 2 #define ENAME 3 #define EEOF 4 #define EARGS 5 #define ETYPE 6 #define EDIV 7 #define EDEBUG 8 #define ESYNTAX 9 // boolean values #define TRUE 1 #define FALSE 0 // error messages #define SEDNCALLED "Nothing called or # of ( is smaller than # of )\n" #define SENAMEID "Unkonwn identifier: " #define SENAMEFC "Unknown function call: " #define SESYNTAX "Syntax error\n" #define SETNFUNC "Not a function call!\n" #define SEUFARGS "Wrong number of arguments in user function call\n" #define SEEVARGS "Wrong number of arguments in eval\n" #define SECOARGS "Wrong number of arguments in cons\n" #define SENUARGS "Wrong number of arguments in null?\n" #define SETYPENU "Wrong type of argument in null?\n" #define SECAARGS "Wrong number of arguments in car\n" #define SETYPECA "Wrong type of argument in car\n" #define SECDARGS "Wrong number of arguments in cdr\n" #define SETYPECD "Wrong type of argument in cdr\n" #define SECNARGS "Wrong number of arguments in cond\n" #define SETYPEINT "Wrong type of condition in cond - must be integer\n" #define SERETARGS "Must specify return value in cond\n" #define SEIFARGS "Must specify return value in cond\n" #define SELAARGS "Wrong number of arguments in lambda\n" #define SELASYNT "Second argument of lambda must be list of formal parameters\n" #define SEARARGS "Wrong number of arguments in %s\n" #define SETYPEAR "Wrong type of arguments in %s\n" #define SEPLARGS "Wrong number of arguments in +\n" #define SETYPEPL "Wrong type of argument in +\n" #define SEMIARGS "Wrong number of arguments in -\n" #define SETYPEMI "Wrong type of argument in -\n" #define SEMUARGS "Wrong number of arguments in *\n" #define SETYPEMU "Wrong type of argument in *\n" #define SEARGSDI "Wrong number of arguments in /\n" #define SEDITYPE "Wrong type of argument in /\n" #define SEDIZERO "Divided by zero\n" #define SESPARGS "Wrong number of arguments in spy\n" #define SEDEFSYNT "Wrong syntax of define\n" #define SEMEM "Error allocating memory\n" #define SEDCONS "Must be CONS\n" #define SEDHASH "Can't add this to hash\n" #define SEUEOF "Unexpected end of file\n" #define SEPEOF "Missing ) \n" #endif //#ifndef CONSTS_H