// File: /workspace/github_c_makefile_star2_O0/orangeduck[P]mpc/tests/grammar.c
// Function: test_regex_mode
void test_regex_mode(void) {
  
  mpc_parser_t *Line0, *Line1, *Line2, *Line3;
  mpc_ast_t *t0, *t1, *t2, *t3, *t4;
  
  Line0 = mpc_new("line0");
  Line1 = mpc_new("line1");
  Line2 = mpc_new("line2");
  Line3 = mpc_new("line3");
  
  mpca_lang(MPCA_LANG_DEFAULT, " line0 : /.*/; ", Line0);
  mpca_lang(MPCA_LANG_DEFAULT, " line1 : /.*/s; ", Line1);
  mpca_lang(MPCA_LANG_DEFAULT, " line2 : /(^[a-z]*$)*/; ", Line2);
  mpca_lang(MPCA_LANG_DEFAULT, " line3 : /(^[a-z]*$)*/m; ", Line3);
  
  t0 = mpc_ast_new("regex", "blah");
  t1 = mpc_ast_new("regex", "blah\nblah");
  t2 = mpc_ast_new("regex", "");
  t3 = mpc_ast_new("regex", "blah");
  t4 = mpc_ast_new("regex", "blah\nblah");
  
  PT_ASSERT(mpc_test_pass(Line0, "blah\nblah", t0,
    (int(*)(const void*,const void*))mpc_ast_eq,
    (mpc_dtor_t)mpc_ast_delete,
    (void(*)(const void*))mpc_ast_print));
  
  PT_ASSERT(mpc_test_pass(Line1, "blah\nblah", t1,
    (int(*)(const void*,const void*))mpc_ast_eq,
    (mpc_dtor_t)mpc_ast_delete,
    (void(*)(const void*))mpc_ast_print));
  
  PT_ASSERT(mpc_test_pass(Line2, "blah\nblah", t2,
    (int(*)(const void*,const void*))mpc_ast_eq,
    (mpc_dtor_t)mpc_ast_delete,
    (void(*)(const void*))mpc_ast_print));

  PT_ASSERT(mpc_test_pass(Line2, "blah", t3,
    (int(*)(const void*,const void*))mpc_ast_eq,
    (mpc_dtor_t)mpc_ast_delete,
    (void(*)(const void*))mpc_ast_print));
    
  PT_ASSERT(mpc_test_pass(Line3, "blah\nblah", t4,
    (int(*)(const void*,const void*))mpc_ast_eq,
    (mpc_dtor_t)mpc_ast_delete,
    (void(*)(const void*))mpc_ast_print));
  
  mpc_ast_delete(t0);
  mpc_ast_delete(t1);
  mpc_ast_delete(t2);
  mpc_ast_delete(t3);
  mpc_ast_delete(t4);
  
  mpc_cleanup(4, Line0, Line1, Line2, Line3);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
leaq 0x109c5(%rip), %rdi     # 0x15a74
callq 0x9350
movq %rax, -0x8(%rbp)
leaq 0x109bb(%rip), %rdi     # 0x15a7a
callq 0x9350
movq %rax, -0x10(%rbp)
leaq 0x109b1(%rip), %rdi     # 0x15a80
callq 0x9350
movq %rax, -0x18(%rbp)
leaq 0x109a7(%rip), %rdi     # 0x15a86
callq 0x9350
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rdx
xorl %edi, %edi
leaq 0x10997(%rip), %rsi     # 0x15a8c
movb $0x0, %al
callq 0xff70
movq -0x10(%rbp), %rdx
xorl %edi, %edi
leaq 0x10993(%rip), %rsi     # 0x15a9c
movb $0x0, %al
callq 0xff70
movq -0x18(%rbp), %rdx
xorl %edi, %edi
leaq 0x10990(%rip), %rsi     # 0x15aad
movb $0x0, %al
callq 0xff70
movq -0x20(%rbp), %rdx
xorl %edi, %edi
leaq 0x10995(%rip), %rsi     # 0x15ac6
movb $0x0, %al
callq 0xff70
leaq 0x10739(%rip), %rdi     # 0x15878
leaq 0x1099f(%rip), %rsi     # 0x15ae5
callq 0xd8f0
movq %rax, -0x28(%rbp)
leaq 0x10722(%rip), %rdi     # 0x15878
leaq 0x10983(%rip), %rsi     # 0x15ae0
callq 0xd8f0
movq %rax, -0x30(%rbp)
leaq 0x1070b(%rip), %rdi     # 0x15878
leaq 0x12476(%rip), %rsi     # 0x175ea
callq 0xd8f0
movq %rax, -0x38(%rbp)
leaq 0x106f4(%rip), %rdi     # 0x15878
leaq 0x1095a(%rip), %rsi     # 0x15ae5
callq 0xd8f0
movq %rax, -0x40(%rbp)
leaq 0x106dd(%rip), %rdi     # 0x15878
leaq 0x1093e(%rip), %rsi     # 0x15ae0
callq 0xd8f0
movq %rax, -0x48(%rbp)
movq -0x8(%rbp), %rdi
movq -0x28(%rbp), %rdx
leaq 0x10926(%rip), %rsi     # 0x15ae0
leaq 0x8a6f(%rip), %rcx      # 0xdc30
leaq 0x86a8(%rip), %r8       # 0xd870
leaq 0x8e21(%rip), %r9       # 0xdff0
callq 0xd780
movl %eax, %edi
leaq 0x1090d(%rip), %rsi     # 0x15aea
leaq 0xfb56(%rip), %rdx      # 0x14d3a
movl $0x135, %ecx            # imm = 0x135
callq 0x5780
movq -0x10(%rbp), %rdi
movq -0x30(%rbp), %rdx
leaq 0x108e3(%rip), %rsi     # 0x15ae0
leaq 0x8a2c(%rip), %rcx      # 0xdc30
leaq 0x8665(%rip), %r8       # 0xd870
leaq 0x8dde(%rip), %r9       # 0xdff0
callq 0xd780
movl %eax, %edi
leaq 0x1095f(%rip), %rsi     # 0x15b7f
leaq 0xfb13(%rip), %rdx      # 0x14d3a
movl $0x13a, %ecx            # imm = 0x13A
callq 0x5780
movq -0x18(%rbp), %rdi
movq -0x38(%rbp), %rdx
leaq 0x108a0(%rip), %rsi     # 0x15ae0
leaq 0x89e9(%rip), %rcx      # 0xdc30
leaq 0x8622(%rip), %r8       # 0xd870
leaq 0x8d9b(%rip), %r9       # 0xdff0
callq 0xd780
movl %eax, %edi
leaq 0x109b1(%rip), %rsi     # 0x15c14
leaq 0xfad0(%rip), %rdx      # 0x14d3a
movl $0x13f, %ecx            # imm = 0x13F
callq 0x5780
movq -0x18(%rbp), %rdi
movq -0x40(%rbp), %rdx
leaq 0x10862(%rip), %rsi     # 0x15ae5
leaq 0x89a6(%rip), %rcx      # 0xdc30
leaq 0x85df(%rip), %r8       # 0xd870
leaq 0x8d58(%rip), %r9       # 0xdff0
callq 0xd780
movl %eax, %edi
leaq 0x10a03(%rip), %rsi     # 0x15ca9
leaq 0xfa8d(%rip), %rdx      # 0x14d3a
movl $0x144, %ecx            # imm = 0x144
callq 0x5780
movq -0x20(%rbp), %rdi
movq -0x48(%rbp), %rdx
leaq 0x1081a(%rip), %rsi     # 0x15ae0
leaq 0x8963(%rip), %rcx      # 0xdc30
leaq 0x859c(%rip), %r8       # 0xd870
leaq 0x8d15(%rip), %r9       # 0xdff0
callq 0xd780
movl %eax, %edi
leaq 0x10a4f(%rip), %rsi     # 0x15d38
leaq 0xfa4a(%rip), %rdx      # 0x14d3a
movl $0x149, %ecx            # imm = 0x149
callq 0x5780
movq -0x28(%rbp), %rdi
callq 0xd870
movq -0x30(%rbp), %rdi
callq 0xd870
movq -0x38(%rbp), %rdi
callq 0xd870
movq -0x40(%rbp), %rdi
callq 0xd870
movq -0x48(%rbp), %rdi
callq 0xd870
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %r8
movl $0x4, %edi
movb $0x0, %al
callq 0x9a50
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax)