// File: /workspace/github_cpp_makefile_star2_O2/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 0x16(%rsp), %rsi
movb $0x2f, (%rsi)
leaq 0x2fbd9(%rip), %rdx     # 0x58b5a
leaq 0x78(%rsp), %rbx
movq %rbx, %rdi
callq 0x2aa2c
movb (%rbx), %al
leaq 0x38(%rsp), %r14
movb %al, -0x8(%r14)
andq $0x0, (%r14)
testb %al, %al
je 0x29032
movq %r14, %rdi
callq 0x13646
movabsq $0x200000001, %rax      # imm = 0x200000001
leaq 0x20(%rsp), %rsi
movq %rax, (%rsi)
movl $0x3, 0x8(%rsi)
leaq 0x58(%rsp), %rdi
pushq $0x3
popq %rdx
leaq 0x8(%rsp), %rcx
callq 0x2ab8a
leaq 0x80(%rsp), %r8
leaq 0x2fb79(%rip), %rsi     # 0x58b60
leaq 0x2fad3(%rip), %rdx     # 0x58ac1
leaq 0x30(%rsp), %rdi
leaq 0x58(%rsp), %rcx
callq 0x2b8c8
leaq 0x58(%rsp), %rdi
callq 0x2b890
cmpb $0x0, 0x30(%rsp)
jne 0x29103
leaq 0x58(%rsp), %rdi
callq 0x3d5f6
movq 0x38(%rsp), %rax
testq %rax, %rax
je 0x290bc
movq (%rax), %r8
jmp 0x290c3
leaq 0x20(%rsp), %rdi
callq 0x3d5f6
leaq 0x2fa7f(%rip), %rdx     # 0x58ac2
leaq 0x2d0c5(%rip), %rcx     # 0x5610f
leaq 0x2d0c4(%rip), %r8      # 0x56115
leaq 0x58(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x399e5
movq 0x58(%rsp), %r8
leaq 0x2f9c1(%rip), %rdx     # 0x58a2d
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x45
popq %rcx
callq 0x3b5b6
leaq 0x8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x39b08
leaq 0x8(%rsp), %rdi
callq 0x3b616
leaq 0x58(%rsp), %rdi
callq 0xdbe8
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x290af
movq (%rdi), %rax
callq *0x8(%rax)
movq %r14, %rdi
callq 0x13646
jmp 0x29488
leaq 0x2ffa7(%rip), %r8      # 0x5906a
leaq 0x2f963(%rip), %rdx     # 0x58a2d
leaq 0x20(%rsp), %rdi
pushq $0x1
popq %rsi
pushq $0x46
popq %rcx
callq 0x3b5b6
leaq 0x20(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x39b08
leaq 0x20(%rsp), %rdi
callq 0x3b616
movq 0x58(%rsp), %rdi
testq %rdi, %rdi
je 0x29103
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x38(%rsp), %rdi
callq 0x13646
leaq 0x2ff56(%rip), %rbx     # 0x5906a
leaq 0x58(%rsp), %rdi
leaq 0x16(%rsp), %rsi
movq %rbx, %rdx
callq 0x2aa2c
movb 0x58(%rsp), %al
leaq 0x28(%rsp), %r14
movb %al, -0x8(%r14)
andq $0x0, (%r14)
testb %al, %al
je 0x293f9
movq %r14, %rdi
callq 0x13646
leaq 0x60(%rsp), %r8
xorps %xmm0, %xmm0
leaq 0x30(%rsp), %rcx
movaps %xmm0, (%rcx)
andq $0x0, 0x10(%rcx)
leaq 0x2fa10(%rip), %rsi     # 0x58b73
leaq 0x2f997(%rip), %rdx     # 0x58b01
leaq 0x20(%rsp), %rdi
callq 0x2b8c8
leaq 0x30(%rsp), %rdi
callq 0x2b890
cmpb $0x0, 0x20(%rsp)
jne 0x291df
leaq 0x30(%rsp), %rdi
callq 0x3d5f6
movq 0x28(%rsp), %rax
testq %rax, %rax
je 0x2919c
movq (%rax), %rbx
leaq 0x2f88a(%rip), %rdx     # 0x58a2d
leaq 0x8(%rsp), %rdi
pushq $0x1
popq %rsi
pushq $0x4a
popq %rcx
movq %rbx, %r8
callq 0x3b5b6
leaq 0x8(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x39b08
leaq 0x8(%rsp), %rdi
callq 0x3b616
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x291df
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x28(%rsp), %rdi
callq 0x13646
leaq 0x2f9ae(%rip), %rdx     # 0x58b9e
leaq 0x30(%rsp), %rdi
leaq 0x16(%rsp), %rsi
callq 0x2aa2c
leaq 0x30(%rsp), %rdi
movb (%rdi), %al
xorb $0x1, %al
leaq 0x28(%rsp), %r14
movb %al, -0x8(%r14)
andq $0x0, (%r14)
callq 0x2b81c
cmpb $0x0, -0x8(%r14)
jne 0x2929e
leaq 0x8(%rsp), %rdi
callq 0x3d5f6
leaq 0x2f94d(%rip), %rdx     # 0x58b7f
leaq 0x2cedc(%rip), %rcx     # 0x56115
leaq 0x2cecf(%rip), %r8      # 0x5610f
leaq 0x30(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x399e5
movq 0x30(%rsp), %r8
leaq 0x2f7d2(%rip), %rdx     # 0x58a2d
leaq 0x18(%rsp), %rdi
pushq $0x1
popq %rsi
pushq $0x4c
popq %rcx
callq 0x3b5b6
leaq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x39b08
leaq 0x18(%rsp), %rdi
callq 0x3b616
leaq 0x30(%rsp), %rdi
callq 0xdbe8
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x2929e
movq (%rdi), %rax
callq *0x8(%rax)
movq %r14, %rdi
callq 0x13646
leaq 0x2f8df(%rip), %rdx     # 0x58b8c
leaq 0x30(%rsp), %rdi
leaq 0x16(%rsp), %rsi
callq 0x2aa2c
leaq 0x30(%rsp), %rdi
movb (%rdi), %al
xorb $0x1, %al
leaq 0x28(%rsp), %r14
movb %al, -0x8(%r14)
andq $0x0, (%r14)
callq 0x2b81c
cmpb $0x0, -0x8(%r14)
jne 0x2935b
leaq 0x8(%rsp), %rdi
callq 0x3d5f6
leaq 0x2f8a0(%rip), %rdx     # 0x58b8f
leaq 0x2ce1f(%rip), %rcx     # 0x56115
leaq 0x2ce12(%rip), %r8      # 0x5610f
leaq 0x30(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x399e5
movq 0x30(%rsp), %r8
leaq 0x2f715(%rip), %rdx     # 0x58a2d
leaq 0x18(%rsp), %rdi
pushq $0x1
popq %rsi
pushq $0x4d
popq %rcx
callq 0x3b5b6
leaq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x39b08
leaq 0x18(%rsp), %rdi
callq 0x3b616
leaq 0x30(%rsp), %rdi
callq 0xdbe8
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x2935b
movq (%rdi), %rax
callq *0x8(%rax)
movq %r14, %rdi
callq 0x13646
leaq 0x2f832(%rip), %rdx     # 0x58b9c
leaq 0x30(%rsp), %rdi
leaq 0x16(%rsp), %rsi
callq 0x2aa2c
leaq 0x30(%rsp), %rdi
movb (%rdi), %bl
movl %ebx, %eax
xorb $0x1, %al
leaq 0x28(%rsp), %r14
movb %al, -0x8(%r14)
andq $0x0, (%r14)
callq 0x2b81c
testb %bl, %bl
je 0x29476
leaq 0x8(%rsp), %rdi
callq 0x3d5f6
leaq 0x2f7f2(%rip), %rdx     # 0x58ba1
leaq 0x2cd5f(%rip), %rcx     # 0x56115
leaq 0x2cd52(%rip), %r8      # 0x5610f
leaq 0x30(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x399e5
movq 0x30(%rsp), %r8
leaq 0x2f655(%rip), %rdx     # 0x58a2d
leaq 0x18(%rsp), %rdi
pushq $0x1
popq %rsi
pushq $0x4e
popq %rcx
callq 0x3b5b6
leaq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x39b08
jmp 0x29452
leaq 0x8(%rsp), %rdi
callq 0x3d5f6
leaq 0x2f6f8(%rip), %rdx     # 0x58b02
leaq 0x2ccfe(%rip), %rcx     # 0x5610f
leaq 0x2ccfd(%rip), %r8      # 0x56115
leaq 0x30(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x399e5
movq 0x30(%rsp), %r8
leaq 0x2f5fa(%rip), %rdx     # 0x58a2d
leaq 0x18(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x49
popq %rcx
callq 0x3b5b6
leaq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x39b08
leaq 0x18(%rsp), %rdi
callq 0x3b616
leaq 0x30(%rsp), %rdi
callq 0xdbe8
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x29476
movq (%rdi), %rax
callq *0x8(%rax)
movq %r14, %rdi
callq 0x13646
leaq 0x58(%rsp), %rdi
callq 0x2b81c
leaq 0x78(%rsp), %rdi
callq 0x2b81c
addq $0x98, %rsp
popq %rbx
popq %r14
retq
jmp 0x294e7
jmp 0x294fb
jmp 0x2950a
jmp 0x2951f
jmp 0x294e7
jmp 0x294fb
jmp 0x2950a
jmp 0x2951f
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x3b616
jmp 0x294bf
movq %rax, %rbx
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x294d4
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x294d4
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
jmp 0x29525
jmp 0x294e7
jmp 0x294fb
jmp 0x2950a
jmp 0x2951f
jmp 0x294f6
jmp 0x294f6
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0x3b616
jmp 0x294fe
movq %rax, %rbx
jmp 0x2952a
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0xdbe8
jmp 0x2950d
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x29522
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x29522
movq %rax, %rbx
movq %r14, %rdi
callq 0x13646
leaq 0x58(%rsp), %rdi
callq 0x2b81c
jmp 0x295ca
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x2b890
jmp 0x2952a
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x3b616
jmp 0x2955a
movq %rax, %rbx
movq 0x58(%rsp), %rdi
testq %rdi, %rdi
je 0x2956f
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x2956f
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
jmp 0x295c0
jmp 0x295c7
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x3b616
jmp 0x2958a
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0xdbe8
jmp 0x29599
movq %rax, %rbx
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x295bd
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x295bd
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x2b890
jmp 0x295ca
movq %rax, %rbx
movq %r14, %rdi
callq 0x13646
jmp 0x295ca
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
callq 0x2b81c
movq %rbx, %rdi
callq 0xdaa0