minor declr parser

This commit is contained in:
2025-11-17 15:49:06 +09:00
parent 1e15ec36d2
commit 3682559a56
3 changed files with 92 additions and 2 deletions

View File

@@ -0,0 +1,45 @@
#pragma once
#include <stdint.h>
#include "globals.h"
#include "lex.h"
typedef struct Parser {
Lexer *lexer;
Token current;
Token peek;
int flag_error;
} Parser;
Parser *parser_new(Lexer *lexer);
void parser_free(Parser *parser);
static void parser_next(Parser *parser);
static void parser_expect(Parser *parser, TokenType type);
/*
PARSER PARSE FUNCTIONS
*/
ASTNode *parser_parse_program(Parser *parser);
ASTNode *parser_parse_defn(Parser *parser);
ASTNode *parser_parse_type(Parser *parser);
ASTNode *parser_parse_expr(Parser *parser);
ASTNode *parser_parse_atom(Parser *parser);
ASTNode *parser_parse_stmt(Parser *parser);
ASTNode *parser_parse_block(Parser *parser);
ASTNode *parser_parse_lambda(Parser *parser);
ASTNode *parser_parse_compound(Parser *parser);
ASTNode *parser_parse_params(Parser *parser);