wacc/parser.h
2023-02-13 14:42:46 +01:00

43 lines
820 B
C

#ifndef PARSER_H
#define PARSER_H
#include "lexer.h"
#include <stdint.h>
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