// File: /workspace/github_cpp_makefile_star2_O3/halfflat[P]tinyopt/test/test_parsers.cc
// Function: tinyopt_delimited_Test::TestBody()
TEST(tinyopt, delimited) {
    using ivector = std::vector<int>;
    auto parser = to::delimited<int>('/');

    auto p1 = parser("1/2/3");
    ASSERT_TRUE(p1);
    EXPECT_EQ((ivector{1, 2, 3}),*p1);

    auto p2 = parser("");
    ASSERT_TRUE(p2);
    EXPECT_EQ((ivector{}),*p2);

    EXPECT_FALSE(parser("/2"));
    EXPECT_FALSE(parser("1/"));
    EXPECT_FALSE(parser("1a/2"));
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x98, %rsp
leaq 0x26(%rsp), %rsi
movb $0x2f, (%rsi)
leaq 0x3f8c8(%rip), %rdx     # 0x6eac5
leaq 0x78(%rsp), %rbx
movq %rbx, %rdi
callq 0x31390
movb (%rbx), %al
movb %al, 0x30(%rsp)
movq $0x0, 0x38(%rsp)
testb %al, %al
je 0x2f2b5
movabsq $0x200000001, %rax      # imm = 0x200000001
leaq 0x10(%rsp), %rsi
movq %rax, (%rsi)
movl $0x3, 0x8(%rsi)
leaq 0x58(%rsp), %rdi
leaq 0x8(%rsp), %rcx
movl $0x3, %edx
callq 0x3152e
leaq 0x80(%rsp), %r8
leaq 0x3f86e(%rip), %rsi     # 0x6eacb
leaq 0x3f7c8(%rip), %rdx     # 0x6ea2c
leaq 0x30(%rsp), %rdi
leaq 0x58(%rsp), %rcx
callq 0x32287
movq 0x58(%rsp), %rdi
testq %rdi, %rdi
je 0x2f28a
movq 0x68(%rsp), %rsi
subq %rdi, %rsi
callq 0xd530
cmpb $0x0, 0x30(%rsp)
jne 0x2f3b2
leaq 0x58(%rsp), %rdi
callq 0x4ca86
movq 0x38(%rsp), %rax
testq %rax, %rax
je 0x2f367
movq (%rax), %r8
jmp 0x2f36e
leaq 0x10(%rsp), %rdi
callq 0x4ca86
leaq 0x38(%rsp), %r14
leaq 0x3f762(%rip), %rdx     # 0x6ea2d
leaq 0x3ce34(%rip), %rcx     # 0x6c106
leaq 0x3ce33(%rip), %r8      # 0x6c10c
leaq 0x58(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x46893
movq 0x58(%rsp), %r8
leaq 0x3f6a4(%rip), %rdx     # 0x6e998
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x45, %ecx
callq 0x4902a
leaq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x46a1c
leaq 0x8(%rsp), %rdi
callq 0x49096
leaq 0x68(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2f33c
movq 0x68(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x2f34c
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x38(%rsp), %rsi
testq %rsi, %rsi
je 0x2f82e
movq %r14, %rdi
callq 0x153ca
jmp 0x2f82e
leaq 0x3fc67(%rip), %r8      # 0x6efd5
leaq 0x3f623(%rip), %rdx     # 0x6e998
leaq 0x10(%rsp), %rdi
movl $0x1, %esi
movl $0x46, %ecx
callq 0x4902a
leaq 0x10(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x46a1c
leaq 0x10(%rsp), %rdi
callq 0x49096
movq 0x58(%rsp), %rdi
testq %rdi, %rdi
je 0x2f3b2
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x38(%rsp), %rsi
testq %rsi, %rsi
je 0x2f3c6
leaq 0x38(%rsp), %rdi
callq 0x153ca
leaq 0x3fc08(%rip), %rbx     # 0x6efd5
leaq 0x58(%rsp), %rdi
leaq 0x26(%rsp), %rsi
movq %rbx, %rdx
callq 0x31390
movb 0x58(%rsp), %al
movb %al, 0x10(%rsp)
movq $0x0, 0x18(%rsp)
testb %al, %al
je 0x2f767
leaq 0x60(%rsp), %r8
xorps %xmm0, %xmm0
leaq 0x30(%rsp), %rcx
movaps %xmm0, (%rcx)
movq $0x0, 0x10(%rcx)
leaq 0x3f6c7(%rip), %rsi     # 0x6eade
leaq 0x3f64e(%rip), %rdx     # 0x6ea6c
leaq 0x10(%rsp), %rdi
callq 0x32287
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x2f43f
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0xd530
cmpb $0x0, 0x10(%rsp)
jne 0x2f4a4
leaq 0x30(%rsp), %rdi
callq 0x4ca86
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2f45d
movq (%rax), %rbx
leaq 0x3f534(%rip), %rdx     # 0x6e998
leaq 0x8(%rsp), %rdi
movl $0x1, %esi
movl $0x4a, %ecx
movq %rbx, %r8
callq 0x4902a
leaq 0x8(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x46a1c
leaq 0x8(%rsp), %rdi
callq 0x49096
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x2f4a4
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x18(%rsp), %rsi
testq %rsi, %rsi
je 0x2f4b8
leaq 0x18(%rsp), %rdi
callq 0x153ca
leaq 0x3f64a(%rip), %rdx     # 0x6eb09
leaq 0x30(%rsp), %rdi
leaq 0x26(%rsp), %rsi
callq 0x31390
movb 0x30(%rsp), %cl
movl %ecx, %eax
xorb $0x1, %al
movb %al, 0x10(%rsp)
movq $0x0, 0x18(%rsp)
cmpb $0x1, %cl
jne 0x2f503
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0x2f503
movq 0x48(%rsp), %rsi
subq %rdi, %rsi
callq 0xd530
movb 0x10(%rsp), %al
leaq 0x18(%rsp), %r14
testb $0x1, %al
jne 0x2f5a2
leaq 0x8(%rsp), %rdi
callq 0x4ca86
leaq 0x3f5c9(%rip), %rdx     # 0x6eaea
leaq 0x3cbe4(%rip), %rcx     # 0x6c10c
leaq 0x3cbd7(%rip), %r8      # 0x6c106
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x46893
movq 0x30(%rsp), %r8
leaq 0x3f44e(%rip), %rdx     # 0x6e998
leaq 0x28(%rsp), %rdi
movl $0x1, %esi
movl $0x4c, %ecx
callq 0x4902a
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x46a1c
leaq 0x28(%rsp), %rdi
callq 0x49096
leaq 0x40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2f592
movq 0x40(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x2f5a2
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x18(%rsp), %rsi
testq %rsi, %rsi
je 0x2f5b4
movq %r14, %rdi
callq 0x153ca
leaq 0x3f53c(%rip), %rdx     # 0x6eaf7
leaq 0x30(%rsp), %rdi
leaq 0x26(%rsp), %rsi
callq 0x31390
movb 0x30(%rsp), %cl
movl %ecx, %eax
xorb $0x1, %al
movb %al, 0x10(%rsp)
movq $0x0, 0x18(%rsp)
cmpb $0x1, %cl
jne 0x2f5ff
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0x2f5ff
movq 0x48(%rsp), %rsi
subq %rdi, %rsi
callq 0xd530
movb 0x10(%rsp), %al
leaq 0x18(%rsp), %r14
testb $0x1, %al
jne 0x2f69e
leaq 0x8(%rsp), %rdi
callq 0x4ca86
leaq 0x3f4dd(%rip), %rdx     # 0x6eafa
leaq 0x3cae8(%rip), %rcx     # 0x6c10c
leaq 0x3cadb(%rip), %r8      # 0x6c106
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x46893
movq 0x30(%rsp), %r8
leaq 0x3f352(%rip), %rdx     # 0x6e998
leaq 0x28(%rsp), %rdi
movl $0x1, %esi
movl $0x4d, %ecx
callq 0x4902a
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x46a1c
leaq 0x28(%rsp), %rdi
callq 0x49096
leaq 0x40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2f68e
movq 0x40(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x2f69e
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x18(%rsp), %rsi
testq %rsi, %rsi
je 0x2f6b0
movq %r14, %rdi
callq 0x153ca
leaq 0x3f450(%rip), %rdx     # 0x6eb07
leaq 0x30(%rsp), %rdi
leaq 0x26(%rsp), %rsi
callq 0x31390
movb 0x30(%rsp), %cl
movl %ecx, %eax
xorb $0x1, %al
movb %al, 0x10(%rsp)
movq $0x0, 0x18(%rsp)
cmpb $0x1, %cl
jne 0x2f6fb
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0x2f6fb
movq 0x48(%rsp), %rsi
subq %rdi, %rsi
callq 0xd530
movb 0x10(%rsp), %al
leaq 0x18(%rsp), %r14
testb $0x1, %al
jne 0x2f7fe
leaq 0x8(%rsp), %rdi
callq 0x4ca86
leaq 0x3f3f3(%rip), %rdx     # 0x6eb0c
leaq 0x3c9ec(%rip), %rcx     # 0x6c10c
leaq 0x3c9df(%rip), %r8      # 0x6c106
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x46893
movq 0x30(%rsp), %r8
leaq 0x3f256(%rip), %rdx     # 0x6e998
leaq 0x28(%rsp), %rdi
movl $0x1, %esi
movl $0x4e, %ecx
callq 0x4902a
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x46a1c
jmp 0x2f7c9
leaq 0x18(%rsp), %r14
leaq 0x8(%rsp), %rdi
callq 0x4ca86
leaq 0x3f2f0(%rip), %rdx     # 0x6ea6d
leaq 0x3c982(%rip), %rcx     # 0x6c106
leaq 0x3c981(%rip), %r8      # 0x6c10c
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x46893
movq 0x30(%rsp), %r8
leaq 0x3f1f2(%rip), %rdx     # 0x6e998
leaq 0x28(%rsp), %rdi
movl $0x2, %esi
movl $0x49, %ecx
callq 0x4902a
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x46a1c
leaq 0x28(%rsp), %rdi
callq 0x49096
leaq 0x40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2f7ee
movq 0x40(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x2f7fe
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x18(%rsp), %rsi
testq %rsi, %rsi
je 0x2f810
movq %r14, %rdi
callq 0x153ca
cmpb $0x1, 0x58(%rsp)
jne 0x2f82e
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x2f82e
movq 0x70(%rsp), %rsi
subq %rdi, %rsi
callq 0xd530
cmpb $0x1, 0x78(%rsp)
jne 0x2f852
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x2f852
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0xd530
addq $0x98, %rsp
popq %rbx
popq %r14
retq
jmp 0x2f8c0
jmp 0x2f8d4
jmp 0x2f8f4
jmp 0x2f909
jmp 0x2f8c0
jmp 0x2f8d4
jmp 0x2f8f4
jmp 0x2f909
jmp 0x2f8c0
jmp 0x2f8d4
jmp 0x2f8f4
jmp 0x2f909
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x49096
jmp 0x2f896
movq %rax, %rbx
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x2f8ab
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x2f8ab
movq %rax, %rbx
movq 0x18(%rsp), %rsi
testq %rsi, %rsi
je 0x2f91e
leaq 0x18(%rsp), %rdi
jmp 0x2f919
jmp 0x2f8cf
jmp 0x2f8cf
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x49096
jmp 0x2f8d7
movq %rax, %rbx
jmp 0x2f91e
movq %rax, %rbx
leaq 0x40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2f8f7
movq 0x40(%rsp), %rsi
incq %rsi
callq 0xd530
jmp 0x2f8f7
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x2f90c
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x2f90c
movq %rax, %rbx
movq 0x18(%rsp), %rsi
testq %rsi, %rsi
je 0x2f91e
movq %r14, %rdi
callq 0x153ca
cmpb $0x1, 0x58(%rsp)
jne 0x2fa12
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x2fa12
movq 0x70(%rsp), %rsi
jmp 0x2fa03
movq %rax, %rbx
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x2f91e
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0xd530
jmp 0x2f91e
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x49096
jmp 0x2f96f
movq %rax, %rbx
movq 0x58(%rsp), %rdi
testq %rdi, %rdi
je 0x2f984
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x2f984
movq %rax, %rbx
movq 0x38(%rsp), %rsi
testq %rsi, %rsi
je 0x2fa12
leaq 0x38(%rsp), %rdi
jmp 0x2f9ea
jmp 0x2fa0f
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x49096
jmp 0x2f9ad
movq %rax, %rbx
leaq 0x68(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2f9cd
movq 0x68(%rsp), %rsi
incq %rsi
callq 0xd530
jmp 0x2f9cd
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x2f9dd
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x38(%rsp), %rsi
testq %rsi, %rsi
je 0x2fa12
movq %r14, %rdi
callq 0x153ca
jmp 0x2fa12
movq %rax, %rbx
movq 0x58(%rsp), %rdi
testq %rdi, %rdi
je 0x2fa12
movq 0x68(%rsp), %rsi
subq %rdi, %rsi
callq 0xd530
jmp 0x2fa12
jmp 0x2fa0f
movq %rax, %rbx
cmpb $0x1, 0x78(%rsp)
jne 0x2fa36
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x2fa36
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0xd530
movq %rbx, %rdi
callq 0xda70