aboutsummaryrefslogtreecommitdiffstats
path: root/foci.h
diff options
context:
space:
mode:
Diffstat (limited to 'foci.h')
-rw-r--r--foci.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/foci.h b/foci.h
index aae4946..b2b8e1c 100644
--- a/foci.h
+++ b/foci.h
@@ -35,13 +35,13 @@
#define FTH(w) enter, (w##_body)
#define END fexit, };
#define NATIVE(name, tname, prev, attr) \
- static const void * const name##_body[2]; \
+ const void * const name##_body[2]; \
NAKED void name(void); \
- static const struct word_t w_##name = { \
+ const struct word_t w_##name = { \
name##_body, prev, \
(attr | ATTR_NATIVE) + sizeof(tname) - 1, tname \
}; \
- static const void * const name##_body[2] = { name, fexit }; \
+ const void * const name##_body[2] = { name, fexit }; \
NAKED void name(void)
#define W(name, tname, prev) WORD(name, tname, prev, 0)
@@ -87,6 +87,9 @@ register intptr_t tmp asm("r7");
#define NEXT asm("incd r6\nbr @r6")
#endif // FOCI_MSP430
+extern const struct word_t w_immediate;
+#define LATEST_INIT &w_immediate
+
extern void foci_putchar(int);
extern int foci_getchar(void);
@@ -95,7 +98,7 @@ int depth(void);
int rdepth(void);
int compiling(void);
void interpret(void);
-void define(struct word_t *w);
+void define(const struct word_t *w);
void fexit(void); // internal use only