// File: Merulo[P]CompilerJFTT/src/External/Parser.cpp
// Function: yysyntax_error(long*, char**, yypcontext_t const*)
static int
yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
                const yypcontext_t *yyctx)
{
  enum { YYARGS_MAX = 5 };
  /* Internationalized format string. */
  const char *yyformat = YY_NULLPTR;
  /* Arguments of yyformat: reported tokens (one for the "unexpected",
     one per "expected"). */
  yysymbol_kind_t yyarg[YYARGS_MAX];
  /* Cumulated lengths of YYARG.  */
  YYPTRDIFF_T yysize = 0;

  /* Actual size of YYARG. */
  int yycount = yy_syntax_error_arguments (yyctx, yyarg, YYARGS_MAX);
  if (yycount == YYENOMEM)
    return YYENOMEM;

  switch (yycount)
    {
#define YYCASE_(N, S)                       \
      case N:                               \
        yyformat = S;                       \
        break
    default: /* Avoid compiler warnings. */
      YYCASE_(0, YY_("syntax error"));
      YYCASE_(1, YY_("syntax error, unexpected %s"));
      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
#undef YYCASE_
    }

  /* Compute error message size.  Don't count the "%s"s, but reserve
     room for the terminator.  */
  yysize = yystrlen (yyformat) - 2 * yycount + 1;
  {
    int yyi;
    for (yyi = 0; yyi < yycount; ++yyi)
      {
        YYPTRDIFF_T yysize1
          = yysize + yytnamerr (YY_NULLPTR, yytname[yyarg[yyi]]);
        if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
          yysize = yysize1;
        else
          return YYENOMEM;
      }
  }

  if (*yymsg_alloc < yysize)
    {
      *yymsg_alloc = 2 * yysize;
      if (! (yysize <= *yymsg_alloc
             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
      return -1;
    }

  /* Avoid sprintf, as that infringes on the user's name space.
     Don't have undefined behavior even if the translation
     produced a string with the wrong number of "%s"s.  */
  {
    char *yyp = *yymsg;
    int yyi = 0;
    while ((*yyp = *yyformat) != '\0')
      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
        {
          yyp += yytnamerr (yyp, yytname[yyarg[yyi++]]);
          yyformat += 2;
        }
      else
        {
          ++yyp;
          ++yyformat;
        }
  }
  return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq $0x0, -0x28(%rbp)
movq $0x0, -0x48(%rbp)
movq -0x20(%rbp), %rdi
leaq -0x40(%rbp), %rsi
movl $0x5, %edx
callq 0x48bf0
movl %eax, -0x4c(%rbp)
cmpl $-0x2, -0x4c(%rbp)
jne 0x4821e
movl $0xfffffffe, -0x4(%rbp) # imm = 0xFFFFFFFE
jmp 0x48427
movl -0x4c(%rbp), %eax
movq %rax, -0x70(%rbp)
subq $0x5, %rax
ja 0x4823f
movq -0x70(%rbp), %rax
leaq 0x95be(%rip), %rcx      # 0x517f4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
jmp 0x48241
leaq 0xa2c2(%rip), %rax      # 0x5250a
movq %rax, -0x28(%rbp)
jmp 0x4828d
leaq 0xa64f(%rip), %rax      # 0x528a4
movq %rax, -0x28(%rbp)
jmp 0x4828d
leaq 0xa65e(%rip), %rax      # 0x528c0
movq %rax, -0x28(%rbp)
jmp 0x4828d
leaq 0xa67b(%rip), %rax      # 0x528ea
movq %rax, -0x28(%rbp)
jmp 0x4828d
leaq 0xa69e(%rip), %rax      # 0x5291a
movq %rax, -0x28(%rbp)
jmp 0x4828d
leaq 0xa6c7(%rip), %rax      # 0x52950
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
callq 0x4190
movl -0x4c(%rbp), %ecx
shll %ecx
movslq %ecx, %rcx
subq %rcx, %rax
addq $0x1, %rax
movq %rax, -0x48(%rbp)
movl $0x0, -0x50(%rbp)
movl -0x50(%rbp), %eax
cmpl -0x4c(%rbp), %eax
jge 0x48328
movq -0x48(%rbp), %rax
movq %rax, -0x78(%rbp)
movslq -0x50(%rbp), %rax
movslq -0x40(%rbp,%rax,4), %rcx
leaq 0x20780(%rip), %rax     # 0x68a50
movq (%rax,%rcx,8), %rsi
xorl %eax, %eax
movl %eax, %edi
callq 0x48ca0
movq %rax, %rcx
movq -0x78(%rbp), %rax
addq %rcx, %rax
movq %rax, -0x58(%rbp)
movq -0x48(%rbp), %rax
cmpq -0x58(%rbp), %rax
jg 0x4830f
movabsq $0x7fffffffffffffff, %rax # imm = 0x7FFFFFFFFFFFFFFF
cmpq %rax, -0x58(%rbp)
jg 0x4830f
movq -0x58(%rbp), %rax
movq %rax, -0x48(%rbp)
jmp 0x4831b
movl $0xfffffffe, -0x4(%rbp) # imm = 0xFFFFFFFE
jmp 0x48427
jmp 0x4831d
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x482b0
movq -0x10(%rbp), %rax
movq (%rax), %rax
cmpq -0x48(%rbp), %rax
jge 0x48380
movq -0x48(%rbp), %rcx
shlq %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x48(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq (%rcx), %rax
jg 0x48363
movq -0x10(%rbp), %rax
movabsq $0x7fffffffffffffff, %rcx # imm = 0x7FFFFFFFFFFFFFFF
cmpq %rcx, (%rax)
jle 0x48374
movq -0x10(%rbp), %rax
movabsq $0x7fffffffffffffff, %rcx # imm = 0x7FFFFFFFFFFFFFFF
movq %rcx, (%rax)
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x48427
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x60(%rbp)
movl $0x0, -0x64(%rbp)
movq -0x28(%rbp), %rax
movb (%rax), %al
movq -0x60(%rbp), %rcx
movb %al, (%rcx)
movsbl %al, %eax
cmpl $0x0, %eax
je 0x48420
movq -0x60(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x25, %eax
jne 0x48403
movq -0x28(%rbp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x73, %eax
jne 0x48403
movl -0x64(%rbp), %eax
cmpl -0x4c(%rbp), %eax
jge 0x48403
movq -0x60(%rbp), %rdi
movl -0x64(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x64(%rbp)
cltq
movslq -0x40(%rbp,%rax,4), %rcx
leaq 0x2066c(%rip), %rax     # 0x68a50
movq (%rax,%rcx,8), %rsi
callq 0x48ca0
addq -0x60(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x28(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x28(%rbp)
jmp 0x4841b
movq -0x60(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x60(%rbp)
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0x48392
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x80, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)