// File: /workspace/github_cpp_makefile_star2_O3/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 0xfafa
movl 0x58(%rbx), %eax
cmpl $0x1c, %eax
je 0x10068
cmpl $0x1, %eax
jne 0x100cf
movq %rbx, %rdi
callq 0xf824
movl 0x58(%rbx), %eax
cmpl $0x1f, %eax
jg 0x10148
cmpl $0x18, %eax
je 0x101f3
cmpl $0x19, %eax
jne 0x1018f
movq %rbx, %rdi
movl $0x14, %esi
callq 0xfafa
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 0x4d52
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 0xfc00
leaq -0x110(%rbp), %rdi
jmp 0x1025a
movq %rbx, %rdi
callq 0xf824
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 0x4d52
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 0xfc00
leaq -0xb0(%rbp), %rdi
jmp 0x101e9
movq %rbx, %rdi
movl $0x3, %esi
movl $0x13, %edx
movl $0x14, %ecx
movl $0x1b, %r8d
xorl %eax, %eax
callq 0xf8ec
testb %al, %al
je 0x10163
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 0x4d52
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 0xfc00
leaq -0x80(%rbp), %rdi
jmp 0x101e9
cmpl $0x22, %eax
je 0x1026c
cmpl $0x20, %eax
jne 0x1018f
movq %rbx, %rdi
callq 0xfcb6
jmp 0x10365
cmpl $0x20, 0x58(%rbx)
jne 0x10437
movq %rbx, %rdi
callq 0xf824
movq %rbx, %rdi
callq 0xfeb6
movq %rbx, %rdi
movl $0x21, %esi
callq 0xf99e
jmp 0x10365
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 0x4d52
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 0xfc00
leaq -0xe0(%rbp), %rdi
callq 0x191f8
jmp 0x10365
movq %rbx, %rdi
movl $0x13, %esi
callq 0xfafa
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 0x4d52
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 0xfc00
leaq -0x140(%rbp), %rdi
callq 0x191f8
movq %rbx, %rdi
callq 0xf824
jmp 0x10359
movq %rbx, %rdi
movl $0x19, %esi
callq 0xfafa
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 0x4d52
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 0xfc00
leaq -0x1a0(%rbp), %rdi
callq 0x191f8
movq %rbx, %rdi
callq 0xf824
movq %rbx, %rdi
movl $0x13, %esi
callq 0xf99e
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 0x4d52
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 0xfc00
leaq -0x170(%rbp), %rdi
callq 0x191f8
movq %rbx, %rdi
movl $0x23, %esi
callq 0xf99e
movq 0x18(%rbx), %rax
movq 0x28(%rax), %rax
movq %rax, 0x18(%rbx)
cmpl $0x12, 0x58(%rbx)
jne 0x1041b
movq %rbx, %rdi
callq 0xf824
movq %rbx, %rdi
movl $0x15, %esi
callq 0xfb5a
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 0xf9fe
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 0x4d52
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 0xfc00
leaq -0x50(%rbp), %rdi
callq 0x191f8
movq 0x18(%rbx), %rax
movq 0x28(%rax), %rax
movq %rax, 0x18(%rbx)
jmp 0x1041f
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 0x128ee(%rip), %rsi     # 0x22d48
leaq -0xae7b(%rip), %rdx     # 0x55e6
movq %r14, %rdi
callq 0x33d0
movq %rax, %rbx
leaq -0x170(%rbp), %rdi
jmp 0x104ce
movq %rax, %rbx
leaq -0x1a0(%rbp), %rdi
jmp 0x104ce
movq %rax, %rbx
leaq -0x140(%rbp), %rdi
jmp 0x104ce
movq %rax, %rbx
leaq -0x110(%rbp), %rdi
jmp 0x104ce
movq %rax, %rbx
leaq -0xe0(%rbp), %rdi
jmp 0x104ce
movq %rax, %rbx
movq %r14, %rdi
callq 0x31a0
jmp 0x104d3
movq %rax, %rbx
leaq -0x80(%rbp), %rdi
jmp 0x104ce
movq %rax, %rbx
leaq -0xb0(%rbp), %rdi
jmp 0x104ce
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x191f8
movq %rbx, %rdi
callq 0x33f0
nop