do {
word_t* current = (word_t*)( onward_pcfetch() );
/* If the current instruction is null then "return" */
- if (0u == current) {
+ if ((void*)0u == current) {
pc = (value_t)onward_rspop();
/* if the instruction is a primitive then execute the c function */
} else if (current->flags & F_PRIMITIVE_MSK) {
} onward_init_t;
#define deccode(c_name) \
- void c_name##_code(void); \
- const word_t c_name
+ extern void c_name##_code(void); \
+ extern const word_t c_name
/** Define a built-in word that executes native code */
#define defcode(name_str, c_name, prev, flags) \
void c_name##_code(void)
#define decword(c_name) \
- const word_t c_name
+ extern const word_t c_name
/** Define a built-in word that is defined by references to other words. */
#define defword(name_str, c_name, prev, flags) \
const value_t c_name##_code[] =
#define decvar(c_name) \
- value_t c_name; \
- const word_t c_name##_word
+ extern value_t c_name; \
+ extern const word_t c_name##_word
/** Define a built-in word representing a variable with the provided value */
#define defvar(name_str, c_name, initial, prev) \
value_t c_name = initial
#define decconst(c_name) \
- const value_t c_name; \
- const word_t c_name##_word
+ extern const value_t c_name; \
+ extern const word_t c_name##_word
/** Define a built-in word representing a constant with the provided value */
#define defconst(name_str, c_name, value, prev) \