// File: /workspace/github_cpp_makefile_star2_O1/AgathokakologicalBit[P]wit/src/parsing/token.cpp
// Function: akbit::system::parsing::get_sub_type_name[abi:cxx11](akbit::system::parsing::TokenSubType)
std::string get_sub_type_name(TokenSubType type)
  {
    using tst = TokenSubType;

    switch (type)
    {
      case tst::t_inline_commentary: return "comment/inline";
      case tst::t_multiline_commentary: return "comment/multiline";

      case tst::t_identifier: return "identifier";
      case tst::t_integer: return "number/integer";
      case tst::t_decimal: return "number/decimal";
      case tst::t_string: return "string";
      case tst::t_character: return "character";

      case tst::t_at_sign: return "op/at_sign";

      case tst::t_brace_round_left: return "op/brace_round_left";
      case tst::t_brace_round_right: return "op/brace_round_right";
      case tst::t_brace_square_left: return "op/brace_square_left";
      case tst::t_brace_square_right: return "op/brace_square_right";
      case tst::t_brace_triangular_left: return "op/brace_triangular_left";
      case tst::t_brace_triangular_right: return "op/brace_triangular_right";
      case tst::t_brace_curly_left: return "op/brace_curly_left";
      case tst::t_brace_curly_right: return "op/brace_curly_right";

      case tst::t_plus: return "op/plus";
      case tst::t_dash: return "op/dash";
      case tst::t_tilde: return "op/tilde";
      case tst::t_dot: return "op/dot";
      case tst::t_comma: return "op/comma";

      case tst::t_star: return "op/star";
      case tst::t_slash: return "op/slash";
      case tst::t_backslash: return "op/backslash";
      case tst::t_percent: return "op/percent";

      case tst::t_vertical_bar: return "op/vertical_bar";
      case tst::t_ampersand: return "op/ampersand";
      case tst::t_caret: return "op/caret";

      case tst::t_equal: return "op/equal_sign";
      case tst::t_exclamation_mark: return "op/exclamation_mark";
      case tst::t_question_mark: return "op/question_mark";

      case tst::t_colon: return "op/colon";
      case tst::t_semicolon: return "op/semicolon";

      case tst::t_eof: return "end_of_file";

      case tst::t_unknown: return "#???";
    }

    return "#fail";
  }

