#ifndef FMV_AS_TOKENIZER_H_ #define FMV_AS_TOKENIZER_H_ #include #include #include "utils.h" enum tokenType { OP, ARG, TAG, COLON, NEWLINE, ENDOFFILE }; struct token { enum tokenType type; int line; int col; char *sval; int64_t ival; double fval; }; typedef struct token *Token; #define INPUT_STREAM_BUF_SIZE 1024 struct inputStream { FILE *fp; char *buf; int buf_pos; int cursor; int line; int col; }; typedef struct inputStream *InputStream; struct tokenStream { Token buf; InputStream s; }; typedef struct tokenStream *TokenStream; Token nextToken(Allocator alct, TokenStream ts); Token peekToken(Allocator alct, TokenStream ts); void printToken(Token t); TokenStream makeTokenStream(Allocator alct, FILE* fp); #endif // FMV_AS_TOKENIZER_H_