From 4d30ef7eda0021f0cb827c7a218ef3afc6ce8b55 Mon Sep 17 00:00:00 2001 From: Ginger Bill Date: Wed, 23 Nov 2016 12:29:50 +0000 Subject: Change extensions .cpp to .c --- src/printer.cpp | 221 -------------------------------------------------------- 1 file changed, 221 deletions(-) delete mode 100644 src/printer.cpp (limited to 'src/printer.cpp') diff --git a/src/printer.cpp b/src/printer.cpp deleted file mode 100644 index 4d7184631..000000000 --- a/src/printer.cpp +++ /dev/null @@ -1,221 +0,0 @@ - - -gb_inline void print_indent(isize indent) { - while (indent --> 0) - gb_printf(" "); -} - -void print_ast(AstNode *node, isize indent) { - if (node == NULL) - return; - - switch (node->kind) { - case AstNode_BasicLit: - print_indent(indent); - print_token(node->BasicLit); - break; - case AstNode_Ident: - print_indent(indent); - print_token(node->Ident); - break; - case AstNode_ProcLit: - print_indent(indent); - gb_printf("(proc lit)\n"); - print_ast(node->ProcLit.type, indent+1); - print_ast(node->ProcLit.body, indent+1); - break; - - case AstNode_CompoundLit: - print_indent(indent); - gb_printf("(compound lit)\n"); - print_ast(node->CompoundLit.type, indent+1); - for_array(i, node->CompoundLit.elems) { - print_ast(node->CompoundLit.elems[i], indent+1); - } - break; - - - case AstNode_TagExpr: - print_indent(indent); - gb_printf("(tag)\n"); - print_indent(indent+1); - print_token(node->TagExpr.name); - print_ast(node->TagExpr.expr, indent+1); - break; - - case AstNode_UnaryExpr: - print_indent(indent); - print_token(node->UnaryExpr.op); - print_ast(node->UnaryExpr.expr, indent+1); - break; - case AstNode_BinaryExpr: - print_indent(indent); - print_token(node->BinaryExpr.op); - print_ast(node->BinaryExpr.left, indent+1); - print_ast(node->BinaryExpr.right, indent+1); - break; - case AstNode_CallExpr: - print_indent(indent); - gb_printf("(call)\n"); - print_ast(node->CallExpr.proc, indent+1); - for_array(i, node->CallExpr.args) { - print_ast(node->CallExpr.args[i], indent+1); - } - break; - case AstNode_SelectorExpr: - print_indent(indent); - gb_printf(".\n"); - print_ast(node->SelectorExpr.expr, indent+1); - print_ast(node->SelectorExpr.selector, indent+1); - break; - case AstNode_IndexExpr: - print_indent(indent); - gb_printf("([])\n"); - print_ast(node->IndexExpr.expr, indent+1); - print_ast(node->IndexExpr.index, indent+1); - break; - case AstNode_DerefExpr: - print_indent(indent); - gb_printf("(deref)\n"); - print_ast(node->DerefExpr.expr, indent+1); - break; - - - case AstNode_ExprStmt: - print_ast(node->ExprStmt.expr, indent); - break; - case AstNode_IncDecStmt: - print_indent(indent); - print_token(node->IncDecStmt.op); - print_ast(node->IncDecStmt.expr, indent+1); - break; - case AstNode_AssignStmt: - print_indent(indent); - print_token(node->AssignStmt.op); - for_array(i, node->AssignStmt.lhs) { - print_ast(node->AssignStmt.lhs[i], indent+1); - } - for_array(i, node->AssignStmt.rhs) { - print_ast(node->AssignStmt.rhs[i], indent+1); - } - break; - case AstNode_BlockStmt: - print_indent(indent); - gb_printf("(block)\n"); - for_array(i, node->BlockStmt.stmts) { - print_ast(node->BlockStmt.stmts[i], indent+1); - } - break; - - case AstNode_IfStmt: - print_indent(indent); - gb_printf("(if)\n"); - print_ast(node->IfStmt.cond, indent+1); - print_ast(node->IfStmt.body, indent+1); - if (node->IfStmt.else_stmt) { - print_indent(indent); - gb_printf("(else)\n"); - print_ast(node->IfStmt.else_stmt, indent+1); - } - break; - case AstNode_ReturnStmt: - print_indent(indent); - gb_printf("(return)\n"); - for_array(i, node->ReturnStmt.results) { - print_ast(node->ReturnStmt.results[i], indent+1); - } - break; - case AstNode_ForStmt: - print_indent(indent); - gb_printf("(for)\n"); - print_ast(node->ForStmt.init, indent+1); - print_ast(node->ForStmt.cond, indent+1); - print_ast(node->ForStmt.post, indent+1); - print_ast(node->ForStmt.body, indent+1); - break; - case AstNode_DeferStmt: - print_indent(indent); - gb_printf("(defer)\n"); - print_ast(node->DeferStmt.stmt, indent+1); - break; - - - case AstNode_VarDecl: - print_indent(indent); - gb_printf("(decl:var)\n"); - for_array(i, node->VarDecl.names) { - print_ast(node->VarDecl.names[i], indent+1); - } - print_ast(node->VarDecl.type, indent+1); - for_array(i, node->VarDecl.values) { - print_ast(node->VarDecl.values[i], indent+1); - } - break; - case AstNode_ConstDecl: - print_indent(indent); - gb_printf("(decl:const)\n"); - for_array(i, node->VarDecl.names) { - print_ast(node->VarDecl.names[i], indent+1); - } - print_ast(node->VarDecl.type, indent+1); - for_array(i, node->VarDecl.values) { - print_ast(node->VarDecl.values[i], indent+1); - } - break; - case AstNode_ProcDecl: - print_indent(indent); - gb_printf("(decl:proc)\n"); - print_ast(node->ProcDecl.type, indent+1); - print_ast(node->ProcDecl.body, indent+1); - break; - - case AstNode_TypeDecl: - print_indent(indent); - gb_printf("(type)\n"); - print_ast(node->TypeDecl.name, indent+1); - print_ast(node->TypeDecl.type, indent+1); - break; - - case AstNode_ProcType: - print_indent(indent); - gb_printf("(type:proc)(%td -> %td)\n", node->ProcType.params.count, node->ProcType.results.count); - for_array(i, node->ProcType.params) { - print_ast(node->ProcType.params[i], indent+1); - } - if (node->ProcType.results.count > 0) { - print_indent(indent+1); - gb_printf("->\n"); - for_array(i, node->ProcType.results) { - print_ast(node->ProcType.results[i], indent+1); - } - } - break; - case AstNode_Parameter: - for_array(i, node->Parameter.names) { - print_ast(node->Parameter.names[i], indent+1); - } - print_ast(node->Parameter.type, indent); - break; - case AstNode_PointerType: - print_indent(indent); - print_token(node->PointerType.token); - print_ast(node->PointerType.type, indent+1); - break; - case AstNode_ArrayType: - print_indent(indent); - gb_printf("[]\n"); - print_ast(node->ArrayType.count, indent+1); - print_ast(node->ArrayType.elem, indent+1); - break; - case AstNode_StructType: - print_indent(indent); - gb_printf("(struct)\n"); - for_array(i, node->StructType.decls) { - print_ast(node->StructType.decls[i], indent+1); - } - break; - } - - // if (node->next) - // print_ast(node->next, indent); -} -- cgit v1.2.3