lang: ast: implement parsing of match statements
This commit is contained in:
@@ -22,6 +22,8 @@ extern struct ast_node_type string_node_ops;
|
||||
extern struct ast_node_type cascade_node_ops;
|
||||
extern struct ast_node_type cond_group_node_ops;
|
||||
extern struct ast_node_type cond_node_ops;
|
||||
extern struct ast_node_type match_node_ops;
|
||||
extern struct ast_node_type discard_node_ops;
|
||||
|
||||
static const struct ast_node_type *node_ops[] = {
|
||||
[IVY_AST_UNIT] = &unit_node_ops,
|
||||
@@ -41,6 +43,8 @@ static const struct ast_node_type *node_ops[] = {
|
||||
[IVY_AST_CASCADE] = &cascade_node_ops,
|
||||
[IVY_AST_COND_GROUP] = &cond_group_node_ops,
|
||||
[IVY_AST_COND] = &cond_node_ops,
|
||||
[IVY_AST_MATCH] = &match_node_ops,
|
||||
[IVY_AST_DISCARD] = &discard_node_ops,
|
||||
};
|
||||
static const size_t nr_node_ops = sizeof node_ops / sizeof node_ops[0];
|
||||
|
||||
@@ -222,6 +226,7 @@ const char *ivy_ast_node_type_to_string(enum ivy_ast_node_type v)
|
||||
ENUM_STR(IVY_AST_LAMBDA);
|
||||
ENUM_STR(IVY_AST_UNIT_PACKAGE);
|
||||
ENUM_STR(IVY_AST_UNIT_IMPORT);
|
||||
ENUM_STR(IVY_AST_DISCARD);
|
||||
ENUM_STR(IVY_AST_INT);
|
||||
ENUM_STR(IVY_AST_DOUBLE);
|
||||
ENUM_STR(IVY_AST_STRING);
|
||||
@@ -232,6 +237,7 @@ const char *ivy_ast_node_type_to_string(enum ivy_ast_node_type v)
|
||||
ENUM_STR(IVY_AST_WHILE_LOOP);
|
||||
ENUM_STR(IVY_AST_CASCADE);
|
||||
ENUM_STR(IVY_AST_COND_GROUP);
|
||||
ENUM_STR(IVY_AST_MATCH);
|
||||
ENUM_STR(IVY_AST_COND);
|
||||
ENUM_STR(IVY_AST_TUPLE);
|
||||
ENUM_STR(IVY_AST_BLOCK);
|
||||
|
||||
Reference in New Issue
Block a user