// File: /workspace/github_c_makefile_star2_O0/nimble-code[P]Modex/Src/xtract.c
// Function: modex_leaf
void
modex_leaf(leafnode *leaf, int tabs)
{
	if (leaf == NULL || !visu) return;

	/* normally not called */
	linenr = leaf->hdr.line;
	vis_indent(tabs, "");

	switch(leaf->hdr.type){
	case TN_IDENT:	/* modex_leaf */
		vis_print(nmestr(leaf->data.sval));
		break;
	case TN_TYPE:
		if (Verbose&2)
		{	vis_print("Type ");
			vis_print(toksym(leaf->hdr.tok,0));
			if (leaf->hdr.tok == TYPEDEF_NAME)
			{	vis_print(" ");
				vis_print(nmestr(leaf->data.sval));
		}	}
		break;
	case TN_INT:
		vis_print("Int ");
		vis_print_d(leaf->data.ival);
		vis_print("\n");
		break;
	case TN_REAL:
		vis_print("Real ");
		vis_print_g(leaf->data.dval);
		vis_print("\n");
		break;
	case TN_STRING:
		if (0)
		fprintf(stderr, "STRING (%s) at line %3d\n",
			leaf->data.str, leaf->hdr.line);
		vis_print("\"");
		fputs_metastr(leaf->data.str);
		vis_print("\"");
		break;
	case TN_ELLIPSIS:
		vis_print("Ellipsis\n");
		break;
	case TN_LABEL:
		vis_print("Label\n");
		break;
	default:
		fprintf(stderr, "%s: error: unknown leaf type %d\n", progname, leaf->hdr.type);
		break;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x16ef2
leaq 0x30cb3(%rip), %rax     # 0x47ba0
cmpl $0x0, (%rax)
jne 0x16ef7
jmp 0x1707f
movq -0x8(%rbp), %rax
movl 0x10(%rax), %eax
movl %eax, 0x3afe0(%rip)     # 0x51ee4
movl -0xc(%rbp), %edi
leaq 0x205b0(%rip), %rsi     # 0x374be
callq 0x15880
movq -0x8(%rbp), %rax
movl 0x1c(%rax), %eax
addl $-0x22, %eax
movl %eax, %ecx
movq %rcx, -0x18(%rbp)
subl $0xf, %eax
ja 0x17056
movq -0x18(%rbp), %rax
leaq 0x1e1b1(%rip), %rcx     # 0x350e8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x4870
movq %rax, %rdi
callq 0x15790
jmp 0x1707f
leaq 0x30ceb(%rip), %rax     # 0x47c4c
movl (%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x16fbd
leaq 0x1f48c(%rip), %rdi     # 0x363fe
callq 0x15790
movq -0x8(%rbp), %rax
movl 0x18(%rax), %edi
xorl %esi, %esi
callq 0x1ab20
movq %rax, %rdi
callq 0x15790
movq -0x8(%rbp), %rax
cmpl $0x105, 0x18(%rax)      # imm = 0x105
jne 0x16fbb
leaq 0x1f0bf(%rip), %rdi     # 0x36060
callq 0x15790
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x4870
movq %rax, %rdi
callq 0x15790
jmp 0x16fbd
jmp 0x1707f
leaq 0x1f43b(%rip), %rdi     # 0x36404
callq 0x15790
movq -0x8(%rbp), %rax
movl 0x30(%rax), %edi
callq 0x156f0
leaq 0x1ea76(%rip), %rdi     # 0x35a57
callq 0x15790
jmp 0x1707f
leaq 0x1f417(%rip), %rdi     # 0x36409
callq 0x15790
movq -0x8(%rbp), %rax
movsd 0x30(%rax), %xmm0
callq 0x15740
leaq 0x1ea4b(%rip), %rdi     # 0x35a57
callq 0x15790
jmp 0x1707f
leaq 0x28382(%rip), %rdi     # 0x3f39c
callq 0x15790
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x15dd0
leaq 0x28369(%rip), %rdi     # 0x3f39c
callq 0x15790
jmp 0x1707f
leaq 0x1f3ce(%rip), %rdi     # 0x3640f
callq 0x15790
jmp 0x1707f
leaq 0x1f3ca(%rip), %rdi     # 0x36419
callq 0x15790
jmp 0x1707f
movq 0x2df9b(%rip), %rax     # 0x44ff8
movq (%rax), %rdi
leaq 0x2e109(%rip), %rax     # 0x45170
movq (%rax), %rdx
movq -0x8(%rbp), %rax
movl 0x1c(%rax), %ecx
leaq 0x1f3a8(%rip), %rsi     # 0x36420
movb $0x0, %al
callq 0x4190
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)