// File: /workspace/github_cpp_makefile_star2_O1/tcannon686[P]obj2webgl/./obj_parser.hpp
// Function: ObjParser<std::basic_ifstream<char, std::char_traits<char>>>::nextToken()
void nextToken()
    {
        int c;
        std::stringstream s;

        token = next_token;

        /* Skip whitespace. */
        while(isspace(c = stream.get()) && c != '\n' && c != '\r')
            /* pass */;

        if(c == EOF)
        {
            token_type = TokenType::END_OF_FILE;
        }
        else if(c == '\n' || c == '\r')
        {
            line ++;
            token_type = TokenType::END_OF_LINE;
            if(c == '\n' && stream.peek() == '\r')
                stream.get();
            else if(c == '\r' && stream.peek() == '\n')
                stream.get();
        }
        /* If reading a command. */
        else if(isalpha(c))
        {
            /* Read until non alphanumeric. */
            s << (char) c;
            while(isalnum((c = stream.get())))
            {
                s << (char) c;
            }
            stream.unget();

            next_token = s.str();
            if(next_token == VERTEX_STR)
                token_type = TokenType::VERTEX;
            else if(next_token == NORMAL_STR)
                token_type = TokenType::NORMAL;
            else if(next_token == TEXCO_STR)
                token_type = TokenType::TEXCO;
            else if(next_token == FACE_STR)
                token_type = TokenType::FACE;
            else if(next_token == USEMTL_STR)
                token_type = TokenType::USEMTL;
            else if(next_token == MTLLIB_STR)
                token_type = TokenType::MTLLIB;
            else if(next_token == OBJECT_STR)
                token_type = TokenType::OBJECT;
            else if(next_token == GROUP_STR)
                token_type = TokenType::GROUP;
            else if(next_token == SHADE_STR)
                token_type = TokenType::SHADE;
            else if(next_token == ON_STR)
                token_type = TokenType::ON;
            else if(next_token == OFF_STR)
                token_type = TokenType::OFF;
            else
                token_type = TokenType::UNKNOWN;
        }
        else if(isdigit(c) || c == '-')
        {
            s << (char) c;
            while(isdigit((c = stream.get()))
                    || c == '.'
                    || c == 'e'
                    || c == 'E')
            {
                s << (char) c;
            }
            stream.unget();
            
            next_token = s.str();
            token_type = TokenType::NUMBER;
        }
        else if(c == '#')
        {
            s << (char) c;
            while((c = stream.get()) != '\n' && c != '\r')
            {
                s << (char) c;
            }
            stream.unget();

            next_token = s.str();
            token_type = TokenType::COMMENT;
            line ++;
        }
        else if(c == '/')
        {
            s << (char) c;
            next_token = s.str();
            token_type = TokenType::INDEX_SEPARATOR;
        }
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1a8, %rsp            # imm = 0x1A8
movq %rdi, %rbx
leaq -0x1d0(%rbp), %rdi
callq 0x31a0
leaq 0xc0(%rbx), %r14
leaq 0xa0(%rbx), %rdi
movq %r14, %rsi
callq 0x3140
movq (%rbx), %rdi
callq 0x32c0
movl %eax, %r15d
movl %eax, %edi
callq 0x3050
testl %eax, %eax
je 0x5a95
cmpl $0xa, %r15d
je 0x5a9f
cmpl $0xd, %r15d
jne 0x5a71
jmp 0x5a9f
cmpl $-0x1, %r15d
je 0x5c57
cmpl $0xd, %r15d
je 0x5aab
cmpl $0xa, %r15d
jne 0x5b00
incl 0x9c(%rbx)
movl $0xf, 0xe0(%rbx)
cmpl $0xd, %r15d
je 0x5ae2
cmpl $0xa, %r15d
jne 0x5f5e
movq (%rbx), %rdi
callq 0x30e0
cmpl $0xd, %eax
je 0x5af3
cmpl $0xd, %r15d
jne 0x5f5e
movq (%rbx), %rdi
callq 0x30e0
cmpl $0xa, %eax
jne 0x5f5e
movq (%rbx), %rdi
callq 0x32c0
jmp 0x5f5e
movl %r15d, %edi
callq 0x3390
testl %eax, %eax
je 0x5c66
leaq -0x1c0(%rbp), %r12
leaq -0x48(%rbp), %rsi
movb %r15b, (%rsi)
movl $0x1, %edx
movq %r12, %rdi
callq 0x32a0
leaq -0x48(%rbp), %r15
movq (%rbx), %rdi
callq 0x32c0
movl %eax, %r13d
movl %eax, %edi
callq 0x3260
testl %eax, %eax
je 0x5b5b
movb %r13b, -0x48(%rbp)
movl $0x1, %edx
movq %r12, %rdi
movq %r15, %rsi
callq 0x32a0
jmp 0x5b2f
movq (%rbx), %rdi
callq 0x30b0
leaq -0x1b8(%rbp), %rsi
leaq -0x48(%rbp), %rdi
callq 0x3380
leaq -0x48(%rbp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x32d0
movq (%r15), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x5b9a
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3250
movq 0xc8(%rbx), %r15
cmpq 0x110(%rbx), %r15
jne 0x5bd1
testq %r15, %r15
je 0x5cdf
movq 0xc0(%rbx), %rdi
movq 0x108(%rbx), %rsi
movq %r15, %rdx
callq 0x3270
testl %eax, %eax
je 0x5cdf
cmpq 0x130(%rbx), %r15
jne 0x5c01
testq %r15, %r15
je 0x5d9e
movq 0xc0(%rbx), %rdi
movq 0x128(%rbx), %rsi
movq %r15, %rdx
callq 0x3270
testl %eax, %eax
je 0x5d9e
cmpq 0x150(%rbx), %r15
jne 0x5c31
testq %r15, %r15
je 0x5dd3
movq 0xc0(%rbx), %rdi
movq 0x148(%rbx), %rsi
movq %r15, %rdx
callq 0x3270
testl %eax, %eax
je 0x5dd3
leaq 0x168(%rbx), %rsi
movq %r14, %rdi
callq 0x6d42
testb %al, %al
je 0x5dad
movl $0x4, 0xe0(%rbx)
jmp 0x5f5e
movl $0xc, 0xe0(%rbx)
jmp 0x5f5e
leal -0x30(%r15), %eax
cmpl $0xa, %eax
setae %al
cmpl $0x2d, %r15d
setne %cl
testb %al, %cl
jne 0x5cee
leaq -0x1c0(%rbp), %r12
leaq -0x48(%rbp), %rsi
movb %r15b, (%rsi)
movl $0x1, %edx
movq %r12, %rdi
callq 0x32a0
leaq -0x48(%rbp), %r15
movabsq $0x80000000800001, %r13 # imm = 0x80000000800001
movq (%rbx), %rdi
callq 0x32c0
leal -0x30(%rax), %ecx
cmpl $0xa, %ecx
jb 0x5cca
leal -0x2e(%rax), %ecx
cmpl $0x37, %ecx
ja 0x5d50
btq %rcx, %r13
jae 0x5d50
movb %al, -0x48(%rbp)
movl $0x1, %edx
movq %r12, %rdi
movq %r15, %rsi
callq 0x32a0
jmp 0x5ca4
movl $0x1, 0xe0(%rbx)
jmp 0x5f5e
cmpl $0x2f, %r15d
je 0x5de2
cmpl $0x23, %r15d
jne 0x5f5e
leaq -0x1c0(%rbp), %r15
leaq -0x48(%rbp), %rsi
movb $0x23, (%rsi)
movl $0x1, %edx
movq %r15, %rdi
callq 0x32a0
leaq -0x48(%rbp), %r12
movq (%rbx), %rdi
callq 0x32c0
cmpl $0xa, %eax
je 0x5e40
cmpl $0xd, %eax
je 0x5e40
movb %al, -0x48(%rbp)
movl $0x1, %edx
movq %r15, %rdi
movq %r12, %rsi
callq 0x32a0
jmp 0x5d21
movq (%rbx), %rdi
callq 0x30b0
leaq -0x1b8(%rbp), %rsi
leaq -0x48(%rbp), %rdi
callq 0x3380
leaq -0x48(%rbp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x32d0
movq (%r15), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x5d8f
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3250
movl $0xb, 0xe0(%rbx)
jmp 0x5f5e
movl $0x2, 0xe0(%rbx)
jmp 0x5f5e
leaq 0x188(%rbx), %rsi
movq %r14, %rdi
callq 0x6d42
testb %al, %al
je 0x5e94
movl $0x5, 0xe0(%rbx)
jmp 0x5f5e
movl $0x3, 0xe0(%rbx)
jmp 0x5f5e
leaq -0x1c0(%rbp), %rdi
leaq -0x48(%rbp), %rsi
movb $0x2f, (%rsi)
movl $0x1, %edx
callq 0x32a0
leaq -0x1b8(%rbp), %rsi
leaq -0x48(%rbp), %rdi
callq 0x3380
leaq -0x48(%rbp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x32d0
movq (%r15), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x5e31
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3250
movl $0xa, 0xe0(%rbx)
jmp 0x5f5e
movq (%rbx), %rdi
callq 0x30b0
leaq -0x1b8(%rbp), %rsi
leaq -0x48(%rbp), %rdi
callq 0x3380
leaq -0x48(%rbp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x32d0
movq (%r15), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x5e7f
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3250
movl $0x0, 0xe0(%rbx)
incl 0x9c(%rbx)
jmp 0x5f5e
leaq 0x1a8(%rbx), %rsi
movq %r14, %rdi
callq 0x6d42
testb %al, %al
je 0x5eb6
movl $0x6, 0xe0(%rbx)
jmp 0x5f5e
leaq 0x1c8(%rbx), %rsi
movq %r14, %rdi
callq 0x6d42
testb %al, %al
je 0x5ed8
movl $0x7, 0xe0(%rbx)
jmp 0x5f5e
leaq 0x1e8(%rbx), %rsi
movq %r14, %rdi
callq 0x6d42
testb %al, %al
je 0x5ef7
movl $0x8, 0xe0(%rbx)
jmp 0x5f5e
leaq 0x208(%rbx), %rsi
movq %r14, %rdi
callq 0x6d42
testb %al, %al
je 0x5f16
movl $0x9, 0xe0(%rbx)
jmp 0x5f5e
leaq 0x248(%rbx), %rsi
movq %r14, %rdi
callq 0x6d42
testb %al, %al
je 0x5f35
movl $0x10, 0xe0(%rbx)
jmp 0x5f5e
leaq 0x268(%rbx), %rsi
movq %r14, %rdi
callq 0x6d42
testb %al, %al
je 0x5f54
movl $0x11, 0xe0(%rbx)
jmp 0x5f5e
movl $0xd, 0xe0(%rbx)
movq 0x504b(%rip), %rsi      # 0xafb0
leaq -0x1d0(%rbp), %rdi
callq 0x31c0
leaq -0x150(%rbp), %rdi
callq 0x30c0
addq $0x1a8, %rsp            # imm = 0x1A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x5f9f
jmp 0x5f9f
jmp 0x5f9f
jmp 0x5f9f
jmp 0x5f9f
jmp 0x5f9f
jmp 0x5f9f
jmp 0x5f9f
movq %rax, %rbx
movq 0x5007(%rip), %rsi      # 0xafb0
leaq -0x1d0(%rbp), %rdi
callq 0x31c0
leaq -0x150(%rbp), %rdi
callq 0x30c0
movq %rbx, %rdi
callq 0x3420
nop