diff --git a/src/c/nucl.c b/src/c/nucl.c index 58d7d890a..0240c9f61 100644 --- a/src/c/nucl.c +++ b/src/c/nucl.c @@ -917,12 +917,110 @@ ecl_def_function(_nucl_word_tt, nucl_word_test, static, const); #define make_dict_entry(name,value) \ ecl_cast_ptr(cl_object, &ecl_constexpr_symbol(ecl_stp_special, name, value)) +#define make_code_entry(name,code) \ + make_dict_entry(name, ecl_make_fixnum(code)) + static const cl_object _nucl_sym_def = make_dict_entry(":", ECL_UNBOUND); static const cl_object _nucl_sym_fed = make_dict_entry(";", ECL_UNBOUND); static cl_object nucl_dictionary_default_entries[] = { _nucl_sym_def, _nucl_sym_fed, + /* opcodes */ + make_code_entry("NOP", OP_NOP), + make_code_entry("QUOTE", OP_QUOTE), + make_code_entry("CALLW", OP_CALLW), + make_code_entry("ENDP", OP_ENDP), + make_code_entry("CONS", OP_CONS), + make_code_entry("CAR", OP_CAR), + make_code_entry("CDR", OP_CDR), + make_code_entry("LIST", OP_LIST), + make_code_entry("LISTA", OP_LISTA), + make_code_entry("CONS_CAR", OP_CONS_CAR), + make_code_entry("CONS_CDR", OP_CONS_CDR), + make_code_entry("INT", OP_INT), + make_code_entry("PINT", OP_PINT), + make_code_entry("VAR", OP_VAR), + make_code_entry("VARC", OP_VARC), + make_code_entry("VARS", OP_VARS), + make_code_entry("PUSH", OP_PUSH), + make_code_entry("PUSHV", OP_PUSHV), + make_code_entry("PUSHVC", OP_PUSHVC), + make_code_entry("PUSHVS", OP_PUSHVS), + make_code_entry("PUSHQ", OP_PUSHQ), + make_code_entry("CALLG1", OP_CALLG1), + make_code_entry("CALLG2", OP_CALLG2), + make_code_entry("CALL", OP_CALL), + make_code_entry("CALLG", OP_CALLG), + make_code_entry("FCALL", OP_FCALL), + make_code_entry("MCALL", OP_MCALL), + make_code_entry("POP", OP_POP), + make_code_entry("POP1", OP_POP1), + make_code_entry("POPREQ", OP_POPREQ), + make_code_entry("POPOPT", OP_POPOPT), + make_code_entry("NOMORE", OP_NOMORE), + make_code_entry("POPREST", OP_POPREST), + make_code_entry("PUSHKEYS", OP_PUSHKEYS), + make_code_entry("EXIT", OP_EXIT), + make_code_entry("FLET", OP_FLET), + make_code_entry("LABELS", OP_LABELS), + make_code_entry("LFUNCTION", OP_LFUNCTION), + make_code_entry("CFUNCTION", OP_CFUNCTION), + make_code_entry("FUNCTION", OP_FUNCTION), + make_code_entry("CLOSE", OP_CLOSE), + make_code_entry("GO", OP_GO), + make_code_entry("GO_CFB", OP_GO_CFB), + make_code_entry("RETURN", OP_RETURN), + make_code_entry("RETURN_CFB", OP_RETURN_CFB), + make_code_entry("THROW", OP_THROW), + make_code_entry("JMP", OP_JMP), + make_code_entry("JNIL", OP_JNIL), + make_code_entry("JT", OP_JT), + make_code_entry("JEQL", OP_JEQL), + make_code_entry("JNEQL", OP_JNEQL), + make_code_entry("UNBIND", OP_UNBIND), + make_code_entry("UNBINDS", OP_UNBINDS), + make_code_entry("BIND", OP_BIND), + make_code_entry("PBIND", OP_PBIND), + make_code_entry("VBIND", OP_VBIND), + make_code_entry("BINDS", OP_BINDS), + make_code_entry("PBINDS", OP_PBINDS), + make_code_entry("VBINDS", OP_VBINDS), + make_code_entry("SETQ", OP_SETQ), + make_code_entry("SETQC", OP_SETQC), + make_code_entry("SETQS", OP_SETQS), + make_code_entry("PSETQ", OP_PSETQ), + make_code_entry("PSETQC", OP_PSETQC), + make_code_entry("PSETQS", OP_PSETQS), + make_code_entry("VSETQ", OP_VSETQ), + make_code_entry("VSETQC", OP_VSETQC), + make_code_entry("VSETQS", OP_VSETQS), + make_code_entry("BLOCK", OP_BLOCK), + make_code_entry("DO", OP_DO), + make_code_entry("CATCH", OP_CATCH), + make_code_entry("FRAME", OP_FRAME), + make_code_entry("TAGBODY", OP_TAGBODY), + make_code_entry("EXIT_TAGBODY", OP_EXIT_TAGBODY), + make_code_entry("EXIT_FRAME", OP_EXIT_FRAME), + make_code_entry("PROTECT", OP_PROTECT), + make_code_entry("PROTECT_NORMAL", OP_PROTECT_NORMAL), + make_code_entry("PROTECT_EXIT", OP_PROTECT_EXIT), + make_code_entry("PROGV", OP_PROGV), + make_code_entry("EXIT_PROGV", OP_EXIT_PROGV), + make_code_entry("PUSHVALUES", OP_PUSHVALUES), + make_code_entry("POPVALUES", OP_POPVALUES), + make_code_entry("PUSHMOREVALUES", OP_PUSHMOREVALUES), + make_code_entry("VALUES", OP_VALUES), + make_code_entry("VALUEREG0", OP_VALUEREG0), + make_code_entry("NTHVAL", OP_NTHVAL), + make_code_entry("NIL", OP_NIL), + make_code_entry("NOT", OP_NOT), + make_code_entry("PUSHNIL", OP_PUSHNIL), + make_code_entry("CSET", OP_CSET), + make_code_entry("STEPIN", OP_STEPIN), + make_code_entry("STEPCALL", OP_STEPCALL), + make_code_entry("STEPOUT", OP_STEPOUT), + /* indirect words */ make_dict_entry(".D", _nucl_word_pd), make_dict_entry(".S", _nucl_word_ps), make_dict_entry(".", _nucl_word_dp),