// File: /workspace/github_cpp_makefile_star2_O2/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 %r14
pushq %rbx
subq $0x180, %rsp            # imm = 0x180
movq %rdi, %rbx
pushq $0xf
popq %rsi
callq 0xc678
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0xc450
testb %al, %al
je 0xca92
movl 0x58(%rbx), %eax
cmpl $0x18, %eax
je 0xcc25
cmpl $0x19, %eax
je 0xcb4d
cmpl $0x22, %eax
je 0xcb8e
cmpl $0x20, %eax
jne 0xcc7c
movq %rbx, %rdi
callq 0xc80a
jmp 0xccb2
pushq $0x1c
popq %rsi
movq %rbx, %rdi
callq 0xc450
testb %al, %al
je 0xcad7
movq (%rbx), %rax
imulq $0x30, 0x28(%rbx), %rcx
leaq (%rax,%rcx), %rsi
addq $-0x30, %rsi
leaq -0xa0(%rbp), %r14
movq %r14, %rdi
callq 0xb24a
movq %rbx, %rdi
movq %r14, %rsi
callq 0xc776
leaq -0xa0(%rbp), %rdi
jmp 0xccad
pushq $0x3
popq %rsi
pushq $0x13
popq %rdx
pushq $0x14
popq %rcx
pushq $0x1b
popq %r8
movq %rbx, %rdi
xorl %eax, %eax
callq 0xc472
testb %al, %al
je 0xcb22
movq (%rbx), %rax
imulq $0x30, 0x28(%rbx), %rcx
leaq (%rax,%rcx), %rsi
addq $-0x30, %rsi
leaq -0x70(%rbp), %r14
movq %r14, %rdi
callq 0xb24a
movq %rbx, %rdi
movq %r14, %rsi
callq 0xc776
leaq -0x70(%rbp), %rdi
jmp 0xccad
pushq $0x20
popq %rsi
movq %rbx, %rdi
callq 0xc450
testb %al, %al
je 0xcd4a
movq %rbx, %rdi
callq 0xc986
pushq $0x21
popq %rsi
movq %rbx, %rdi
callq 0xc522
jmp 0xccb2
pushq $0x14
popq %rsi
movq %rbx, %rdi
callq 0xc678
movq (%rbx), %rax
imulq $0x30, 0x28(%rbx), %rcx
leaq (%rax,%rcx), %rsi
addq $-0x30, %rsi
leaq -0x100(%rbp), %r14
movq %r14, %rdi
callq 0xb24a
movq %rbx, %rdi
movq %r14, %rsi
callq 0xc776
leaq -0x100(%rbp), %rdi
jmp 0xcc61
pushq $0x19
popq %rsi
movq %rbx, %rdi
callq 0xc678
movq (%rbx), %rax
imulq $0x30, 0x28(%rbx), %rcx
leaq (%rax,%rcx), %rsi
addq $-0x30, %rsi
leaq -0x190(%rbp), %r14
movq %r14, %rdi
callq 0xb24a
movq %rbx, %rdi
movq %r14, %rsi
callq 0xc776
leaq -0x190(%rbp), %rdi
callq 0x135f8
movq %rbx, %rdi
callq 0xc3e0
pushq $0x13
popq %rsi
movq %rbx, %rdi
callq 0xc522
movq (%rbx), %rax
imulq $0x30, 0x28(%rbx), %rcx
leaq (%rax,%rcx), %rsi
addq $-0x30, %rsi
leaq -0x160(%rbp), %r14
movq %r14, %rdi
callq 0xb24a
movq %rbx, %rdi
movq %r14, %rsi
callq 0xc776
leaq -0x160(%rbp), %rdi
callq 0x135f8
pushq $0x23
popq %rsi
movq %rbx, %rdi
callq 0xc522
jmp 0xcc6e
pushq $0x13
popq %rsi
movq %rbx, %rdi
callq 0xc678
movq (%rbx), %rax
imulq $0x30, 0x28(%rbx), %rcx
leaq (%rax,%rcx), %rsi
addq $-0x30, %rsi
leaq -0x130(%rbp), %r14
movq %r14, %rdi
callq 0xb24a
movq %rbx, %rdi
movq %r14, %rsi
callq 0xc776
leaq -0x130(%rbp), %rdi
callq 0x135f8
movq %rbx, %rdi
callq 0xc3e0
movq 0x18(%rbx), %rax
movq 0x28(%rax), %rax
movq %rax, 0x18(%rbx)
jmp 0xccb2
movq (%rbx), %rax
imulq $0x30, 0x28(%rbx), %rcx
leaq (%rax,%rcx), %rsi
addq $-0x30, %rsi
leaq -0xd0(%rbp), %r14
movq %r14, %rdi
callq 0xb24a
movq %rbx, %rdi
movq %r14, %rsi
callq 0xc776
leaq -0xd0(%rbp), %rdi
callq 0x135f8
pushq $0x12
popq %rsi
movq %rbx, %rdi
callq 0xc450
testb %al, %al
je 0xcd32
pushq $0x15
popq %rsi
movq %rbx, %rdi
callq 0xc6d4
subq $0x8, %rsp
pushq $0x5
popq %rdx
pushq $0x6
popq %rcx
pushq $0x7
popq %rsi
pushq $0x9
popq %r9
movq %rbx, %rdi
movl %esi, %r8d
xorl %eax, %eax
pushq $0xb
pushq $0xa
pushq $0x8
callq 0xc580
addq $0x20, %rsp
movq (%rbx), %rax
imulq $0x30, 0x28(%rbx), %rcx
leaq (%rax,%rcx), %rsi
addq $-0x30, %rsi
leaq -0x40(%rbp), %r14
movq %r14, %rdi
callq 0xb24a
movq %rbx, %rdi
movq %r14, %rsi
callq 0xc776
leaq -0x40(%rbp), %rdi
callq 0x135f8
movq 0x18(%rbx), %rax
movq 0x28(%rax), %rax
movq %rax, 0x18(%rbx)
jmp 0xcd36
movq 0x18(%rbx), %rax
movq 0x28(%rax), %rax
movq %rax, 0x18(%rbx)
addq $0x180, %rsp            # imm = 0x180
popq %rbx
popq %r14
popq %rbp
retq
pushq $0x50
popq %rdi
callq 0x3140
movq %rax, %r14
addq $0x38, %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0x4de0
leaq 0x10ff5(%rip), %rsi     # 0x1dd60
leaq -0x7e3a(%rip), %rdx     # 0x4f38
movq %r14, %rdi
callq 0x33f0
movq %rax, %rbx
movq %r14, %rdi
callq 0x31b0
jmp 0xcde4
movq %rax, %rbx
leaq -0x160(%rbp), %rdi
jmp 0xcddf
movq %rax, %rbx
leaq -0xd0(%rbp), %rdi
jmp 0xcddf
movq %rax, %rbx
leaq -0x130(%rbp), %rdi
jmp 0xcddf
movq %rax, %rbx
leaq -0x190(%rbp), %rdi
jmp 0xcddf
movq %rax, %rbx
leaq -0x100(%rbp), %rdi
jmp 0xcddf
movq %rax, %rbx
leaq -0x70(%rbp), %rdi
jmp 0xcddf
movq %rax, %rbx
leaq -0xa0(%rbp), %rdi
jmp 0xcddf
movq %rax, %rbx
leaq -0x40(%rbp), %rdi
callq 0x135f8
movq %rbx, %rdi
callq 0x3410