// File: /workspace/github_c_makefile_star2_O0/tyabu12[P]pl0compiler/getSource.c
// Function: nextToken
Token nextToken() {             /* 次のトークンを読んで返す関数         */
    int i = 0;
    int num;
    KeyId cc;
    Token temp;
    char ident[MAXNAME];
    printcToken();              /* 前のトークンを印字                   */
    spaces = 0; CR = 0;
    while (1) {                 /* 次のトークンまでの空白や改行をカウント */
        if (ch == ' ')
            spaces++;
        else if (ch == '\t')
            spaces+=TAB;
        else if (ch == '\n'){
            spaces = 0;  CR++;
        }
        else break;
        ch = nextChar();
    }
    switch (cc = charClassT[(int)ch]) {
    case letter:                /* identifier                           */
        do {
            if (i < MAXNAME)
                ident[i] = ch;
            i++; ch = nextChar();
        } while (  charClassT[(int)ch] == letter
                || charClassT[(int)ch] == digit );
        if (i >= MAXNAME){
            errorMessage("too long");
            i = MAXNAME - 1;
        }
        ident[i] = '\0';
        for (i=0; i<end_of_KeyWd; i++)
            if (strcmp(ident, KeyWdT[i].word) == 0) {
                temp.kind = KeyWdT[i].keyId; /* 予約語の場合            */
                cToken = temp; printed = 0;
                return temp;
            }
        temp.kind = Id;         /* ユーザの宣言した名前の場合           */
        strcpy(temp.u.id, ident);
        break;
    case digit:                 /* number                               */
        num = 0;
        do {
            num = 10*num+(ch-'0');
            i++; ch = nextChar();
        } while (charClassT[(int)ch] == digit);
            if (i>MAXNUM)
                errorMessage("too large");
            temp.kind = Num;
        temp.u.value = num;
        break;
    case colon:
        if ((ch = nextChar()) == '=') {
            ch = nextChar();
            temp.kind = Assign; /* ":=" */
            break;
        } else {
            temp.kind = nul;
            break;
        }
    case Lss:
        if ((ch = nextChar()) == '=') {
            ch = nextChar();
            temp.kind = LssEq;  /* "<="                                 */
            break;
        } else if (ch == '>') {
            ch = nextChar();
            temp.kind = NotEq;  /* "<>"                                 */
            break;
        } else {
            temp.kind = Lss;
            break;
        }
    case Gtr:
        if ((ch = nextChar()) == '=') {
            ch = nextChar();
            temp.kind = GtrEq;  /* ">="                                 */
            break;
        } else {
            temp.kind = Gtr;
            break;
        }
    default:
        temp.kind = cc;
        ch = nextChar(); break;
    }
    cToken = temp; printed = 0;
    return temp;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x40(%rbp)
movq %rdi, -0x38(%rbp)
movl $0x0, -0x4(%rbp)
callq 0x5020
movl $0x0, 0x665e(%rip)      # 0xafa4
movl $0x0, 0x6658(%rip)      # 0xafa8
movsbl 0x661d(%rip), %eax      # 0xaf74
cmpl $0x20, %eax
jne 0x496d
movl 0x6642(%rip), %eax      # 0xafa4
addl $0x1, %eax
movl %eax, 0x6639(%rip)      # 0xafa4
jmp 0x49b7
movsbl 0x6600(%rip), %eax      # 0xaf74
cmpl $0x9, %eax
jne 0x498a
movl 0x6625(%rip), %eax      # 0xafa4
addl $0x5, %eax
movl %eax, 0x661c(%rip)      # 0xafa4
jmp 0x49b5
movsbl 0x65e3(%rip), %eax      # 0xaf74
cmpl $0xa, %eax
jne 0x49b1
movl $0x0, 0x6604(%rip)      # 0xafa4
movl 0x6602(%rip), %eax      # 0xafa8
addl $0x1, %eax
movl %eax, 0x65f9(%rip)      # 0xafa8
jmp 0x49b3
jmp 0x49c4
jmp 0x49b5
jmp 0x49b7
callq 0x4f00
movb %al, 0x65b2(%rip)       # 0xaf74
jmp 0x4950
movsbq 0x65a8(%rip), %rcx      # 0xaf74
leaq 0x65dd(%rip), %rax      # 0xafb0
movl (%rax,%rcx,4), %eax
movl %eax, -0xc(%rbp)
addl $-0x16, %eax
movl %eax, %ecx
movq %rcx, -0x48(%rbp)
subl $0x10, %eax
ja 0x4c5c
movq -0x48(%rbp), %rax
leaq 0x18fa(%rip), %rcx      # 0x62f0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
jmp 0x4a01
cmpl $0x1f, -0x4(%rbp)
jge 0x4a15
movb 0x6567(%rip), %cl       # 0xaf74
movslq -0x4(%rbp), %rax
movb %cl, -0x30(%rbp,%rax)
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
callq 0x4f00
movb %al, 0x654b(%rip)       # 0xaf74
movsbl 0x6544(%rip), %eax      # 0xaf74
movslq %eax, %rdx
movb $0x1, %al
leaq 0x6574(%rip), %rcx      # 0xafb0
cmpl $0x24, (%rcx,%rdx,4)
movb %al, -0x49(%rbp)
je 0x4a60
movsbl 0x6528(%rip), %eax      # 0xaf74
movslq %eax, %rcx
leaq 0x655a(%rip), %rax      # 0xafb0
cmpl $0x25, (%rax,%rcx,4)
sete %al
movb %al, -0x49(%rbp)
movb -0x49(%rbp), %al
testb $0x1, %al
jne 0x4a01
cmpl $0x1f, -0x4(%rbp)
jl 0x4a80
leaq 0x1a4d(%rip), %rdi      # 0x64c1
callq 0x4870
movl $0x1e, -0x4(%rbp)
movslq -0x4(%rbp), %rax
movb $0x0, -0x30(%rbp,%rax)
movl $0x0, -0x4(%rbp)
cmpl $0xe, -0x4(%rbp)
jge 0x4b01
leaq -0x30(%rbp), %rdi
movslq -0x4(%rbp), %rcx
leaq 0x462b(%rip), %rax      # 0x90d0
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rsi
callq 0x20b0
cmpl $0x0, %eax
jne 0x4af4
movq -0x40(%rbp), %rsi
movslq -0x4(%rbp), %rcx
leaq 0x4608(%rip), %rax      # 0x90d0
shlq $0x4, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
movl %eax, (%rsi)
leaq 0x64a1(%rip), %rdi      # 0xaf7c
movl $0x24, %edx
callq 0x20e0
movl $0x0, 0x6489(%rip)      # 0xaf78
jmp 0x4c8f
jmp 0x4af6
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x4a90
movq -0x40(%rbp), %rdi
movl $0x20, (%rdi)
addq $0x4, %rdi
leaq -0x30(%rbp), %rsi
callq 0x2050
jmp 0x4c70
movl $0x0, -0x8(%rbp)
imull $0xa, -0x8(%rbp), %eax
movsbl 0x6445(%rip), %ecx      # 0xaf74
subl $0x30, %ecx
addl %ecx, %eax
movl %eax, -0x8(%rbp)
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
callq 0x4f00
movb %al, 0x6429(%rip)       # 0xaf74
movsbl 0x6422(%rip), %eax      # 0xaf74
movslq %eax, %rcx
leaq 0x6454(%rip), %rax      # 0xafb0
cmpl $0x25, (%rax,%rcx,4)
je 0x4b24
cmpl $0xe, -0x4(%rbp)
jle 0x4b74
leaq 0x195b(%rip), %rdi      # 0x64ca
callq 0x4870
movq -0x40(%rbp), %rax
movl $0x21, (%rax)
movl -0x8(%rbp), %ecx
movl %ecx, 0x4(%rax)
jmp 0x4c70
callq 0x4f00
movb %al, 0x63e0(%rip)       # 0xaf74
movsbl %al, %eax
cmpl $0x3d, %eax
jne 0x4bb8
callq 0x4f00
movb %al, %cl
movq -0x40(%rbp), %rax
movb %cl, 0x63c7(%rip)       # 0xaf74
movl $0x1e, (%rax)
jmp 0x4c70
movq -0x40(%rbp), %rax
movl $0x22, (%rax)
jmp 0x4c70
callq 0x4f00
movb %al, 0x63a2(%rip)       # 0xaf74
movsbl %al, %eax
cmpl $0x3d, %eax
jne 0x4bf3
callq 0x4f00
movb %al, %cl
movq -0x40(%rbp), %rax
movb %cl, 0x6389(%rip)       # 0xaf74
movl $0x19, (%rax)
jmp 0x4c70
movsbl 0x637a(%rip), %eax      # 0xaf74
cmpl $0x3e, %eax
jne 0x4c18
callq 0x4f00
movb %al, %cl
movq -0x40(%rbp), %rax
movb %cl, 0x6364(%rip)       # 0xaf74
movl $0x18, (%rax)
jmp 0x4c70
movq -0x40(%rbp), %rax
movl $0x16, (%rax)
jmp 0x4c70
callq 0x4f00
movb %al, 0x6345(%rip)       # 0xaf74
movsbl %al, %eax
cmpl $0x3d, %eax
jne 0x4c50
callq 0x4f00
movb %al, %cl
movq -0x40(%rbp), %rax
movb %cl, 0x632c(%rip)       # 0xaf74
movl $0x1a, (%rax)
jmp 0x4c70
movq -0x40(%rbp), %rax
movl $0x17, (%rax)
jmp 0x4c70
movq -0x40(%rbp), %rax
movl -0xc(%rbp), %ecx
movl %ecx, (%rax)
callq 0x4f00
movb %al, 0x6304(%rip)       # 0xaf74
movq -0x40(%rbp), %rsi
leaq 0x6301(%rip), %rdi      # 0xaf7c
movl $0x24, %edx
callq 0x20e0
movl $0x0, 0x62e9(%rip)      # 0xaf78
movq -0x38(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax)