// File: /workspace/github_c_makefile_star2_O2/MaoKo[P]FGFX/fgfp/src/cfg.c
// Function: cfg_alias_list
int
cfg_alias_list(cfg_t* cfg) {
	if (peek_token(cfg->lex) == T_RBRACE)
		{ return (DONE); }
	else if (advance_token(cfg->lex) == T_LPAREN) {
		if (advance_token(cfg->lex) != T_TERMINAL) {
			errorf(CURRENT_LINE(cfg->lex),
						"Missing an token identifier in the $ALIAS section.");
			return (ERROR);
		}

		symbol_t* alias_ter = add_symbol_cfg(cfg,
										T_TERMINAL, C_LEXEME(cfg->lex));

		if (advance_token(cfg->lex) != T_BARROW) {
			errorf(CURRENT_LINE(cfg->lex),
						"Missing a => in the $ALIAS section.");
			return (ERROR);
		}
		else if (alias_literal_list(cfg, alias_ter) == ERROR)
			{ return (ERROR); }
		else if (advance_token(cfg->lex) != T_RPAREN) {
			errorf(CURRENT_LINE(cfg->lex),
						"Missing a close paren in the $ALIAS section.");
			return (ERROR);
		}
		else if (peek_token(cfg->lex) == T_COMMA) {
			advance_token(cfg->lex);
			return (cfg_alias_list(cfg));
		}
	}
	else {
		errorf(CURRENT_LINE(cfg->lex),
						"Missing an open paren in the $ALIAS section.");
		return (ERROR);
	}
	return (DONE);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %r14
pushq $0x2d
popq %rbx
pushq $0x28
popq %r12
movq 0x20(%r14), %rdi
callq 0x3519
xorl %ecx, %ecx
cmpl $0x33, %eax
je 0x4a3b
movq 0x20(%r14), %rdi
callq 0x302d
movq 0x20(%r14), %rdi
cmpq $0x34, %rax
jne 0x4a4c
callq 0x302d
movq 0x20(%r14), %rcx
cmpq $0x2d, %rax
jne 0x4a59
movq 0x10(%rcx), %rax
movq (%rax), %rdx
movq %r14, %rdi
movl %ebx, %esi
callq 0x435f
movq %rax, %r13
movq 0x20(%r14), %rdi
callq 0x302d
movq 0x20(%r14), %rdi
cmpq $0x2f, %rax
jne 0x4a66
callq 0x3519
cmpl $0x28, %eax
jne 0x4a73
movl (%r13), %ebx
movq 0x20(%r14), %rdi
callq 0x3519
movl %eax, %r15d
movq 0x20(%r14), %rdi
callq 0x302d
cmpl $0x28, %r15d
jne 0x49d8
movq 0x20(%r14), %rax
movq 0x10(%rax), %rax
movq (%rax), %rdx
movq %r14, %rdi
movl %r12d, %esi
callq 0x435f
cmpl $-0x1, 0x18(%rax)
jne 0x4a06
movq 0x20(%r13), %rdx
movq 0x20(%rax), %rcx
testq %rdx, %rdx
je 0x49ab
testq %rcx, %rcx
je 0x49ab
cmpq %rcx, %rdx
jne 0x4a1e
movb $0x1, 0xc(%rax)
movl %ebx, 0x18(%rax)
testq %rcx, %rcx
je 0x49bf
movb $0x1, 0x1c(%rax)
movq %rcx, 0x20(%r13)
movq 0x20(%r14), %rdi
callq 0x3519
cmpl $0x31, %eax
jne 0x495d
movq 0x20(%r14), %rdi
callq 0x302d
jmp 0x495d
movq 0x20(%r14), %rdi
cmpq $0x35, %rax
jne 0x4a84
callq 0x3519
cmpl $0x31, %eax
movl $0x0, %ecx
jne 0x4a3b
movq 0x20(%r14), %rdi
callq 0x302d
pushq $0x2d
popq %rbx
jmp 0x48e2
movq 0x20(%r14), %rax
movslq 0x28(%rax), %rdi
movq 0x10(%rax), %rax
movq (%rax), %rdx
leaq 0x584e(%rip), %rsi      # 0xa26a
jmp 0x4a31
movq 0x20(%r14), %rax
movslq 0x28(%rax), %rdi
movq 0x10(%r13), %rdx
leaq 0x5851(%rip), %rsi      # 0xa282
xorl %eax, %eax
callq 0x3b9c
pushq $-0x1
popq %rcx
movl %ecx, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movslq 0x28(%rdi), %rdi
leaq 0x57b0(%rip), %rsi      # 0xa207
jmp 0x4a8f
movslq 0x28(%rcx), %rdi
leaq 0x571f(%rip), %rsi      # 0xa183
jmp 0x4a8f
movslq 0x28(%rdi), %rdi
leaq 0x5745(%rip), %rsi      # 0xa1b6
jmp 0x4a8f
movq 0x20(%r14), %rax
movslq 0x28(%rax), %rdi
leaq 0x57b2(%rip), %rsi      # 0xa234
jmp 0x4a8f
movslq 0x28(%rdi), %rdi
leaq 0x574b(%rip), %rsi      # 0xa1da
xorl %eax, %eax
callq 0x3b9c
jmp 0x4a38