// File: /workspace/github_c_makefile_star2_O0/orangeduck[P]mpc/tests/core.c
// Function: test_ident
void test_ident(void) {

  /* ^[a-zA-Z_][a-zA-Z0-9_]*$ */

  mpc_parser_t* Ident = mpc_whole(
    mpc_and(2, mpcf_strfold,
      mpc_or(2, mpc_alpha(), mpc_underscore()),
      mpc_many1(mpcf_strfold, mpc_or(3, mpc_alpha(), mpc_underscore(), mpc_digit())),
      free),
    free
  );

  PT_ASSERT(mpc_test_pass(Ident, "test", "test", streq, free, strprint));
  PT_ASSERT(mpc_test_fail(Ident, "  blah", "", streq, free, strprint));
  PT_ASSERT(mpc_test_pass(Ident, "anoth21er", "anoth21er", streq, free, strprint));
  PT_ASSERT(mpc_test_pass(Ident, "du__de", "du__de", streq, free, strprint));
  PT_ASSERT(mpc_test_fail(Ident, "some spaces", "", streq, free, strprint));
  PT_ASSERT(mpc_test_fail(Ident, "", "", streq, free, strprint));
  PT_ASSERT(mpc_test_fail(Ident, "18nums", "", streq, free, strprint));

  mpc_delete(Ident);

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
callq 0xb0a0
movq %rax, -0x28(%rbp)
callq 0xb0d0
movq -0x28(%rbp), %rsi
movq %rax, %rdx
movl $0x2, %edi
movb $0x0, %al
callq 0xa7b0
movq %rax, -0x10(%rbp)
callq 0xb0a0
movq %rax, -0x20(%rbp)
callq 0xb0d0
movq %rax, -0x18(%rbp)
callq 0xaf20
movq -0x20(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq %rax, %rcx
movl $0x3, %edi
movb $0x0, %al
callq 0xa7b0
movq %rax, %rsi
leaq 0x828b(%rip), %rdi      # 0xad60
callq 0xa6a0
movq -0x10(%rbp), %rdx
movq %rax, %rcx
movl $0x2, %edi
leaq 0x8273(%rip), %rsi      # 0xad60
movq 0x194d4(%rip), %r8      # 0x1bfc8
movb $0x0, %al
callq 0xa910
movq %rax, %rdi
movq 0x194c3(%rip), %rsi     # 0x1bfc8
callq 0xb810
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x114f8(%rip), %rdx     # 0x14011
leaq 0x1e0(%rip), %rcx       # 0x2d00
movq 0x194a1(%rip), %r8      # 0x1bfc8
leaq 0x202(%rip), %r9        # 0x2d30
movq %rdx, %rsi
callq 0xd780
movl %eax, %edi
leaq 0x115c9(%rip), %rsi     # 0x14108
leaq 0x115fe(%rip), %rdx     # 0x14144
movl $0x1d, %ecx
callq 0x5780
movq -0x8(%rbp), %rdi
leaq 0x115f6(%rip), %rsi     # 0x14151
leaq 0x14a88(%rip), %rdx     # 0x175ea
leaq 0x197(%rip), %rcx       # 0x2d00
movq 0x19458(%rip), %r8      # 0x1bfc8
leaq 0x1b9(%rip), %r9        # 0x2d30
callq 0xd6f0
movl %eax, %edi
leaq 0x115d3(%rip), %rsi     # 0x14158
leaq 0x115b8(%rip), %rdx     # 0x14144
movl $0x1e, %ecx
callq 0x5780
movq -0x8(%rbp), %rdi
leaq 0x115f1(%rip), %rdx     # 0x14192
leaq 0x158(%rip), %rcx       # 0x2d00
movq 0x19419(%rip), %r8      # 0x1bfc8
leaq 0x17a(%rip), %r9        # 0x2d30
movq %rdx, %rsi
callq 0xd780
movl %eax, %edi
leaq 0x115d5(%rip), %rsi     # 0x1419c
leaq 0x11576(%rip), %rdx     # 0x14144
movl $0x1f, %ecx
callq 0x5780
movq -0x8(%rbp), %rdi
leaq 0x115ff(%rip), %rdx     # 0x141e2
leaq 0x116(%rip), %rcx       # 0x2d00
movq 0x193d7(%rip), %r8      # 0x1bfc8
leaq 0x138(%rip), %r9        # 0x2d30
movq %rdx, %rsi
callq 0xd780
movl %eax, %edi
leaq 0x115e0(%rip), %rsi     # 0x141e9
leaq 0x11534(%rip), %rdx     # 0x14144
movl $0x20, %ecx
callq 0x5780
movq -0x8(%rbp), %rdi
leaq 0x11604(%rip), %rsi     # 0x14229
leaq 0x149be(%rip), %rdx     # 0x175ea
leaq 0xcd(%rip), %rcx        # 0x2d00
movq 0x1938e(%rip), %r8      # 0x1bfc8
leaq 0xef(%rip), %r9         # 0x2d30
callq 0xd6f0
movl %eax, %edi
leaq 0x115e6(%rip), %rsi     # 0x14235
leaq 0x114ee(%rip), %rdx     # 0x14144
movl $0x21, %ecx
callq 0x5780
movq -0x8(%rbp), %rdi
leaq 0x1497f(%rip), %rdx     # 0x175ea
leaq 0x8e(%rip), %rcx        # 0x2d00
movq 0x1934f(%rip), %r8      # 0x1bfc8
leaq 0xb0(%rip), %r9         # 0x2d30
movq %rdx, %rsi
callq 0xd6f0
movl %eax, %edi
leaq 0x115e3(%rip), %rsi     # 0x14274
leaq 0x114ac(%rip), %rdx     # 0x14144
movl $0x22, %ecx
callq 0x5780
movq -0x8(%rbp), %rdi
leaq 0x115fb(%rip), %rsi     # 0x142a8
leaq 0x14936(%rip), %rdx     # 0x175ea
leaq 0x45(%rip), %rcx        # 0x2d00
movq 0x19306(%rip), %r8      # 0x1bfc8
leaq 0x67(%rip), %r9         # 0x2d30
callq 0xd6f0
movl %eax, %edi
leaq 0x115d8(%rip), %rsi     # 0x142af
leaq 0x11466(%rip), %rdx     # 0x14144
movl $0x23, %ecx
callq 0x5780
movq -0x8(%rbp), %rdi
callq 0x9160
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)