// File: /workspace/github_c_makefile_star2_O3/nimble-code[P]Uno/Src/uno_local.c
// Function: main
int
main(int argc, char **argv)
{	char *arg = NULL;

	argc--; argv++;
	file_name = "-";
	while (argc-- > 0)
	{	arg = *argv++;

		if (strcmp(arg, "-allerr") == 0)
		{	allerr = allerrs = 1;
			continue;
		} else if (strcmp(arg, "-c") == 0)
		{	continue;	/* ignore */
		} else if (strcmp(arg, "-cfg") == 0)
		{	uno_p = 2;
			if (argc > 1 && *(*argv) != '-')
			{	want = *argv++;
			}
			continue;
		} else if (strcmp(arg, "-cyclo") == 0)
		{	cyclo = 1;
			continue;
		} else if (strcmp(arg, "-localonly") == 0)
		{	localonly = 1;
			continue;
		} else if (strcmp(arg, "-picky") == 0)
		{	lintlike = picky = 1;
			usecheck = 1;
			continue;
		} else if (strcmp(arg, "-fullpaths") == 0)
		{	nopaths = 1 - nopaths;
			continue;
		} else if (strcmp(arg, "-use") == 0)
		{	usecheck = 1;
			continue;
		} else if (strcmp(arg, "-nova") == 0)
		{	no_va = 0;
			continue;
		} else if (strcmp(arg, "-nopre") == 0)
		{	nopre = 1;
			continue;
		} else if (strcmp(arg, "-local") == 0)
		{	continue;	/* backward compatibility with modex */
		} else if (strcmp(arg, "-prop") == 0)
		{	never = (char *) emalloc(strlen(*argv)+1);
			strcpy(never, *argv);
			argc--; argv++;
			continue;
		} else if (strcmp(arg, "-static") == 0)
		{	see_static_fcts = 1;
			continue;
		} else if (strcmp(arg, "-shared") == 0)
		{	show_sharing = localonly = 1;
			continue;
		} else if (strcmp(arg, "-typedefs") == 0)
		{	list_typedefs = 1;
			continue;
		} else if (strcmp(arg, "-extern") == 0)
		{	see_extern_fcts = 1;
			continue;
		} else if (strcmp(arg, "-else") == 0)
		{	check_else_chains = 1;
			continue;
		} else if (strcmp(arg, "-compound") == 0)
		{	check_compounds = 1;
			continue;
		} else if (strcmp(arg, "-exit") == 0)
		{	custom_exit((const char *) *argv);
			argc--; argv++;
			continue;
		} else if (strcmp(arg, "-master") == 0)
		{	master_dfn = (char *) emalloc(strlen(*argv)+1);
			strcpy(master_dfn, *argv);
			argc--; argv++;
			continue;
		} else if (strncmp(arg, "-W", 2) == 0 && strlen(arg) > 2)
		{	working_dir = (char *) emalloc(strlen(arg)+1-2);
			strcpy(working_dir, &arg[2]);
			continue;
		} else if (strcmp(arg, "-V") == 0)
		{	printf("%s\n", VERSION);
			exit(0);
		} else if (strcmp(arg, "-view") == 0)	/* debugging mode */
		{	viewtree++;
			continue;
		} else if (strncmp(arg, "-v", 2) == 0)
		{	Verbose++;	/* -v or e.g. -verbose */
			continue;
		} else if (strncmp(arg, "-w", 2) == 0)
		{	keeptmps = 1;	/* intermediate files */
			continue;
		} else if (strncmp(arg, "-rules", 6) == 0)
		{	xrepro = 1;
			continue;
		} else if (strcmp(arg, "-s") == 0)
		{	show_syms = 1;
			continue;
		} else if (strcmp(arg, "-t") == 0)
		{	type_check = 1;
			continue;
		}

		if (strncmp(arg, "-CPP=", strlen("-CPP=")) == 0)
		{	CPRE = arg+strlen("-CPP=");
			continue;
		}

		if (strncmp(arg, "-U", 2) == 0
		||  strncmp(arg, "-D", 2) == 0
		||  strncmp(arg, "-I", 2) == 0)
		{	if (!preproc_info)
			{	preproc_info = (char *) emalloc(strlen(arg)+1);
				strcpy(preproc_info, arg);
			} else
			{	char *pp = (char *) emalloc(strlen(arg)+strlen(preproc_info)+1+1+2);
				strcpy(pp, preproc_info);
				strcat(pp, " \""); /* quote all but the first one */
				strcat(pp, arg);
				strcat(pp, "\"");
				preproc_info = pp;
			}
			continue;
		}
		break;
	}

	custom_exit("exit");		/* fcts known not to return */
	custom_exit("fatal");
	custom_exit("panic");

	if (!arg) Usage("uno");

	read_suppress();	/* read an optional uno_suppress file */
	
	for (file_name = arg; file_name && argc >= 0; file_name = *argv++, argc--)
	{	if (Verbose)
			printf("uno: %s\n", file_name);
		set_fnm(file_name);

		find_suppress_lines(file_name);

		process_input(file_name);	/* parses file */

		if (parse_tree
		&&  !see_extern_fcts
		&&  !see_static_fcts)
		{	lts_start(parse_tree);	/* uno_lts.c   */
		}

		if (show_syms)
		{	show_symtab(contxt->syms, stdout);
		}

		if (Verbose)
		{	memstats();
		}

		free_context(contxt);	/* done with this file */

		while (!is_empty(ParseStack))
		{	delete_stk_item(pop(ParseStack));
		}

		if (Verbose>1) printf("parsestack\n");

		while (!is_empty(DoneStack))
		{	delete_stk_item(Parse_TOS = pop(DoneStack));
		}

		if (Verbose>1) printf("donestack\n");

		Parse_TOS  = (Stk_Item  *) 0;
		DoneStack  = (TreeStack *) 0;
		parse_tree = (treenode *) 0;
		ParseStack = (TreeStack *) 0;
	}
	if (Verbose>1) printf("done\n");

	return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r13
movl %edi, %ebp
addq $0x8, %r13
leaq 0x1ad0b(%rip), %rax     # 0x20206
movq %rax, 0x32cc6(%rip)     # 0x381c8
leal -0x2(%rbp), %r15d
cmpl $0x2, %edi
jl 0x5ac9
decl %ebp
movq %r13, %rbx
leaq 0x8(%rbx), %r13
movq (%rbx), %r14
movq %r14, %rdi
leaq 0x1a646(%rip), %rsi     # 0x1fb6b
callq 0x3190
testl %eax, %eax
je 0x5730
movb (%r14), %r12b
cmpb $0x2d, %r12b
jne 0x554d
cmpb $0x63, 0x1(%r14)
jne 0x554d
cmpb $0x0, 0x2(%r14)
je 0x5871
movq %r14, %rdi
leaq 0x1a61c(%rip), %rsi     # 0x1fb73
callq 0x3190
testl %eax, %eax
je 0x5746
movq %r14, %rdi
leaq 0x1a60a(%rip), %rsi     # 0x1fb78
callq 0x3190
testl %eax, %eax
je 0x5779
movq %r14, %rdi
leaq 0x1a5fa(%rip), %rsi     # 0x1fb7f
callq 0x3190
testl %eax, %eax
je 0x5788
movq %r14, %rdi
leaq 0x1a5ee(%rip), %rsi     # 0x1fb8a
callq 0x3190
testl %eax, %eax
je 0x5797
movq %r14, %rdi
leaq 0x1a5de(%rip), %rsi     # 0x1fb91
callq 0x3190
testl %eax, %eax
je 0x57b3
movq %r14, %rdi
leaq 0x1a5d2(%rip), %rsi     # 0x1fb9c
callq 0x3190
testl %eax, %eax
je 0x57c9
movq %r14, %rdi
leaq 0x1a5c0(%rip), %rsi     # 0x1fba1
callq 0x3190
testl %eax, %eax
je 0x57d8
movq %r14, %rdi
leaq 0x1a5af(%rip), %rsi     # 0x1fba7
callq 0x3190
testl %eax, %eax
je 0x57e4
movq %r14, %rdi
leaq 0x1a59f(%rip), %rsi     # 0x1fbae
callq 0x3190
testl %eax, %eax
je 0x5871
movq %r14, %rdi
leaq 0x1a58f(%rip), %rsi     # 0x1fbb5
callq 0x3190
testl %eax, %eax
je 0x57f0
movq %r14, %rdi
leaq 0x1a57e(%rip), %rsi     # 0x1fbbb
callq 0x3190
testl %eax, %eax
je 0x5824
movq %r14, %rdi
leaq 0x1a56f(%rip), %rsi     # 0x1fbc3
callq 0x3190
testl %eax, %eax
je 0x5830
movq %r14, %rdi
leaq 0x1a560(%rip), %rsi     # 0x1fbcb
callq 0x3190
testl %eax, %eax
je 0x5843
movq %r14, %rdi
leaq 0x1a553(%rip), %rsi     # 0x1fbd5
callq 0x3190
testl %eax, %eax
je 0x584f
movq %r14, %rdi
leaq 0x1a544(%rip), %rsi     # 0x1fbdd
callq 0x3190
testl %eax, %eax
je 0x585b
movq %r14, %rdi
leaq 0x1a533(%rip), %rsi     # 0x1fbe3
callq 0x3190
testl %eax, %eax
je 0x5867
movq %r14, %rdi
leaq 0x1a526(%rip), %rsi     # 0x1fbed
callq 0x3190
testl %eax, %eax
je 0x5888
movq %r14, %rdi
leaq 0x1a515(%rip), %rsi     # 0x1fbf3
callq 0x3190
testl %eax, %eax
je 0x5893
cmpb $0x2d, %r12b
jne 0x58b1
cmpb $0x57, 0x1(%r14)
jne 0x599f
movq %r14, %rdi
callq 0x30d0
cmpq $0x3, %rax
jb 0x599f
decq %rax
movq %rax, %rdi
callq 0x5fdd
movq %rax, 0x32ac4(%rip)     # 0x381e8
leaq 0x2(%r14), %rsi
movq %rax, %rdi
jmp 0x5a2b
movl $0x1, %eax
movl %eax, 0x32b15(%rip)     # 0x38250
movl %eax, 0x32b13(%rip)     # 0x38254
jmp 0x5871
movl $0x2, 0x32a10(%rip)     # 0x38160
cmpl $0x3, %ebp
jb 0x5871
movq (%r13), %rax
cmpb $0x2d, (%rax)
je 0x5871
addq $0x10, %rbx
movq %rax, 0x329f7(%rip)     # 0x38168
movq %rbx, %r13
jmp 0x5871
movl $0x1, 0x32ad5(%rip)     # 0x38258
jmp 0x5871
movl $0x1, 0x32aca(%rip)     # 0x3825c
jmp 0x5871
movl $0x1, %eax
movl %eax, 0x32abe(%rip)     # 0x38260
movl %eax, 0x32abc(%rip)     # 0x38264
movl %eax, 0x32aba(%rip)     # 0x38268
jmp 0x5871
movl $0x1, %eax
subl 0x329a6(%rip), %eax     # 0x38164
movl %eax, 0x329a0(%rip)     # 0x38164
jmp 0x5871
movl $0x1, 0x32a95(%rip)     # 0x38268
jmp 0x5871
movb $0x1, 0x32a25(%rip)     # 0x38204
jmp 0x5871
movb $0x1, 0x32a15(%rip)     # 0x38200
jmp 0x5871
movq 0x8(%rbx), %rdi
callq 0x30d0
leaq 0x1(%rax), %rdi
callq 0x5fdd
movq %rax, 0x329ef(%rip)     # 0x381f8
movq 0x8(%rbx), %rsi
movq %rax, %rdi
callq 0x3090
addl $-0x2, %ebp
addq $0x10, %rbx
movq %rbx, %r13
movl %ebp, %r15d
jmp 0x5871
movl $0x1, 0x32a3e(%rip)     # 0x3826c
jmp 0x5871
movl $0x1, %eax
movl %eax, 0x32a21(%rip)     # 0x3825c
movl %eax, 0x32a2f(%rip)     # 0x38270
jmp 0x5871
movl $0x1, 0x32a27(%rip)     # 0x38274
jmp 0x5871
movl $0x1, 0x32a1f(%rip)     # 0x38278
jmp 0x5871
movl $0x1, 0x32a17(%rip)     # 0x3827c
jmp 0x5871
movl $0x1, 0x32a0f(%rip)     # 0x38280
movl %r15d, %ebp
leal -0x1(%rbp), %r15d
movq %r13, %rbx
testl %ebp, %ebp
jg 0x5514
jmp 0x5acc
movq 0x8(%rbx), %rdi
callq 0x137c8
jmp 0x5815
movq 0x8(%rbx), %rdi
callq 0x30d0
leaq 0x1(%rax), %rdi
callq 0x5fdd
movq %rax, 0x328d4(%rip)     # 0x38180
jmp 0x5809
movq %r14, %rdi
leaq 0x1a340(%rip), %rsi     # 0x1fbfb
callq 0x3190
testl %eax, %eax
je 0x59f5
movl $0x6, %edx
movq %r14, %rdi
leaq 0x1a32a(%rip), %rsi     # 0x1fc01
callq 0x3080
testl %eax, %eax
je 0x5a9f
movl $0x5, %edx
movq %r14, %rdi
leaq 0x1a315(%rip), %rsi     # 0x1fc08
callq 0x3080
testl %eax, %eax
je 0x5a8f
cmpb $0x2d, %r12b
jne 0x5acc
cmpb $0x55, 0x1(%r14)
je 0x5923
cmpb $0x44, 0x1(%r14)
je 0x5923
cmpb $0x49, 0x1(%r14)
jne 0x5acc
movq 0x3285e(%rip), %rbp     # 0x38188
movq %r14, %rdi
callq 0x30d0
movq %rax, %rbx
testq %rbp, %rbp
je 0x5a13
movq %rbp, %rdi
callq 0x30d0
leaq (%rbx,%rax), %rdi
addq $0x4, %rdi
callq 0x5fdd
movq %rax, %rbp
movq 0x3282b(%rip), %rsi     # 0x38188
movq %rax, %rdi
callq 0x3090
movq %rbp, %rdi
callq 0x30d0
movw $0x2220, (%rbp,%rax)    # imm = 0x2220
movb $0x0, 0x2(%rbp,%rax)
movq %rbp, %rdi
movq %r14, %rsi
callq 0x3240
movq %rbp, %rdi
callq 0x30d0
movw $0x22, (%rbp,%rax)
movq %rbp, 0x327ee(%rip)     # 0x38188
jmp 0x5871
cmpb $0x56, 0x1(%r14)
jne 0x59c6
cmpb $0x0, 0x2(%r14)
je 0x5cab
movq %r14, %rdi
leaq 0x1a240(%rip), %rsi     # 0x1fbfb
callq 0x3190
testl %eax, %eax
jne 0x59e3
jmp 0x59f5
movq %r14, %rdi
leaq 0x1a22b(%rip), %rsi     # 0x1fbfb
callq 0x3190
testl %eax, %eax
je 0x59f5
cmpb $0x2d, %r12b
jne 0x58c8
cmpb $0x76, 0x1(%r14)
jne 0x5a00
incl 0x32848(%rip)           # 0x38238
jmp 0x5871
incl 0x3284d(%rip)           # 0x38248
jmp 0x5871
cmpb $0x77, 0x1(%r14)
jne 0x5a35
movb $0x1, 0x32802(%rip)     # 0x38210
jmp 0x5871
incq %rbx
movq %rbx, %rdi
callq 0x5fdd
movq %rax, 0x32763(%rip)     # 0x38188
movq %rax, %rdi
movq %r14, %rsi
callq 0x3090
jmp 0x5871
movl $0x6, %edx
movq %r14, %rdi
leaq 0x1a1bd(%rip), %rsi     # 0x1fc01
callq 0x3080
testl %eax, %eax
je 0x5a9f
cmpb $0x2d, %r12b
jne 0x58e4
cmpb $0x73, 0x1(%r14)
jne 0x5a65
cmpb $0x0, 0x2(%r14)
je 0x5aae
cmpb $0x74, 0x1(%r14)
jne 0x5a73
cmpb $0x0, 0x2(%r14)
je 0x5aba
movl $0x5, %edx
movq %r14, %rdi
leaq 0x1a186(%rip), %rsi     # 0x1fc08
callq 0x3080
testl %eax, %eax
jne 0x590a
leaq 0x5(%r14), %rax
movq %rax, 0x3278e(%rip)     # 0x38228
jmp 0x5871
movl $0x1, 0x327a3(%rip)     # 0x3824c
jmp 0x5871
movb $0x1, 0x327cf(%rip)     # 0x38284
jmp 0x5871
movl $0x1, 0x327c4(%rip)     # 0x38288
jmp 0x5871
xorl %r14d, %r14d
leaq 0x1a11b(%rip), %rdi     # 0x1fbee
callq 0x137c8
leaq 0x1a132(%rip), %rdi     # 0x1fc11
callq 0x137c8
leaq 0x1a12c(%rip), %rdi     # 0x1fc17
callq 0x137c8
testq %r14, %r14
je 0x5c9f
callq 0x131fc
movq %r14, 0x326c3(%rip)     # 0x381c8
movl 0x3272d(%rip), %eax     # 0x38238
testl %r15d, %r15d
js 0x5c7d
leaq 0x1a159(%rip), %r12     # 0x1fc74
xorl %ebp, %ebp
leaq 0x1a0f9(%rip), %rbx     # 0x1fc1d
testl %eax, %eax
je 0x5b3c
movq %rbx, %rdi
movq %r14, %rsi
xorl %eax, %eax
callq 0x3100
movq 0x3268c(%rip), %r14     # 0x381c8
movq %r14, %rdi
callq 0x192d4
movq 0x3267d(%rip), %rdi     # 0x381c8
callq 0x13128
movq 0x32671(%rip), %rdi     # 0x381c8
callq 0x4f96
movq 0x326dd(%rip), %rdi     # 0x38240
testq %rdi, %rdi
je 0x5b7f
cmpl $0x0, 0x32709(%rip)     # 0x38278
jne 0x5b7f
cmpl $0x0, 0x326f4(%rip)     # 0x3826c
jne 0x5b7f
callq 0x13b67
cmpb $0x1, 0x326fe(%rip)     # 0x38284
jne 0x5ba2
movq 0x32661(%rip), %rax     # 0x381f0
movq 0x10(%rax), %rdi
movq 0x32436(%rip), %rax     # 0x37fd0
movq (%rax), %rsi
callq 0x6e6b
cmpl $0x0, 0x3268f(%rip)     # 0x38238
je 0x5bb0
callq 0x60a2
movq 0x32639(%rip), %rdi     # 0x381f0
callq 0x6eaf
movq 0x3260d(%rip), %rdi     # 0x381d0
callq 0x7dc5
testl %eax, %eax
jne 0x5be2
movq 0x325fd(%rip), %rdi     # 0x381d0
callq 0x7da0
movq %rax, %rdi
callq 0x7d20
jmp 0x5bbc
cmpl $0x2, 0x3264f(%rip)     # 0x38238
jl 0x5c14
leaq 0x1a077(%rip), %rdi     # 0x1fc69
callq 0x30a0
jmp 0x5c14
movq 0x325e0(%rip), %rdi     # 0x381e0
callq 0x7da0
movq %rax, 0x325cc(%rip)     # 0x381d8
movq %rax, %rdi
callq 0x7d20
movq 0x325c5(%rip), %rdi     # 0x381e0
callq 0x7dc5
testl %eax, %eax
je 0x5bf9
movl 0x3260e(%rip), %eax     # 0x38238
cmpl $0x2, %eax
jl 0x5c3d
movq %r12, %rdi
callq 0x30a0
movl 0x325fb(%rip), %eax     # 0x38238
movq %rbp, 0x32594(%rip)     # 0x381d8
movq %rbp, 0x32595(%rip)     # 0x381e0
movq %rbp, 0x325ee(%rip)     # 0x38240
movq %rbp, 0x32577(%rip)     # 0x381d0
movq (%r13), %r14
movq %r14, 0x32564(%rip)     # 0x381c8
testq %r14, %r14
je 0x5c7d
addq $0x8, %r13
leal -0x1(%r15), %ecx
testl %r15d, %r15d
movl %ecx, %r15d
jg 0x5b24
cmpl $0x2, %eax
jl 0x5c8e
leaq 0x19fdb(%rip), %rdi     # 0x1fc64
callq 0x30a0
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x2a3ad(%rip), %rdi     # 0x30053
callq 0x44ec
leaq 0x19f74(%rip), %rdi     # 0x1fc26
callq 0x30a0
xorl %edi, %edi
callq 0x3260