unify c generator naming

This commit is contained in:
Allen Webster
2021-04-16 18:37:37 -07:00
parent 87bd1cd6de
commit 366eebca00
5 changed files with 34 additions and 48 deletions
+5 -11
View File
@@ -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,
};
+1 -1
View File
@@ -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");
+1 -1
View File
@@ -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");
}
+20 -26
View File
@@ -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;
+7 -9
View File
@@ -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