// File: stevedonovan[P]outstreams/reader-lineinfo.cpp
// Function: main
int main()
{
    outs.sep(' ');
    Reader rdr("instream.cpp");
    string tok;
    while (rdr(tok)) {
        if (tok == "Reader::getlineinfo") {
            // Reader::LineInfo Reader::getlineinfo (long p) {
            string type, mname;
            rdr (type)(mname);
            outs("type")(type,"q")(",")("name")(mname,"q")();
            break;
        }
    }
    auto pos = rdr.getlineinfo();
    outs("line")(pos.line)("column")(pos.column)();

    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x130, %rsp            # imm = 0x130
movl $0x0, -0x4(%rbp)
leaq 0x6ae7(%rip), %rdi      # 0xa2d0
movl $0x20, %esi
callq 0x6690
leaq -0x48(%rbp), %rdi
leaq 0x3834(%rip), %rsi      # 0x7032
leaq 0x3925(%rip), %rdx      # 0x712a
callq 0x3f70
leaq -0x68(%rbp), %rdi
callq 0x32d0
xorl %eax, %eax
movl %eax, %edx
leaq -0x48(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x48d0
movq %rax, -0xc8(%rbp)
jmp 0x382d
movq -0xc8(%rbp), %rdi
callq 0x4210
movb %al, -0xc9(%rbp)
jmp 0x3841
movb -0xc9(%rbp), %al
testb $0x1, %al
jne 0x3850
jmp 0x39d9
leaq 0x37e8(%rip), %rsi      # 0x703f
leaq -0x68(%rbp), %rdi
callq 0x3b80
movb %al, -0xca(%rbp)
jmp 0x3868
movb -0xca(%rbp), %al
testb $0x1, %al
jne 0x3877
jmp 0x39d4
leaq -0x98(%rbp), %rdi
movq %rdi, -0xe0(%rbp)
callq 0x32d0
leaq -0xb8(%rbp), %rdi
callq 0x32d0
movq -0xe0(%rbp), %rsi
xorl %eax, %eax
movl %eax, %edx
leaq -0x48(%rbp), %rdi
callq 0x48d0
movq %rax, -0xd8(%rbp)
jmp 0x38b3
movq -0xd8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %edx
leaq -0xb8(%rbp), %rsi
callq 0x48d0
jmp 0x38cc
leaq 0x69fd(%rip), %rdi      # 0xa2d0
leaq 0x3779(%rip), %rsi      # 0x7053
xorl %eax, %eax
movl %eax, %edx
callq 0x3bb0
movq %rax, -0xe8(%rbp)
jmp 0x38ec
movq -0xe8(%rbp), %rdi
leaq 0x375e(%rip), %rdx      # 0x7058
leaq -0x98(%rbp), %rsi
callq 0x3bf0
movq %rax, -0xf0(%rbp)
jmp 0x390f
movq -0xf0(%rbp), %rdi
leaq 0x373d(%rip), %rsi      # 0x705a
xorl %eax, %eax
movl %eax, %edx
callq 0x3bb0
movq %rax, -0xf8(%rbp)
jmp 0x392f
movq -0xf8(%rbp), %rdi
leaq 0x371f(%rip), %rsi      # 0x705c
xorl %eax, %eax
movl %eax, %edx
callq 0x3bb0
movq %rax, -0x100(%rbp)
jmp 0x394f
movq -0x100(%rbp), %rdi
leaq 0x36fb(%rip), %rdx      # 0x7058
leaq -0xb8(%rbp), %rsi
callq 0x3bf0
movq %rax, -0x108(%rbp)
jmp 0x3972
movq -0x108(%rbp), %rdi
callq 0x6730
jmp 0x3980
leaq -0xb8(%rbp), %rdi
callq 0x33d8
leaq -0x98(%rbp), %rdi
callq 0x33d8
jmp 0x39d9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x3ab1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x33d8
leaq -0x98(%rbp), %rdi
callq 0x33d8
jmp 0x3ab1
jmp 0x3813
leaq -0x48(%rbp), %rdi
movq $-0x1, %rsi
callq 0x54d0
movq %rax, -0x110(%rbp)
jmp 0x39f2
movq -0x110(%rbp), %rax
movq %rax, -0xc0(%rbp)
leaq 0x68c9(%rip), %rdi      # 0xa2d0
leaq 0x3653(%rip), %rsi      # 0x7061
xorl %eax, %eax
movl %eax, %edx
callq 0x3bb0
movq %rax, -0x118(%rbp)
jmp 0x3a20
movq -0x118(%rbp), %rdi
movl -0xc0(%rbp), %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x3c30
movq %rax, -0x120(%rbp)
jmp 0x3a3f
movq -0x120(%rbp), %rdi
leaq 0x3619(%rip), %rsi      # 0x7066
xorl %eax, %eax
movl %eax, %edx
callq 0x3bb0
movq %rax, -0x128(%rbp)
jmp 0x3a5f
movq -0x128(%rbp), %rdi
movl -0xbc(%rbp), %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x3c30
movq %rax, -0x130(%rbp)
jmp 0x3a7e
movq -0x130(%rbp), %rdi
callq 0x6730
jmp 0x3a8c
movl $0x0, -0x4(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x33d8
leaq -0x48(%rbp), %rdi
callq 0x4170
movl -0x4(%rbp), %eax
addq $0x130, %rsp            # imm = 0x130
popq %rbp
retq
leaq -0x68(%rbp), %rdi
callq 0x33d8
leaq -0x48(%rbp), %rdi
callq 0x4170
movq -0x70(%rbp), %rdi
callq 0x3340
nopl (%rax)