// File: /workspace/github_cpp_makefile_star2_O3/joncampbell123[P]haxcc/haxpp.cpp
// Function: is_keyword(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
enum token::token_t is_keyword(const string &s) {
    if (s == "_Alignas")
        return token::ALIGNAS;
    if (s == "_Alignof")
        return token::ALIGNOF;
    if (s == "_Atomic")
        return token::ATOMIC;
    if (s == "_Bool")
        return token::BOOL_KW;
    if (s == "_Complex")
        return token::COMPLEX;
    if (s == "_Generic")
        return token::GENERIC;
    if (s == "_Imaginary")
        return token::IMAGINARY;
    if (s == "_Noreturn")
        return token::NORETURN;
    if (s == "_Pragma")
        return token::PRAGMA;
    if (s == "_Static_assert")
        return token::STATIC_ASSERT;
    if (s == "_Thread_local")
        return token::THREAD_LOCAL;
    if (s == "auto")
        return token::AUTO;
    if (s == "break")
        return token::BREAK;
    if (s == "case")
        return token::CASE;
    if (s == "char")
        return token::CHAR;
    if (s == "const")
        return token::CONST;
    if (s == "continue")
        return token::CONTINUE;
    if (s == "default")
        return token::DEFAULT;
    if (s == "do")
        return token::DO;
    if (s == "double")
        return token::DOUBLE;
    if (s == "else")
        return token::ELSE;
    if (s == "enum")
        return token::ENUM;
    if (s == "extern")
        return token::EXTERN;
    if (s == "float")
        return token::FLOAT_KW;
    if (s == "for")
        return token::FOR;
    if (s == "goto")
        return token::GOTO;
    if (s == "if")
        return token::IF;
    if (s == "int")
        return token::INT;
    if (s == "long")
        return token::LONG;
    if (s == "register")
        return token::REGISTER;
    if (s == "return")
        return token::RETURN;
    if (s == "short")
        return token::SHORT;
    if (s == "signed")
        return token::SIGNED;
    if (s == "sizeof")
        return token::SIZEOF;
    if (s == "static")
        return token::STATIC;
    if (s == "struct")
        return token::STRUCT;
    if (s == "switch")
        return token::SWITCH;
    if (s == "typedef")
        return token::TYPEDEF;
    if (s == "union")
        return token::UNION;
    if (s == "unsigned")
        return token::UNSIGNED;
    if (s == "void")
        return token::VOID;
    if (s == "volatile")
        return token::VOLATILE;
    if (s == "while")
        return token::WHILE;

    /* GCC treats these as keywords anyway, why not do the same? */
    if (s == "__VA_ARGS__")
        return token::VA_ARGS;
    if (s == "__VA_OPT__")
        return token::VA_OPT;

