#ifndef PARSER_H #define PARSER_H #include "lexer.h" #include typedef enum { ParsedNodeTypeError, ParsedNodeTypeInt, ParsedNodeTypeFloat, ParsedNodeTypeChar, ParsedNodeTypeString, ParsedNodeTypeBool, ParsedNodeTypeArray, ParsedNodeTypeDict, ParsedNodeTypeIf, ParsedNodeTypeWhile, ParsedNodeTypeLoop, ParsedNodeTypeFor, ParsedNodeTypeLambda, ParsedNodeTypeCall, ParsedNodeTypeAccess, ParsedNodeTypeIndex, ParsedNodeTypeUnary, ParsedNodeTypeBinary, ParsedNodeTypeAssign, } ParsedNodeType; typedef struct ParsedNode { ParsedNodeType node_type; } ParsedNode; typedef struct { Lexer* lexer; Token current; } Parser; void parser_create(Parser* parser, Lexer* lexer); void parser_parse_expression(Parser* parser); #endif