// File: /workspace/github_c_makefile_star2_O1/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, %ebp
addq $0x8, %r12
leaq 0x1ab50(%rip), %rax     # 0x20224
movq %rax, 0x32add(%rip)     # 0x381b8
leal -0x2(%rbp), %r15d
cmpl $0x2, %edi
jl 0x5c9d
decl %ebp
leaq 0x1a47a(%rip), %r13     # 0x1fb6b
movq %r12, %rbx
leaq 0x8(%rbx), %r12
movq (%rbx), %r14
movq %r14, %rdi
movq %r13, %rsi
callq 0x3180
testl %eax, %eax
je 0x5911
movq %r14, %rdi
leaq 0x1a45b(%rip), %rsi     # 0x1fb73
callq 0x3180
testl %eax, %eax
je 0x5922
movq %r14, %rdi
leaq 0x1a447(%rip), %rsi     # 0x1fb76
callq 0x3180
testl %eax, %eax
je 0x5939
movq %r14, %rdi
leaq 0x1a435(%rip), %rsi     # 0x1fb7b
callq 0x3180
testl %eax, %eax
je 0x5961
movq %r14, %rdi
leaq 0x1a425(%rip), %rsi     # 0x1fb82
callq 0x3180
testl %eax, %eax
je 0x596d
movq %r14, %rdi
leaq 0x1a419(%rip), %rsi     # 0x1fb8d
callq 0x3180
testl %eax, %eax
je 0x5979
movq %r14, %rdi
leaq 0x1a409(%rip), %rsi     # 0x1fb94
callq 0x3180
testl %eax, %eax
je 0x5992
movq %r14, %rdi
leaq 0x1a3fd(%rip), %rsi     # 0x1fb9f
callq 0x3180
testl %eax, %eax
je 0x59a8
movq %r14, %rdi
leaq 0x1a3eb(%rip), %rsi     # 0x1fba4
callq 0x3180
testl %eax, %eax
je 0x59b7
movq %r14, %rdi
leaq 0x1a3da(%rip), %rsi     # 0x1fbaa
callq 0x3180
testl %eax, %eax
je 0x59c3
movq %r14, %rdi
leaq 0x1a3ca(%rip), %rsi     # 0x1fbb1
callq 0x3180
testl %eax, %eax
je 0x5922
movq %r14, %rdi
leaq 0x1a3ba(%rip), %rsi     # 0x1fbb8
callq 0x3180
testl %eax, %eax
je 0x59cf
movq %r14, %rdi
leaq 0x1a3a9(%rip), %rsi     # 0x1fbbe
callq 0x3180
testl %eax, %eax
je 0x5a06
movq %r14, %rdi
leaq 0x1a39a(%rip), %rsi     # 0x1fbc6
callq 0x3180
testl %eax, %eax
je 0x5a15
movq %r14, %rdi
leaq 0x1a38b(%rip), %rsi     # 0x1fbce
callq 0x3180
testl %eax, %eax
je 0x5a2b
movq %r14, %rdi
leaq 0x1a37e(%rip), %rsi     # 0x1fbd8
callq 0x3180
testl %eax, %eax
je 0x5a3a
movq %r14, %rdi
leaq 0x1a36f(%rip), %rsi     # 0x1fbe0
callq 0x3180
testl %eax, %eax
je 0x5a49
movq %r14, %rdi
leaq 0x1a35e(%rip), %rsi     # 0x1fbe6
callq 0x3180
testl %eax, %eax
je 0x5a58
movq %r14, %rdi
leaq 0x1a351(%rip), %rsi     # 0x1fbf0
callq 0x3180
testl %eax, %eax
je 0x5a67
movq %r14, %rdi
leaq 0x1a340(%rip), %rsi     # 0x1fbf6
callq 0x3180
testl %eax, %eax
je 0x5c06
movl $0x2, %edx
movq %r14, %rdi
leaq 0x1a32c(%rip), %rsi     # 0x1fbfe
callq 0x3080
testl %eax, %eax
jne 0x5a72
movq %r14, %rdi
callq 0x30d0
cmpq $0x3, %rax
jb 0x5a72
decq %rax
movq %rax, %rdi
callq 0x61a1
movq %rax, 0x328d5(%rip)     # 0x381d8
leaq 0x2(%r14), %rsi
movq %rax, %rdi
callq 0x3090
jmp 0x5922
movl $0x1, %eax
movl %eax, 0x32924(%rip)     # 0x38240
movl %eax, 0x32922(%rip)     # 0x38244
movl %r15d, %ebp
leal -0x1(%rbp), %r15d
movq %r12, %rbx
testl %ebp, %ebp
jg 0x56f4
jmp 0x5ca0
movl $0x2, 0x32815(%rip)     # 0x38158
cmpl $0x3, %ebp
jl 0x5922
movq (%r12), %rax
cmpb $0x2d, (%rax)
je 0x5922
addq $0x10, %rbx
movq %rax, 0x32804(%rip)     # 0x38160
movq %rbx, %r12
jmp 0x5922
movl $0x1, 0x328dd(%rip)     # 0x38248
jmp 0x5922
movl $0x1, 0x328d5(%rip)     # 0x3824c
jmp 0x5922
movl $0x1, %eax
movl %eax, 0x328cc(%rip)     # 0x38250
movl %eax, 0x328ca(%rip)     # 0x38254
movl %eax, 0x328c8(%rip)     # 0x38258
jmp 0x5922
movl $0x1, %eax
subl 0x327bf(%rip), %eax     # 0x3815c
movl %eax, 0x327b9(%rip)     # 0x3815c
jmp 0x5922
movl $0x1, 0x328a6(%rip)     # 0x38258
jmp 0x5922
movb $0x1, 0x32836(%rip)     # 0x381f4
jmp 0x5922
movb $0x1, 0x32826(%rip)     # 0x381f0
jmp 0x5922
movq 0x8(%rbx), %rdi
callq 0x30d0
leaq 0x1(%rax), %rdi
callq 0x61a1
movq %rax, 0x32800(%rip)     # 0x381e8
movq 0x8(%rbx), %rsi
movq %rax, %rdi
callq 0x3090
addl $-0x2, %ebp
addq $0x10, %rbx
movq %rbx, %r12
movl %ebp, %r15d
jmp 0x5922
movl $0x1, 0x3284c(%rip)     # 0x3825c
jmp 0x5922
movl $0x1, %eax
movl %eax, 0x3282c(%rip)     # 0x3824c
movl %eax, 0x3283a(%rip)     # 0x38260
jmp 0x5922
movl $0x1, 0x3282f(%rip)     # 0x38264
jmp 0x5922
movl $0x1, 0x32824(%rip)     # 0x38268
jmp 0x5922
movl $0x1, 0x32819(%rip)     # 0x3826c
jmp 0x5922
movl $0x1, 0x3280e(%rip)     # 0x38270
jmp 0x5922
movq 0x8(%rbx), %rdi
callq 0x14311
jmp 0x59f4
movq %r14, %rdi
leaq 0x1a185(%rip), %rsi     # 0x1fc01
callq 0x3180
testl %eax, %eax
je 0x5e77
movq %r14, %rdi
leaq 0x1a171(%rip), %rsi     # 0x1fc04
callq 0x3180
testl %eax, %eax
je 0x5c24
movl $0x2, %edx
movq %r14, %rdi
leaq 0x1a15b(%rip), %rsi     # 0x1fc0a
callq 0x3080
testl %eax, %eax
je 0x5c2f
movl $0x2, %edx
movq %r14, %rdi
leaq 0x1a142(%rip), %rsi     # 0x1fc0d
callq 0x3080
testl %eax, %eax
je 0x5c3a
movl $0x6, %edx
movq %r14, %rdi
leaq 0x1a129(%rip), %rsi     # 0x1fc10
callq 0x3080
testl %eax, %eax
je 0x5c46
movq %r14, %rdi
leaq 0x1a119(%rip), %rsi     # 0x1fc17
callq 0x3180
testl %eax, %eax
je 0x5c55
movq %r14, %rdi
leaq 0x1a105(%rip), %rsi     # 0x1fc1a
callq 0x3180
testl %eax, %eax
je 0x5c61
movl $0x5, %edx
movq %r14, %rdi
leaq 0x1a0ec(%rip), %rsi     # 0x1fc1d
callq 0x3080
testl %eax, %eax
je 0x5c70
movl $0x2, %edx
movq %r14, %rdi
leaq 0x1a0d6(%rip), %rsi     # 0x1fc23
callq 0x3080
testl %eax, %eax
je 0x5b8a
movl $0x2, %edx
movq %r14, %rdi
leaq 0x1a0c1(%rip), %rsi     # 0x1fc26
callq 0x3080
testl %eax, %eax
je 0x5b8a
movl $0x2, %edx
movq %r14, %rdi
leaq 0x1a0ac(%rip), %rsi     # 0x1fc29
callq 0x3080
testl %eax, %eax
jne 0x5ca0
movq 0x325ef(%rip), %rbp     # 0x38180
movq %r14, %rdi
callq 0x30d0
movq %rax, %rbx
testq %rbp, %rbp
je 0x5c80
movq %rbp, %rdi
callq 0x30d0
leaq (%rbx,%rax), %rdi
addq $0x4, %rdi
callq 0x61a1
movq %rax, %rbp
movq 0x325bc(%rip), %rsi     # 0x38180
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 0x3230
movq %rbp, %rdi
callq 0x30d0
movw $0x22, (%rbp,%rax)
movq %rbp, 0x3257f(%rip)     # 0x38180
jmp 0x5922
movq 0x8(%rbx), %rdi
callq 0x30d0
leaq 0x1(%rax), %rdi
callq 0x61a1
movq %rax, 0x32559(%rip)     # 0x38178
jmp 0x59e8
incl 0x3260e(%rip)           # 0x38238
jmp 0x5922
incl 0x325f3(%rip)           # 0x38228
jmp 0x5922
movb $0x1, 0x325bf(%rip)     # 0x38200
jmp 0x5922
movl $0x1, 0x325ec(%rip)     # 0x3823c
jmp 0x5922
movb $0x1, 0x32618(%rip)     # 0x38274
jmp 0x5922
movl $0x1, 0x3260d(%rip)     # 0x38278
jmp 0x5922
leaq 0x5(%r14), %rax
movq %rax, 0x3259d(%rip)     # 0x38218
jmp 0x5922
incq %rbx
movq %rbx, %rdi
callq 0x61a1
movq %rax, 0x324ee(%rip)     # 0x38180
movq %rax, %rdi
movq %r14, %rsi
jmp 0x590a
xorl %r14d, %r14d
leaq 0x19f4a(%rip), %rdi     # 0x1fbf1
callq 0x14311
leaq 0x19f7c(%rip), %rdi     # 0x1fc2f
callq 0x14311
leaq 0x19f76(%rip), %rdi     # 0x1fc35
callq 0x14311
testq %r14, %r14
je 0x5e6b
callq 0x13d60
movq %r14, 0x324df(%rip)     # 0x381b8
testl %r15d, %r15d
js 0x5e45
leaq 0x19fa9(%rip), %rbx     # 0x1fc92
xorl %ebp, %ebp
leaq 0x19f49(%rip), %r13     # 0x1fc3b
cmpl $0x0, 0x3252f(%rip)     # 0x38228
je 0x5d08
movq %r13, %rdi
movq %r14, %rsi
xorl %eax, %eax
callq 0x3100
movq 0x324a9(%rip), %rdi     # 0x381b8
callq 0x19c50
movq 0x3249d(%rip), %rdi     # 0x381b8
callq 0x13c8c
movq 0x32491(%rip), %rdi     # 0x381b8
callq 0x5176
movq 0x324fd(%rip), %rdi     # 0x38230
testq %rdi, %rdi
je 0x5d4f
cmpl $0x0, 0x32529(%rip)     # 0x38268
jne 0x5d4f
cmpl $0x0, 0x32514(%rip)     # 0x3825c
jne 0x5d4f
callq 0x146a3
cmpb $0x1, 0x3251e(%rip)     # 0x38274
jne 0x5d72
movq 0x32481(%rip), %rax     # 0x381e0
movq 0x10(%rax), %rdi
movq 0x32266(%rip), %rax     # 0x37fd0
movq (%rax), %rsi
callq 0x705c
cmpl $0x0, 0x324af(%rip)     # 0x38228
je 0x5d80
callq 0x6277
movq 0x32459(%rip), %rdi     # 0x381e0
callq 0x70a0
movq 0x3242d(%rip), %rdi     # 0x381c0
callq 0x7f66
testl %eax, %eax
jne 0x5db2
movq 0x3241d(%rip), %rdi     # 0x381c0
callq 0x7f40
movq %rax, %rdi
callq 0x7ec4
jmp 0x5d8c
cmpl $0x2, 0x3246f(%rip)     # 0x38228
jl 0x5de4
leaq 0x19ec5(%rip), %rdi     # 0x1fc87
callq 0x30a0
jmp 0x5de4
movq 0x32400(%rip), %rdi     # 0x381d0
callq 0x7f40
movq %rax, 0x323ec(%rip)     # 0x381c8
movq %rax, %rdi
callq 0x7ec4
movq 0x323e5(%rip), %rdi     # 0x381d0
callq 0x7f66
testl %eax, %eax
je 0x5dc9
cmpl $0x2, 0x3242d(%rip)     # 0x38228
jl 0x5e05
movq %rbx, %rdi
callq 0x30a0
movq %rbp, 0x323bc(%rip)     # 0x381c8
movq %rbp, 0x323bd(%rip)     # 0x381d0
movq %rbp, 0x32416(%rip)     # 0x38230
movq %rbp, 0x3239f(%rip)     # 0x381c0
movq (%r12), %r14
movq %r14, 0x3238c(%rip)     # 0x381b8
testq %r14, %r14
je 0x5e45
addq $0x8, %r12
leal -0x1(%r15), %eax
testl %r15d, %r15d
movl %eax, %r15d
jg 0x5cf2
cmpl $0x2, 0x323dc(%rip)     # 0x38228
jl 0x5e5a
leaq 0x19e2d(%rip), %rdi     # 0x1fc82
callq 0x30a0
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x2a207(%rip), %rdi     # 0x30079
callq 0x46cc
leaq 0x19dc6(%rip), %rdi     # 0x1fc44
callq 0x30a0
xorl %edi, %edi
callq 0x3250