// File: /workspace/github_c_makefile_star2_O1/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
callq 0x87fa
movq %rax, %rbx
callq 0x8817
movl $0x2, %edi
movq %rbx, %rsi
movq %rax, %rdx
xorl %eax, %eax
callq 0x807e
movq %rax, %r14
callq 0x87fa
movq %rax, %rbx
callq 0x8817
movq %rax, %r15
callq 0x865b
movl $0x3, %edi
movq %rbx, %rsi
movq %r15, %rdx
movq %rax, %rcx
xorl %eax, %eax
callq 0x807e
leaq 0x6ae7(%rip), %r15      # 0x84f1
movq %r15, %rdi
movq %rax, %rsi
callq 0x7fc4
movq 0x165ac(%rip), %rbx     # 0x17fc8
movl $0x2, %edi
movq %r15, %rsi
movq %r14, %rdx
movq %rax, %rcx
movq %rbx, %r8
xorl %eax, %eax
callq 0x818f
movq %rax, %rdi
movq %rbx, %rsi
callq 0x8fd2
movq %rax, %r14
leaq 0xd5c8(%rip), %rdx      # 0xf011
leaq 0x177(%rip), %r12       # 0x1bc7
leaq 0x181(%rip), %r15       # 0x1bd8
movq %rax, %rdi
movq %rdx, %rsi
movq %r12, %rcx
movq %rbx, %r8
movq %r15, %r9
callq 0xaa3c
leaq 0xd696(%rip), %rsi      # 0xf108
leaq 0xd6cb(%rip), %r13      # 0xf144
movl %eax, %edi
movq %r13, %rdx
movl $0x1d, %ecx
callq 0x4050
leaq 0xd6c2(%rip), %rsi      # 0xf151
leaq 0x109dc(%rip), %rbp     # 0x12472
movq %r14, %rdi
movq %rbp, %rdx
movq %r12, %rcx
movq %rbx, %r8
movq %r15, %r9
callq 0xa9c0
leaq 0xd6a7(%rip), %rsi      # 0xf158
movl %eax, %edi
movq %r13, %rdx
movl $0x1e, %ecx
callq 0x4050
leaq 0xd6cb(%rip), %rdx      # 0xf192
movq %r14, %rdi
movq %rdx, %rsi
movq %r12, %rcx
movq %rbx, %r8
movq %r15, %r9
callq 0xaa3c
leaq 0xd6ba(%rip), %rsi      # 0xf19c
movl %eax, %edi
movq %r13, %rdx
movl $0x1f, %ecx
callq 0x4050
leaq 0xd6ea(%rip), %rdx      # 0xf1e2
movq %r14, %rdi
movq %rdx, %rsi
movq %r12, %rcx
movq %rbx, %r8
movq %r15, %r9
callq 0xaa3c
leaq 0xd6d6(%rip), %rsi      # 0xf1e9
movl %eax, %edi
movq %r13, %rdx
movl $0x20, %ecx
callq 0x4050
leaq 0xd700(%rip), %rsi      # 0xf229
movq %r14, %rdi
movq %rbp, %rdx
movq %r12, %rcx
movq %rbx, %r8
movq %r15, %r9
callq 0xa9c0
leaq 0xd6f1(%rip), %rsi      # 0xf235
movl %eax, %edi
movq %r13, %rdx
movl $0x21, %ecx
callq 0x4050
movq %r14, %rdi
movq %rbp, %rsi
movq %rbp, %rdx
movq %r12, %rcx
movq %rbx, %r8
movq %r15, %r9
callq 0xa9c0
leaq 0xd703(%rip), %rsi      # 0xf274
movl %eax, %edi
movq %r13, %rdx
movl $0x22, %ecx
callq 0x4050
leaq 0xd721(%rip), %rsi      # 0xf2a8
movq %r14, %rdi
movq %rbp, %rdx
movq %r12, %rcx
movq %rbx, %r8
movq %r15, %r9
callq 0xa9c0
leaq 0xd70d(%rip), %rsi      # 0xf2af
movl %eax, %edi
movq %r13, %rdx
movl $0x23, %ecx
callq 0x4050
movq %r14, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x7052