// File: /workspace/github_cpp_makefile_star2_O3/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 0x5a83
cmpl $0xa, %r15d
je 0x5aa1
cmpl $0xd, %r15d
jne 0x5a5f
jmp 0x5aa1
cmpl $0xd, %r15d
je 0x5aa1
cmpl $0xa, %r15d
je 0x5aa1
cmpl $-0x1, %r15d
jne 0x5b12
movl $0xc, 0xe0(%rbx)
jmp 0x5ae1
incl 0x9c(%rbx)
movl $0xf, 0xe0(%rbx)
cmpl $0xd, %r15d
je 0x5acc
cmpl $0xa, %r15d
jne 0x5ae1
movq (%rbx), %rdi
callq 0x30e0
cmpl $0xd, %eax
je 0x5ad9
jmp 0x5ae1
movq (%rbx), %rdi
callq 0x30e0
cmpl $0xa, %eax
jne 0x5ae1
movq (%rbx), %rdi
callq 0x32c0
movq 0x54c8(%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
movl %r15d, %edi
callq 0x3390
testl %eax, %eax
je 0x5c69
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 0x5b6d
movb %r13b, -0x48(%rbp)
movl $0x1, %edx
movq %r12, %rdi
movq %r15, %rsi
callq 0x32a0
jmp 0x5b41
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 0x5bac
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3250
movq 0xc8(%rbx), %r15
cmpq 0x110(%rbx), %r15
jne 0x5be3
testq %r15, %r15
je 0x5ce2
movq 0xc0(%rbx), %rdi
movq 0x108(%rbx), %rsi
movq %r15, %rdx
callq 0x3270
testl %eax, %eax
je 0x5ce2
cmpq 0x130(%rbx), %r15
jne 0x5c13
testq %r15, %r15
je 0x5da1
movq 0xc0(%rbx), %rdi
movq 0x128(%rbx), %rsi
movq %r15, %rdx
callq 0x3270
testl %eax, %eax
je 0x5da1
cmpq 0x150(%rbx), %r15
jne 0x5c43
testq %r15, %r15
je 0x5dd6
movq 0xc0(%rbx), %rdi
movq 0x148(%rbx), %rsi
movq %r15, %rdx
callq 0x3270
testl %eax, %eax
je 0x5dd6
leaq 0x168(%rbx), %rsi
movq %r14, %rdi
callq 0x6ce4
testb %al, %al
je 0x5db0
movl $0x4, 0xe0(%rbx)
jmp 0x5ae1
leal -0x30(%r15), %eax
cmpl $0xa, %eax
setae %al
cmpl $0x2d, %r15d
setne %cl
testb %al, %cl
jne 0x5cf1
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 0x5ccd
leal -0x2e(%rax), %ecx
cmpl $0x37, %ecx
ja 0x5d53
btq %rcx, %r13
jae 0x5d53
movb %al, -0x48(%rbp)
movl $0x1, %edx
movq %r12, %rdi
movq %r15, %rsi
callq 0x32a0
jmp 0x5ca7
movl $0x1, 0xe0(%rbx)
jmp 0x5ae1
cmpl $0x2f, %r15d
je 0x5de5
cmpl $0x23, %r15d
jne 0x5ae1
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 0x5e43
cmpl $0xd, %eax
je 0x5e43
movb %al, -0x48(%rbp)
movl $0x1, %edx
movq %r15, %rdi
movq %r12, %rsi
callq 0x32a0
jmp 0x5d24
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 0x5d92
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3250
movl $0xb, 0xe0(%rbx)
jmp 0x5ae1
movl $0x2, 0xe0(%rbx)
jmp 0x5ae1
leaq 0x188(%rbx), %rsi
movq %r14, %rdi
callq 0x6ce4
testb %al, %al
je 0x5e97
movl $0x5, 0xe0(%rbx)
jmp 0x5ae1
movl $0x3, 0xe0(%rbx)
jmp 0x5ae1
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 0x5e34
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3250
movl $0xa, 0xe0(%rbx)
jmp 0x5ae1
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 0x5e82
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3250
movl $0x0, 0xe0(%rbx)
incl 0x9c(%rbx)
jmp 0x5ae1
leaq 0x1a8(%rbx), %rsi
movq %r14, %rdi
callq 0x6ce4
testb %al, %al
je 0x5eb9
movl $0x6, 0xe0(%rbx)
jmp 0x5ae1
leaq 0x1c8(%rbx), %rsi
movq %r14, %rdi
callq 0x6ce4
testb %al, %al
je 0x5edb
movl $0x7, 0xe0(%rbx)
jmp 0x5ae1
leaq 0x1e8(%rbx), %rsi
movq %r14, %rdi
callq 0x6ce4
testb %al, %al
je 0x5efd
movl $0x8, 0xe0(%rbx)
jmp 0x5ae1
leaq 0x208(%rbx), %rsi
movq %r14, %rdi
callq 0x6ce4
testb %al, %al
je 0x5f1f
movl $0x9, 0xe0(%rbx)
jmp 0x5ae1
leaq 0x248(%rbx), %rsi
movq %r14, %rdi
callq 0x6ce4
testb %al, %al
je 0x5f41
movl $0x10, 0xe0(%rbx)
jmp 0x5ae1
leaq 0x268(%rbx), %rsi
movq %r14, %rdi
callq 0x6ce4
testb %al, %al
je 0x5f63
movl $0x11, 0xe0(%rbx)
jmp 0x5ae1
movl $0xd, 0xe0(%rbx)
jmp 0x5ae1
jmp 0x5f82
jmp 0x5f82
jmp 0x5f82
jmp 0x5f82
jmp 0x5f82
jmp 0x5f82
jmp 0x5f82
jmp 0x5f82
movq %rax, %rbx
movq 0x5024(%rip), %rsi      # 0xafb0
leaq -0x1d0(%rbp), %rdi
callq 0x31c0
leaq -0x150(%rbp), %rdi
callq 0x30c0
movq %rbx, %rdi
callq 0x3420