    return token::NONE;
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
leaq 0x10254(%rip), %rsi     # 0x13807
callq 0x2080
testl %eax, %eax
je 0x39bd
leaq 0x10249(%rip), %rsi     # 0x13810
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x39c7
leaq 0x1023b(%rip), %rsi     # 0x13819
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x39d1
leaq 0x1022c(%rip), %rsi     # 0x13821
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x39db
leaq 0x1021b(%rip), %rsi     # 0x13827
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x39e5
leaq 0x1020d(%rip), %rsi     # 0x13830
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x39ef
leaq 0x101ff(%rip), %rsi     # 0x13839
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x39f9
leaq 0x101f3(%rip), %rsi     # 0x13844
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a03
leaq 0x101e6(%rip), %rsi     # 0x1384e
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a0d
leaq 0x101d7(%rip), %rsi     # 0x13856
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a17
leaq 0x101cf(%rip), %rsi     # 0x13865
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a21
leaq 0x101c6(%rip), %rsi     # 0x13873
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a2b
leaq 0x101b4(%rip), %rsi     # 0x13878
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a35
leaq 0x101a3(%rip), %rsi     # 0x1387e
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a3f
leaq 0x102f5(%rip), %rsi     # 0x139e7
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a49
leaq 0x1017a(%rip), %rsi     # 0x13883
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a53
leaq 0x10169(%rip), %rsi     # 0x13889
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a5d
leaq 0x1015b(%rip), %rsi     # 0x13892
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a67
leaq 0x1014c(%rip), %rsi     # 0x1389a
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a71
leaq 0x10138(%rip), %rsi     # 0x1389d
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a7b
leaq 0x1004a(%rip), %rsi     # 0x137c6
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a85
leaq 0x10111(%rip), %rsi     # 0x138a4
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a8f
leaq 0x100ff(%rip), %rsi     # 0x138a9
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a99
leaq 0x100ef(%rip), %rsi     # 0x138b0
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3aa3
leaq 0x100de(%rip), %rsi     # 0x138b6
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3aad
leaq 0x100cb(%rip), %rsi     # 0x138ba
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3ab7
leaq 0x10e3f(%rip), %rsi     # 0x14645
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3abe
leaq 0x100a2(%rip), %rsi     # 0x138bf
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3ac5
leaq 0x1008f(%rip), %rsi     # 0x138c3
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3acc
leaq 0x1007d(%rip), %rsi     # 0x138c8
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3ad3
leaq 0xffe5(%rip), %rsi      # 0x13847
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3ada
leaq 0x10058(%rip), %rsi     # 0x138d1
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3ae1
leaq 0x10073(%rip), %rsi     # 0x13903
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3ae8
leaq 0x10030(%rip), %rsi     # 0x138d7
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3aef
leaq 0x10020(%rip), %rsi     # 0x138de
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3af6
leaq 0x10010(%rip), %rsi     # 0x138e5
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3afd
leaq 0x10000(%rip), %rsi     # 0x138ec
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3b04
leaq 0xfff0(%rip), %rsi      # 0x138f3
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3b0b
leaq 0xffe1(%rip), %rsi      # 0x138fb
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3b12
leaq 0xffd0(%rip), %rsi      # 0x13901
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3b19
leaq 0xffc2(%rip), %rsi      # 0x1390a
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3b20
leaq 0xffb0(%rip), %rsi      # 0x1390f
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3b27
leaq 0xffa2(%rip), %rsi      # 0x13918
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3b2e
leaq 0xff91(%rip), %rsi      # 0x1391e
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3b35
leaq 0xff86(%rip), %rsi      # 0x1392a
movq %rbx, %rdi
callq 0x2080
xorl %ecx, %ecx
testl %eax, %eax
movl $0x7d, %eax
cmovnel %ecx, %eax
jmp 0x3b3a
movl $0x27, %eax
jmp 0x3b3a
movl $0x28, %eax
jmp 0x3b3a
movl $0x29, %eax
jmp 0x3b3a
movl $0x2a, %eax
jmp 0x3b3a
movl $0x2b, %eax
jmp 0x3b3a
movl $0x2c, %eax
jmp 0x3b3a
movl $0x2d, %eax
jmp 0x3b3a
movl $0x2e, %eax
jmp 0x3b3a
movl $0x31, %eax
jmp 0x3b3a
movl $0x2f, %eax
jmp 0x3b3a
movl $0x30, %eax
jmp 0x3b3a
movl $0x51, %eax
jmp 0x3b3a
movl $0x52, %eax
jmp 0x3b3a
movl $0x53, %eax
jmp 0x3b3a
movl $0x54, %eax
jmp 0x3b3a
movl $0x55, %eax
jmp 0x3b3a
movl $0x56, %eax
jmp 0x3b3a
movl $0x57, %eax
jmp 0x3b3a
movl $0x58, %eax
jmp 0x3b3a
movl $0x59, %eax
jmp 0x3b3a
movl $0x5a, %eax
jmp 0x3b3a
movl $0x5b, %eax
jmp 0x3b3a
movl $0x5c, %eax
jmp 0x3b3a
movl $0x5d, %eax
jmp 0x3b3a
movl $0x5e, %eax
jmp 0x3b3a
movl $0x5f, %eax
jmp 0x3b3a
movl $0x60, %eax
jmp 0x3b3a
movl $0x6b, %eax
jmp 0x3b3a
movl $0x6c, %eax
jmp 0x3b3a
movl $0x6d, %eax
jmp 0x3b3a
movl $0x6e, %eax
jmp 0x3b3a
movl $0x6f, %eax
jmp 0x3b3a
movl $0x70, %eax
jmp 0x3b3a
movl $0x26, %eax
jmp 0x3b3a
movl $0x71, %eax
jmp 0x3b3a
movl $0x72, %eax
jmp 0x3b3a
movl $0x73, %eax
jmp 0x3b3a
movl $0x74, %eax
jmp 0x3b3a
movl $0x75, %eax
jmp 0x3b3a
movl $0x76, %eax
jmp 0x3b3a
movl $0x77, %eax
jmp 0x3b3a
movl $0x78, %eax
jmp 0x3b3a
movl $0x79, %eax
jmp 0x3b3a
movl $0x7c, %eax
popq %rbx
retq