// File: /workspace/github_cpp_makefile_star2_O1/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 0x10190(%rip), %rsi     # 0x13777
callq 0x2080
testl %eax, %eax
je 0x39f1
leaq 0x10185(%rip), %rsi     # 0x13780
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x39fb
leaq 0x10177(%rip), %rsi     # 0x13789
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a05
leaq 0x10168(%rip), %rsi     # 0x13791
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a0f
leaq 0x10157(%rip), %rsi     # 0x13797
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a19
leaq 0x10149(%rip), %rsi     # 0x137a0
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a23
leaq 0x1013b(%rip), %rsi     # 0x137a9
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a2d
leaq 0x1012f(%rip), %rsi     # 0x137b4
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a37
leaq 0x10122(%rip), %rsi     # 0x137be
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a41
leaq 0x10113(%rip), %rsi     # 0x137c6
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a4b
leaq 0x1010b(%rip), %rsi     # 0x137d5
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a55
leaq 0x10102(%rip), %rsi     # 0x137e3
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a5f
leaq 0x100f0(%rip), %rsi     # 0x137e8
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a69
leaq 0x100df(%rip), %rsi     # 0x137ee
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a73
leaq 0x10231(%rip), %rsi     # 0x13957
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a7d
leaq 0x100b6(%rip), %rsi     # 0x137f3
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a87
leaq 0x100a5(%rip), %rsi     # 0x137f9
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a91
leaq 0x10097(%rip), %rsi     # 0x13802
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3a9b
leaq 0x10088(%rip), %rsi     # 0x1380a
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3aa5
leaq 0x10074(%rip), %rsi     # 0x1380d
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3aaf
leaq 0xff86(%rip), %rsi      # 0x13736
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3ab9
leaq 0x1004d(%rip), %rsi     # 0x13814
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3ac3
leaq 0x1003b(%rip), %rsi     # 0x13819
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3acd
leaq 0x1002b(%rip), %rsi     # 0x13820
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3ad7
leaq 0x1001a(%rip), %rsi     # 0x13826
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3ae1
leaq 0x10007(%rip), %rsi     # 0x1382a
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3aeb
leaq 0x10d7b(%rip), %rsi     # 0x145b5
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3af2
leaq 0xffde(%rip), %rsi      # 0x1382f
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3af9
leaq 0xffcb(%rip), %rsi      # 0x13833
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3b00
leaq 0xffb9(%rip), %rsi      # 0x13838
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3b07
leaq 0xff21(%rip), %rsi      # 0x137b7
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3b0e
leaq 0xff94(%rip), %rsi      # 0x13841
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3b15
leaq 0xffaf(%rip), %rsi      # 0x13873
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3b1c
leaq 0xff6c(%rip), %rsi      # 0x13847
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3b23
leaq 0xff5c(%rip), %rsi      # 0x1384e
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3b2a
leaq 0xff4c(%rip), %rsi      # 0x13855
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3b31
leaq 0xff3c(%rip), %rsi      # 0x1385c
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3b38
leaq 0xff2c(%rip), %rsi      # 0x13863
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3b3f
leaq 0xff1d(%rip), %rsi      # 0x1386b
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3b46
leaq 0xff0c(%rip), %rsi      # 0x13871
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3b4d
leaq 0xfefe(%rip), %rsi      # 0x1387a
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3b54
leaq 0xfeec(%rip), %rsi      # 0x1387f
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3b5b
leaq 0xfede(%rip), %rsi      # 0x13888
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3b62
leaq 0xfecd(%rip), %rsi      # 0x1388e
movq %rbx, %rdi
callq 0x2080
testl %eax, %eax
je 0x3b69
leaq 0xfec2(%rip), %rsi      # 0x1389a
movq %rbx, %rdi
callq 0x2080
xorl %ecx, %ecx
testl %eax, %eax
movl $0x7d, %eax
cmovnel %ecx, %eax
jmp 0x3b6e
movl $0x27, %eax
jmp 0x3b6e
movl $0x28, %eax
jmp 0x3b6e
movl $0x29, %eax
jmp 0x3b6e
movl $0x2a, %eax
jmp 0x3b6e
movl $0x2b, %eax
jmp 0x3b6e
movl $0x2c, %eax
jmp 0x3b6e
movl $0x2d, %eax
jmp 0x3b6e
movl $0x2e, %eax
jmp 0x3b6e
movl $0x31, %eax
jmp 0x3b6e
movl $0x2f, %eax
jmp 0x3b6e
movl $0x30, %eax
jmp 0x3b6e
movl $0x51, %eax
jmp 0x3b6e
movl $0x52, %eax
jmp 0x3b6e
movl $0x53, %eax
jmp 0x3b6e
movl $0x54, %eax
jmp 0x3b6e
movl $0x55, %eax
jmp 0x3b6e
movl $0x56, %eax
jmp 0x3b6e
movl $0x57, %eax
jmp 0x3b6e
movl $0x58, %eax
jmp 0x3b6e
movl $0x59, %eax
jmp 0x3b6e
movl $0x5a, %eax
jmp 0x3b6e
movl $0x5b, %eax
jmp 0x3b6e
movl $0x5c, %eax
jmp 0x3b6e
movl $0x5d, %eax
jmp 0x3b6e
movl $0x5e, %eax
jmp 0x3b6e
movl $0x5f, %eax
jmp 0x3b6e
movl $0x60, %eax
jmp 0x3b6e
movl $0x6b, %eax
jmp 0x3b6e
movl $0x6c, %eax
jmp 0x3b6e
movl $0x6d, %eax
jmp 0x3b6e
movl $0x6e, %eax
jmp 0x3b6e
movl $0x6f, %eax
jmp 0x3b6e
movl $0x70, %eax
jmp 0x3b6e
movl $0x26, %eax
jmp 0x3b6e
movl $0x71, %eax
jmp 0x3b6e
movl $0x72, %eax
jmp 0x3b6e
movl $0x73, %eax
jmp 0x3b6e
movl $0x74, %eax
jmp 0x3b6e
movl $0x75, %eax
jmp 0x3b6e
movl $0x76, %eax
jmp 0x3b6e
movl $0x77, %eax
jmp 0x3b6e
movl $0x78, %eax
jmp 0x3b6e
movl $0x79, %eax
jmp 0x3b6e
movl $0x7c, %eax
popq %rbx
retq