// File: /workspace/github_cpp_makefile_star2_O1/halfflat[P]tinyopt/include/tinyopt/tinyopt.h
// Function: to::operator>>(std::istream&, to::saved_options&)
std::istream& operator>>(std::istream& in, saved_options& s) {
        std::string w;
        bool have_word = false;
        bool quote = false; // true => within single quotes.
        bool escape = false; // true => previous character was backslash.
        while (in) {
            int c = in.get();
            if (c==EOF) break;

            if (quote) {
                if (c!='\'') w += c;
                else quote = false;
            }
            else {
                if (escape) {
                    w += c;
                    escape = false;
                }
                else if (c=='\\') {
                    escape = true;
                    have_word = true;
                }
                else if (c=='\'') {
                    quote = true;
                    have_word = true;
                }
                else if (c!=' ' && c!='\t' && c!='\n') {
                    w += c;
                    have_word = true;
                }
                else {
                    if (have_word) s.add(w);
                    have_word = false;
                    w = "";
                }
            }
        }

        if (have_word) s.add(w);
        return in;
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %rsi, 0x20(%rsp)
movq %rdi, %rbx
leaq 0x10(%rsp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
xorl %r13d, %r13d
xorl %r12d, %r12d
xorl %r14d, %r14d
movq (%rbx), %rax
movq -0x18(%rax), %rax
testb $0x5, 0x20(%rbx,%rax)
jne 0x34e3c
movq %rbx, %rdi
callq 0xd6b0
movl %eax, %ebp
cmpl $-0x1, %eax
je 0x34d5e
testb $0x1, %r13b
je 0x34d49
cmpl $0x27, %ebp
jne 0x34d6e
xorl %r13d, %r13d
jmp 0x34d5e
testb $0x1, %r12b
je 0x34d7f
movsbl %bpl, %esi
movq %rsp, %rdi
callq 0xd450
xorl %r12d, %r12d
movl %r14d, %r15d
movl %r15d, %r14d
cmpl $-0x1, %ebp
jne 0x34d18
jmp 0x34e3f
movsbl %bpl, %esi
movq %rsp, %rdi
callq 0xd450
movl %r14d, %r15d
jmp 0x34d61
movb $0x1, %r15b
cmpl $0x26, %ebp
jg 0x34e0e
leal -0x9(%rbp), %eax
cmpl $0x2, %eax
jb 0x34d9c
cmpl $0x20, %ebp
jne 0x34e2b
testb $0x1, %r14b
je 0x34ded
leaq 0x38(%rsp), %rax
movq %rax, 0x28(%rsp)
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
addq %rsi, %rdx
leaq 0x28(%rsp), %rdi
callq 0x155e4
movq 0x20(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x34fc4
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x34ded
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xd530
xorl %r15d, %r15d
movq 0x8(%rsp), %rdx
movq %rsp, %rdi
xorl %esi, %esi
leaq 0x3c1f7(%rip), %rcx     # 0x70ff8
xorl %r8d, %r8d
callq 0xd960
jmp 0x34d61
cmpl $0x5c, %ebp
je 0x34e23
cmpl $0x27, %ebp
jne 0x34e2b
movb $0x1, %r13b
movb $0x1, %r15b
jmp 0x34d61
movb $0x1, %r12b
jmp 0x34d61
movsbl %bpl, %esi
movq %rsp, %rdi
callq 0xd450
jmp 0x34d61
movl %r14d, %r15d
testb $0x1, %r15b
je 0x34e8a
leaq 0x58(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
addq %rsi, %rdx
leaq 0x48(%rsp), %rdi
callq 0x155e4
leaq 0x48(%rsp), %rsi
movq 0x20(%rsp), %rdi
callq 0x34fc4
movq 0x48(%rsp), %rdi
cmpq %r14, %rdi
je 0x34e8a
movq 0x58(%rsp), %rsi
incq %rsi
callq 0xd530
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x34ea5
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xd530
movq %rbx, %rax
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r14, %rdi
je 0x34ef1
movq 0x58(%rsp), %rsi
jmp 0x34ee4
jmp 0x34eee
movq %rax, %rbx
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x34ef1
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xd530
jmp 0x34ef1
movq %rax, %rbx
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x34f0c
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xd530
movq %rbx, %rdi
callq 0xda70