aboutsummaryrefslogtreecommitdiff
path: root/src/prc1/prv.h
diff options
context:
space:
mode:
authorXavier Del Campo Romero <xavi92@disroot.org>2026-10-01 01:04:30 +0200
committerXavier Del Campo Romero <xavi92@disroot.org>2026-10-11 00:14:35 +0200
commit4ce39e4fc1de9536de7dedfe91b6dee38dec76ae (patch)
treef9820f96b8eab624430c3700f32a2878a7036ee2 /src/prc1/prv.h
parent9140988be4e5bb028b7140aca1a67af1370c72a7 (diff)
downloadprc-4ce39e4fc1de9536de7dedfe91b6dee38dec76ae.tar.gz
WIP sym + cgen
Diffstat (limited to 'src/prc1/prv.h')
-rw-r--r--src/prc1/prv.h9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/prc1/prv.h b/src/prc1/prv.h
index c0c8930..e3658bc 100644
--- a/src/prc1/prv.h
+++ b/src/prc1/prv.h
@@ -10,11 +10,11 @@ struct step
{
enum tktype type;
const char *id;
- int chain;
};
struct pos
{
+ const char *name;
const struct seq *seq, *stseq;
const struct step *step;
int (*end)(const struct lex *, struct prv *);
@@ -29,23 +29,24 @@ struct prv
struct ast *ast;
struct type *ag, *t;
struct fn *proto;
- size_t n, i, block;
+ size_t n, i, block, cast;
+ struct sym *s;
int (*entry)(const struct lex *, struct prv *);
int (*type)(const struct lex *, struct prv *p, const struct type *t);
+ int (*sym)(const struct lex *, struct prv *, const struct sym *);
};
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);
+void reset(struct prv *p);
char *sdup(const char *s);
#endif