// File: /workspace/github_c_makefile_star2_O3/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 0x11938(%rip), %rdi     # 0x1a2c0
leaq 0x87f8(%rip), %rsi      # 0x11187
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8e4e
testq %rbx, %rbx
je 0x8da9
leaq 0x87d9(%rip), %r12      # 0x11187
leaq 0x8c43(%rip), %r13      # 0x115f8
movl 0x8(%rbx), %eax
cmpl $0x2, %eax
je 0x8b4c
cmpl $0x1, %eax
je 0x8a2b
testl %eax, %eax
jne 0x8d9d
movq 0x10(%rbx), %r14
movq 0x118e7(%rip), %rdi     # 0x1a2c0
leaq 0x8901(%rip), %rsi      # 0x112e1
movq %r14, %rdx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8e49
movq 0x18(%rbx), %r15
testq %r15, %r15
je 0x8cde
movl $0x1, %edi
callq 0xab69
movq 0x118b0(%rip), %rdi     # 0x1a2c0
movq 0x8(%r15), %rdx
movq %r13, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8db8
movq (%r15), %r15
jmp 0x89f6
movq 0x10(%rbx), %r14
movq 0x1188a(%rip), %rdi     # 0x1a2c0
leaq 0x896f(%rip), %rsi      # 0x113ac
movq %r14, %rdx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8dc2
movq 0x18(%rbx), %rdi
movl $0x1, %esi
callq 0xa617
movq 0x1185c(%rip), %rdi     # 0x1a2c0
leaq 0x9e46(%rip), %rsi      # 0x128b1
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8e44
movq 0x1183f(%rip), %rdi     # 0x1a2c0
movq %r12, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8e35
movq 0x11826(%rip), %rdi     # 0x1a2c0
movq %r12, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8e26
movq 0x117ed(%rip), %rdi     # 0x1a2a0
leaq 0x88ff(%rip), %rsi      # 0x113b9
movq %r14, %rdx
movq %r14, %rcx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8e17
movq 0x117ca(%rip), %rdi     # 0x1a2a0
leaq 0x8946(%rip), %rsi      # 0x11423
movq %r14, %rdx
movq %r14, %rcx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8e03
movq 0x117a7(%rip), %rdi     # 0x1a2a0
leaq 0x8953(%rip), %rsi      # 0x11453
movq %r14, %rdx
movq %r14, %rcx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8def
movq 0x11784(%rip), %rdi     # 0x1a2a0
movq %r12, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8ddb
movq 0x1176b(%rip), %rdi     # 0x1a2a0
movq %r12, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
jns 0x8d9d
jmp 0x8dc7
movq 0x10(%rbx), %r14
movq 0x18(%rbx), %r15
movq 0x11765(%rip), %rdi     # 0x1a2c0
leaq 0x877f(%rip), %rsi      # 0x112e1
movq %r15, %rdx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8e0d
movq 0x20(%rbx), %rdi
movl $0x1, %esi
callq 0xa8b8
movq 0x11737(%rip), %rdi     # 0x1a2c0
leaq 0x9d21(%rip), %rsi      # 0x128b1
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8df9
movq 0x1171a(%rip), %rdi     # 0x1a2c0
movq %r12, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8de5
movq 0x11701(%rip), %rdi     # 0x1a2c0
leaq 0x88f3(%rip), %rsi      # 0x114b9
movq %r14, %rdx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8dd1
movq 0x20(%rbx), %rdi
movl $0x1, %esi
callq 0xa90b
movq 0x116d3(%rip), %rdi     # 0x1a2c0
leaq 0x9cbd(%rip), %rsi      # 0x128b1
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8dbd
movq 0x116b6(%rip), %rdi     # 0x1a2c0
movq %r12, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8e3f
movq 0x1169d(%rip), %rdi     # 0x1a2c0
movq %r12, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8e30
movq 0x11664(%rip), %rdi     # 0x1a2a0
leaq 0x8882(%rip), %rsi      # 0x114c5
movq %r14, %rdx
movq %r14, %rcx
movq %r15, %r8
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8e21
movq 0x1163e(%rip), %rdi     # 0x1a2a0
leaq 0x88d3(%rip), %rsi      # 0x1153c
movq %r14, %rdx
movq %r14, %rcx
movq %r15, %r8
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8e12
movq 0x11618(%rip), %rdi     # 0x1a2a0
leaq 0x88ea(%rip), %rsi      # 0x11579
movq %r14, %rdx
movq %r14, %rcx
movq %r15, %r8
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8dfe
movq 0x115f2(%rip), %rdi     # 0x1a2a0
movq %r12, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8dea
movq 0x115d9(%rip), %rdi     # 0x1a2a0
movq %r12, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
jns 0x8d9d
jmp 0x8dd6
movq 0x115db(%rip), %rdi     # 0x1a2c0
leaq 0x9bc5(%rip), %rsi      # 0x128b1
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8e3a
movq 0x115be(%rip), %rdi     # 0x1a2c0
movq %r12, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8e2b
movq 0x115a5(%rip), %rdi     # 0x1a2c0
movq %r12, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8e1c
movq 0x1156c(%rip), %rdi     # 0x1a2a0
leaq 0x85b1(%rip), %rsi      # 0x112ec
movq %r14, %rdx
movq %r14, %rcx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8e08
movq 0x11549(%rip), %rdi     # 0x1a2a0
leaq 0x85f4(%rip), %rsi      # 0x11352
movq %r14, %rdx
movq %r14, %rcx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8df4
movq 0x11526(%rip), %rdi     # 0x1a2a0
movq %r12, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8de0
movq 0x11511(%rip), %rdi     # 0x1a2a0
movq %r12, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8dcc
movq (%rbx), %rbx
testq %rbx, %rbx
jne 0x89b5
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