// File: /workspace/github_c_makefile_star2_O1/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 %r12
pushq %rbx
movq %rdi, %r14
xorl %ebx, %ebx
movq 0x20(%r14), %rdi
callq 0x3974
cmpl $0x33, %eax
je 0x4ea2
movq 0x20(%r14), %rdi
callq 0x32da
movq 0x20(%r14), %rdi
cmpq $0x34, %rax
jne 0x4e53
callq 0x32da
movq 0x20(%r14), %rcx
cmpq $0x2d, %rax
jne 0x4e60
movq 0x10(%rcx), %rax
movq (%rax), %rdx
movq %r14, %rdi
movl $0x2d, %esi
callq 0x4702
movq %rax, %r15
movq 0x20(%r14), %rdi
callq 0x32da
movq 0x20(%r14), %rdi
cmpq $0x2f, %rax
jne 0x4e6d
callq 0x3974
cmpl $0x28, %eax
jne 0x4e7a
movq (%r15), %r12
movq 0x20(%r14), %rdi
callq 0x3974
cmpl $0x28, %eax
jne 0x4dec
movq 0x20(%r14), %rdi
callq 0x32da
movq 0x20(%r14), %rax
movq 0x10(%rax), %rax
movq (%rax), %rdx
movq %r14, %rdi
movl $0x28, %esi
callq 0x4702
cmpl $-0x1, 0x18(%rax)
jne 0x4e1f
movq 0x20(%r15), %rcx
testq %rcx, %rcx
je 0x4dba
movq 0x20(%rax), %rdx
testq %rdx, %rdx
je 0x4dba
cmpq %rdx, %rcx
jne 0x4e37
movb $0x1, 0xc(%rax)
movl %r12d, 0x18(%rax)
movq 0x20(%rax), %rcx
testq %rcx, %rcx
je 0x4dd3
movb $0x1, 0x1c(%rax)
movq %rcx, 0x20(%r15)
movq 0x20(%r14), %rdi
callq 0x3974
cmpl $0x31, %eax
jne 0x4d6e
movq 0x20(%r14), %rdi
callq 0x32da
jmp 0x4d6e
movq 0x20(%r14), %rdi
callq 0x32da
movq 0x20(%r14), %rdi
cmpq $0x35, %rax
jne 0x4e8b
callq 0x3974
cmpl $0x31, %eax
jne 0x4ea2
movq 0x20(%r14), %rdi
callq 0x32da
jmp 0x4cf3
movq 0x20(%r14), %rax
movslq 0x28(%rax), %rdi
movq 0x10(%rax), %rax
movq (%rax), %rdx
leaq 0x5461(%rip), %rsi      # 0xa296
jmp 0x4e4a
movq 0x20(%r14), %rax
movslq 0x28(%rax), %rdi
movq 0x10(%r15), %rdx
leaq 0x5464(%rip), %rsi      # 0xa2ae
xorl %eax, %eax
callq 0x4020
jmp 0x4e9d
movslq 0x28(%rdi), %rdi
leaq 0x53d5(%rip), %rsi      # 0xa233
jmp 0x4e96
movslq 0x28(%rcx), %rdi
leaq 0x5344(%rip), %rsi      # 0xa1af
jmp 0x4e96
movslq 0x28(%rdi), %rdi
leaq 0x536a(%rip), %rsi      # 0xa1e2
jmp 0x4e96
movq 0x20(%r14), %rax
movslq 0x28(%rax), %rdi
leaq 0x53d7(%rip), %rsi      # 0xa260
jmp 0x4e96
movslq 0x28(%rdi), %rdi
leaq 0x5370(%rip), %rsi      # 0xa206
xorl %eax, %eax
callq 0x4020
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
movl %ebx, %eax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq