// File: /workspace/github_cpp_makefile_star2_O1/RuiDGPires[P]CrimLang/src/parser.cpp
// Function: ps_Tracker::factor()
void _ps_Tracker::factor(){
		this->enter(crl::Node::Type::FACTOR);
		if (accept(crl::Token::Type::IDENT)){
			if (this->current.type == crl::Token::Type::LPAREN){
				this->func_call();
			}else if (this->current.type == crl::Token::Type::LSBR){
				this->enter(crl::Node::Type::VECTOR);
				this->add(this->previous());
				this->next();
				EXP_AND_ADD(crl::Token::Type::INT);
				this->expect(crl::Token::Type::RSBR);
				this->leave();
			}else if (this->current.type == crl::Token::Type::INC){
				this->enter(crl::Node::Type::INC);
				this->add(this->previous());
				this->next();
				this->leave();
			}else if (this->current.type == crl::Token::Type::DECR){
				this->enter(crl::Node::Type::DEC);
				this->add(this->previous());
				this->next();
				this->leave();
			}else
				this->add(this->previous());
		
		} else if ACC_AND_ADD(crl::Token::Type::STRING);
		else if ACC_AND_ADD_VAR(TYPE_NUMERIC());
		else if (accept(crl::Token::Type::LPAREN)){
			this->expression();
			this->expect(crl::Token::Type::RPAREN);
		}else{
			throw crl::UnexpectedToken(this->current);
		}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x180, %rsp            # imm = 0x180
movq %rdi, %rbx
movl $0xf, %esi
callq 0xfba2
cmpl $0x1, 0x58(%rbx)
jne 0x10105
movq %rbx, %rdi
callq 0xf8a4
movl 0x58(%rbx), %eax
cmpl $0x1f, %eax
jg 0x10176
cmpl $0x18, %eax
je 0x1029e
cmpl $0x19, %eax
jne 0x1023a
movq %rbx, %rdi
movl $0x14, %esi
callq 0xfba2
movq (%rbx), %r15
movq 0x28(%rbx), %rax
leaq (%rax,%rax,2), %r12
shlq $0x4, %r12
leaq -0x100(%rbp), %rax
movq %rax, -0x10(%rax)
movq -0x30(%r15,%r12), %rsi
movq -0x28(%r15,%r12), %rdx
addq %rsi, %rdx
leaq -0x110(%rbp), %r14
movq %r14, %rdi
callq 0x4d4a
movl -0x8(%r15,%r12), %eax
movl %eax, 0x28(%r14)
movq -0x10(%r15,%r12), %rax
movq %rax, 0x20(%r14)
movq %rbx, %rdi
movq %r14, %rsi
callq 0xfca8
leaq -0x110(%rbp), %rdi
jmp 0x10305
cmpl $0x1c, 0x58(%rbx)
jne 0x10195
movq %rbx, %rdi
callq 0xf8a4
movq (%rbx), %r15
movq 0x28(%rbx), %rax
leaq (%rax,%rax,2), %r12
shlq $0x4, %r12
leaq -0xa0(%rbp), %rax
movq %rax, -0x10(%rax)
movq -0x30(%r15,%r12), %rsi
movq -0x28(%r15,%r12), %rdx
addq %rsi, %rdx
leaq -0xb0(%rbp), %r14
movq %r14, %rdi
callq 0x4d4a
movl -0x8(%r15,%r12), %eax
movl %eax, 0x28(%r14)
movq -0x10(%r15,%r12), %rax
movq %rax, 0x20(%r14)
movq %rbx, %rdi
movq %r14, %rsi
callq 0xfca8
leaq -0xb0(%rbp), %rdi
jmp 0x10294
cmpl $0x22, %eax
je 0x10317
cmpl $0x20, %eax
jne 0x1023a
movq %rbx, %rdi
callq 0xfd5e
jmp 0x10410
movq %rbx, %rdi
movl $0x3, %esi
movl $0x13, %edx
movl $0x14, %ecx
movl $0x1b, %r8d
xorl %eax, %eax
callq 0xf96c
testb %al, %al
je 0x1020e
movq (%rbx), %r15
movq 0x28(%rbx), %rax
leaq (%rax,%rax,2), %r12
shlq $0x4, %r12
leaq -0x70(%rbp), %rax
movq %rax, -0x10(%rax)
movq -0x30(%r15,%r12), %rsi
movq -0x28(%r15,%r12), %rdx
addq %rsi, %rdx
leaq -0x80(%rbp), %r14
movq %r14, %rdi
callq 0x4d4a
movl -0x8(%r15,%r12), %eax
movl %eax, 0x28(%r14)
movq -0x10(%r15,%r12), %rax
movq %rax, 0x20(%r14)
movq %rbx, %rdi
movq %r14, %rsi
callq 0xfca8
leaq -0x80(%rbp), %rdi
jmp 0x10294
cmpl $0x20, 0x58(%rbx)
jne 0x104e0
movq %rbx, %rdi
callq 0xf8a4
movq %rbx, %rdi
callq 0xff5e
movq %rbx, %rdi
movl $0x21, %esi
callq 0xfa30
jmp 0x10410
movq (%rbx), %r15
movq 0x28(%rbx), %rax
leaq (%rax,%rax,2), %r12
shlq $0x4, %r12
leaq -0xd0(%rbp), %rax
movq %rax, -0x10(%rax)
movq -0x30(%r15,%r12), %rsi
movq -0x28(%r15,%r12), %rdx
addq %rsi, %rdx
leaq -0xe0(%rbp), %r14
movq %r14, %rdi
callq 0x4d4a
movl -0x8(%r15,%r12), %eax
movl %eax, 0x28(%r14)
movq -0x10(%r15,%r12), %rax
movq %rax, 0x20(%r14)
movq %rbx, %rdi
movq %r14, %rsi
callq 0xfca8
leaq -0xe0(%rbp), %rdi
callq 0x192b0
jmp 0x10410
movq %rbx, %rdi
movl $0x13, %esi
callq 0xfba2
movq (%rbx), %r15
movq 0x28(%rbx), %rax
leaq (%rax,%rax,2), %r12
shlq $0x4, %r12
leaq -0x130(%rbp), %rax
movq %rax, -0x10(%rax)
movq -0x30(%r15,%r12), %rsi
movq -0x28(%r15,%r12), %rdx
addq %rsi, %rdx
leaq -0x140(%rbp), %r14
movq %r14, %rdi
callq 0x4d4a
movl -0x8(%r15,%r12), %eax
movl %eax, 0x28(%r14)
movq -0x10(%r15,%r12), %rax
movq %rax, 0x20(%r14)
movq %rbx, %rdi
movq %r14, %rsi
callq 0xfca8
leaq -0x140(%rbp), %rdi
callq 0x192b0
movq %rbx, %rdi
callq 0xf8a4
jmp 0x10404
movq %rbx, %rdi
movl $0x19, %esi
callq 0xfba2
movq (%rbx), %r15
movq 0x28(%rbx), %rax
leaq (%rax,%rax,2), %r12
shlq $0x4, %r12
leaq -0x190(%rbp), %rax
movq %rax, -0x10(%rax)
movq -0x30(%r15,%r12), %rsi
movq -0x28(%r15,%r12), %rdx
addq %rsi, %rdx
leaq -0x1a0(%rbp), %r14
movq %r14, %rdi
callq 0x4d4a
movl -0x8(%r15,%r12), %eax
movl %eax, 0x28(%r14)
movq -0x10(%r15,%r12), %rax
movq %rax, 0x20(%r14)
movq %rbx, %rdi
movq %r14, %rsi
callq 0xfca8
leaq -0x1a0(%rbp), %rdi
callq 0x192b0
movq %rbx, %rdi
callq 0xf8a4
movq %rbx, %rdi
movl $0x13, %esi
callq 0xfa30
movq (%rbx), %r15
movq 0x28(%rbx), %rax
leaq (%rax,%rax,2), %r12
shlq $0x4, %r12
leaq -0x160(%rbp), %rax
movq %rax, -0x10(%rax)
movq -0x30(%r15,%r12), %rsi
movq -0x28(%r15,%r12), %rdx
addq %rsi, %rdx
leaq -0x170(%rbp), %r14
movq %r14, %rdi
callq 0x4d4a
movl -0x8(%r15,%r12), %eax
movl %eax, 0x28(%r14)
movq -0x10(%r15,%r12), %rax
movq %rax, 0x20(%r14)
movq %rbx, %rdi
movq %r14, %rsi
callq 0xfca8
leaq -0x170(%rbp), %rdi
callq 0x192b0
movq %rbx, %rdi
movl $0x23, %esi
callq 0xfa30
movq 0x18(%rbx), %rax
movq 0x28(%rax), %rax
movq %rax, 0x18(%rbx)
cmpl $0x12, 0x58(%rbx)
jne 0x104c4
movq %rbx, %rdi
callq 0xf8a4
movq %rbx, %rdi
movl $0x15, %esi
callq 0xfc02
subq $0x8, %rsp
movq %rbx, %rdi
movl $0x7, %esi
movl $0x5, %edx
movl $0x6, %ecx
movl $0x7, %r8d
movl $0x9, %r9d
xorl %eax, %eax
pushq $0xb
pushq $0xa
pushq $0x8
callq 0xfa90
addq $0x20, %rsp
movq (%rbx), %r15
movq 0x28(%rbx), %rax
leaq (%rax,%rax,2), %r12
shlq $0x4, %r12
leaq -0x40(%rbp), %rax
movq %rax, -0x10(%rax)
movq -0x30(%r15,%r12), %rsi
movq -0x28(%r15,%r12), %rdx
addq %rsi, %rdx
leaq -0x50(%rbp), %r14
movq %r14, %rdi
callq 0x4d4a
movl -0x8(%r15,%r12), %eax
movl %eax, 0x28(%r14)
movq -0x10(%r15,%r12), %rax
movq %rax, 0x20(%r14)
movq %rbx, %rdi
movq %r14, %rsi
callq 0xfca8
leaq -0x50(%rbp), %rdi
callq 0x192b0
movq 0x18(%rbx), %rax
movq 0x28(%rax), %rax
movq %rax, 0x18(%rbx)
movq 0x18(%rbx), %rax
movq 0x28(%rax), %rax
movq %rax, 0x18(%rbx)
addq $0x180, %rsp            # imm = 0x180
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movl $0x50, %edi
callq 0x3120
movq %rax, %r14
addq $0x38, %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0x53b0
leaq 0x12845(%rip), %rsi     # 0x22d48
leaq -0xaf24(%rip), %rdx     # 0x55e6
movq %r14, %rdi
callq 0x33d0
movq %rax, %rbx
movq %r14, %rdi
callq 0x31a0
jmp 0x1057c
movq %rax, %rbx
leaq -0x170(%rbp), %rdi
jmp 0x10577
movq %rax, %rbx
leaq -0x1a0(%rbp), %rdi
jmp 0x10577
movq %rax, %rbx
leaq -0x140(%rbp), %rdi
jmp 0x10577
movq %rax, %rbx
leaq -0x110(%rbp), %rdi
jmp 0x10577
movq %rax, %rbx
leaq -0xe0(%rbp), %rdi
jmp 0x10577
movq %rax, %rbx
leaq -0x80(%rbp), %rdi
jmp 0x10577
movq %rax, %rbx
leaq -0xb0(%rbp), %rdi
jmp 0x10577
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x192b0
movq %rbx, %rdi
callq 0x33f0