From b25ff71bb198c227b3202ee32a8067cda413bc16 Mon Sep 17 00:00:00 2001 From: Xavier Del Campo Romero Date: Sat, 9 May 2026 02:56:07 +0200 Subject: Add project skeleton --- prv.h | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 prv.h (limited to 'prv.h') diff --git a/prv.h b/prv.h new file mode 100644 index 0000000..ed14fe0 --- /dev/null +++ b/prv.h @@ -0,0 +1,48 @@ +#ifndef PRV_H +#define PRV_H + +#include "lex.h" +#include + +struct step +{ + enum tktype type; + const char *id; + int chain; +}; + +struct pos +{ + const struct seq *seq, *stseq; + const struct step *step; +}; + +struct prv +{ + const struct tk *tk, *stk, *id; + struct tdconstant *tdc; + struct storage *st; + struct pos *pos; + struct ast *ast; + struct type *ag, *t; + struct fn *proto; + size_t n, i, block; + int (*entry)(const struct lex *, struct prv *); + int (*type)(const struct lex *, struct prv *p, const struct type *t); +}; + +struct seq +{ + const struct step *steps; + int (*fn)(const struct lex *l, struct prv *p); + int (*end)(const struct lex *l, struct prv *p); + const char *chain; +}; + +int kw(const char *s); +int prev(const struct prv *p); +int push(const struct pos *pos, struct prv *p); +int pop(const struct lex *l, struct prv *p); +char *sdup(const char *s); + +#endif -- cgit v1.2.3