Files
Toy/source/parser.h
2022-09-11 07:56:06 +01:00

21 lines
488 B
C

#pragma once
#include "common.h"
#include "lexer.h"
#include "node.h"
//DOCS: parsers are bound to a lexer, and turn the outputted tokens into AST nodes
typedef struct {
Lexer* lexer;
bool error; //I've had an error
bool panic; //I am processing an error
//track the last two outputs from the lexer
Token current;
Token previous;
} Parser;
TOY_API void initParser(Parser* parser, Lexer* lexer);
TOY_API void freeParser(Parser* parser);
TOY_API Node* scanParser(Parser* parser);