From 548804f4b49a06aa9033bea2dd292f8a12997b82 Mon Sep 17 00:00:00 2001 From: Clyne Sullivan Date: Tue, 23 Jan 2018 08:17:07 -0500 Subject: initial commit --- parser.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 parser.h (limited to 'parser.h') diff --git a/parser.h b/parser.h new file mode 100644 index 0000000..c6a2b17 --- /dev/null +++ b/parser.h @@ -0,0 +1,31 @@ +#ifndef PARSER_H_ +#define PARSER_H_ + +#include + +typedef void *stack_t; + +typedef struct { + uint16_t status; + uint16_t vcount; + variable *vars; + char **names; + stack_t *stack; +} interpreter; + +enum status { + READY = 0 +}; + +typedef void (*func_t)(stack_t *); + +void interpreter_init(interpreter *); + +void interpreter_define_value(interpreter *, const char *, int32_t); +void interpreter_define_cfunc(interpreter *, const char *, func_t); + +int32_t interpreter_get_value(interpreter *, const char *); + +int interpreter_doline(interpreter *, const char *); + +#endif // PARSER_H_ -- cgit v1.2.3