diff options
Diffstat (limited to 'asmmon.h')
-rw-r--r-- | asmmon.h | 17 |
1 files changed, 11 insertions, 6 deletions
@@ -16,6 +16,14 @@ struct tok { uint8_t id; /* Token ID. */ uint8_t type; /* Token type ID. */ + uint8_t tab; /* Number of tabs. */ + uint8_t space; /* Number of spaces. */ + + uint8_t subtab; /* Number of sub-token tabs. */ + uint8_t subspace; /* Number of sub-token spaces. */ + + uint8_t digits; /* Number of digits. */ + /* Token value(s). */ union { symbol *sym; @@ -31,12 +39,9 @@ struct ln { line *next; /* Pointer to the next line. */ token *tok; /* The token(s) for this line. */ uint16_t count; /* Total tokens for this line. */ + uint16_t bline; /* Number of blank lines. */ uint32_t linenum; /* Line number. */ uint64_t addr; /* The address of this line. */ - uint8_t stab; /* Number of starting tabs. */ - uint8_t sspace; /* Number of starting spaces. */ - uint8_t etab; /* Number of ending tabs. */ - uint8_t espace; /* Number of ending spaces. */ }; @@ -536,9 +541,9 @@ extern uint8_t defined; extern uint8_t isfixup; extern line *find_line(uint32_t ln, uint8_t dbg); -extern uint64_t lex(char *str, uint64_t address, uint8_t dbg); +extern uint64_t lex(char *str, uint64_t address, uint16_t bline, uint8_t dbg); extern uint64_t parse_tokens(token *tm, bytecount *bc, uint8_t isasm, uint64_t address, uint8_t dbg); -extern token *make_token(uint8_t id, uint8_t type, uint64_t value, char *str, symbol *sym); +extern token *make_token(uint8_t id, uint8_t type, uint8_t space, uint8_t tab, uint64_t value, char *str, symbol *s); extern void assemble(line *ln, bytecount *bc, uint8_t dbg); extern void cleanup(); |