// File: pranavmodx[P]modlang/src/parser.cpp
// Function: Parser::Parser()
Parser::Parser()
{
	precedences =
		{
			{EQ, EQUALS},
			{NEQ, EQUALS},
			{LTEQ, EQUALS},
			{GTEQ, EQUALS},
			{LT, LESSGREATER},
			{GT, LESSGREATER},
			{PLUS, SUM},
			{MINUS, SUM},
			{SLASH, PRODUCT},
			{ASTERISK, PRODUCT},
			{MODULO, PRODUCT},
			{LPAREN, CALL},
			{LBRACKET, INDEX},
		};
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2f0, %rsp            # imm = 0x2F0
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x280(%rbp)
movq %rdi, %rax
movq %rax, -0x288(%rbp)
callq 0x13570
movq -0x280(%rbp), %rdi
addq $0x30, %rdi
movq %rdi, -0x278(%rbp)
callq 0x18d40
jmp 0x1ea92
movq -0x288(%rbp), %rdi
addq $0x70, %rdi
movq %rdi, -0x290(%rbp)
callq 0x18d40
jmp 0x1eaab
movq -0x288(%rbp), %rdi
addq $0xb0, %rdi
movq %rdi, -0x2b0(%rbp)
callq 0x22a20
movq -0x288(%rbp), %rdi
addq $0xc8, %rdi
movq %rdi, -0x2a8(%rbp)
callq 0x22a40
movq -0x288(%rbp), %rdi
addq $0x100, %rdi            # imm = 0x100
movq %rdi, -0x2a0(%rbp)
callq 0x22a60
movq -0x288(%rbp), %rdi
addq $0x138, %rdi            # imm = 0x138
movq %rdi, -0x298(%rbp)
callq 0x22a80
leaq -0x230(%rbp), %rdi
movq %rdi, -0x238(%rbp)
movl $0x1, -0x23c(%rbp)
leaq 0x4704e(%rip), %rsi     # 0x65b80
leaq -0x23c(%rbp), %rdx
callq 0x22aa0
jmp 0x1eb40
leaq -0x208(%rbp), %rdi
movq %rdi, -0x238(%rbp)
movl $0x1, -0x240(%rbp)
leaq 0x47041(%rip), %rsi     # 0x65ba0
leaq -0x240(%rbp), %rdx
callq 0x22aa0
jmp 0x1eb6d
leaq -0x1e0(%rbp), %rdi
movq %rdi, -0x238(%rbp)
movl $0x1, -0x244(%rbp)
leaq 0x46fb4(%rip), %rsi     # 0x65b40
leaq -0x244(%rbp), %rdx
callq 0x22aa0
jmp 0x1eb9a
leaq -0x1b8(%rbp), %rdi
movq %rdi, -0x238(%rbp)
movl $0x1, -0x248(%rbp)
leaq 0x46fa7(%rip), %rsi     # 0x65b60
leaq -0x248(%rbp), %rdx
callq 0x22aa0
jmp 0x1ebc7
leaq -0x190(%rbp), %rdi
movq %rdi, -0x238(%rbp)
movl $0x2, -0x24c(%rbp)
leaq 0x46f1a(%rip), %rsi     # 0x65b00
leaq -0x24c(%rbp), %rdx
callq 0x22aa0
jmp 0x1ebf4
leaq -0x168(%rbp), %rdi
movq %rdi, -0x238(%rbp)
movl $0x2, -0x250(%rbp)
leaq 0x46f0d(%rip), %rsi     # 0x65b20
leaq -0x250(%rbp), %rdx
callq 0x22aa0
jmp 0x1ec21
leaq -0x140(%rbp), %rdi
movq %rdi, -0x238(%rbp)
movl $0x3, -0x254(%rbp)
leaq 0x46e00(%rip), %rsi     # 0x65a40
leaq -0x254(%rbp), %rdx
callq 0x22aa0
jmp 0x1ec4e
leaq -0x118(%rbp), %rdi
movq %rdi, -0x238(%rbp)
movl $0x3, -0x258(%rbp)
leaq 0x46df3(%rip), %rsi     # 0x65a60
leaq -0x258(%rbp), %rdx
callq 0x22aa0
jmp 0x1ec7b
leaq -0xf0(%rbp), %rdi
movq %rdi, -0x238(%rbp)
movl $0x4, -0x25c(%rbp)
leaq 0x46e26(%rip), %rsi     # 0x65ac0
leaq -0x25c(%rbp), %rdx
callq 0x22aa0
jmp 0x1eca8
leaq -0xc8(%rbp), %rdi
movq %rdi, -0x238(%rbp)
movl $0x4, -0x260(%rbp)
leaq 0x46dd9(%rip), %rsi     # 0x65aa0
leaq -0x260(%rbp), %rdx
callq 0x22aa0
jmp 0x1ecd5
leaq -0xa0(%rbp), %rdi
movq %rdi, -0x238(%rbp)
movl $0x4, -0x264(%rbp)
leaq 0x46dec(%rip), %rsi     # 0x65ae0
leaq -0x264(%rbp), %rdx
callq 0x22aa0
jmp 0x1ed02
leaq -0x78(%rbp), %rdi
movq %rdi, -0x238(%rbp)
movl $0x6, -0x268(%rbp)
leaq 0x46f02(%rip), %rsi     # 0x65c20
leaq -0x268(%rbp), %rdx
callq 0x22aa0
jmp 0x1ed2c
leaq -0x50(%rbp), %rdi
movq %rdi, -0x238(%rbp)
movl $0x7, -0x26c(%rbp)
leaq 0x46f58(%rip), %rsi     # 0x65ca0
leaq -0x26c(%rbp), %rdx
callq 0x22aa0
jmp 0x1ed56
movq -0x288(%rbp), %rdi
leaq -0x230(%rbp), %rax
movq %rax, -0x28(%rbp)
movq $0xd, -0x20(%rbp)
addq $0xc8, %rdi
movq -0x28(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x22ae0
jmp 0x1ed86
leaq -0x230(%rbp), %rax
movq %rax, -0x2c0(%rbp)
addq $0x208, %rax            # imm = 0x208
movq %rax, -0x2b8(%rbp)
movq -0x2b8(%rbp), %rdi
addq $-0x28, %rdi
movq %rdi, -0x2c8(%rbp)
callq 0x147a0
movq -0x2c0(%rbp), %rcx
movq -0x2c8(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x2b8(%rbp)
jne 0x1eda1
addq $0x2f0, %rsp            # imm = 0x2F0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x1eef8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x1eeec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movq -0x238(%rbp), %rax
leaq -0x230(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x2d0(%rbp)
je 0x1ee54
movq -0x2d0(%rbp), %rdi
addq $-0x28, %rdi
movq %rdi, -0x2d8(%rbp)
callq 0x147a0
movq -0x2d8(%rbp), %rax
leaq -0x230(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x2d0(%rbp)
jne 0x1ee23
jmp 0x1eeb0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
leaq -0x230(%rbp), %rax
movq %rax, -0x2e8(%rbp)
addq $0x208, %rax            # imm = 0x208
movq %rax, -0x2e0(%rbp)
movq -0x2e0(%rbp), %rdi
addq $-0x28, %rdi
movq %rdi, -0x2f0(%rbp)
callq 0x147a0
movq -0x2e8(%rbp), %rcx
movq -0x2f0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x2e0(%rbp)
jne 0x1ee7d
jmp 0x1eeb0
movq -0x298(%rbp), %rdi
callq 0x13970
movq -0x2a0(%rbp), %rdi
callq 0x13990
movq -0x2a8(%rbp), %rdi
callq 0x139b0
movq -0x2b0(%rbp), %rdi
callq 0x135d0
movq -0x290(%rbp), %rdi
callq 0x139d0
movq -0x278(%rbp), %rdi
callq 0x139d0
movq -0x280(%rbp), %rdi
callq 0x13790
movq -0x10(%rbp), %rdi
callq 0x5490
nopl (%rax)