// File: /workspace/github_c_makefile_star2_O0/nimble-code[P]gh_cpp/Src/gh_cpp1.c
// Function: parse_args
static TS *
parse_args(TS *sin)
{	int nesting = 1;
	TS *ls = sin;
	TS *s = sin->nxt;
	TS *narg = (TS *) 0;
	TS *sarg = (TS *) 0;
	ARL *arglst = (ARL *) 0;

	if (s
	&&  s->tok == CHAR
	&&  s->val == ')')
		return s;
more:
	for ( ; s; ls = s, s = s->nxt)
	{	switch (s->tok) {
		case CHAR:
			if (s->val == '(')
				nesting++;

			if (nesting == 1
			&&  (s->val == ',' || s->val == ')'))
			{	arglst = bld_arglst(sarg, arglst);
				if (!saa) saa = arglst;
				sarg = narg = (TS *) 0;
			} else
				narg = cpy_inl(s, narg);

			if (s->val == ')')
				nesting--;

			if (nesting == 0)
				return s;

			break;
		case ECHAR:
			narg = cpy_inl(s, narg);
			break;
		case VAL:
			narg = cpy_inl(s, narg);
			break;
		case NAME:
			narg = cpy_inl(s, narg);
			if (misra_rules) check_name(s->name);
			break;
		default:
			fatal_error("cannot happen");
			break;
		}
		if (!sarg) sarg = narg;
	}

	while (!s && nesting > 0)	/* line too short, need more input */
	{	need_more();		/* will fatal on eof */
		strcpy(lbuf, ibuf);
		do_parsing();
		if (ls->nxt)
		{	s = ls->nxt;
			if (debugging)
			fprintf(stderr, "%s,%d: extended line\n",
				filename, lineno);
			goto more;
		}
		if (debugging)
		fprintf(stderr, "%s,%d: line still too short\n",
			filename, lineno);
	}	

	return s;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x10(%rbp)
movl $0x1, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x28(%rbp)
movq $0x0, -0x30(%rbp)
movq $0x0, -0x38(%rbp)
movq $0x0, -0x40(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x94b6
movq -0x28(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x94b6
movq -0x28(%rbp), %rax
cmpl $0x29, 0x4(%rax)
jne 0x94b6
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x96d9
jmp 0x94b8
jmp 0x94ba
cmpq $0x0, -0x28(%rbp)
je 0x9613
movq -0x28(%rbp), %rax
movl (%rax), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x48(%rbp)
subl $0x3, %eax
ja 0x95dd
movq -0x48(%rbp), %rax
leaq 0x3f11(%rip), %rcx      # 0xd3f8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x28(%rbp), %rax
cmpl $0x28, 0x4(%rax)
jne 0x9503
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
cmpl $0x1, -0x14(%rbp)
jne 0x9555
movq -0x28(%rbp), %rax
cmpl $0x2c, 0x4(%rax)
je 0x951d
movq -0x28(%rbp), %rax
cmpl $0x29, 0x4(%rax)
jne 0x9555
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
callq 0x9760
movq %rax, -0x40(%rbp)
cmpq $0x0, 0xdf12(%rip)      # 0x17448
jne 0x9543
movq -0x40(%rbp), %rax
movq %rax, 0xdf05(%rip)      # 0x17448
movq $0x0, -0x30(%rbp)
movq $0x0, -0x38(%rbp)
jmp 0x9566
movq -0x28(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x97b0
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rax
cmpl $0x29, 0x4(%rax)
jne 0x9579
movl -0x14(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x14(%rbp)
cmpl $0x0, -0x14(%rbp)
jne 0x958c
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x96d9
jmp 0x95e9
movq -0x28(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x97b0
movq %rax, -0x30(%rbp)
jmp 0x95e9
movq -0x28(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x97b0
movq %rax, -0x30(%rbp)
jmp 0x95e9
movq -0x28(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x97b0
movq %rax, -0x30(%rbp)
cmpl $0x0, 0xb9c8(%rip)      # 0x14f94
je 0x95db
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x9840
jmp 0x95e9
leaq 0x7775(%rip), %rdi      # 0x10d59
callq 0x42b0
cmpq $0x0, -0x38(%rbp)
jne 0x95f8
movq -0x30(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x95fa
movq -0x28(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x28(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x28(%rbp)
jmp 0x94ba
jmp 0x9615
xorl %eax, %eax
cmpq $0x0, -0x28(%rbp)
movb %al, -0x49(%rbp)
jne 0x962b
cmpl $0x0, -0x14(%rbp)
setg %al
movb %al, -0x49(%rbp)
movb -0x49(%rbp), %al
testb $0x1, %al
jne 0x9637
jmp 0x96d1
callq 0xa270
leaq 0xb96d(%rip), %rdi      # 0x14fb0
leaq 0xdf36(%rip), %rsi      # 0x17580
callq 0x4060
callq 0x4cb0
movq -0x20(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0x969e
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x28(%rbp)
cmpl $0x0, 0xcd6e(%rip)      # 0x163e0
je 0x9699
movq 0xa97d(%rip), %rax      # 0x13ff8
movq (%rax), %rdi
movq 0xaa6b(%rip), %rdx      # 0x140f0
movl 0xb905(%rip), %ecx      # 0x14f90
leaq 0x7a9e(%rip), %rsi      # 0x11130
movb $0x0, %al
callq 0x4110
jmp 0x94b8
cmpl $0x0, 0xcd3b(%rip)      # 0x163e0
je 0x96cc
movq 0xa94a(%rip), %rax      # 0x13ff8
movq (%rax), %rdi
movq 0xaa38(%rip), %rdx      # 0x140f0
movl 0xb8d2(%rip), %ecx      # 0x14f90
leaq 0x7a81(%rip), %rsi      # 0x11146
movb $0x0, %al
callq 0x4110
jmp 0x9615
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)