// File: /workspace/github_c_makefile_star2_O1/OstCollector[P]config2c/config2c.c
// Function: decl_def_list
static void decl_def_list(const struct node_type_def_list *list)
{
	const char *name, *ename;
	out_hdr("\n");
	for (; list; list = list->next) {
		switch (list->type) {
		case NODE_TYPE_DEF_ENUM:
			name = list->enum_def.name;
			out_hdr("enum %s {\n", name);
			decl_enum_list(list->enum_def.enums, 1);
			out_hdr("};\n");
			out_hdr("\n");
			out_hdr("\n");

			out_src("static int parse__enum_%s(struct pass_to_conv *ctx, "
					"enum %s *value, "
					"const struct node_value *input);\n", 
					name, name);
			out_src("static void dump__enum_%s(put_func func,"
					"struct dump_context *ctx, "
					"const enum %s *value);\n",
					name, name);
			out_src("\n");
			out_src("\n");
			break;
		case NODE_TYPE_DEF_STRUCT:
			name = list->struct_def.name;
			out_hdr("struct %s {\n", name);
			decl_member_list(list->struct_def.members, 1);
			out_hdr("};\n");
			out_hdr("\n");
			out_hdr("\n");

			out_src("static int parse__struct_%s(struct pass_to_conv *ctx, "
					"struct %s *value, "
					"const struct node_value *input);\n",
					name, name);
			out_src("static void free__struct_%s(struct %s *value);\n",
					name, name);
			out_src("static void dump__struct_%s(put_func func, "
					"struct dump_context *ctx, int l, "
					"const struct %s *value);\n", name, name);
			out_src("\n");
			out_src("\n");
			break;
		case NODE_TYPE_DEF_UNION:
			name = list->union_def.name;
			ename = list->union_def.enum_name;
			out_hdr("enum %s {\n", ename);
			decl_alias_list(list->union_def.alters, 1);
			out_hdr("};\n");
			out_hdr("\n");
			out_hdr("union %s {\n", name);
			decl_alter_list(list->union_def.alters, 1);
			out_hdr("};\n");
			out_hdr("\n");
			out_hdr("\n");

			out_src("static int parse__union_%s(struct pass_to_conv *ctx, "
					"union %s *value, enum %s *type, "
					"const struct node_value *input);\n", 
					name, name, ename);
			out_src("static void free__union_%s(union %s *value, enum %s *type);\n",
					name, name, ename);
			out_src("static void dump__union_%s(put_func func, "
					"struct dump_context *ctx, int l, "
					"const union %s *value, const enum %s *type_value);\n",
					name, name, ename);
			out_src("\n");
			out_src("\n");
			break;
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x11a18(%rip), %rdi     # 0x1a2c0
leaq 0x88d8(%rip), %rsi      # 0x11187
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8d6e
testq %rbx, %rbx
je 0x8cc9
leaq 0x88b9(%rip), %r12      # 0x11187
leaq 0x8d23(%rip), %r13      # 0x115f8
movl 0x8(%rbx), %eax
cmpl $0x2, %eax
je 0x8a6c
cmpl $0x1, %eax
je 0x894b
testl %eax, %eax
jne 0x8cbd
movq 0x10(%rbx), %r14
movq 0x119c7(%rip), %rdi     # 0x1a2c0
leaq 0x89e1(%rip), %rsi      # 0x112e1
movq %r14, %rdx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8d69
movq 0x18(%rbx), %r15
testq %r15, %r15
je 0x8bfe
movl $0x1, %edi
callq 0xaa81
movq 0x11990(%rip), %rdi     # 0x1a2c0
movq 0x8(%r15), %rdx
movq %r13, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8cd8
movq (%r15), %r15
jmp 0x8916
movq 0x10(%rbx), %r14
movq 0x1196a(%rip), %rdi     # 0x1a2c0
leaq 0x8a4f(%rip), %rsi      # 0x113ac
movq %r14, %rdx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8ce2
movq 0x18(%rbx), %rdi
movl $0x1, %esi
callq 0xa533
movq 0x1193c(%rip), %rdi     # 0x1a2c0
leaq 0x9f26(%rip), %rsi      # 0x128b1
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8d64
movq 0x1191f(%rip), %rdi     # 0x1a2c0
movq %r12, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8d55
movq 0x11906(%rip), %rdi     # 0x1a2c0
movq %r12, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8d46
movq 0x118cd(%rip), %rdi     # 0x1a2a0
leaq 0x89df(%rip), %rsi      # 0x113b9
movq %r14, %rdx
movq %r14, %rcx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8d37
movq 0x118aa(%rip), %rdi     # 0x1a2a0
leaq 0x8a26(%rip), %rsi      # 0x11423
movq %r14, %rdx
movq %r14, %rcx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8d23
movq 0x11887(%rip), %rdi     # 0x1a2a0
leaq 0x8a33(%rip), %rsi      # 0x11453
movq %r14, %rdx
movq %r14, %rcx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8d0f
movq 0x11864(%rip), %rdi     # 0x1a2a0
movq %r12, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8cfb
movq 0x1184b(%rip), %rdi     # 0x1a2a0
movq %r12, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
jns 0x8cbd
jmp 0x8ce7
movq 0x10(%rbx), %r14
movq 0x18(%rbx), %r15
movq 0x11845(%rip), %rdi     # 0x1a2c0
leaq 0x885f(%rip), %rsi      # 0x112e1
movq %r15, %rdx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8d2d
movq 0x20(%rbx), %rdi
movl $0x1, %esi
callq 0xa7d4
movq 0x11817(%rip), %rdi     # 0x1a2c0
leaq 0x9e01(%rip), %rsi      # 0x128b1
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8d19
movq 0x117fa(%rip), %rdi     # 0x1a2c0
movq %r12, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8d05
movq 0x117e1(%rip), %rdi     # 0x1a2c0
leaq 0x89d3(%rip), %rsi      # 0x114b9
movq %r14, %rdx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8cf1
movq 0x20(%rbx), %rdi
movl $0x1, %esi
callq 0xa827
movq 0x117b3(%rip), %rdi     # 0x1a2c0
leaq 0x9d9d(%rip), %rsi      # 0x128b1
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8cdd
movq 0x11796(%rip), %rdi     # 0x1a2c0
movq %r12, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8d5f
movq 0x1177d(%rip), %rdi     # 0x1a2c0
movq %r12, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8d50
movq 0x11744(%rip), %rdi     # 0x1a2a0
leaq 0x8962(%rip), %rsi      # 0x114c5
movq %r14, %rdx
movq %r14, %rcx
movq %r15, %r8
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8d41
movq 0x1171e(%rip), %rdi     # 0x1a2a0
leaq 0x89b3(%rip), %rsi      # 0x1153c
movq %r14, %rdx
movq %r14, %rcx
movq %r15, %r8
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8d32
movq 0x116f8(%rip), %rdi     # 0x1a2a0
leaq 0x89ca(%rip), %rsi      # 0x11579
movq %r14, %rdx
movq %r14, %rcx
movq %r15, %r8
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8d1e
movq 0x116d2(%rip), %rdi     # 0x1a2a0
movq %r12, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8d0a
movq 0x116b9(%rip), %rdi     # 0x1a2a0
movq %r12, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
jns 0x8cbd
jmp 0x8cf6
movq 0x116bb(%rip), %rdi     # 0x1a2c0
leaq 0x9ca5(%rip), %rsi      # 0x128b1
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8d5a
movq 0x1169e(%rip), %rdi     # 0x1a2c0
movq %r12, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8d4b
movq 0x11685(%rip), %rdi     # 0x1a2c0
movq %r12, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8d3c
movq 0x1164c(%rip), %rdi     # 0x1a2a0
leaq 0x8691(%rip), %rsi      # 0x112ec
movq %r14, %rdx
movq %r14, %rcx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8d28
movq 0x11629(%rip), %rdi     # 0x1a2a0
leaq 0x86d4(%rip), %rsi      # 0x11352
movq %r14, %rdx
movq %r14, %rcx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8d14
movq 0x11606(%rip), %rdi     # 0x1a2a0
movq %r12, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8d00
movq 0x115f1(%rip), %rdi     # 0x1a2a0
movq %r12, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8cec
movq (%rbx), %rbx
testq %rbx, %rbx
jne 0x88d5
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x2f0a
callq 0x2cb0
callq 0x2edf
callq 0x2d87
callq 0x2f35
callq 0x2cdb
callq 0x2b83
callq 0x2db2
callq 0x2f60
callq 0x2d06
callq 0x2bae
callq 0x2ddd
callq 0x2f8b
callq 0x2d31
callq 0x2bd9
callq 0x2e08
callq 0x2fb6
callq 0x2d5c
callq 0x2c04
callq 0x2e33
callq 0x2fe1
callq 0x2c2f
callq 0x2e5e
callq 0x300c
callq 0x2c5a
callq 0x2e89
callq 0x3037
callq 0x2c85
callq 0x2eb4
callq 0x3062
callq 0x308d