parser start, no clue if i'm doing it right
This commit is contained in:
35
src/parser.h
Normal file
35
src/parser.h
Normal file
@@ -0,0 +1,35 @@
|
||||
#include "types.h"
|
||||
#include "lexer.h"
|
||||
|
||||
typedef enum noomP_NodeType {
|
||||
NOOMP_NODE_PROGRAM,
|
||||
} noomP_NodeType;
|
||||
|
||||
typedef struct noomP_Node {
|
||||
noomP_NodeType type;
|
||||
|
||||
noom_uint_t subnodec;
|
||||
noom_uint_t subnode_cap;
|
||||
struct noomP_Node** subnodes;
|
||||
|
||||
struct noomP_Node* previous_node;
|
||||
} noomP_Node;
|
||||
|
||||
typedef struct noomP_Parser { // todo: track location in code with line/column?
|
||||
const char* code;
|
||||
const char* filename;
|
||||
noom_uint_t lex_offset;
|
||||
|
||||
noomP_Node* last_node;
|
||||
} noomP_Parser;
|
||||
|
||||
int noomP_peek(noomP_Parser* parser, noomL_Token* token);
|
||||
void noomP_skip(noomP_Parser* parser, noomL_Token* token);
|
||||
|
||||
noomP_Node* noomP_allocNode(noomP_Parser* parser);
|
||||
|
||||
noomP_Node* noomP_parseStatement(noomP_Parser* parser);
|
||||
int noomP_parse(const char* code, const char* filename, noomP_Node** outpointer);
|
||||
|
||||
int noomP_initParser(noomP_Parser* parser, const char* code, const char* filename);
|
||||
|
||||
Reference in New Issue
Block a user