// File: /workspace/github_cpp_makefile_star2_O1/hyrise[P]sql-parser/src/util/sqlhelper.cpp
// Function: hsql::operator<<(std::ostream&, hsql::OperatorType const&)
std::ostream& operator<<(std::ostream& os, const OperatorType& op) {
  static const std::map<const OperatorType, const std::string> operatorToToken = {
      {kOpNone, "None"},     {kOpBetween, "BETWEEN"},
      {kOpCase, "CASE"},     {kOpCaseListElement, "CASE LIST ELEMENT"},
      {kOpPlus, "+"},        {kOpMinus, "-"},
      {kOpAsterisk, "*"},    {kOpSlash, "/"},
      {kOpPercentage, "%"},  {kOpCaret, "^"},
      {kOpEquals, "="},      {kOpNotEquals, "!="},
      {kOpLess, "<"},        {kOpLessEq, "<="},
      {kOpGreater, ">"},     {kOpGreaterEq, ">="},
      {kOpLike, "LIKE"},     {kOpNotLike, "NOT LIKE"},
      {kOpILike, "ILIKE"},   {kOpAnd, "AND"},
      {kOpOr, "OR"},         {kOpIn, "IN"},
      {kOpConcat, "CONCAT"}, {kOpNot, "NOT"},
      {kOpUnaryMinus, "-"},  {kOpIsNull, "IS NULL"},
      {kOpExists, "EXISTS"}};

  const auto found = operatorToToken.find(op);
  if (found == operatorToToken.cend()) {
    return os << static_cast<uint64_t>(op);
  } else {
    return os << (*found).second;
  }
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x4a8, %rsp            # imm = 0x4A8
movq %rsi, %r12
movq %rdi, %r15
movb 0x19f25(%rip), %al      # 0x3ba30
testb %al, %al
je 0x21b97
movq 0x19ef6(%rip), %rdx     # 0x3ba10
leaq 0x19ee7(%rip), %rax     # 0x3ba08
movq %rax, %rcx
testq %rdx, %rdx
je 0x21b4b
movl (%r12), %esi
leaq 0x19ed4(%rip), %rcx     # 0x3ba08
xorl %edi, %edi
cmpl %esi, 0x20(%rdx)
setl %dil
cmovgeq %rdx, %rcx
movq 0x10(%rdx,%rdi,8), %rdx
testq %rdx, %rdx
jne 0x21b34
movq %rax, %rdx
cmpq %rax, %rcx
je 0x21b65
movl (%r12), %edx
cmpl 0x20(%rcx), %edx
leaq 0x19ea7(%rip), %rdx     # 0x3ba08
cmovgeq %rcx, %rdx
cmpq %rax, %rdx
je 0x21b7c
movq 0x28(%rdx), %rsi
movq 0x30(%rdx), %rdx
movq %r15, %rdi
callq 0x12a70
jmp 0x21b88
movl (%r12), %esi
movq %r15, %rdi
callq 0x125c0
addq $0x4a8, %rsp            # imm = 0x4A8
popq %rbx
popq %r12
popq %r14
popq %r15
retq
leaq 0x19e92(%rip), %rdi     # 0x3ba30
callq 0x131b0
testl %eax, %eax
je 0x21b13
leaq 0x6c(%rsp), %rsi
movl $0x0, (%rsi)
leaq 0x11b50(%rip), %rdx     # 0x3370d
leaq 0x70(%rsp), %rbx
movq %rbx, %rdi
callq 0x12790
leaq 0x98(%rsp), %r14
leaq 0x68(%rsp), %rsi
movl $0x1, (%rsi)
leaq 0x557e(%rip), %rdx      # 0x27162
movq %r14, %rdi
callq 0x120d0
leaq 0xc0(%rsp), %r14
leaq 0x64(%rsp), %rsi
movl $0x2, (%rsi)
leaq 0x5721(%rip), %rdx      # 0x27327
movq %r14, %rdi
callq 0x12790
leaq 0xe8(%rsp), %r14
leaq 0x60(%rsp), %rsi
movl $0x3, (%rsi)
leaq 0x11aea(%rip), %rdx     # 0x33712
movq %r14, %rdi
callq 0x121c0
leaq 0x110(%rsp), %r14
leaq 0x5c(%rsp), %rsi
movl $0x4, (%rsi)
leaq 0x11ada(%rip), %rdx     # 0x33724
movq %r14, %rdi
callq 0x12b20
leaq 0x138(%rsp), %r14
leaq 0x58(%rsp), %rsi
movl $0x5, (%rsi)
leaq 0x11aba(%rip), %rdx     # 0x33726
movq %r14, %rdi
callq 0x12b20
leaq 0x160(%rsp), %r14
leaq 0x54(%rsp), %rsi
movl $0x6, (%rsi)
leaq 0x1189b(%rip), %rdx     # 0x33529
movq %r14, %rdi
callq 0x12b20
leaq 0x188(%rsp), %r14
leaq 0x50(%rsp), %rsi
movl $0x7, (%rsi)
leaq 0x11a78(%rip), %rdx     # 0x33728
movq %r14, %rdi
callq 0x12b20
leaq 0x1b0(%rsp), %r14
leaq 0x4c(%rsp), %rsi
movl $0x8, (%rsi)
leaq 0x11a58(%rip), %rdx     # 0x3372a
movq %r14, %rdi
callq 0x12b20
leaq 0x1d8(%rsp), %r14
leaq 0x48(%rsp), %rsi
movl $0x9, (%rsi)
leaq 0x11a38(%rip), %rdx     # 0x3372c
movq %r14, %rdi
callq 0x12b20
leaq 0x200(%rsp), %r14
leaq 0x44(%rsp), %rsi
movl $0xa, (%rsi)
leaq 0x11a19(%rip), %rdx     # 0x3372f
movq %r14, %rdi
callq 0x12b20
leaq 0x228(%rsp), %r14
leaq 0x40(%rsp), %rsi
movl $0xb, (%rsi)
leaq 0x119f6(%rip), %rdx     # 0x3372e
movq %r14, %rdi
callq 0x12960
leaq 0x250(%rsp), %r14
leaq 0x3c(%rsp), %rsi
movl $0xc, (%rsi)
leaq 0x119d7(%rip), %rdx     # 0x33731
movq %r14, %rdi
callq 0x12b20
leaq 0x278(%rsp), %r14
leaq 0x38(%rsp), %rsi
movl $0xd, (%rsi)
leaq 0x119b7(%rip), %rdx     # 0x33733
movq %r14, %rdi
callq 0x12960
leaq 0x2a0(%rsp), %r14
leaq 0x34(%rsp), %rsi
movl $0xe, (%rsi)
leaq 0x11752(%rip), %rdx     # 0x334f0
movq %r14, %rdi
callq 0x12b20
leaq 0x2c8(%rsp), %r14
leaq 0x30(%rsp), %rsi
movl $0xf, (%rsi)
leaq 0x11976(%rip), %rdx     # 0x33736
movq %r14, %rdi
callq 0x12960
leaq 0x2f0(%rsp), %r14
leaq 0x2c(%rsp), %rsi
movl $0x10, (%rsi)
leaq 0x1195b(%rip), %rdx     # 0x3373d
movq %r14, %rdi
callq 0x12790
leaq 0x318(%rsp), %r14
leaq 0x28(%rsp), %rsi
movl $0x11, (%rsi)
leaq 0x11935(%rip), %rdx     # 0x33739
movq %r14, %rdi
callq 0x13100
leaq 0x340(%rsp), %r14
leaq 0x24(%rsp), %rsi
movl $0x12, (%rsi)
leaq 0x55b6(%rip), %rdx      # 0x273dc
movq %r14, %rdi
callq 0x130e0
leaq 0x368(%rsp), %r14
leaq 0x20(%rsp), %rsi
movl $0x13, (%rsi)
leaq 0x555f(%rip), %rdx      # 0x273a7
movq %r14, %rdi
callq 0x12390
leaq 0x390(%rsp), %r14
leaq 0x1c(%rsp), %rsi
movl $0x14, (%rsi)
leaq 0x554a(%rip), %rdx      # 0x273b4
movq %r14, %rdi
callq 0x12960
leaq 0x3b8(%rsp), %r14
leaq 0x18(%rsp), %rsi
movl $0x15, (%rsi)
leaq 0x530b(%rip), %rdx      # 0x27197
movq %r14, %rdi
callq 0x12960
leaq 0x3e0(%rsp), %r14
leaq 0x14(%rsp), %rsi
movl $0x16, (%rsi)
leaq 0x5527(%rip), %rdx      # 0x273d5
movq %r14, %rdi
callq 0x12560
leaq 0x408(%rsp), %r14
leaq 0x10(%rsp), %rsi
movl $0x17, (%rsi)
leaq 0x54e7(%rip), %rdx      # 0x273b7
movq %r14, %rdi
callq 0x12390
leaq 0x430(%rsp), %r14
leaq 0xc(%rsp), %rsi
movl $0x18, (%rsi)
leaq 0x11834(%rip), %rdx     # 0x33726
movq %r14, %rdi
callq 0x12b20
leaq 0x458(%rsp), %r14
leaq 0x8(%rsp), %rsi
movl $0x19, (%rsi)
leaq 0x1182e(%rip), %rdx     # 0x33742
movq %r14, %rdi
callq 0x120d0
leaq 0x480(%rsp), %r14
leaq 0x4(%rsp), %rsi
movl $0x1a, (%rsi)
leaq 0x5305(%rip), %rdx      # 0x2723b
movq %r14, %rdi
callq 0x12560
leaq 0x19abb(%rip), %rdi     # 0x3ba00
leaq 0x70(%rsp), %rsi
leaq 0x3(%rsp), %rcx
leaq 0x2(%rsp), %r8
movl $0x1b, %edx
callq 0x12850
movq $-0x438, %rbx           # imm = 0xFBC8
leaq 0x498(%rsp), %r14
movq -0x10(%r14), %rdi
cmpq %rdi, %r14
je 0x21f81
movq (%r14), %rsi
incq %rsi
callq 0x12990
addq $-0x28, %r14
addq $0x28, %rbx
jne 0x21f6d
movq 0x18f46(%rip), %rdi     # 0x3aed8
leaq 0x19a67(%rip), %rsi     # 0x3ba00
leaq 0x19a08(%rip), %rdx     # 0x3b9a8
callq 0x127a0
leaq 0x19a84(%rip), %rdi     # 0x3ba30
callq 0x12590
jmp 0x21b13
movq %rax, %r15
leaq 0x4a8(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1360c
movb $0x1, %al
jmp 0x22006
jmp 0x22001
jmp 0x22001
jmp 0x22001
jmp 0x22001
jmp 0x22001
jmp 0x22001
jmp 0x22001
jmp 0x22001
jmp 0x22001
jmp 0x22001
jmp 0x22001
jmp 0x22001
jmp 0x22001
jmp 0x22001
jmp 0x22001
jmp 0x22001
jmp 0x22001
jmp 0x22001
jmp 0x22001
jmp 0x22001
jmp 0x22001
jmp 0x22001
jmp 0x22001
jmp 0x22001
jmp 0x22001
movq %rax, %r15
xorl %eax, %eax
cmpq %r14, %rbx
sete %cl
testb %al, %al
jne 0x22041
testb %cl, %cl
jne 0x22041
addq $-0x10, %r14
leaq 0x70(%rsp), %rbx
movq -0x10(%r14), %rdi
cmpq %rdi, %r14
je 0x22031
movq (%r14), %rsi
incq %rsi
callq 0x12990
leaq -0x28(%r14), %rax
addq $-0x18, %r14
cmpq %rbx, %r14
movq %rax, %r14
jne 0x2201d
leaq 0x199e8(%rip), %rdi     # 0x3ba30
callq 0x12570
movq %r15, %rdi
callq 0x13110
movq %rax, %r15
xorl %eax, %eax
movq %rbx, %r14
jmp 0x22006