// File: BlinfoldKing[P]lisval/src/lib/evaluator.cpp
// Function: Evaluator::Evaluator()
Evaluator::Evaluator() {
    vector<pair<Token*, function<Token*(Token*)>>> state;

    state.push_back(dec());
    state.push_back(not_());
    state.push_back(plus());
    state.push_back(minus());
    state.push_back(times());
    state.push_back(div());
    state.push_back(and_());
    state.push_back(or_());
    state.push_back(map());
    state.push_back(filter());
    state.push_back(reduce());
    state.push_back(eq());
    state.push_back(range());
    state.push_back(def());
    state.push_back(definitions());
    state.push_back(print());
    state.push_back(clear());

    this->state = state;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2f0, %rsp            # imm = 0x2F0
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x2e0(%rbp)
movl $0x100, (%rdi)          # imm = 0x100
addq $0x8, %rdi
movq %rdi, -0x2f0(%rbp)
callq 0x11ca0
movq -0x2e0(%rbp), %rdi
addq $0x20, %rdi
movq %rdi, -0x2e8(%rbp)
callq 0x11cc0
leaq -0x20(%rbp), %rdi
callq 0x11cc0
movq -0x2e0(%rbp), %rsi
leaq -0x48(%rbp), %rdi
callq 0x46e0
jmp 0x8b12
leaq -0x20(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x11ce0
jmp 0x8b21
leaq -0x48(%rbp), %rdi
callq 0x4070
movq -0x2e0(%rbp), %rsi
leaq -0x80(%rbp), %rdi
callq 0x4940
jmp 0x8b3c
leaq -0x20(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x11ce0
jmp 0x8b4b
leaq -0x80(%rbp), %rdi
callq 0x4070
movq -0x2e0(%rbp), %rsi
leaq -0xa8(%rbp), %rdi
callq 0x4ba0
jmp 0x8b69
leaq -0x20(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x11ce0
jmp 0x8b7b
leaq -0xa8(%rbp), %rdi
callq 0x4070
movq -0x2e0(%rbp), %rsi
leaq -0xd0(%rbp), %rdi
callq 0x6860
jmp 0x8b9c
leaq -0x20(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x11ce0
jmp 0x8bae
leaq -0xd0(%rbp), %rdi
callq 0x4070
movq -0x2e0(%rbp), %rsi
leaq -0xf8(%rbp), %rdi
callq 0x61a0
jmp 0x8bcf
leaq -0x20(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x11ce0
jmp 0x8be1
leaq -0xf8(%rbp), %rdi
callq 0x4070
movq -0x2e0(%rbp), %rsi
leaq -0x120(%rbp), %rdi
callq 0x6500
jmp 0x8c02
leaq -0x20(%rbp), %rdi
leaq -0x120(%rbp), %rsi
callq 0x11ce0
jmp 0x8c14
leaq -0x120(%rbp), %rdi
callq 0x4070
movq -0x2e0(%rbp), %rsi
leaq -0x148(%rbp), %rdi
callq 0x7120
jmp 0x8c35
leaq -0x20(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0x11ce0
jmp 0x8c47
leaq -0x148(%rbp), %rdi
callq 0x4070
movq -0x2e0(%rbp), %rsi
leaq -0x170(%rbp), %rdi
callq 0x6dc0
jmp 0x8c68
leaq -0x20(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0x11ce0
jmp 0x8c7a
leaq -0x170(%rbp), %rdi
callq 0x4070
movq -0x2e0(%rbp), %rsi
leaq -0x198(%rbp), %rdi
callq 0x7b40
jmp 0x8c9b
leaq -0x20(%rbp), %rdi
leaq -0x198(%rbp), %rsi
callq 0x11ce0
jmp 0x8cad
leaq -0x198(%rbp), %rdi
callq 0x4070
movq -0x2e0(%rbp), %rsi
leaq -0x1c0(%rbp), %rdi
callq 0x8010
jmp 0x8cce
leaq -0x20(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
callq 0x11ce0
jmp 0x8ce0
leaq -0x1c0(%rbp), %rdi
callq 0x4070
movq -0x2e0(%rbp), %rsi
leaq -0x1e8(%rbp), %rdi
callq 0x84e0
jmp 0x8d01
leaq -0x20(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
callq 0x11ce0
jmp 0x8d13
leaq -0x1e8(%rbp), %rdi
callq 0x4070
movq -0x2e0(%rbp), %rsi
leaq -0x210(%rbp), %rdi
callq 0x4f00
jmp 0x8d34
leaq -0x20(%rbp), %rdi
leaq -0x210(%rbp), %rsi
callq 0x11ce0
jmp 0x8d46
leaq -0x210(%rbp), %rdi
callq 0x4070
movq -0x2e0(%rbp), %rsi
leaq -0x238(%rbp), %rdi
callq 0x5260
jmp 0x8d67
leaq -0x20(%rbp), %rdi
leaq -0x238(%rbp), %rsi
callq 0x11ce0
jmp 0x8d79
leaq -0x238(%rbp), %rdi
callq 0x4070
movq -0x2e0(%rbp), %rsi
leaq -0x260(%rbp), %rdi
callq 0x5e40
jmp 0x8d9a
leaq -0x20(%rbp), %rdi
leaq -0x260(%rbp), %rsi
callq 0x11ce0
jmp 0x8dac
leaq -0x260(%rbp), %rdi
callq 0x4070
movq -0x2e0(%rbp), %rsi
leaq -0x288(%rbp), %rdi
callq 0x7480
jmp 0x8dcd
leaq -0x20(%rbp), %rdi
leaq -0x288(%rbp), %rsi
callq 0x11ce0
jmp 0x8ddf
leaq -0x288(%rbp), %rdi
callq 0x4070
movq -0x2e0(%rbp), %rsi
leaq -0x2b0(%rbp), %rdi
callq 0x7680
jmp 0x8e00
leaq -0x20(%rbp), %rdi
leaq -0x2b0(%rbp), %rsi
callq 0x11ce0
jmp 0x8e12
leaq -0x2b0(%rbp), %rdi
callq 0x4070
movq -0x2e0(%rbp), %rsi
leaq -0x2d8(%rbp), %rdi
callq 0x6bc0
jmp 0x8e33
leaq -0x20(%rbp), %rdi
leaq -0x2d8(%rbp), %rsi
callq 0x11ce0
jmp 0x8e45
leaq -0x2d8(%rbp), %rdi
callq 0x4070
movq -0x2e0(%rbp), %rdi
addq $0x20, %rdi
leaq -0x20(%rbp), %rsi
callq 0x11d10
jmp 0x8e67
leaq -0x20(%rbp), %rdi
callq 0x3e90
addq $0x2f0, %rsp            # imm = 0x2F0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x9060
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x4070
jmp 0x9060
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x4070
jmp 0x9060
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x4070
jmp 0x9060
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x4070
jmp 0x9060
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x4070
jmp 0x9060
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x120(%rbp), %rdi
callq 0x4070
jmp 0x9060
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x4070
jmp 0x9060
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x170(%rbp), %rdi
callq 0x4070
jmp 0x9060
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x198(%rbp), %rdi
callq 0x4070
jmp 0x9060
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x1c0(%rbp), %rdi
callq 0x4070
jmp 0x9060
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x1e8(%rbp), %rdi
callq 0x4070
jmp 0x9060
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x210(%rbp), %rdi
callq 0x4070
jmp 0x9060
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x238(%rbp), %rdi
callq 0x4070
jmp 0x9060
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x260(%rbp), %rdi
callq 0x4070
jmp 0x9060
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x288(%rbp), %rdi
callq 0x4070
jmp 0x9060
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x2b0(%rbp), %rdi
callq 0x4070
jmp 0x9060
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x2d8(%rbp), %rdi
callq 0x4070
leaq -0x20(%rbp), %rdi
callq 0x3e90
movq -0x2e8(%rbp), %rdi
callq 0x3e90
movq -0x2f0(%rbp), %rdi
callq 0x3ef0
movq -0x50(%rbp), %rdi
callq 0x3490
nopw (%rax,%rax)