// File: /workspace/github_c_makefile_star2_O2/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, %r12
movl %edi, %ebx
decl %ebx
addq $0x8, %r12
leaq 0x19e96(%rip), %rax     # 0x1e206
movq %rax, 0x32e51(%rip)     # 0x371c8
xorl %r14d, %r14d
movl %ebx, %r15d
movq %r12, %rbp
leal -0x1(%r15), %ebx
testl %r15d, %r15d
jle 0x48de
leaq 0x8(%rbp), %r12
movq (%rbp), %r14
movq %r14, %rdi
leaq 0x197cc(%rip), %rsi     # 0x1db6b
callq 0x3190
testl %eax, %eax
je 0x45ab
movb (%r14), %r13b
cmpb $0x2d, %r13b
jne 0x43c3
cmpb $0x63, 0x1(%r14)
jne 0x43c3
cmpb $0x0, 0x2(%r14)
je 0x437a
movq %r14, %rdi
leaq 0x197a6(%rip), %rsi     # 0x1db73
callq 0x3190
testl %eax, %eax
je 0x45bf
movq %r14, %rdi
leaq 0x19794(%rip), %rsi     # 0x1db78
callq 0x3190
testl %eax, %eax
je 0x45f3
movq %r14, %rdi
leaq 0x19784(%rip), %rsi     # 0x1db7f
callq 0x3190
testl %eax, %eax
je 0x4602
movq %r14, %rdi
leaq 0x19778(%rip), %rsi     # 0x1db8a
callq 0x3190
testl %eax, %eax
je 0x4611
movq %r14, %rdi
leaq 0x19768(%rip), %rsi     # 0x1db91
callq 0x3190
testl %eax, %eax
je 0x462b
movq %r14, %rdi
leaq 0x1975c(%rip), %rsi     # 0x1db9c
callq 0x3190
testl %eax, %eax
je 0x463f
movq %r14, %rdi
leaq 0x1974a(%rip), %rsi     # 0x1dba1
callq 0x3190
testl %eax, %eax
je 0x464e
movq %r14, %rdi
leaq 0x19739(%rip), %rsi     # 0x1dba7
callq 0x3190
testl %eax, %eax
je 0x465a
movq %r14, %rdi
leaq 0x19729(%rip), %rsi     # 0x1dbae
callq 0x3190
testl %eax, %eax
je 0x437a
movq %r14, %rdi
leaq 0x19719(%rip), %rsi     # 0x1dbb5
callq 0x3190
testl %eax, %eax
je 0x4666
movq %r14, %rdi
leaq 0x19708(%rip), %rsi     # 0x1dbbb
callq 0x3190
testl %eax, %eax
je 0x469e
movq %r14, %rdi
leaq 0x196f9(%rip), %rsi     # 0x1dbc3
callq 0x3190
testl %eax, %eax
je 0x46ad
movq %r14, %rdi
leaq 0x196ea(%rip), %rsi     # 0x1dbcb
callq 0x3190
testl %eax, %eax
je 0x46c1
movq %r14, %rdi
leaq 0x196dd(%rip), %rsi     # 0x1dbd5
callq 0x3190
testl %eax, %eax
je 0x46d0
movq %r14, %rdi
leaq 0x196ce(%rip), %rsi     # 0x1dbdd
callq 0x3190
testl %eax, %eax
je 0x46df
movq %r14, %rdi
leaq 0x196bd(%rip), %rsi     # 0x1dbe3
callq 0x3190
testl %eax, %eax
je 0x46ee
movq %r14, %rdi
leaq 0x196b0(%rip), %rsi     # 0x1dbed
callq 0x3190
testl %eax, %eax
je 0x46fd
movq %r14, %rdi
leaq 0x1969f(%rip), %rsi     # 0x1dbf3
callq 0x3190
testl %eax, %eax
je 0x4708
cmpb $0x2d, %r13b
jne 0x4738
cmpb $0x57, 0x1(%r14)
jne 0x4726
movq %r14, %rdi
callq 0x30d0
cmpq $0x3, %rax
jb 0x4726
decq %rax
movq %rax, %rdi
callq 0x4da5
movq %rax, 0x32c4e(%rip)     # 0x371e8
leaq 0x2(%r14), %rsi
movq %rax, %rdi
callq 0x3090
jmp 0x437a
pushq $0x1
popq %rax
movl %eax, 0x32c9c(%rip)     # 0x37250
movl %eax, 0x32c9a(%rip)     # 0x37254
jmp 0x437a
movl $0x2, 0x32b9f(%rip)     # 0x37168
cmpl $0x3, %r15d
jb 0x437a
movq (%r12), %rax
cmpb $0x2d, (%rax)
je 0x437a
addq $0x10, %rbp
movq %rax, 0x32b85(%rip)     # 0x37170
movq %rbp, %r12
jmp 0x437a
movl $0x1, 0x32c5b(%rip)     # 0x37258
jmp 0x437a
movl $0x1, 0x32c50(%rip)     # 0x3725c
jmp 0x437a
pushq $0x1
popq %rax
movl %eax, 0x32c46(%rip)     # 0x37260
movl %eax, 0x32c44(%rip)     # 0x37264
movl %eax, 0x32c42(%rip)     # 0x37268
jmp 0x437a
pushq $0x1
popq %rax
subl 0x32b38(%rip), %eax     # 0x3716c
movl %eax, 0x32b32(%rip)     # 0x3716c
jmp 0x437a
movl $0x1, 0x32c1f(%rip)     # 0x37268
jmp 0x437a
movb $0x1, 0x32baf(%rip)     # 0x37204
jmp 0x437a
movb $0x1, 0x32b9f(%rip)     # 0x37200
jmp 0x437a
movq 0x8(%rbp), %rdi
callq 0x30d0
leaq 0x1(%rax), %rdi
callq 0x4da5
movq %rax, 0x32b79(%rip)     # 0x371f8
movq 0x8(%rbp), %rsi
movq %rax, %rdi
callq 0x3090
addl $-0x2, %r15d
addq $0x10, %rbp
movq %rbp, %r12
movl %r15d, %ebx
jmp 0x437a
movl $0x1, 0x32bc4(%rip)     # 0x3726c
jmp 0x437a
pushq $0x1
popq %rax
movl %eax, 0x32ba6(%rip)     # 0x3725c
movl %eax, 0x32bb4(%rip)     # 0x37270
jmp 0x437a
movl $0x1, 0x32ba9(%rip)     # 0x37274
jmp 0x437a
movl $0x1, 0x32b9e(%rip)     # 0x37278
jmp 0x437a
movl $0x1, 0x32b93(%rip)     # 0x3727c
jmp 0x437a
movl $0x1, 0x32b88(%rip)     # 0x37280
jmp 0x437a
movq 0x8(%rbp), %rdi
callq 0x125ef
jmp 0x468b
movq 0x8(%rbp), %rdi
callq 0x30d0
leaq 0x1(%rax), %rdi
callq 0x4da5
movq %rax, 0x32a67(%rip)     # 0x37188
jmp 0x467f
cmpb $0x56, 0x1(%r14)
jne 0x4738
cmpb $0x0, 0x2(%r14)
je 0x4ab4
movq %r14, %rdi
leaq 0x194b9(%rip), %rsi     # 0x1dbfb
callq 0x3190
testl %eax, %eax
je 0x4763
cmpb $0x2d, %r13b
jne 0x4781
cmpb $0x76, 0x1(%r14)
jne 0x476e
incl 0x32ada(%rip)           # 0x37238
jmp 0x437a
incl 0x32adf(%rip)           # 0x37248
jmp 0x437a
cmpb $0x77, 0x1(%r14)
jne 0x4781
movb $0x1, 0x32a94(%rip)     # 0x37210
jmp 0x437a
movq %r14, %rdi
leaq 0x19476(%rip), %rsi     # 0x1dc01
pushq $0x6
popq %rdx
callq 0x3080
testl %eax, %eax
je 0x487f
cmpb $0x2d, %r13b
jne 0x47c5
cmpb $0x73, 0x1(%r14)
jne 0x47b3
cmpb $0x0, 0x2(%r14)
je 0x48c0
cmpb $0x74, 0x1(%r14)
jne 0x47c5
cmpb $0x0, 0x2(%r14)
je 0x48cc
movq %r14, %rdi
leaq 0x19439(%rip), %rsi     # 0x1dc08
pushq $0x5
popq %rdx
callq 0x3080
testl %eax, %eax
je 0x488e
cmpb $0x2d, %r13b
jne 0x48db
cmpb $0x55, 0x1(%r14)
je 0x4802
cmpb $0x44, 0x1(%r14)
je 0x4802
cmpb $0x49, 0x1(%r14)
jne 0x48db
movq 0x32987(%rip), %r13     # 0x37190
movq %r14, %rdi
callq 0x30d0
movq %rax, %r15
testq %r13, %r13
je 0x489e
movq %r13, %rdi
callq 0x30d0
leaq (%r15,%rax), %rdi
addq $0x4, %rdi
callq 0x4da5
movq %rax, %r15
movq 0x32954(%rip), %rsi     # 0x37190
movq %rax, %rdi
callq 0x3090
movq %r15, %rdi
callq 0x30d0
movw $0x2220, (%r15,%rax)    # imm = 0x2220
movb $0x0, 0x2(%r15,%rax)
movq %r15, %rdi
movq %r14, %rsi
callq 0x3250
movq %r15, %rdi
callq 0x30d0
movw $0x22, (%r15,%rax)
movq %r15, 0x32916(%rip)     # 0x37190
jmp 0x437a
movl $0x1, 0x329c3(%rip)     # 0x3724c
jmp 0x437a
leaq 0x5(%r14), %rax
movq %rax, 0x3298f(%rip)     # 0x37228
jmp 0x437a
incq %r15
movq %r15, %rdi
callq 0x4da5
movq %rax, 0x328e0(%rip)     # 0x37190
movq %rax, %rdi
movq %r14, %rsi
callq 0x3090
jmp 0x437a
movb $0x1, 0x329bd(%rip)     # 0x37284
jmp 0x437a
movl $0x1, 0x329b2(%rip)     # 0x37288
jmp 0x437a
movq %r12, %rbp
leaq 0x19309(%rip), %rdi     # 0x1dbee
callq 0x125ef
leaq 0x19320(%rip), %rdi     # 0x1dc11
callq 0x125ef
leaq 0x1931a(%rip), %rdi     # 0x1dc17
callq 0x125ef
testq %r14, %r14
je 0x4aa8
callq 0x12063
movq %r14, 0x328b1(%rip)     # 0x371c8
leaq 0x1934b(%rip), %r15     # 0x1dc69
leaq 0x1934f(%rip), %r12     # 0x1dc74
leaq 0x192f1(%rip), %r13     # 0x1dc1d
movl 0x32906(%rip), %eax     # 0x37238
testq %r14, %r14
je 0x4a86
testl %ebx, %ebx
js 0x4a86
testl %eax, %eax
je 0x495b
movq %r13, %rdi
movq %r14, %rsi
xorl %eax, %eax
callq 0x3100
movq 0x3286d(%rip), %r14     # 0x371c8
movq %r14, %rdi
callq 0x17078
movq 0x3285e(%rip), %rdi     # 0x371c8
callq 0x11fa4
movq 0x32852(%rip), %rdi     # 0x371c8
callq 0x3dac
movq 0x328be(%rip), %rdi     # 0x37240
testq %rdi, %rdi
je 0x499e
cmpl $0x0, 0x328ea(%rip)     # 0x37278
jne 0x499e
cmpl $0x0, 0x328d5(%rip)     # 0x3726c
jne 0x499e
callq 0x128b6
cmpb $0x1, 0x328df(%rip)     # 0x37284
jne 0x49c1
movq 0x32842(%rip), %rax     # 0x371f0
movq 0x10(%rax), %rdi
movq 0x32617(%rip), %rax     # 0x36fd0
movq (%rax), %rsi
callq 0x5abe
cmpl $0x0, 0x32870(%rip)     # 0x37238
je 0x49cf
callq 0x4e8b
movq 0x3281a(%rip), %rdi     # 0x371f0
callq 0x5b00
movq 0x327ee(%rip), %rdi     # 0x371d0
callq 0x6c87
testl %eax, %eax
jne 0x4a01
movq 0x327de(%rip), %rdi     # 0x371d0
callq 0x6c65
movq %rax, %rdi
callq 0x6bed
jmp 0x49db
cmpl $0x2, 0x32830(%rip)     # 0x37238
jl 0x4a2f
movq %r15, %rdi
callq 0x30a0
jmp 0x4a2f
movq 0x327c5(%rip), %rdi     # 0x371e0
callq 0x6c65
movq %rax, 0x327b1(%rip)     # 0x371d8
movq %rax, %rdi
callq 0x6bed
movq 0x327aa(%rip), %rdi     # 0x371e0
callq 0x6c87
testl %eax, %eax
je 0x4a14
cmpl $0x2, 0x327f2(%rip)     # 0x37238
jl 0x4a50
movq %r12, %rdi
callq 0x30a0
andq $0x0, 0x32780(%rip)     # 0x371d8
andq $0x0, 0x32780(%rip)     # 0x371e0
andq $0x0, 0x327d8(%rip)     # 0x37240
andq $0x0, 0x32760(%rip)     # 0x371d0
movq (%rbp), %r14
addq $0x8, %rbp
movq %r14, 0x32749(%rip)     # 0x371c8
decl %ebx
jmp 0x492c
cmpl $0x2, %eax
jl 0x4a97
leaq 0x191d2(%rip), %rdi     # 0x1dc64
callq 0x30a0
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x295d8(%rip), %rdi     # 0x2e087
callq 0x33ac
leaq 0x1916b(%rip), %rdi     # 0x1dc26
callq 0x30a0
xorl %edi, %edi
callq 0x3270