// File: /workspace/github_cpp_makefile_star2_O2/Heptagon196[P]Gos/GosAST.cpp
// Function: Gos::AST::LambdaDef::LambdaDef(Gos::GosTokenizer&)
Build(LambdaDef) {
        Log(LambdaDef);
        tokenizer.EatToken(LAMBDA);
        if (tokenizer.GetToken().type == L_SQUARE) {
            if (tokenizer.GetToken().type != R_SQUARE) {
                tokenizer.BackToken();
                branch += 1;
                nodes.push_back(new Empty());
                if (tokenizer.GetToken().type == ADDR) {
                    nodes[0]->Expect(Symbol);
                    nodes[0]->nodes.back()->branch = 1;
                } else {
                    tokenizer.BackToken();
                    nodes[0]->Expect(Symbol);
                    nodes[0]->nodes.back()->branch = 0;
                }
                while (!tokenizer.IsEOF() && (token = tokenizer.GetToken()).type == COM) {
                    if (tokenizer.GetToken().type == ADDR) {
                        nodes[0]->Expect(Symbol);
                        nodes[0]->nodes.back()->branch = 1;
                    } else {
                        tokenizer.BackToken();
                        nodes[0]->Expect(Symbol);
                        nodes[0]->nodes.back()->branch = 0;
                    }
                }
                tokenizer.BackToken();
                tokenizer.EatToken(R_SQUARE);
            }
        } else {
            tokenizer.BackToken();
        }
        tokenizer.EatToken(L_ROUND);
        token = tokenizer.GetToken();
        tokenizer.BackToken();
        if (token.type != R_ROUND) {
            branch += 2;
            Expect(DefArgList);
        }
        tokenizer.EatToken(R_ROUND);
        Expect(Symbol);
        Expect(StatBlock);
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
callq 0x83e82
leaq 0x84b9d(%rip), %rax     # 0x1056b8
addq $0x10, %rax
movq %rax, (%rbx)
andl $0x0, 0x8(%rbx)
cmpb $0x0, 0x866b3(%rip)     # 0x1071e0
jne 0x80daa
pushq $0x5
popq %rsi
movq %r14, %rdi
callq 0x7e12a
movq %r14, %rdi
callq 0x7e0e8
cmpl $0x34, (%rax)
jne 0x80bd0
movq %r14, %rdi
callq 0x7e0e8
cmpl $0x35, (%rax)
je 0x80cfa
movq %r14, %rdi
callq 0x7e25c
incl 0x8(%rbx)
pushq $0x60
popq %rdi
callq 0x11350
movq %rax, %r12
movq %rax, %rdi
callq 0x7ebda
leaq 0x10(%rbx), %r15
movq %rsp, %rsi
movq %r12, (%rsi)
movq %r15, %rdi
callq 0x84b08
movq %r14, %rdi
callq 0x7e0e8
cmpl $0x1d, (%rax)
jne 0x80bdd
movq (%r15), %rax
movq (%rax), %r12
pushq $0x60
popq %rdi
callq 0x11350
movq %rax, %r13
movq %rax, %rdi
movq %r14, %rsi
callq 0x7ebf4
addq $0x10, %r12
movq %rsp, %rsi
movq %r13, (%rsi)
movq %r12, %rdi
callq 0x84b08
pushq $0x1
popq %rax
jmp 0x80c15
movq %r14, %rdi
callq 0x7e25c
jmp 0x80cfa
movq %r14, %rdi
callq 0x7e25c
movq (%r15), %rax
movq (%rax), %r12
pushq $0x60
popq %rdi
callq 0x11350
movq %rax, %r13
movq %rax, %rdi
movq %r14, %rsi
callq 0x7ebf4
addq $0x10, %r12
movq %rsp, %rsi
movq %r13, (%rsi)
movq %r12, %rdi
callq 0x84b08
xorl %eax, %eax
movq 0x10(%rbx), %rcx
movq (%rcx), %rcx
movq 0x18(%rcx), %rcx
movq -0x8(%rcx), %rcx
movl %eax, 0x8(%rcx)
leaq 0x28(%rbx), %r12
movq %r14, %rdi
callq 0x7e268
testb %al, %al
jne 0x80ce7
movq %r14, %rdi
callq 0x7e0e8
movq %r12, %rdi
movq %rax, %rsi
callq 0x83ec4
cmpl $0x2d, (%rax)
jne 0x80ce7
movq %r14, %rdi
callq 0x7e0e8
cmpl $0x1d, (%rax)
jne 0x80c98
movq (%r15), %rax
movq (%rax), %r13
pushq $0x60
popq %rdi
callq 0x11350
movq %rax, %rbp
movq %rax, %rdi
movq %r14, %rsi
callq 0x7ebf4
addq $0x10, %r13
movq %rbp, (%rsp)
movq %r13, %rdi
movq %rsp, %rsi
callq 0x84b08
pushq $0x1
popq %rax
jmp 0x80cd1
movq %r14, %rdi
callq 0x7e25c
movq (%r15), %rax
movq (%rax), %r13
pushq $0x60
popq %rdi
callq 0x11350
movq %rax, %rbp
movq %rax, %rdi
movq %r14, %rsi
callq 0x7ebf4
addq $0x10, %r13
movq %rbp, (%rsp)
movq %r13, %rdi
movq %rsp, %rsi
callq 0x84b08
xorl %eax, %eax
movq (%r15), %rcx
movq (%rcx), %rcx
movq 0x18(%rcx), %rcx
movq -0x8(%rcx), %rcx
movl %eax, 0x8(%rcx)
jmp 0x80c2b
movq %r14, %rdi
callq 0x7e25c
pushq $0x35
popq %rsi
movq %r14, %rdi
callq 0x7e12a
pushq $0x32
popq %rsi
movq %r14, %rdi
callq 0x7e12a
movq %r14, %rdi
callq 0x7e0e8
leaq 0x28(%rbx), %r15
movq %r15, %rdi
movq %rax, %rsi
callq 0x83ec4
movq %r14, %rdi
callq 0x7e25c
cmpl $0x33, (%r15)
je 0x80d53
addl $0x2, 0x8(%rbx)
pushq $0x60
popq %rdi
callq 0x11350
movq %rax, %r15
movq %rax, %rdi
movq %r14, %rsi
callq 0x808ce
leaq 0x10(%rbx), %rdi
movq %rsp, %rsi
movq %r15, (%rsi)
callq 0x84b08
pushq $0x33
popq %rsi
movq %r14, %rdi
callq 0x7e12a
pushq $0x60
popq %rdi
callq 0x11350
movq %rax, %r12
movq %rax, %rdi
movq %r14, %rsi
callq 0x7ebf4
leaq 0x10(%rbx), %r15
movq %rsp, %rsi
movq %r12, (%rsi)
movq %r15, %rdi
callq 0x84b08
pushq $0x60
popq %rdi
callq 0x11350
movq %rax, %r12
movq %rax, %rdi
movq %r14, %rsi
callq 0x80714
movq %rsp, %rsi
movq %r12, (%rsi)
movq %r15, %rdi
callq 0x84b08
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x80dbb
movq %rax, %r14
pushq $0x60
popq %rsi
movq %r13, %rdi
jmp 0x80df3
jmp 0x80e04
jmp 0x80e04
jmp 0x80ddb
movq %rax, %r14
pushq $0x60
popq %rsi
movq %r15, %rdi
jmp 0x80df3
jmp 0x80e04
jmp 0x80ddb
movq %rax, %r14
pushq $0x60
popq %rsi
movq %r12, %rdi
jmp 0x80df3
jmp 0x80e04
jmp 0x80dea
movq %rax, %r14
pushq $0x60
popq %rsi
movq %rbp, %rdi
callq 0x11360
jmp 0x80e07
jmp 0x80e04
jmp 0x80e04
jmp 0x80e04
jmp 0x80e04
jmp 0x80e04
movq %rax, %r14
movq %rbx, %rdi
callq 0x7eb6a
movq %r14, %rdi
callq 0x11570
nop