/* l_sym.c - Procedures for symbols in L. Samuel A. Rebelsky Version 0.1 of 3 March 2007 */ #include #include #include "l.h" pair L_CAR; pair L_CDR; pair L_COND; pair L_CONS; pair L_DEFINE; pair L_EQ; pair L_ERROR; pair L_FALSE; pair L_LABEL; pair L_LAMBDA; pair L_NIL; pair L_QUOTE; pair L_TRUE; void init_sym() { L_NIL = insert("nil"); L_CAR = insert("car"); L_CDR = insert("cdr"); L_COND = insert("cond"); L_CONS = insert("cons"); L_DEFINE = insert("define"); L_EQ = insert("eq"); L_ERROR = insert(""); L_FALSE = insert("f"); L_LABEL = insert("label"); L_LAMBDA = insert("lambda"); L_QUOTE = insert("quote"); L_TRUE = insert("t"); } /* init_sym() */ pair insert(char *val) { /* STUB */ char *result = (char *) malloc(1 + strlen(val)); strcpy(result, val); return allocate_pair(L_SYMBOL, (pointer) result); } /* insert(char *) */