// File: /workspace/github_c_makefile_star2_O0/orangeduck[P]mpc/tests/regex.c
// Function: test_regex_boundary
void test_regex_boundary(void) {

  mpc_parser_t *re0, *re1, *re2;

  re0 = mpc_re("\\bfoo\\b");
  re1 = mpc_re("(w| )?\\bfoo\\b");
  re2 = mpc_re("py\\B.*");

  PT_ASSERT(regex_test_pass(re0, "foo", "foo"));
  PT_ASSERT(regex_test_pass(re0, "foo.", "foo"));
  PT_ASSERT(regex_test_pass(re0, "foo)", "foo"));
  PT_ASSERT(regex_test_pass(re0, "foo baz", "foo"));

  PT_ASSERT(regex_test_fail(re0, "foobar", "foo"));
  PT_ASSERT(regex_test_fail(re0, "foo3", "foo"));

  PT_ASSERT(regex_test_pass(re1, "foo", "foo"));
  PT_ASSERT(regex_test_pass(re1, " foo", " foo"));
  PT_ASSERT(regex_test_fail(re1, "wfoo", "foo"));

  PT_ASSERT(regex_test_pass(re2, "python", "python"));
  PT_ASSERT(regex_test_pass(re2, "py3", "py3"));
  PT_ASSERT(regex_test_pass(re2, "py2", "py2"));
  PT_ASSERT(regex_test_fail(re2, "py", "py"));
  PT_ASSERT(regex_test_fail(re2, "py.", "py."));
  PT_ASSERT(regex_test_fail(re2, "py!", "py!"));

  mpc_delete(re0);
  mpc_delete(re1);
  mpc_delete(re2);

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
leaq 0xfff9(%rip), %rdi      # 0x16468
callq 0xbc90
movq %rax, -0x8(%rbp)
leaq 0xffe3(%rip), %rdi      # 0x16462
callq 0xbc90
movq %rax, -0x10(%rbp)
leaq 0xffe1(%rip), %rdi      # 0x16470
callq 0xbc90
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x100f2(%rip), %rdx     # 0x16595
movq %rdx, %rsi
callq 0x6140
movl %eax, %edi
leaq 0xffc3(%rip), %rsi      # 0x16477
leaq 0xfe5a(%rip), %rdx      # 0x16315
movl $0x38, %ecx
callq 0x5780
movq -0x8(%rbp), %rdi
leaq 0xffca(%rip), %rsi      # 0x1649a
leaq 0x100be(%rip), %rdx     # 0x16595
callq 0x6140
movl %eax, %edi
leaq 0xffba(%rip), %rsi      # 0x1649f
leaq 0xfe29(%rip), %rdx      # 0x16315
movl $0x39, %ecx
callq 0x5780
movq -0x8(%rbp), %rdi
leaq 0xffc2(%rip), %rsi      # 0x164c3
leaq 0x1008d(%rip), %rdx     # 0x16595
callq 0x6140
movl %eax, %edi
leaq 0xffb2(%rip), %rsi      # 0x164c8
leaq 0xfdf8(%rip), %rdx      # 0x16315
movl $0x3a, %ecx
callq 0x5780
movq -0x8(%rbp), %rdi
leaq 0xffba(%rip), %rsi      # 0x164ec
leaq 0x1005c(%rip), %rdx     # 0x16595
callq 0x6140
movl %eax, %edi
leaq 0xffad(%rip), %rsi      # 0x164f4
leaq 0xfdc7(%rip), %rdx      # 0x16315
movl $0x3b, %ecx
callq 0x5780
movq -0x8(%rbp), %rdi
leaq 0xffb8(%rip), %rsi      # 0x1651b
leaq 0x1002b(%rip), %rdx     # 0x16595
callq 0x61e0
movl %eax, %edi
leaq 0xffaa(%rip), %rsi      # 0x16522
leaq 0xfd96(%rip), %rdx      # 0x16315
movl $0x3d, %ecx
callq 0x5780
movq -0x8(%rbp), %rdi
leaq 0xffb4(%rip), %rsi      # 0x16548
leaq 0xfffa(%rip), %rdx      # 0x16595
callq 0x61e0
movl %eax, %edi
leaq 0xffa4(%rip), %rsi      # 0x1654d
leaq 0xfd65(%rip), %rdx      # 0x16315
movl $0x3e, %ecx
callq 0x5780
movq -0x10(%rbp), %rdi
leaq 0xffd0(%rip), %rdx      # 0x16595
movq %rdx, %rsi
callq 0x6140
movl %eax, %edi
leaq 0xff9b(%rip), %rsi      # 0x16571
leaq 0xfd38(%rip), %rdx      # 0x16315
movl $0x40, %ecx
callq 0x5780
movq -0x10(%rbp), %rdi
leaq 0xffa2(%rip), %rdx      # 0x16594
movq %rdx, %rsi
callq 0x6140
movl %eax, %edi
leaq 0xff96(%rip), %rsi      # 0x16599
leaq 0xfd0b(%rip), %rdx      # 0x16315
movl $0x41, %ecx
callq 0x5780
movq -0x10(%rbp), %rdi
leaq 0xff9f(%rip), %rsi      # 0x165be
leaq 0xff6f(%rip), %rdx      # 0x16595
callq 0x61e0
movl %eax, %edi
leaq 0xff8f(%rip), %rsi      # 0x165c3
leaq 0xfcda(%rip), %rdx      # 0x16315
movl $0x42, %ecx
callq 0x5780
movq -0x18(%rbp), %rdi
leaq 0xff97(%rip), %rdx      # 0x165e7
movq %rdx, %rsi
callq 0x6140
movl %eax, %edi
leaq 0xff8d(%rip), %rsi      # 0x165ee
leaq 0xfcad(%rip), %rdx      # 0x16315
movl $0x44, %ecx
callq 0x5780
movq -0x18(%rbp), %rdi
leaq 0xff9a(%rip), %rdx      # 0x16617
movq %rdx, %rsi
callq 0x6140
movl %eax, %edi
leaq 0xff8d(%rip), %rsi      # 0x1661b
leaq 0xfc80(%rip), %rdx      # 0x16315
movl $0x45, %ecx
callq 0x5780
movq -0x18(%rbp), %rdi
leaq 0xff94(%rip), %rdx      # 0x1663e
movq %rdx, %rsi
callq 0x6140
movl %eax, %edi
leaq 0xff87(%rip), %rsi      # 0x16642
leaq 0xfc53(%rip), %rdx      # 0x16315
movl $0x46, %ecx
callq 0x5780
movq -0x18(%rbp), %rdi
leaq 0xe4c3(%rip), %rdx      # 0x14b9a
movq %rdx, %rsi
callq 0x61e0
movl %eax, %edi
leaq 0xff7d(%rip), %rsi      # 0x16665
leaq 0xfc26(%rip), %rdx      # 0x16315
movl $0x47, %ecx
callq 0x5780
movq -0x18(%rbp), %rdi
leaq 0xff82(%rip), %rdx      # 0x16686
movq %rdx, %rsi
callq 0x61e0
movl %eax, %edi
leaq 0xff75(%rip), %rsi      # 0x1668a
leaq 0xfbf9(%rip), %rdx      # 0x16315
movl $0x48, %ecx
callq 0x5780
movq -0x18(%rbp), %rdi
leaq 0xff7c(%rip), %rdx      # 0x166ad
movq %rdx, %rsi
callq 0x61e0
movl %eax, %edi
leaq 0xff6f(%rip), %rsi      # 0x166b1
leaq 0xfbcc(%rip), %rdx      # 0x16315
movl $0x49, %ecx
callq 0x5780
movq -0x8(%rbp), %rdi
callq 0x9160
movq -0x10(%rbp), %rdi
callq 0x9160
movq -0x18(%rbp), %rdi
callq 0x9160
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)