// Assembly:
pushq %rbx
movq %rdi, %rbx
leaq 0x10(%rdi), %rax
movq %rax, (%rdi)
cmpl $0x22, %esi
ja 0x7ae8
movl %esi, %eax
leaq 0xdaee(%rip), %rcx      # 0x1534c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0xdb98(%rip), %rsi      # 0x15406
leaq 0xdb95(%rip), %rdx      # 0x1540a
jmp 0x7af6
leaq 0xdce6(%rip), %rsi      # 0x15567
leaq 0xdceb(%rip), %rdx      # 0x15573
jmp 0x7af6
leaq 0xdd32(%rip), %rsi      # 0x155c6
leaq 0xdd36(%rip), %rdx      # 0x155d1
jmp 0x7af6
leaq 0xdc49(%rip), %rsi      # 0x154f0
leaq 0xdc56(%rip), %rdx      # 0x15504
jmp 0x7af6
leaq 0xdc08(%rip), %rsi      # 0x154c2
leaq 0xdc1a(%rip), %rdx      # 0x154db
jmp 0x7af6
leaq 0xdcec(%rip), %rsi      # 0x155b9
leaq 0xdcf1(%rip), %rdx      # 0x155c5
jmp 0x7af6
leaq 0xdb9e(%rip), %rsi      # 0x1547e
leaq 0xdbab(%rip), %rdx      # 0x15492
jmp 0x7af6
leaq 0xdb39(%rip), %rsi      # 0x1542c
leaq 0xdb40(%rip), %rdx      # 0x1543a
jmp 0x7af6
leaq 0xdb8d(%rip), %rsi      # 0x15493
leaq 0xdb9b(%rip), %rdx      # 0x154a8
jmp 0x7af6
leaq 0xdb3c(%rip), %rsi      # 0x15455
leaq 0xdb48(%rip), %rdx      # 0x15468
jmp 0x7af6
leaq 0xdbf9(%rip), %rsi      # 0x15525
leaq 0xdbfa(%rip), %rdx      # 0x1552d
jmp 0x7af6
leaq 0xdbdf(%rip), %rsi      # 0x1551e
leaq 0xdbde(%rip), %rdx      # 0x15524
jmp 0x7af6
leaq 0xdac8(%rip), %rsi      # 0x1541a
leaq 0xdad2(%rip), %rdx      # 0x1542b
jmp 0x7af6
leaq 0xdb77(%rip), %rsi      # 0x154dc
leaq 0xdb83(%rip), %rdx      # 0x154ef
jmp 0x7af6
leaq 0xda6b(%rip), %rsi      # 0x153e3
leaq 0xda6e(%rip), %rdx      # 0x153ed
jmp 0x7af6
leaq 0xd7f0(%rip), %rsi      # 0x1517b
leaq 0xd7f2(%rip), %rdx      # 0x15184
jmp 0x7af6
leaq 0xda6d(%rip), %rsi      # 0x1540b
leaq 0xda74(%rip), %rdx      # 0x15419
jmp 0x7af6
leaq 0xdbee(%rip), %rsi      # 0x1559f
leaq 0xdbf7(%rip), %rdx      # 0x155af
jmp 0x7af6
leaq 0xdb41(%rip), %rsi      # 0x15505
leaq 0xdb41(%rip), %rdx      # 0x1550c
jmp 0x7af6
leaq 0xdb57(%rip), %rsi      # 0x1552e
leaq 0xdb57(%rip), %rdx      # 0x15535
jmp 0x7af6
leaq 0xda51(%rip), %rsi      # 0x1543b
leaq 0xda58(%rip), %rdx      # 0x15449
jmp 0x7af6
leaq 0xdb39(%rip), %rsi      # 0x15536
leaq 0xdb3a(%rip), %rdx      # 0x1553e
jmp 0x7af6
leaq 0xda99(%rip), %rsi      # 0x154a9
leaq 0xdaaa(%rip), %rdx      # 0x154c1
jmp 0x7af6
leaq 0xd751(%rip), %rsi      # 0x15174
leaq 0xd750(%rip), %rdx      # 0x1517a
jmp 0x7af6
leaq 0xdad7(%rip), %rsi      # 0x1550d
leaq 0xdad7(%rip), %rdx      # 0x15514
jmp 0x7af6
leaq 0xda20(%rip), %rsi      # 0x15469
leaq 0xda2d(%rip), %rdx      # 0x1547d
jmp 0x7af6
leaq 0xd9ee(%rip), %rsi      # 0x1544a
leaq 0xd9f1(%rip), %rdx      # 0x15454
jmp 0x7af6
leaq 0xdb1c(%rip), %rsi      # 0x1558b
leaq 0xdb28(%rip), %rdx      # 0x1559e
jmp 0x7af6
leaq 0xdb31(%rip), %rsi      # 0x155b0
leaq 0xdb32(%rip), %rdx      # 0x155b8
jmp 0x7af6
leaq 0xdab0(%rip), %rsi      # 0x1553f
leaq 0xdab5(%rip), %rdx      # 0x1554b
jmp 0x7af6
leaq 0xda76(%rip), %rsi      # 0x15515
leaq 0xda77(%rip), %rdx      # 0x1551d
jmp 0x7af6
leaq 0xda9d(%rip), %rsi      # 0x1554c
leaq 0xdaa0(%rip), %rdx      # 0x15556
jmp 0x7af6
leaq 0xdab5(%rip), %rsi      # 0x15574
leaq 0xdab6(%rip), %rdx      # 0x1557c
jmp 0x7af6
leaq 0xdaae(%rip), %rsi      # 0x1557d
leaq 0xdab4(%rip), %rdx      # 0x1558a
jmp 0x7af6
leaq 0xda78(%rip), %rsi      # 0x15557
leaq 0xda80(%rip), %rdx      # 0x15566
jmp 0x7af6
leaq 0xdae3(%rip), %rsi      # 0x155d2
leaq 0xdae1(%rip), %rdx      # 0x155d7
movq %rbx, %rdi
callq 0x6c06
movq %rbx, %rax
popq %rbx
retq