// File: Heptagon196[P]Gos/GosAST.cpp
// Function: Gos::AST::Primary::Primary(Gos::GosTokenizer&)
Build(Primary) {
        Log(Primary);
        token = tokenizer.GetToken();
        branch = 0;
        if (token.type == L_ROUND) {
            Expect(Exp);
            tokenizer.EatToken(R_ROUND);
        } else if (token.type == LAMBDA) {
            tokenizer.BackToken();
            Expect(LambdaDef);
        } else if (token.type == NEW) {
            branch = 1;
            Expect(Symbol);
            if (tokenizer.GetToken().type == L_ROUND) {
                if (tokenizer.GetToken().type != R_ROUND) {
                    branch = 3;
                    tokenizer.BackToken();
                    Expect(ArgsList);
                    tokenizer.EatToken(R_ROUND);
                }
            } else {
                tokenizer.BackToken();
            }
        } else {
            tokenizer.BackToken();
            if (token.type == SYMBOL) {
                Expect(Symbol);
            } else if (token.type == NUMBER) {
                Expect(Number);
            } else if (token.type == STRING) {
                Expect(String);
            } else {
                GosASTError::UnexpectedToken(token);
            }
        }
    }

// Assembly:
subq $0x128, %rsp            # imm = 0x128
movq %rdi, 0x120(%rsp)
movq %rsi, 0x118(%rsp)
movq 0x120(%rsp), %rdi
movq %rdi, 0x90(%rsp)
callq 0x1d1d40
movq 0x90(%rsp), %rax
leaq 0x138f6d(%rip), %rcx    # 0x300188
addq $0x10, %rcx
movq %rcx, (%rax)
movl $0x0, 0x8(%rax)
testb $0x1, 0x13b030(%rip)    # 0x302260
je 0x1c7237
jmp 0x1c77bf
movq 0x118(%rsp), %rdi
callq 0x1c5260
movq %rax, 0x88(%rsp)
jmp 0x1c724e
movq 0x88(%rsp), %rsi
movq 0x90(%rsp), %rdi
addq $0x28, %rdi
callq 0x1d1da0
jmp 0x1c7269
movq 0x90(%rsp), %rax
movl $0x0, 0x8(%rax)
cmpl $0x32, 0x28(%rax)
jne 0x1c733f
movq 0x90(%rsp), %rax
addq $0x10, %rax
movq %rax, 0x78(%rsp)
movl $0x60, %edi
callq 0x13110
movq %rax, 0x80(%rsp)
jmp 0x1c72a7
movq 0x80(%rsp), %rdi
movq 0x118(%rsp), %rsi
callq 0x1c92d0
jmp 0x1c72be
movq 0x78(%rsp), %rdi
movq 0x80(%rsp), %rax
movq %rax, 0x100(%rsp)
leaq 0x100(%rsp), %rsi
callq 0x1d1cb0
jmp 0x1c72e2
movq 0x118(%rsp), %rdi
movl $0x33, %esi
callq 0x1c5300
jmp 0x1c72f6
jmp 0x1c77bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x110(%rsp)
movl %eax, 0x10c(%rsp)
jmp 0x1c77c7
movq 0x80(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x110(%rsp)
movl %eax, 0x10c(%rsp)
movl $0x60, %esi
callq 0x130c0
jmp 0x1c77c7
movq 0x90(%rsp), %rax
cmpl $0x5, 0x28(%rax)
jne 0x1c73e4
movq 0x118(%rsp), %rdi
callq 0x1c5530
jmp 0x1c7360
movq 0x90(%rsp), %rax
addq $0x10, %rax
movq %rax, 0x68(%rsp)
movl $0x60, %edi
callq 0x13110
movq %rax, 0x70(%rsp)
jmp 0x1c7382
movq 0x70(%rsp), %rdi
movq 0x118(%rsp), %rsi
callq 0x1caea0
jmp 0x1c7396
movq 0x68(%rsp), %rdi
movq 0x70(%rsp), %rax
movq %rax, 0xf8(%rsp)
leaq 0xf8(%rsp), %rsi
callq 0x1d1cb0
jmp 0x1c73b7
jmp 0x1c77bd
movq 0x70(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x110(%rsp)
movl %eax, 0x10c(%rsp)
movl $0x60, %esi
callq 0x130c0
jmp 0x1c77c7
movq 0x90(%rsp), %rax
cmpl $0x4, 0x28(%rax)
jne 0x1c758b
movq 0x90(%rsp), %rax
movl $0x1, 0x8(%rax)
addq $0x10, %rax
movq %rax, 0x58(%rsp)
movl $0x60, %edi
callq 0x13110
movq %rax, 0x60(%rsp)
jmp 0x1c741f
movq 0x60(%rsp), %rdi
movq 0x118(%rsp), %rsi
callq 0x1c7030
jmp 0x1c7433
movq 0x58(%rsp), %rdi
movq 0x60(%rsp), %rax
movq %rax, 0xf0(%rsp)
leaq 0xf0(%rsp), %rsi
callq 0x1d1cb0
jmp 0x1c7454
movq 0x118(%rsp), %rdi
callq 0x1c5260
movq %rax, 0x50(%rsp)
jmp 0x1c7468
movq 0x50(%rsp), %rax
cmpl $0x32, (%rax)
jne 0x1c7575
movq 0x118(%rsp), %rdi
callq 0x1c5260
movq %rax, 0x48(%rsp)
jmp 0x1c748a
movq 0x48(%rsp), %rax
cmpl $0x33, (%rax)
je 0x1c7573
movq 0x90(%rsp), %rax
movl $0x3, 0x8(%rax)
movq 0x118(%rsp), %rdi
callq 0x1c5530
jmp 0x1c74b6
movq 0x90(%rsp), %rax
addq $0x10, %rax
movq %rax, 0x38(%rsp)
movl $0x60, %edi
callq 0x13110
movq %rax, 0x40(%rsp)
jmp 0x1c74d8
movq 0x40(%rsp), %rdi
movq 0x118(%rsp), %rsi
callq 0x1cace0
jmp 0x1c74ec
movq 0x38(%rsp), %rdi
movq 0x40(%rsp), %rax
movq %rax, 0xe8(%rsp)
leaq 0xe8(%rsp), %rsi
callq 0x1d1cb0
jmp 0x1c750d
movq 0x118(%rsp), %rdi
movl $0x33, %esi
callq 0x1c5300
jmp 0x1c7521
jmp 0x1c7573
movq 0x60(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x110(%rsp)
movl %eax, 0x10c(%rsp)
movl $0x60, %esi
callq 0x130c0
jmp 0x1c77c7
movq 0x40(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x110(%rsp)
movl %eax, 0x10c(%rsp)
movl $0x60, %esi
callq 0x130c0
jmp 0x1c77c7
jmp 0x1c7586
movq 0x118(%rsp), %rdi
callq 0x1c5530
jmp 0x1c7584
jmp 0x1c7586
jmp 0x1c77bb
movq 0x118(%rsp), %rdi
callq 0x1c5530
jmp 0x1c759a
movq 0x90(%rsp), %rax
cmpl $0x2a, 0x28(%rax)
jne 0x1c7630
movq 0x90(%rsp), %rax
addq $0x10, %rax
movq %rax, 0x28(%rsp)
movl $0x60, %edi
callq 0x13110
movq %rax, 0x30(%rsp)
jmp 0x1c75ce
movq 0x30(%rsp), %rdi
movq 0x118(%rsp), %rsi
callq 0x1c7030
jmp 0x1c75e2
movq 0x28(%rsp), %rdi
movq 0x30(%rsp), %rax
movq %rax, 0xe0(%rsp)
leaq 0xe0(%rsp), %rsi
callq 0x1d1cb0
jmp 0x1c7603
jmp 0x1c77b9
movq 0x30(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x110(%rsp)
movl %eax, 0x10c(%rsp)
movl $0x60, %esi
callq 0x130c0
jmp 0x1c77c7
movq 0x90(%rsp), %rax
cmpl $0x2b, 0x28(%rax)
jne 0x1c76c6
movq 0x90(%rsp), %rax
addq $0x10, %rax
movq %rax, 0x18(%rsp)
movl $0x60, %edi
callq 0x13110
movq %rax, 0x20(%rsp)
jmp 0x1c7664
movq 0x20(%rsp), %rdi
movq 0x118(%rsp), %rsi
callq 0x1c70c0
jmp 0x1c7678
movq 0x18(%rsp), %rdi
movq 0x20(%rsp), %rax
movq %rax, 0xd8(%rsp)
leaq 0xd8(%rsp), %rsi
callq 0x1d1cb0
jmp 0x1c7699
jmp 0x1c77b7
movq 0x20(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x110(%rsp)
movl %eax, 0x10c(%rsp)
movl $0x60, %esi
callq 0x130c0
jmp 0x1c77c7
movq 0x90(%rsp), %rax
cmpl $0x2c, 0x28(%rax)
jne 0x1c7759
movq 0x90(%rsp), %rax
addq $0x10, %rax
movq %rax, 0x8(%rsp)
movl $0x60, %edi
callq 0x13110
movq %rax, 0x10(%rsp)
jmp 0x1c76fa
movq 0x10(%rsp), %rdi
movq 0x118(%rsp), %rsi
callq 0x1c7150
jmp 0x1c770e
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rax
movq %rax, 0xd0(%rsp)
leaq 0xd0(%rsp), %rsi
callq 0x1d1cb0
jmp 0x1c772f
jmp 0x1c77b5
movq 0x10(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x110(%rsp)
movl %eax, 0x10c(%rsp)
movl $0x60, %esi
callq 0x130c0
jmp 0x1c77c7
movq 0x90(%rsp), %rsi
addq $0x28, %rsi
leaq 0x98(%rsp), %rdi
callq 0x1c5960
jmp 0x1c7774
leaq 0x98(%rsp), %rdi
callq 0x1c68c0
jmp 0x1c7783
leaq 0x98(%rsp), %rdi
callq 0x1c57d0
jmp 0x1c77b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x110(%rsp)
movl %eax, 0x10c(%rsp)
leaq 0x98(%rsp), %rdi
callq 0x1c57d0
jmp 0x1c77c7
jmp 0x1c77b7
jmp 0x1c77b9
jmp 0x1c77bb
jmp 0x1c77bd
jmp 0x1c77bf
addq $0x128, %rsp            # imm = 0x128
retq
movq 0x90(%rsp), %rdi
callq 0x1c6f10
movq 0x110(%rsp), %rdi
callq 0x133f0
nopw %cs:(%rax,%rax)