parser nodes and stuff

This commit is contained in:
SimonFJ20 2023-02-18 02:39:48 +01:00
parent b71c2e5afb
commit 37748b89e9

View File

@ -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;
}; };
}; };