ulisp-esp icon indicating copy to clipboard operation
ulisp-esp copied to clipboard

very simple keyword support

Open dragoncoder047 opened this issue 1 year ago • 4 comments

earlier I think I mentioned that I implemented generic keywords by automatically wrapping them in (quote) in the reader, but that's probably a bad solution if I ever implement macros. I just came up with another solution that is super simple and works with macros:

    // in eval ()
    if (symbolp(form)) {
+       if (nthchar(princtostring(form), 0) == ':') return form; // Keyword
        symbol_t name = form->name;
        object* pair = value(name, env);
        if (pair != NULL) return cdr(pair);
        pair = value(name, GlobalEnv);
        if (pair != NULL) return cdr(pair);
        else if (builtinp(name)) return form;
        Context = NIL;
        error(PSTR("undefined"), form);
    }

dragoncoder047 avatar Apr 03 '23 20:04 dragoncoder047