// File: /workspace/github_c_makefile_star2_O2/afi-lambda[P]a_little_smalltalk/src/filein.c
// Function: fileIn
void fileIn(FILE *fd, boolean printit)
{
    while (fgets(textBuffer, TextBufferSize, fd) != NULL)
    {
        lexinit(textBuffer);
        if (token == inputend)
            ; /* do nothing, get next line */
        else if ((token == binary) && streq(tokenString, "\""))
            ; /* do nothing, its a comment */
        /* Syntax for Class and Methods definitions
         
         Number extend [
           radiusToArea [
             ^self squared * Float pi
           ]
           radiusToCircumference [
             ^self * 2 * Float pi
           ]
         ]
        */
        else if ((token == nameconst) && streq(tokenString,"Class"))
            readClassDeclaration();
        else if ((token == nameconst) && streq(tokenString,"Methods"))
            readMethods(fd, printit);
        else
            sysError("unrecognized line", textBuffer);
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x238, %rsp            # imm = 0x238
movl %esi, 0x1c(%rsp)
movq %rdi, %r14
leaq 0x227e1(%rip), %r12     # 0x280a0
leaq 0x22c4a(%rip), %rbx     # 0x28510
leaq 0x22bf3(%rip), %r13     # 0x284c0
leaq 0x30(%rsp), %r15
leaq 0x3f08(%rip), %rbp      # 0x97e1
movq %r12, %rdi
movl $0x400, %esi            # imm = 0x400
movq %r14, %rdx
callq 0x2110
testq %rax, %rax
je 0x5cf7
movq %r12, %rdi
callq 0x5d80
movl (%rbx), %eax
cmpl $0x1, %eax
je 0x591b
cmpl $0xb, %eax
je 0x58d9
cmpl $0x9, %eax
jne 0x5945
cmpb $0x22, (%r13)
jne 0x5945
cmpb $0x0, 0x1(%r13)
jne 0x5945
jmp 0x58d9
movq %r13, %rdi
leaq 0x378a(%rip), %rsi      # 0x90af
callq 0x2150
testl %eax, %eax
je 0x5b69
movq %r13, %rdi
leaq 0x3e9d(%rip), %rsi      # 0x97d9
callq 0x2150
testl %eax, %eax
je 0x5952
movq %rbp, %rdi
movq %r12, %rsi
callq 0x4938
jmp 0x58d9
callq 0x5d93
cmpl $0x1, %eax
je 0x596f
leaq 0x3eb7(%rip), %rdi      # 0x981a
leaq 0x3ebd(%rip), %rsi      # 0x9827
callq 0x4938
callq 0x5d09
movw %ax, 0x10(%rsp)
movswl %ax, %ebx
movl %ebx, %edi
callq 0x63d4
movl %ebx, 0x20(%rsp)
movl %ebx, %eax
shrl %eax
movswq %ax, %r13
cmpl $0x0, 0x1c(%rsp)
leaq 0x8895(%rip), %rbx      # 0xe230
je 0x59db
movq %r13, %rax
shlq $0x4, %rax
movq 0x8(%rbx,%rax), %rax
movswl (%rax), %edi
leaq 0x21ecd(%rip), %rbp     # 0x27880
movw %di, (%rbp)
callq 0x2b28
movswl (%rbp), %eax
leaq 0x3e1a(%rip), %rbp      # 0x97e1
shrl %eax
movswq %ax, %rax
shlq $0x4, %rax
movq 0x8(%rbx,%rax), %rax
movq %rax, 0x28(%rsp)
shlq $0x4, %r13
movq 0x8(%rbx,%r13), %rax
movzwl 0x4(%rax), %ebx
testw %bx, %bx
jne 0x5a15
leaq 0x883c(%rip), %rax      # 0xe230
addq %rax, %r13
addq $0x8, %r13
pushq $0x27
popq %rdi
callq 0x354a
movl %eax, %ebx
movq (%r13), %rax
movw %bx, 0x4(%rax)
movswl %bx, %edi
callq 0x2b30
movswl %bx, %eax
movl %eax, 0xc(%rsp)
leaq 0x22aed(%rip), %rbx     # 0x28510
cmpb $0x7c, %al
jne 0x5a36
movq %r12, %rdi
leaq 0x31(%rsp), %rsi
callq 0x2050
jmp 0x5a3d
movb $0x0, 0x22663(%rip)     # 0x280a0
movq %r15, %rdi
movl $0x200, %esi            # imm = 0x200
movq %r14, %rdx
callq 0x2110
testq %rax, %rax
je 0x5b4a
movzbl 0x30(%rsp), %eax
cmpl $0x5d, %eax
je 0x5a72
cmpl $0x7c, %eax
je 0x5a72
movq %r12, %rdi
movq %r15, %rsi
callq 0x21c0
jmp 0x5a3d
xorl %eax, %eax
callq 0x3707
movl 0x77e9(%rip), %edx      # 0xd268
movswl %ax, %ebx
movl %ebx, %edi
movq %r12, %rsi
callq 0x649e
testl %eax, %eax
je 0x5b20
movl %ebx, %eax
shrl %eax
movswq %ax, %rax
shlq $0x4, %rax
leaq 0x8789(%rip), %rbp      # 0xe230
movq 0x8(%rbp,%rax), %rax
movzwl 0x2(%rax), %r13d
movzwl 0x10(%rsp), %ecx
movw %cx, 0xc(%rax)
movl 0x20(%rsp), %edi
callq 0x2b30
movswl %r13w, %r13d
cmpl $0x0, 0x1c(%rsp)
je 0x5b06
leaq 0x21dab(%rip), %rbp     # 0x27880
movw %r13w, (%rbp)
movl %r13d, %edi
callq 0x2b28
movswl (%rbp), %eax
shrl %eax
movswq %ax, %rax
shlq $0x4, %rax
leaq 0x8739(%rip), %rcx      # 0xe230
movq 0x8(%rcx,%rax), %rsi
movq 0x28(%rsp), %rdi
callq 0x49c9
movl 0xc(%rsp), %edi
movl %r13d, %esi
movl %r13d, %edx
movl %ebx, %ecx
callq 0x2da8
leaq 0x3cc3(%rip), %rbp      # 0x97e1
jmp 0x5b35
movl %ebx, %edi
callq 0x2b30
movl %ebx, %edi
callq 0x2b55
xorl %eax, %eax
callq 0x49ca
movb 0x30(%rsp), %al
cmpb $0x5d, %al
leaq 0x229ce(%rip), %rbx     # 0x28510
jne 0x5a23
jmp 0x5b5d
leaq 0x3cef(%rip), %rdi      # 0x9840
leaq 0x3cff(%rip), %rsi      # 0x9857
callq 0x4938
leaq 0x2295c(%rip), %r13     # 0x284c0
jmp 0x58d9
callq 0x5d93
cmpl $0x1, %eax
je 0x5b86
leaq 0x3c79(%rip), %rdi      # 0x97f3
leaq 0x3c82(%rip), %rsi      # 0x9803
callq 0x4938
callq 0x5d09
movl %eax, %ebp
callq 0x5d93
xorl %edi, %edi
movswl %bp, %ebp
cmpl $0x1, %eax
jne 0x5bf1
callq 0x5d09
movl %ebp, %ecx
shrl %ecx
movswq %cx, %rcx
shlq $0x4, %rcx
leaq 0x867c(%rip), %r13      # 0xe230
movq 0x8(%r13,%rcx), %rcx
movw %ax, 0x6(%rcx)
movswl %ax, %ebx
movl %ebx, %edi
callq 0x2b30
shrl %ebx
movswq %bx, %rax
leaq 0x2293c(%rip), %rbx     # 0x28510
shlq $0x4, %rax
movq 0x8(%r13,%rax), %rax
movswl 0x2(%rax), %edi
callq 0x2d90
movl %eax, %r13d
callq 0x5d93
movq %r13, %rdi
cmpl $0x1, (%rbx)
jne 0x5c2d
movq %rdi, 0x10(%rsp)
movq %rbp, 0x20(%rsp)
xorl %r13d, %r13d
xorl %ebp, %ebp
pushq $0x1
popq %rax
cmpl $0x1, %eax
jne 0x5c46
leaq 0x228ac(%rip), %rdi     # 0x284c0
callq 0x3368
movw %ax, 0x30(%rsp,%rbp,2)
incq %rbp
callq 0x5d93
movl (%rbx), %eax
incl %r13d
jmp 0x5c08
shrl %ebp
movswq %bp, %rbx
leaq 0x22886(%rip), %r13     # 0x284c0
leaq 0x85ef(%rip), %rbp      # 0xe230
jmp 0x5cd1
movl %ebp, %edi
callq 0x318d
cwtl
movl %eax, 0xc(%rsp)
shrl %eax
movswq %ax, %rax
shlq $0x4, %rax
leaq 0x85cd(%rip), %rcx      # 0xe230
leaq (%rcx,%rax), %rbx
addq $0x8, %rbx
movq 0x10(%rsp), %rax
movl %eax, %eax
addq %rbp, %rax
movq %rax, 0x10(%rsp)
movl %r13d, %r13d
xorl %ebp, %ebp
cmpq %rbp, %r13
je 0x5c9a
movswl 0x30(%rsp,%rbp,2), %edi
movq (%rbx), %rax
movw %di, (%rax,%rbp,2)
incq %rbp
callq 0x2b30
jmp 0x5c7f
movq 0x20(%rsp), %rax
shrl %eax
movswq %ax, %rbx
movq %rbx, %rax
shlq $0x4, %rax
leaq 0x857d(%rip), %rbp      # 0xe230
movq 0x8(%rbp,%rax), %rax
movl 0xc(%rsp), %edi
movw %di, 0x8(%rax)
callq 0x2b30
leaq 0x227f4(%rip), %r13     # 0x284c0
movq 0x10(%rsp), %rdi
callq 0x2d9b
shlq $0x4, %rbx
movq 0x8(%rbp,%rbx), %rcx
movw %ax, 0x2(%rcx)
movswl %ax, %edi
callq 0x2b30
leaq 0x2281e(%rip), %rbx     # 0x28510
jmp 0x58d2
addq $0x238, %rsp            # imm = 0x238
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq