// File: /workspace/github_cpp_makefile_star2_O3/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 %rdi, %rbx
leaq 0x18(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq $0x0, -0x8(%rbp)
movb $0x0, (%rbp)
movq (%rdi), %rax
movq -0x18(%rax), %rax
testb $0x5, 0x20(%rdi,%rax)
jne 0x33ca2
movq %rsi, (%rsp)
xorl %r12d, %r12d
leaq 0x8(%rsp), %r15
xorl %r14d, %r14d
xorl %r13d, %r13d
movq %rbx, %rdi
callq 0xd6b0
cmpl $-0x1, %eax
je 0x33c54
testb $0x1, %r13b
je 0x33b59
cmpl $0x27, %eax
jne 0x33b75
xorl %r13d, %r13d
jmp 0x33c42
testb $0x1, %r14b
je 0x33b88
movsbl %al, %esi
movq %r15, %rdi
callq 0xd450
xorl %r13d, %r13d
xorl %r14d, %r14d
jmp 0x33c42
movb $0x1, %r13b
movsbl %al, %esi
movq %r15, %rdi
callq 0xd450
jmp 0x33c42
movb $0x1, %r14b
cmpl $0x26, %eax
jg 0x33c1a
leal -0x9(%rax), %ecx
cmpl $0x2, %ecx
jb 0x33ba5
cmpl $0x20, %eax
jne 0x33c2e
testb $0x1, %r12b
je 0x33bf6
leaq 0x38(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
addq %rsi, %rdx
leaq 0x28(%rsp), %rdi
callq 0x152da
movq (%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x33dd4
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x33bf6
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xd530
xorl %r13d, %r13d
movq 0x10(%rsp), %rdx
movq %r15, %rdi
xorl %esi, %esi
leaq 0x3b3cb(%rip), %rcx     # 0x6efd5
xorl %r8d, %r8d
callq 0xd960
xorl %r14d, %r14d
xorl %r12d, %r12d
jmp 0x33c42
cmpl $0x5c, %eax
je 0x33c29
cmpl $0x27, %eax
jne 0x33c2e
movb $0x1, %r13b
jmp 0x33c3c
xorl %r13d, %r13d
jmp 0x33c3f
movsbl %al, %esi
movq %r15, %rdi
callq 0xd450
xorl %r13d, %r13d
xorl %r14d, %r14d
movb $0x1, %r12b
movq (%rbx), %rax
movq -0x18(%rax), %rax
testb $0x5, 0x20(%rbx,%rax)
je 0x33b35
testb $0x1, %r12b
movq (%rsp), %r15
je 0x33ca2
leaq 0x58(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
addq %rsi, %rdx
leaq 0x48(%rsp), %rdi
callq 0x152da
leaq 0x48(%rsp), %rsi
movq %r15, %rdi
callq 0x33dd4
movq 0x48(%rsp), %rdi
cmpq %r14, %rdi
je 0x33ca2
movq 0x58(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x33cb9
movq 0x18(%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 0x33d05
movq 0x58(%rsp), %rsi
jmp 0x33cf8
jmp 0x33d02
movq %rax, %rbx
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x33d05
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xd530
jmp 0x33d05
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x33d1c
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
movq %rbx, %rdi
callq 0xda70