minor implementation for parser
(simple type and defn)
This commit is contained in:
@@ -31,7 +31,14 @@ typedef enum {
|
||||
ELSE,
|
||||
|
||||
EOF_TOKEN,
|
||||
ERROR
|
||||
ERROR,
|
||||
// for parser use
|
||||
|
||||
PARSER_USE,
|
||||
|
||||
VOID,
|
||||
|
||||
|
||||
} TokenType;
|
||||
|
||||
typedef struct {
|
||||
@@ -48,8 +55,39 @@ typedef struct {
|
||||
/**
|
||||
* AST Node Definitions
|
||||
*/
|
||||
|
||||
typedef enum {
|
||||
NODE_PROGRAM,
|
||||
NODE_DEFN,
|
||||
|
||||
NODE_TYPE_SIMPLE,
|
||||
NODE_TYPE_COMPLEX,
|
||||
NODE_TYPE_PARAM,
|
||||
NODE_TYPE_OUT,
|
||||
NODE_TYPE_STAR,
|
||||
|
||||
NODE_EXPR,
|
||||
NODE_NUM,
|
||||
NODE_ID,
|
||||
|
||||
NODE_PARAM_LIST,
|
||||
NODE_PARAM,
|
||||
|
||||
NODE_LAMBDA,
|
||||
NODE_COMPOUND,
|
||||
|
||||
NODE_STMT_RETURN,
|
||||
NODE_STMT_EXPR,
|
||||
|
||||
|
||||
|
||||
} NodeKind;
|
||||
|
||||
typedef struct ASTNode {
|
||||
NodeKind kind;
|
||||
Token token;
|
||||
|
||||
struct ASTNode **children;
|
||||
size_t child_count;
|
||||
size_t count;
|
||||
size_t capacity;
|
||||
} ASTNode;
|
||||
Reference in New Issue
Block a user