diff --git a/docs/metadesk_reference.md b/docs/metadesk_reference.md index 75003f7..d7c91e3 100644 --- a/docs/metadesk_reference.md +++ b/docs/metadesk_reference.md @@ -1422,38 +1422,32 @@ main: //~ C Language Generation @send(Output) -@func MD_OutputTree_C_String: { +@func MD_C_Generate_String: { file: *FILE, node: *MD_Node, }; @send(Output) -@func MD_OutputTree_C_Struct: { +@func MD_C_Generate_Struct: { file: *FILE, node: *MD_Node, }; @send(Output) -@func MD_OutputTree_C_Decl: { +@func MD_C_Generate_Decl: { file: *FILE, node: *MD_Node, }; @send(Output) -@func MD_Output_C_DeclByNameAndType: { +@func MD_C_Generate_DeclByNameAndType: { file: *FILE, name: MD_String8, type: *MD_Expr, }; @send(Output) -@func MD_OutputExpr: { - file: *FILE, - expr: *MD_Expr, -}; - -@send(Output) -@func MD_OutputExpr_C: { +@func MD_C_Generate_Expr: { file: *FILE, expr: *MD_Expr, }; diff --git a/samples/c_code_generation.c b/samples/c_code_generation.c index e9d9090..be7d4d9 100644 --- a/samples/c_code_generation.c +++ b/samples/c_code_generation.c @@ -29,7 +29,7 @@ int main(int argument_count, char **arguments) { if(MD_NodeHasTag(node, MD_S8Lit("struct"))) { - MD_OutputTree_C_Struct(stdout, node); + MD_C_Generate_Struct(stdout, node); } } printf("\n\n"); diff --git a/samples/namespaced_types/namespaced_types.c b/samples/namespaced_types/namespaced_types.c index ef2ecde..15b128d 100644 --- a/samples/namespaced_types/namespaced_types.c +++ b/samples/namespaced_types/namespaced_types.c @@ -137,7 +137,7 @@ static void OutputPrefixedType(FILE *f, MD_Map *user_defined_types, MD_String8 p I(); OutputType_C_LHS_Namespace(f, user_defined_types, prefix, type); fprintf(f, " %.*s", MD_StringExpand(node->string)); - MD_OutputType_C_RHS(f, type); + MD_C_Generate_RHS(f, type); fprintf(f, ";\n"); } diff --git a/source/md_c_helpers.c b/source/md_c_helpers.c index 7334f8c..a01b81b 100644 --- a/source/md_c_helpers.c +++ b/source/md_c_helpers.c @@ -505,7 +505,7 @@ MD_ExprDeepMatch(MD_Expr *a, MD_Expr *b, MD_MatchFlags flags) //~ C Language Generation MD_FUNCTION_IMPL void -MD_OutputTree_C_String(FILE *file, MD_Node *node) +MD_C_Generate_String(FILE *file, MD_Node *node) { fprintf(file, "\""); for(MD_u64 i = 0; i < node->string.size; i += 1) @@ -528,7 +528,7 @@ MD_OutputTree_C_String(FILE *file, MD_Node *node) } MD_FUNCTION_IMPL void -MD_OutputTree_C_Struct(FILE *file, MD_Node *node) +MD_C_Generate_Struct(FILE *file, MD_Node *node) { if(node) { @@ -538,7 +538,7 @@ MD_OutputTree_C_Struct(FILE *file, MD_Node *node) fprintf(file, "struct %.*s\n{\n", MD_StringExpand(node->string)); for(MD_Node *child = node->first_child; !MD_NodeIsNil(child); child = child->next) { - MD_OutputTree_C_Decl(file, child); + MD_C_Generate_Decl(file, child); fprintf(file, ";\n"); } fprintf(file, "};\n\n"); @@ -546,25 +546,25 @@ MD_OutputTree_C_Struct(FILE *file, MD_Node *node) } MD_FUNCTION_IMPL void -MD_OutputTree_C_Decl(FILE *file, MD_Node *node) +MD_C_Generate_Decl(FILE *file, MD_Node *node) { if(node) { MD_Expr *type = MD_ParseAsType(node->first_child, node->last_child); - MD_Output_C_DeclByNameAndType(file, node->string, type); + MD_C_Generate_DeclByNameAndType(file, node->string, type); } } MD_FUNCTION_IMPL void -MD_Output_C_DeclByNameAndType(FILE *file, MD_String8 name, MD_Expr *type) +MD_C_Generate_DeclByNameAndType(FILE *file, MD_String8 name, MD_Expr *type) { - MD_OutputType_C_LHS(file, type); + MD_C_Generate_LHS(file, type); fprintf(file, " %.*s", MD_StringExpand(name)); - MD_OutputType_C_RHS(file, type); + MD_C_Generate_RHS(file, type); } MD_FUNCTION_IMPL void -MD_OutputExpr(FILE *file, MD_Expr *expr) +MD_C_Generate_Expr(FILE *file, MD_Expr *expr) { if(!MD_NodeIsNil(expr->node)) { @@ -579,9 +579,9 @@ MD_OutputExpr(FILE *file, MD_Expr *expr) case MD_ExprKindGroup_Binary: { fprintf(file, "("); - MD_OutputExpr(file, expr->sub[0]); + MD_C_Generate_Expr(file, expr->sub[0]); fprintf(file, " %s ", metadata->symbol); - MD_OutputExpr(file, expr->sub[1]); + MD_C_Generate_Expr(file, expr->sub[1]); fprintf(file, ")"); }break; @@ -589,14 +589,14 @@ MD_OutputExpr(FILE *file, MD_Expr *expr) { fprintf(file, "%s", metadata->pre_symbol); fprintf(file, "("); - MD_OutputExpr(file, expr->sub[0]); + MD_C_Generate_Expr(file, expr->sub[0]); fprintf(file, ")"); }break; case MD_ExprKindGroup_PostUnary: { fprintf(file, "("); - MD_OutputExpr(file, expr->sub[0]); + MD_C_Generate_Expr(file, expr->sub[0]); fprintf(file, ")"); fprintf(file, "%s", metadata->post_symbol); }break; @@ -606,12 +606,6 @@ MD_OutputExpr(FILE *file, MD_Expr *expr) } } -MD_FUNCTION_IMPL void -MD_OutputExpr_C(FILE *file, MD_Expr *expr) -{ - MD_OutputExpr(file, expr); -} - MD_PRIVATE_FUNCTION_IMPL MD_b32 _MD_OutputType_C_NeedsParens(MD_Expr *type) { @@ -625,7 +619,7 @@ _MD_OutputType_C_NeedsParens(MD_Expr *type) } MD_FUNCTION_IMPL void -MD_OutputType_C_LHS(FILE *file, MD_Expr *type) +MD_C_Generate_LHS(FILE *file, MD_Expr *type) { switch (type->kind) { @@ -637,7 +631,7 @@ MD_OutputType_C_LHS(FILE *file, MD_Expr *type) case MD_ExprKind_Pointer: { - MD_OutputType_C_LHS(file, type->sub[0]); + MD_C_Generate_LHS(file, type->sub[0]); if (_MD_OutputType_C_NeedsParens(type)) { fprintf(file, "("); @@ -647,7 +641,7 @@ MD_OutputType_C_LHS(FILE *file, MD_Expr *type) case MD_ExprKind_Array: { - MD_OutputType_C_LHS(file, type->sub[0]); + MD_C_Generate_LHS(file, type->sub[0]); if (_MD_OutputType_C_NeedsParens(type)) { fprintf(file, "("); @@ -667,7 +661,7 @@ MD_OutputType_C_LHS(FILE *file, MD_Expr *type) } MD_FUNCTION_IMPL void -MD_OutputType_C_RHS(FILE *file, MD_Expr *type) +MD_C_Generate_RHS(FILE *file, MD_Expr *type) { switch (type->kind) { @@ -680,7 +674,7 @@ MD_OutputType_C_RHS(FILE *file, MD_Expr *type) { fprintf(file, ")"); } - MD_OutputType_C_RHS(file, type->sub[0]); + MD_C_Generate_RHS(file, type->sub[0]); }break; case MD_ExprKind_Array: @@ -690,9 +684,9 @@ MD_OutputType_C_RHS(FILE *file, MD_Expr *type) fprintf(file, ")"); } fprintf(file, "["); - MD_OutputExpr_C(file, type->sub[1]); + MD_C_Generate_Expr(file, type->sub[1]); fprintf(file, "]"); - MD_OutputType_C_RHS(file, type->sub[0]); + MD_C_Generate_RHS(file, type->sub[0]); }break; case MD_ExprKind_Volatile: { fprintf(file, "volatile "); }break; diff --git a/source/md_c_helpers.h b/source/md_c_helpers.h index 1e2edf9..05e11da 100644 --- a/source/md_c_helpers.h +++ b/source/md_c_helpers.h @@ -101,15 +101,13 @@ MD_FUNCTION MD_b32 MD_ExprMatch(MD_Expr *a, MD_Expr *b, MD_MatchFlags fla MD_FUNCTION MD_b32 MD_ExprDeepMatch(MD_Expr *a, MD_Expr *b, MD_MatchFlags flags); //~ C Language Generation -MD_FUNCTION void MD_OutputTree_C_String(FILE *file, MD_Node *node); -MD_FUNCTION void MD_OutputTree_C_Struct(FILE *file, MD_Node *node); -MD_FUNCTION void MD_OutputTree_C_Decl(FILE *file, MD_Node *node); -MD_FUNCTION void MD_Output_C_DeclByNameAndType(FILE *file, MD_String8 name, MD_Expr *type); -MD_FUNCTION void MD_OutputExpr(FILE *file, MD_Expr *expr); -MD_FUNCTION void MD_OutputExpr_C(FILE *file, MD_Expr *expr); -MD_FUNCTION void MD_OutputType(FILE *file, MD_Expr *expr); -MD_FUNCTION void MD_OutputType_C_LHS(FILE *file, MD_Expr *type); -MD_FUNCTION void MD_OutputType_C_RHS(FILE *file, MD_Expr *type); +MD_FUNCTION void MD_C_Generate_String(FILE *file, MD_Node *node); +MD_FUNCTION void MD_C_Generate_Struct(FILE *file, MD_Node *node); +MD_FUNCTION void MD_C_Generate_Decl(FILE *file, MD_Node *node); +MD_FUNCTION void MD_C_Generate_DeclByNameAndType(FILE *file, MD_String8 name, MD_Expr *type); +MD_FUNCTION void MD_C_Generate_Expr(FILE *file, MD_Expr *expr); +MD_FUNCTION void MD_C_Generate_LHS(FILE *file, MD_Expr *type); +MD_FUNCTION void MD_C_Generate_RHS(FILE *file, MD_Expr *type); #endif //MD_C_HELPERS_H