// File: /workspace/github_c_makefile_star2_O0/bhk[P]tooltree/lua/../opensource/lua-5.2.3/src/lparser.c
// Function: simpleexp
static void simpleexp (LexState *ls, expdesc *v) {
  /* simpleexp -> NUMBER | STRING | NIL | TRUE | FALSE | ... |
                  constructor | FUNCTION body | suffixedexp */
  switch (ls->t.token) {
    case TK_NUMBER: {
      init_exp(v, VKNUM, 0);
      v->u.nval = ls->t.seminfo.r;
      break;
    }
    case TK_STRING: {
      codestring(ls, v, ls->t.seminfo.ts);
      break;
    }
    case TK_NIL: {
      init_exp(v, VNIL, 0);
      break;
    }
    case TK_TRUE: {
      init_exp(v, VTRUE, 0);
      break;
    }
    case TK_FALSE: {
      init_exp(v, VFALSE, 0);
      break;
    }
    case TK_DOTS: {  /* vararg */
      FuncState *fs = ls->fs;
      check_condition(ls, fs->f->is_vararg,
                      "cannot use " LUA_QL("...") " outside a vararg function");
      init_exp(v, VVARARG, luaK_codeABC(fs, OP_VARARG, 0, 1, 0));
      break;
    }
    case '{': {  /* constructor */
      constructor(ls, v);
      return;
    }
    case TK_FUNCTION: {
      luaX_next(ls);
      body(ls, v, 0, ls->linenumber);
      return;
    }
    default: {
      suffixedexp(ls, v);
      return;
    }
  }
  luaX_next(ls);
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq 0x20(%rsp), %rax
movl 0x10(%rax), %eax
movl %eax, 0xc(%rsp)
subl $0x7b, %eax
je 0x1d0b2
jmp 0x1cf55
movl 0xc(%rsp), %eax
subl $0x107, %eax            # imm = 0x107
je 0x1d03a
jmp 0x1cf66
movl 0xc(%rsp), %eax
subl $0x109, %eax            # imm = 0x109
je 0x1d0c3
jmp 0x1cf77
movl 0xc(%rsp), %eax
subl $0x10e, %eax            # imm = 0x10E
je 0x1d00e
jmp 0x1cf88
movl 0xc(%rsp), %eax
subl $0x114, %eax            # imm = 0x114
je 0x1d024
jmp 0x1cf99
movl 0xc(%rsp), %eax
subl $0x118, %eax            # imm = 0x118
je 0x1d050
jmp 0x1cfaa
movl 0xc(%rsp), %eax
subl $0x11f, %eax            # imm = 0x11F
je 0x1cfc7
jmp 0x1cfb7
movl 0xc(%rsp), %eax
subl $0x121, %eax            # imm = 0x121
je 0x1cff1
jmp 0x1d0e8
movq 0x18(%rsp), %rdi
movl $0x5, %esi
xorl %edx, %edx
callq 0x1b5c0
movq 0x20(%rsp), %rax
movsd 0x18(%rax), %xmm0
movq 0x18(%rsp), %rax
movsd %xmm0, 0x8(%rax)
jmp 0x1d0f9
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rax
movq 0x18(%rax), %rdx
callq 0x1d2b0
jmp 0x1d0f9
movq 0x18(%rsp), %rdi
movl $0x1, %esi
xorl %edx, %edx
callq 0x1b5c0
jmp 0x1d0f9
movq 0x18(%rsp), %rdi
movl $0x2, %esi
xorl %edx, %edx
callq 0x1b5c0
jmp 0x1d0f9
movq 0x18(%rsp), %rdi
movl $0x3, %esi
xorl %edx, %edx
callq 0x1b5c0
jmp 0x1d0f9
movq 0x20(%rsp), %rax
movq 0x30(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq (%rax), %rax
cmpb $0x0, 0x79(%rax)
jne 0x1d07d
movq 0x20(%rsp), %rdi
leaq 0x1964b(%rip), %rsi     # 0x366c3
callq 0x32300
movq 0x18(%rsp), %rax
movq %rax, (%rsp)
movq 0x10(%rsp), %rdi
movl $0x26, %esi
xorl %r8d, %r8d
movl $0x1, %ecx
movl %r8d, %edx
callq 0x2e250
movq (%rsp), %rdi
movl %eax, %edx
movl $0xd, %esi
callq 0x1b5c0
jmp 0x1d0f9
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0x1d300
jmp 0x1d103
movq 0x20(%rsp), %rdi
callq 0x32630
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rax
movl 0x4(%rax), %ecx
xorl %edx, %edx
callq 0x1d4d0
jmp 0x1d103
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0x1d5c0
jmp 0x1d103
movq 0x20(%rsp), %rdi
callq 0x32630
addq $0x28, %rsp
retq
nopl (%rax,%rax)