1234567891011121314151617181920212223242526272829303132333435 |
- #ifndef READER_H
- #define READER_H
- #include "minilisp.h"
- #define PST_ATOM 0
- #define PST_NUM 2
- #define PST_SYM 3
- #define PST_STR 4
- #define PST_BIGNUM 5
- #define PST_NUM_NEG 6
- #define PST_BYTES 7
- #define PST_COMMENT 9
- #define PST_ERR_UNEXP_CLOSING_BRACE 10
- #define PST_ERR_UNEXP_JUNK_IN_NUMBER 11
- #define PST_ERR_UNEXP_JUNK_IN_BYTES 12
- #define VST_DEFAULT 0
- #define VST_HEX 1
- typedef struct ReaderState {
- unsigned int state;
- Cell* cell;
- unsigned int sym_len;
- unsigned int valuestate; // i.e. dec/hex/char
- Cell** stack;
- unsigned int level;
- } ReaderState;
- ReaderState* read_char(char c, ReaderState* rs);
- Cell* read_string(char* in);
- Cell* read_string_cell(Cell* in);
- #endif
|