diff options
Diffstat (limited to 'src/prc1/from.h')
| -rw-r--r-- | src/prc1/from.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/prc1/from.h b/src/prc1/from.h new file mode 100644 index 0000000..8a77629 --- /dev/null +++ b/src/prc1/from.h @@ -0,0 +1,34 @@ +#ifndef FROM_H +#define FROM_H + +#include "cgen.h" +#include "lex.h" +#include "storage.h" +#include "prv.h" +#include <stddef.h> + +struct from +{ + struct from_it + { + enum {FR_VAL, FR_VAR} type; + + union + { + const struct tk *tk; + const struct stentry *e; + } u; + } start, end; + + size_t block_i; + const struct stentry *var; +}; + +int from(const struct lex *l, struct prv *p); +int from_id(const struct lex *l, struct prv *p); +int from_by(const struct lex *l, struct prv *p); +int from_idby(const struct lex *l, struct prv *p); +int from_cgen(const struct from *m, struct cgen *c); +void from_free(struct from *fr); + +#endif |
