about summary refs log tree commit diff
path: root/boot/tree.c
diff options
context:
space:
mode:
authorMel <mel@rnrd.eu>2025-06-30 02:49:42 +0200
committerMel <mel@rnrd.eu>2025-06-30 02:49:42 +0200
commitb16cf0fc98940554ef0febfe443ef690618d5083 (patch)
tree15cd49710d66988bf0acbb1ce92f64e3ea01d473 /boot/tree.c
parent3d983097329607cc89b63425e97527c5ec0390c8 (diff)
downloadcatskill-b16cf0fc98940554ef0febfe443ef690618d5083.tar.zst
catskill-b16cf0fc98940554ef0febfe443ef690618d5083.zip
Implement Visitor system for syntax tree, with re-written tree printer as first usage
Signed-off-by: Mel <mel@rnrd.eu>
Diffstat (limited to 'boot/tree.c')
-rw-r--r--boot/tree.c66
1 files changed, 33 insertions, 33 deletions
diff --git a/boot/tree.c b/boot/tree.c
index a1dea24..1fcaa62 100644
--- a/boot/tree.c
+++ b/boot/tree.c
@@ -872,8 +872,7 @@ expression_print(const struct Expression* expression)
         printf(")");
         break;
     case EXPRESSION_CALL_OR_CONSTRUCT: {
-        const struct Expression_Call_Or_Construct* coc =
-            &expression->value.call_or_construct;
+        const struct Expression_Call_Or_Construct* coc = &expression->value.call_or_construct;
         printf("(call/construct ");
         expression_print(coc->subject);
         uint i = 0;
@@ -901,7 +900,7 @@ expression_print(const struct Expression* expression)
     case EXPRESSION_MEMBER:
         printf("(member of ");
         expression_print(expression->value.member.subject);
-        printf(" named %s" , expression->value.member.name.data);
+        printf(" named %s", expression->value.member.name.data);
         printf(")");
         break;
     case EXPRESSION_INCREMENT_DECREMENT: {
@@ -997,12 +996,13 @@ struct Statement_Value_Conditional
     uint condition_count;
 };
 
-enum Statement_Loop_Style {
+enum Statement_Loop_Style
+{
     STATEMENT_LOOP_STYLE_NONE,
-    STATEMENT_LOOP_STYLE_C, // for i int = 0; i < 10; ++i {}
+    STATEMENT_LOOP_STYLE_C,        // for i int = 0; i < 10; ++i {}
     STATEMENT_LOOP_STYLE_FOR_EACH, // for x Obj = list {}
-    STATEMENT_LOOP_STYLE_WHILE, // while true {}
-    STATEMENT_LOOP_STYLE_ENDLESS, // while {}
+    STATEMENT_LOOP_STYLE_WHILE,    // while true {}
+    STATEMENT_LOOP_STYLE_ENDLESS,  // while {}
 };
 
 // stands for both `for` and `while` loops.
@@ -1158,31 +1158,31 @@ statement_print(const struct Statement* statement)
         printf("(loop ");
 
         switch (statement->value.loop.style) {
-            case STATEMENT_LOOP_STYLE_C:
-                printf("c-style ");
-                bare_declaration_node_print(&statement->value.loop.declaration);
-                printf(" (condition ");
-                expression_print(statement->value.loop.condition);
-                printf(") (iteration ");
-                expression_print(statement->value.loop.iteration);
-                printf(") ");
-                break;
-            case STATEMENT_LOOP_STYLE_FOR_EACH:
-                printf("for-each ");
-                bare_declaration_node_print(&statement->value.loop.declaration);
-                printf(" ");
-                break;
-            case STATEMENT_LOOP_STYLE_WHILE:
-                printf("while (condition ");
-                expression_print(statement->value.loop.condition);
-                printf(") ");
-                break;
-            case STATEMENT_LOOP_STYLE_ENDLESS:
-                printf("endless ");
-                break;
-            default:
-                failure("unexpected loop style in `statement_print`");
-                break;
+        case STATEMENT_LOOP_STYLE_C:
+            printf("c-style ");
+            bare_declaration_node_print(&statement->value.loop.declaration);
+            printf(" (condition ");
+            expression_print(statement->value.loop.condition);
+            printf(") (iteration ");
+            expression_print(statement->value.loop.iteration);
+            printf(") ");
+            break;
+        case STATEMENT_LOOP_STYLE_FOR_EACH:
+            printf("for-each ");
+            bare_declaration_node_print(&statement->value.loop.declaration);
+            printf(" ");
+            break;
+        case STATEMENT_LOOP_STYLE_WHILE:
+            printf("while (condition ");
+            expression_print(statement->value.loop.condition);
+            printf(") ");
+            break;
+        case STATEMENT_LOOP_STYLE_ENDLESS:
+            printf("endless ");
+            break;
+        default:
+            failure("unexpected loop style in `statement_print`");
+            break;
         }
 
         block_node_print(&statement->value.loop.body);
@@ -1235,4 +1235,4 @@ tree_print(const struct Tree* tree)
         statement_print(statement);
         printf("\n");
     }
-}
\ No newline at end of file
+}