// File: /workspace/github_cpp_makefile_star2_O2/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, %r14
leaq 0x18(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movq %rdi, %rbx
movb $0x0, (%rax)
xorl %r12d, %r12d
leaq 0x8(%rsp), %r15
xorl %r13d, %r13d
xorl %ebp, %ebp
movq (%rbx), %rax
movq -0x18(%rax), %rax
testb $0x5, 0x20(%rbx,%rax)
jne 0x2cd59
movq %rbx, %rdi
callq 0xd700
cmpl $-0x1, %eax
je 0x2cd59
testb $0x1, %r12b
je 0x2ccb5
cmpl $0x27, %eax
setne %r12b
je 0x2cc76
movsbl %al, %esi
movq %r15, %rdi
callq 0xd4a0
jmp 0x2cc76
testb $0x1, %r13b
je 0x2ccce
xorl %r12d, %r12d
movsbl %al, %esi
movq %r15, %rdi
callq 0xd4a0
xorl %r13d, %r13d
jmp 0x2cc76
leal -0x9(%rax), %ecx
cmpl $0x2, %ecx
jb 0x2ccfc
cmpl $0x20, %eax
je 0x2ccfc
movb $0x1, %bpl
xorl %r12d, %r12d
movb $0x1, %r13b
cmpl $0x5c, %eax
je 0x2cc76
cmpl $0x27, %eax
jne 0x2cd43
movb $0x1, %r12b
xorl %r13d, %r13d
movb $0x1, %bpl
jmp 0x2cc76
testb $0x1, %bpl
je 0x2cd27
leaq 0x48(%rsp), %rdi
movq %r15, %rsi
callq 0xd880
movq %r14, %rdi
leaq 0x48(%rsp), %r12
movq %r12, %rsi
callq 0x2ce84
movq %r12, %rdi
callq 0xdbe8
xorl %r12d, %r12d
movq %r15, %rdi
leaq 0x2c336(%rip), %rsi     # 0x5906a
callq 0xdb70
xorl %r13d, %r13d
xorl %ebp, %ebp
jmp 0x2cc76
xorl %r12d, %r12d
movsbl %al, %esi
movq %r15, %rdi
callq 0xd4a0
xorl %r13d, %r13d
jmp 0x2cc76
testb $0x1, %bpl
je 0x2cd85
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xd880
leaq 0x28(%rsp), %rsi
movq %r14, %rdi
callq 0x2ce84
leaq 0x28(%rsp), %rdi
callq 0xdbe8
leaq 0x8(%rsp), %rdi
callq 0xdbe8
movq %rbx, %rax
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
jmp 0x2cdb7
jmp 0x2cdc0
jmp 0x2cdc0
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0xdbe8
jmp 0x2cdc3
jmp 0x2cdc0
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0xdbe8
movq %rbx, %rdi
callq 0xdaa0
nop