// File: /workspace/github_cpp_makefile_star2_O1/Heptagon196[P]Gos/GosAST.cpp
// Function: Gos::AST::Exp::Exp(Gos::GosTokenizer&)
Build(Exp) {
        Log(Exp);

        gosASTOffError++;
        gosASTHasError = false;
        int progress = tokenizer.GetProgress();
        tokenizer.SetErrorCallback([]() { gosASTHasError = true; return false; });

        Expect(Assign);

        tokenizer.SetErrorCallback([]() { return true; });
        gosASTOffError--;
        if (gosASTHasError) {
            delete nodes[0];
            nodes.pop_back();
        } else {
            return;
        }
        gosASTHasError = false;
        tokenizer.RestoreProgress(progress);

        Expect(Cond);
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x50, %rsp
movq %rsi, %r15
movq %rdi, %rbx
leaq 0x7aca9(%rip), %rax     # 0x11d068
movq %rax, (%rdi)
leaq 0x10(%rdi), %r14
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rdi)
movq $0x0, 0x20(%rdi)
addq $0x28, %rdi
callq 0x9ece0
leaq 0x7b19b(%rip), %rax     # 0x11d580
addq $0x10, %rax
movq %rax, (%rbx)
movl $0x0, 0x8(%rbx)
cmpb $0x0, 0x7cdf6(%rip)     # 0x11f1f0
jne 0xa2521
incl 0x7cdee(%rip)           # 0x11f1f4
movb $0x0, 0x7cde3(%rip)     # 0x11f1f0
movq %r15, %rdi
callq 0x9fe48
movl %eax, %ebp
xorps %xmm0, %xmm0
leaq 0x30(%rsp), %rsi
movaps %xmm0, (%rsi)
leaq 0x52bf(%rip), %rax      # 0xa76e8
movq %rax, 0x18(%rsi)
leaq 0x52be(%rip), %rax      # 0xa76f2
movq %rax, 0x10(%rsi)
movq %r15, %rdi
callq 0x9fc2a
movq 0x40(%rsp), %rax
testq %rax, %rax
je 0xa2459
leaq 0x30(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movl $0x60, %edi
callq 0x11350
movq %rax, %r12
movq %rax, %rdi
movq %r15, %rsi
callq 0xa21fc
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0xa7742
xorps %xmm0, %xmm0
leaq 0x10(%rsp), %rsi
movaps %xmm0, (%rsi)
leaq 0x5277(%rip), %rax      # 0xa770a
movq %rax, 0x18(%rsi)
leaq 0x5270(%rip), %rax      # 0xa770e
movq %rax, 0x10(%rsi)
movq %r15, %rdi
callq 0x9fc2a
movq 0x20(%rsp), %rax
testq %rax, %rax
je 0xa24c3
leaq 0x10(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
decl 0x7cd2b(%rip)           # 0x11f1f4
cmpb $0x1, 0x7cd20(%rip)     # 0x11f1f0
jne 0xa2521
movq (%r14), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je 0xa24e3
movq (%rdi), %rax
callq *0x18(%rax)
addq $-0x8, 0x18(%rbx)
movb $0x0, 0x7cd01(%rip)     # 0x11f1f0
movq %r15, %rdi
movl %ebp, %esi
callq 0x9fe4c
movl $0x60, %edi
callq 0x11350
movq %rax, %r12
movq %rax, %rdi
movq %r15, %rsi
callq 0xa1fb4
leaq 0x8(%rsp), %rsi
movq %r12, (%rsi)
movq %r14, %rdi
callq 0xa7742
addq $0x50, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0xa2556
jmp 0xa2586
jmp 0xa2586
jmp 0xa2590
movq %rax, %r15
movq 0x20(%rsp), %rax
testq %rax, %rax
je 0xa2593
leaq 0x10(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0xa2593
jmp 0xa2586
movq %rax, %r15
movl $0x60, %esi
movq %r12, %rdi
callq 0x11360
jmp 0xa2593
movq %rax, %r15
movq 0x40(%rsp), %rax
testq %rax, %rax
je 0xa2593
leaq 0x30(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0xa2593
movq %rax, %rdi
callq 0x2789a
jmp 0xa2590
movq %rax, %r15
movq %rbx, %rdi
callq 0xa0994
movq %r15, %rdi
callq 0x11580
movq %rax, %r15
movq (%r14), %rdi
testq %rdi, %rdi
je 0xa259b
movq 0x20(%rbx), %rsi
subq %rdi, %rsi
callq 0x11360
jmp 0xa259b