Skip to content

Commit

Permalink
Added a nice error message
Browse files Browse the repository at this point in the history
  • Loading branch information
Ratstail91 committed Nov 2, 2024
1 parent ef72415 commit 92955d5
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 6 deletions.
6 changes: 3 additions & 3 deletions source/toy_lexer.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ typedef struct {

TOY_API void Toy_bindLexer(Toy_Lexer* lexer, const char* source);
TOY_API Toy_Token Toy_private_scanLexer(Toy_Lexer* lexer);
TOY_API void Toy_private_printToken(Toy_Token* token); //debugging

//util
#define TOY_BLANK_TOKEN() ((Toy_Token){TOY_TOKEN_NULL, 0, 0, NULL})
TOY_API const char* Toy_private_findKeywordByType(const Toy_TokenType type);
TOY_API Toy_TokenType Toy_private_findTypeByKeyword(const char* keyword);
TOY_API void Toy_private_printToken(Toy_Token* token);

13 changes: 10 additions & 3 deletions source/toy_parser.c
Original file line number Diff line number Diff line change
Expand Up @@ -570,7 +570,14 @@ static void parsePrecedence(Toy_Bucket** bucketHandle, Toy_Parser* parser, Toy_A
ParsingRule prefix = getParsingRule(parser->previous.type)->prefix;

if (prefix == NULL) {
printError(parser, parser->previous, "Expected expression");
//make a nice error message
if (Toy_private_findKeywordByType(parser->previous.type)) {
printError(parser, parser->previous, "Found reserved keyword instead");
}
else {
printError(parser, parser->previous, "Expected expression");
}

Toy_private_emitAstError(bucketHandle, rootHandle);
return;
}
Expand Down Expand Up @@ -780,8 +787,8 @@ Toy_Ast* Toy_scanParser(Toy_Bucket** bucketHandle, Toy_Parser* parser) {
void Toy_resetParser(Toy_Parser* parser) {
parser->lexer = NULL;

parser->current = TOY_BLANK_TOKEN();
parser->previous = TOY_BLANK_TOKEN();
parser->current = ((Toy_Token){TOY_TOKEN_NULL, 0, 0, NULL});
parser->previous = ((Toy_Token){TOY_TOKEN_NULL, 0, 0, NULL});

parser->error = false;
parser->panic = false;
Expand Down

0 comments on commit 92955d5

Please sign in to comment.