// File: /workspace/github_c_makefile_star2_O2/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 0xe501(%rip), %rdi      # 0x112c0
leaq 0x93c1(%rip), %rsi      # 0xc187
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x318c
pushq $0x1
popq %r15
leaq 0x93a7(%rip), %r13      # 0xc187
leaq 0x9811(%rip), %r14      # 0xc5f8
testq %rbx, %rbx
je 0x317d
movl 0x8(%rbx), %eax
cmpl $0x2, %eax
je 0x2f3c
cmpl $0x1, %eax
je 0x2e64
testl %eax, %eax
jne 0x3175
movq 0x10(%rbx), %r12
movq 0xe4ac(%rip), %rdi      # 0x112c0
leaq 0x94c6(%rip), %rsi      # 0xc2e1
movq %r12, %rdx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x318c
leaq 0x18(%rbx), %r13
movq (%r13), %r13
testq %r13, %r13
je 0x30bb
movl %r15d, %edi
callq 0x6410
movq 0xe473(%rip), %rdi      # 0x112c0
movq 0x8(%r13), %rdx
movq %r14, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
jns 0x2e31
jmp 0x318c
movq 0x10(%rbx), %r12
movq 0xe451(%rip), %rdi      # 0x112c0
leaq 0x9536(%rip), %rsi      # 0xc3ac
movq %r12, %rdx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x318c
movq 0x18(%rbx), %rdi
movl %r15d, %esi
callq 0x5f00
movq 0xe425(%rip), %rdi      # 0x112c0
leaq 0xaa0f(%rip), %rsi      # 0xd8b1
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x318c
movq 0xe408(%rip), %rdi      # 0x112c0
movq %r13, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x318c
movq 0xe3ef(%rip), %rdi      # 0x112c0
movq %r13, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x318c
movq 0xe3b6(%rip), %rdi      # 0x112a0
leaq 0x94c8(%rip), %rsi      # 0xc3b9
movq %r12, %rdx
movq %r12, %rcx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x318c
movq 0xe393(%rip), %rdi      # 0x112a0
leaq 0x950f(%rip), %rsi      # 0xc423
movq %r12, %rdx
movq %r12, %rcx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x318c
movq 0xe370(%rip), %rdi      # 0x112a0
leaq 0x951c(%rip), %rsi      # 0xc453
jmp 0x313a
movq 0x10(%rbx), %r12
movq 0x18(%rbx), %r13
movq 0xe375(%rip), %rdi      # 0x112c0
leaq 0x938f(%rip), %rsi      # 0xc2e1
movq %r13, %rdx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x318c
movq 0x20(%rbx), %rdi
movl %r15d, %esi
callq 0x617d
movq 0xe349(%rip), %rdi      # 0x112c0
leaq 0xa933(%rip), %rsi      # 0xd8b1
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x318c
movq 0xe32c(%rip), %rdi      # 0x112c0
leaq 0x91ec(%rip), %rsi      # 0xc187
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x318c
movq 0xe30f(%rip), %rdi      # 0x112c0
leaq 0x9501(%rip), %rsi      # 0xc4b9
movq %r12, %rdx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x318c
movq %r14, %r15
movq 0x20(%rbx), %rdi
pushq $0x1
popq %rsi
callq 0x61ef
movq 0xe2e0(%rip), %rdi      # 0x112c0
leaq 0xa8ca(%rip), %rsi      # 0xd8b1
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x318c
movq 0xe2c3(%rip), %rdi      # 0x112c0
leaq 0x9183(%rip), %r14      # 0xc187
movq %r14, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x318c
movq 0xe2a3(%rip), %rdi      # 0x112c0
movq %r14, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x318c
movq 0xe26a(%rip), %rdi      # 0x112a0
leaq 0x9488(%rip), %rsi      # 0xc4c5
movq %r12, %rdx
movq %r12, %rcx
movq %r13, %r8
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x318c
movq %r15, %r14
movq 0xe241(%rip), %rdi      # 0x112a0
leaq 0x94d6(%rip), %rsi      # 0xc53c
movq %r12, %rdx
movq %r12, %rcx
movq %r13, %r8
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
pushq $0x1
popq %r15
js 0x318c
movq 0xe217(%rip), %rdi      # 0x112a0
leaq 0x94e9(%rip), %rsi      # 0xc579
movq %r12, %rdx
movq %r12, %rcx
movq %r13, %r8
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x318c
movq 0xe1f1(%rip), %rdi      # 0x112a0
leaq 0x90d1(%rip), %r13      # 0xc187
jmp 0x3152
movq 0xe1fe(%rip), %rdi      # 0x112c0
leaq 0xa7e8(%rip), %rsi      # 0xd8b1
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x318c
movq 0xe1e1(%rip), %rdi      # 0x112c0
leaq 0x90a1(%rip), %r13      # 0xc187
movq %r13, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x318c
movq 0xe1c1(%rip), %rdi      # 0x112c0
movq %r13, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x318c
movq 0xe18c(%rip), %rdi      # 0x112a0
leaq 0x91d1(%rip), %rsi      # 0xc2ec
movq %r12, %rdx
movq %r12, %rcx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x318c
movq 0xe16d(%rip), %rdi      # 0x112a0
leaq 0x9218(%rip), %rsi      # 0xc352
movq %r12, %rdx
movq %r12, %rcx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x318c
movq 0xe14e(%rip), %rdi      # 0x112a0
movq %r13, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x318c
movq 0xe139(%rip), %rdi      # 0x112a0
movq %r13, %rsi
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x318c
movq (%rbx), %rbx
jmp 0x2de7
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0xde5d(%rip), %rax      # 0x10ff0
movq (%rax), %rdi
leaq 0x879b(%rip), %rsi      # 0xb938
leaq 0x87ac(%rip), %rdx      # 0xb950
xorl %eax, %eax
callq 0x2100
pushq $0x1
popq %rdi
callq 0x2180