#include "../include/parser.h" #include typedef struct { TslTokenizer tokenizer; } TslParser; static void tsl_parser_init(TslParser *self, const char *code, size_t code_size) { tsl_tokenizer_init(&self->tokenizer, code, code_size); } static int tsl_parser_parse_rhs(TslParser *self) { return 0; } static int tsl_parser_parse(TslParser *self) { for(;;) { TslToken token = tsl_tokenizer_next(&self->tokenizer); if(token == TSL_TOKEN_IDENTIFIER) { TslStringView identifier = self->tokenizer.identifier; if(!tsl_tokenizer_accept(&self->tokenizer, TSL_TOKEN_EQUAL)) { return -1; } tsl_parser_parse_rhs(self); } else if(token == TSL_TOKEN_END_OF_FILE) { break; } else { fprintf(stderr, "Error: Expected identifier, got TODO\n"); return -1; } } return 0; } int tsl_parse(const char *code, size_t code_size) { TslParser parser; tsl_parser_init(&parser, code, code_size); return tsl_parser_parse(&parser); }