// File: /workspace/github_cpp_makefile_star2_O1/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 0x40a57(%rip), %rdx     # 0x70ae8
leaq 0x78(%rsp), %rbx
movq %rbx, %rdi
callq 0x32450
movb (%rbx), %al
movb %al, 0x30(%rsp)
movq $0x0, 0x38(%rsp)
testb %al, %al
je 0x30149
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 0x32622
leaq 0x80(%rsp), %r8
leaq 0x409fd(%rip), %rsi     # 0x70aee
leaq 0x40957(%rip), %rdx     # 0x70a4f
leaq 0x30(%rsp), %rdi
leaq 0x58(%rsp), %rcx
callq 0x33390
movq 0x58(%rsp), %rdi
testq %rdi, %rdi
je 0x3011e
movq 0x68(%rsp), %rsi
subq %rdi, %rsi
callq 0xd530
cmpb $0x0, 0x30(%rsp)
jne 0x30246
leaq 0x58(%rsp), %rdi
callq 0x4e2e8
movq 0x38(%rsp), %rax
testq %rax, %rax
je 0x301fb
movq (%rax), %r8
jmp 0x30202
leaq 0x38(%rsp), %r14
leaq 0x10(%rsp), %rdi
callq 0x4e2e8
leaq 0x408f1(%rip), %rdx     # 0x70a50
leaq 0x3dfa0(%rip), %rcx     # 0x6e106
leaq 0x3df9f(%rip), %r8      # 0x6e10c
leaq 0x58(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x48021
movq 0x58(%rsp), %r8
leaq 0x40833(%rip), %rdx     # 0x709bb
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x45, %ecx
callq 0x4a84c
leaq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x481aa
leaq 0x8(%rsp), %rdi
callq 0x4a8b8
leaq 0x68(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x301d0
movq 0x68(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x301e0
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x38(%rsp), %rsi
testq %rsi, %rsi
je 0x306bf
movq %r14, %rdi
callq 0x156d0
jmp 0x306bf
leaq 0x40df6(%rip), %r8      # 0x70ff8
leaq 0x407b2(%rip), %rdx     # 0x709bb
leaq 0x10(%rsp), %rdi
movl $0x1, %esi
movl $0x46, %ecx
callq 0x4a84c
leaq 0x10(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x481aa
leaq 0x10(%rsp), %rdi
callq 0x4a8b8
movq 0x58(%rsp), %rdi
testq %rdi, %rdi
je 0x30246
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x38(%rsp), %rsi
testq %rsi, %rsi
je 0x3025a
leaq 0x38(%rsp), %rdi
callq 0x156d0
leaq 0x40d97(%rip), %rbx     # 0x70ff8
leaq 0x58(%rsp), %rdi
leaq 0x26(%rsp), %rsi
movq %rbx, %rdx
callq 0x32450
movb 0x58(%rsp), %al
movb %al, 0x10(%rsp)
movq $0x0, 0x18(%rsp)
testb %al, %al
je 0x305f8
leaq 0x60(%rsp), %r8
xorps %xmm0, %xmm0
leaq 0x30(%rsp), %rcx
movaps %xmm0, (%rcx)
movq $0x0, 0x10(%rcx)
leaq 0x40856(%rip), %rsi     # 0x70b01
leaq 0x407dd(%rip), %rdx     # 0x70a8f
leaq 0x10(%rsp), %rdi
callq 0x33390
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x302d3
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0xd530
cmpb $0x0, 0x10(%rsp)
jne 0x30338
leaq 0x30(%rsp), %rdi
callq 0x4e2e8
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x302f1
movq (%rax), %rbx
leaq 0x406c3(%rip), %rdx     # 0x709bb
leaq 0x8(%rsp), %rdi
movl $0x1, %esi
movl $0x4a, %ecx
movq %rbx, %r8
callq 0x4a84c
leaq 0x8(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x481aa
leaq 0x8(%rsp), %rdi
callq 0x4a8b8
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x30338
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x18(%rsp), %rsi
testq %rsi, %rsi
je 0x3034c
leaq 0x18(%rsp), %rdi
callq 0x156d0
leaq 0x407d9(%rip), %rdx     # 0x70b2c
leaq 0x30(%rsp), %rdi
leaq 0x26(%rsp), %rsi
callq 0x32450
movb 0x30(%rsp), %al
movl %eax, %ecx
xorb $0x1, %cl
movb %cl, 0x10(%rsp)
movq $0x0, 0x18(%rsp)
cmpb $0x1, %al
jne 0x30393
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0x30393
movq 0x48(%rsp), %rsi
subq %rdi, %rsi
callq 0xd530
leaq 0x18(%rsp), %r14
cmpb $0x0, -0x8(%r14)
jne 0x30435
leaq 0x8(%rsp), %rdi
callq 0x4e2e8
leaq 0x40759(%rip), %rdx     # 0x70b0d
leaq 0x3dd51(%rip), %rcx     # 0x6e10c
leaq 0x3dd44(%rip), %r8      # 0x6e106
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x48021
movq 0x30(%rsp), %r8
leaq 0x405de(%rip), %rdx     # 0x709bb
leaq 0x28(%rsp), %rdi
movl $0x1, %esi
movl $0x4c, %ecx
callq 0x4a84c
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x481aa
leaq 0x28(%rsp), %rdi
callq 0x4a8b8
leaq 0x40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x30425
movq 0x40(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x30435
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x18(%rsp), %rsi
testq %rsi, %rsi
je 0x30447
movq %r14, %rdi
callq 0x156d0
leaq 0x406cc(%rip), %rdx     # 0x70b1a
leaq 0x30(%rsp), %rdi
leaq 0x26(%rsp), %rsi
callq 0x32450
movb 0x30(%rsp), %al
movl %eax, %ecx
xorb $0x1, %cl
movb %cl, 0x10(%rsp)
movq $0x0, 0x18(%rsp)
cmpb $0x1, %al
jne 0x3048e
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0x3048e
movq 0x48(%rsp), %rsi
subq %rdi, %rsi
callq 0xd530
leaq 0x18(%rsp), %r14
cmpb $0x0, -0x8(%r14)
jne 0x30530
leaq 0x8(%rsp), %rdi
callq 0x4e2e8
leaq 0x4066e(%rip), %rdx     # 0x70b1d
leaq 0x3dc56(%rip), %rcx     # 0x6e10c
leaq 0x3dc49(%rip), %r8      # 0x6e106
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x48021
movq 0x30(%rsp), %r8
leaq 0x404e3(%rip), %rdx     # 0x709bb
leaq 0x28(%rsp), %rdi
movl $0x1, %esi
movl $0x4d, %ecx
callq 0x4a84c
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x481aa
leaq 0x28(%rsp), %rdi
callq 0x4a8b8
leaq 0x40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x30520
movq 0x40(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x30530
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x18(%rsp), %rsi
testq %rsi, %rsi
je 0x30542
movq %r14, %rdi
callq 0x156d0
leaq 0x405e1(%rip), %rdx     # 0x70b2a
leaq 0x30(%rsp), %rdi
leaq 0x26(%rsp), %rsi
callq 0x32450
movb 0x30(%rsp), %al
movl %eax, %ecx
xorb $0x1, %cl
movb %cl, 0x10(%rsp)
movq $0x0, 0x18(%rsp)
cmpb $0x1, %al
jne 0x30589
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0x30589
movq 0x48(%rsp), %rsi
subq %rdi, %rsi
callq 0xd530
leaq 0x18(%rsp), %r14
cmpb $0x0, -0x8(%r14)
jne 0x3068f
leaq 0x8(%rsp), %rdi
callq 0x4e2e8
leaq 0x40585(%rip), %rdx     # 0x70b2f
leaq 0x3db5b(%rip), %rcx     # 0x6e10c
leaq 0x3db4e(%rip), %r8      # 0x6e106
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x48021
movq 0x30(%rsp), %r8
leaq 0x403e8(%rip), %rdx     # 0x709bb
leaq 0x28(%rsp), %rdi
movl $0x1, %esi
movl $0x4e, %ecx
callq 0x4a84c
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x481aa
jmp 0x3065a
leaq 0x18(%rsp), %r14
leaq 0x8(%rsp), %rdi
callq 0x4e2e8
leaq 0x40482(%rip), %rdx     # 0x70a90
leaq 0x3daf1(%rip), %rcx     # 0x6e106
leaq 0x3daf0(%rip), %r8      # 0x6e10c
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x48021
movq 0x30(%rsp), %r8
leaq 0x40384(%rip), %rdx     # 0x709bb
leaq 0x28(%rsp), %rdi
movl $0x2, %esi
movl $0x49, %ecx
callq 0x4a84c
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x481aa
leaq 0x28(%rsp), %rdi
callq 0x4a8b8
leaq 0x40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3067f
movq 0x40(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x3068f
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x18(%rsp), %rsi
testq %rsi, %rsi
je 0x306a1
movq %r14, %rdi
callq 0x156d0
cmpb $0x1, 0x58(%rsp)
jne 0x306bf
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x306bf
movq 0x70(%rsp), %rsi
subq %rdi, %rsi
callq 0xd530
cmpb $0x1, 0x78(%rsp)
jne 0x306e3
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x306e3
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0xd530
addq $0x98, %rsp
popq %rbx
popq %r14
retq
jmp 0x306fe
jmp 0x3070d
jmp 0x3072d
jmp 0x3074b
jmp 0x306fe
jmp 0x3070d
jmp 0x3072d
jmp 0x3074b
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x4a8b8
jmp 0x30710
movq %rax, %rbx
leaq 0x40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x30730
movq 0x40(%rsp), %rsi
incq %rsi
callq 0xd530
jmp 0x30730
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x30740
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, 0x8(%rsp)
jmp 0x3074e
movq %rax, %rbx
movq 0x18(%rsp), %rsi
testq %rsi, %rsi
je 0x307a1
movq %r14, %rdi
jmp 0x3079c
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x4a8b8
jmp 0x3076f
movq %rax, %rbx
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x3077f
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, 0x30(%rsp)
jmp 0x3078d
movq %rax, %rbx
movq 0x18(%rsp), %rsi
testq %rsi, %rsi
je 0x307a1
leaq 0x18(%rsp), %rdi
callq 0x156d0
movq $0x0, 0x18(%rsp)
jmp 0x30836
jmp 0x307c2
jmp 0x307c2
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x4a8b8
jmp 0x307ca
movq %rax, %rbx
jmp 0x30836
movq %rax, %rbx
leaq 0x40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x307ea
movq 0x40(%rsp), %rsi
incq %rsi
callq 0xd530
jmp 0x307ea
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x307fa
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, 0x8(%rsp)
jmp 0x30808
movq %rax, %rbx
movq 0x18(%rsp), %rsi
testq %rsi, %rsi
je 0x30836
movq %r14, %rdi
callq 0x156d0
jmp 0x30836
movq %rax, %rbx
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x30836
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0xd530
cmpb $0x1, 0x58(%rsp)
jne 0x30854
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x30854
movq 0x70(%rsp), %rsi
subq %rdi, %rsi
callq 0xd530
movb $0x0, 0x58(%rsp)
jmp 0x30938
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x4a8b8
jmp 0x30870
movq %rax, %rbx
movq 0x58(%rsp), %rdi
testq %rdi, %rdi
je 0x30880
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, 0x58(%rsp)
jmp 0x3088e
movq %rax, %rbx
movq 0x38(%rsp), %rsi
testq %rsi, %rsi
je 0x308a2
leaq 0x38(%rsp), %rdi
callq 0x156d0
movq $0x0, 0x38(%rsp)
jmp 0x30938
jmp 0x30935
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x4a8b8
jmp 0x308c7
movq %rax, %rbx
leaq 0x68(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x308e7
movq 0x68(%rsp), %rsi
incq %rsi
callq 0xd530
jmp 0x308e7
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x308f7
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, 0x10(%rsp)
jmp 0x30921
movq %rax, %rbx
movq 0x58(%rsp), %rdi
testq %rdi, %rdi
je 0x30938
movq 0x68(%rsp), %rsi
subq %rdi, %rsi
callq 0xd530
jmp 0x30938
movq %rax, %rbx
movq 0x38(%rsp), %rsi
testq %rsi, %rsi
je 0x30938
movq %r14, %rdi
callq 0x156d0
jmp 0x30938
movq %rax, %rbx
cmpb $0x1, 0x78(%rsp)
jne 0x3095c
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x3095c
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0xd530
movq %rbx, %rdi
callq 0xda70