aboutsummaryrefslogtreecommitdiff
path: root/src/prc1/prv.h
diff options
context:
space:
mode:
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