parser nodes and stuff
This commit is contained in:
parent
b71c2e5afb
commit
37748b89e9
35
parser.h
35
parser.h
@ -20,8 +20,6 @@ typedef enum {
|
|||||||
ParsedNodeTypeWhile,
|
ParsedNodeTypeWhile,
|
||||||
ParsedNodeTypeLoop,
|
ParsedNodeTypeLoop,
|
||||||
ParsedNodeTypeFor,
|
ParsedNodeTypeFor,
|
||||||
ParsedNodeTypeLambda,
|
|
||||||
|
|
||||||
ParsedNodeTypeCall,
|
ParsedNodeTypeCall,
|
||||||
ParsedNodeTypeAccess,
|
ParsedNodeTypeAccess,
|
||||||
ParsedNodeTypeIndex,
|
ParsedNodeTypeIndex,
|
||||||
@ -30,6 +28,14 @@ typedef enum {
|
|||||||
ParsedNodeTypeAssign,
|
ParsedNodeTypeAssign,
|
||||||
} ParsedNodeType;
|
} ParsedNodeType;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
Add,
|
||||||
|
} ParsedBinaryType;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
Negate,
|
||||||
|
} ParsedUnaryType;
|
||||||
|
|
||||||
typedef struct KeyValuePair KeyValuePair;
|
typedef struct KeyValuePair KeyValuePair;
|
||||||
typedef struct ParsedNode ParsedNode;
|
typedef struct ParsedNode ParsedNode;
|
||||||
|
|
||||||
@ -57,6 +63,31 @@ struct ParsedNode {
|
|||||||
ParsedNode* truthy;
|
ParsedNode* truthy;
|
||||||
ParsedNode* falsy;
|
ParsedNode* falsy;
|
||||||
} if_node;
|
} if_node;
|
||||||
|
struct {
|
||||||
|
ParsedNode* condition;
|
||||||
|
ParsedNode* body;
|
||||||
|
} while_node;
|
||||||
|
struct {
|
||||||
|
ParsedNode* body;
|
||||||
|
} loop;
|
||||||
|
struct {
|
||||||
|
ParsedNode* subject;
|
||||||
|
ParsedNode* value;
|
||||||
|
ParsedNode* body;
|
||||||
|
} for_node;
|
||||||
|
struct {
|
||||||
|
ParsedNode* subject;
|
||||||
|
ParsedNode* arguments;
|
||||||
|
size_t arguments_length;
|
||||||
|
} call;
|
||||||
|
struct {
|
||||||
|
ParsedNode* subject;
|
||||||
|
ParsedNode* value;
|
||||||
|
} access;
|
||||||
|
struct {
|
||||||
|
ParsedNode* subject;
|
||||||
|
ParsedNode* value;
|
||||||
|
} index;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user