// File: /workspace/github_cpp_makefile_star2_O1/fondoger[P]C0-Compiler/src/symbol.cpp
// Function: readSymbol()
void readSymbol() 
{
goto_label:
    while (isBlankCharacter(ch))
        nextch();
    g_word_pos = g_pos - 1;
    if (std::isdigit(ch)) {
        readUnsignedInteger();
        return;
    }
    if (std::isalpha(ch) || ch == '_') {
        readIdentifier();
        return;
    }
    switch(ch) {
        case '\"': readString(); break;
        case '\'': readCharacter(); break;
        case '>': nextch();
                  if (ch == '=') {
                      g_sym = GEQ;
                      nextch();
                  } else g_sym = GTR;
                  break;
        case '<': nextch();
                  if (ch == '=') {
                      g_sym = LEQ;
                      nextch();
                  } else g_sym = LSS;
                  break;
        case '!': nextch();
                  if (ch != '=') {
                      std::cout << "operater ! is not allowed" 
                           << std::endl;
                      std::exit(1);
                  }
                  g_sym = NEQ;
                  nextch();
                  break;
        case '=': nextch();
                  if (ch == '=') {
                      g_sym = EQL;
                      nextch();
                  } else g_sym = BECOMES;
                  break;
        default: if (char2sym[(int)ch] == 0) {
                     error(ERR_UNSUPPORTED_CHARACTER);
                     nextch();
                     goto goto_label;
                 }
                 g_sym = char2sym[(int)ch];
                 nextch();
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
leaq -0x78(%rbp), %r12
leaq 0x344e(%rip), %r14      # 0x1d2ae
leaq -0x88(%rbp), %r15
movabsq $0x100000600, %rbx      # imm = 0x100000600
movzbl 0x9407(%rip), %r13d     # 0x23280
cmpq $0x20, %r13
ja 0x19e8c
btq %r13, %rbx
jae 0x19e8c
callq 0x1a3ba
jmp 0x19e71
movsbl %r13b, %edi
movl 0xf80a(%rip), %eax      # 0x296a0
decl %eax
movl %eax, 0xf80a(%rip)      # 0x296a8
leal -0x30(%rdi), %eax
cmpl $0xa, %eax
jb 0x19f55
callq 0x3430
cmpb $0x5f, %r13b
je 0x19fa3
testl %eax, %eax
jne 0x19fa3
cmpl $0x3b, %r13d
jg 0x19ee6
cmpl $0x21, %r13d
je 0x1a1e8
cmpl $0x22, %r13d
je 0x1a064
cmpl $0x27, %r13d
jne 0x19f04
jmp 0x1a135
cmpl $0x3c, %r13d
je 0x1a043
cmpl $0x3d, %r13d
je 0x1a022
cmpl $0x3e, %r13d
je 0x1a209
movsbq %r13b, %rax
leaq 0xbf21(%rip), %rcx      # 0x25e30
movl (%rcx,%rax,4), %eax
testl %eax, %eax
jne 0x1a226
movq %r12, -0x88(%rbp)
movq %r15, %rdi
leaq 0x336e(%rip), %rsi      # 0x1d299
movq %r14, %rdx
callq 0x14454
movq %r15, %rdi
callq 0xdcc8
movq -0x88(%rbp), %rdi
cmpq %r12, %rdi
je 0x19e85
callq 0x32a0
jmp 0x19e85
movl $0x0, 0xf6fd(%rip)      # 0x2965c
leal -0x30(%r13), %eax
cmpb $0x9, %al
ja 0x19f94
movzbl %r13b, %eax
movl 0xf6eb(%rip), %ecx      # 0x2965c
leal (%rcx,%rcx,4), %ecx
leal (%rax,%rcx,2), %eax
addl $-0x30, %eax
movl %eax, 0xf6dc(%rip)      # 0x2965c
callq 0x1a3ba
movb 0x92f4(%rip), %r13b     # 0x23280
leal -0x30(%r13), %eax
cmpb $0xa, %al
jb 0x19f67
movl $0x11, 0xf692(%rip)     # 0x29630
jmp 0x1a2d4
movq $0x0, 0xf692(%rip) # 0x29640
movq 0xf683(%rip), %rax      # 0x29638
movb $0x0, (%rax)
leaq 0xf679(%rip), %rbx      # 0x29638
movsbl 0x92b9(%rip), %r14d     # 0x23280
leal -0x30(%r14), %eax
cmpl $0xa, %eax
jb 0x19fe2
movl %r14d, %edi
callq 0x3430
cmpb $0x5f, %r14b
je 0x19fe2
testl %eax, %eax
je 0x1a002
movl %r14d, %edi
callq 0x33c0
movb %al, 0x9290(%rip)       # 0x23280
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3250
callq 0x1a3ba
jmp 0x19fbf
leaq 0xc027(%rip), %rdi      # 0x26030
leaq 0xf628(%rip), %rsi      # 0x29638
callq 0x1a670
movl (%rax), %eax
movl %eax, 0xf613(%rip)      # 0x29630
jmp 0x1a2d4
callq 0x1a3ba
cmpb $0x3d, 0x9252(%rip)     # 0x23280
jne 0x1a231
movl $0x17, 0xf5f2(%rip)     # 0x29630
jmp 0x1a2cf
callq 0x1a3ba
cmpb $0x3d, 0x9231(%rip)     # 0x23280
jne 0x1a240
movl $0x1a, 0xf5d1(%rip)     # 0x29630
jmp 0x1a2cf
movq $0x0, 0xf5f9(%rip) # 0x29668
movq 0xf5ea(%rip), %rax      # 0x29660
movb $0x0, (%rax)
callq 0x1a3ba
leaq -0x38(%rbp), %r12
leaq 0xf5d7(%rip), %rbx      # 0x29660
leaq -0x48(%rbp), %r14
leaq -0x68(%rbp), %r15
movzbl 0x91e8(%rip), %eax      # 0x23280
cmpl $0x22, %eax
je 0x1a2c5
cmpl $0xa, %eax
je 0x1a25b
movl %eax, %ecx
andb $-0x2, %cl
cmpb $0x20, %cl
sete %cl
leal -0x23(%rax), %edx
cmpb $0x5c, %dl
setb %dl
orb %cl, %dl
je 0x1a0cf
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3250
jmp 0x1a12b
movq %r12, -0x48(%rbp)
movq $0x1b, -0x68(%rbp)
movq %r14, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x3490
movq %rax, -0x48(%rbp)
movq -0x68(%rbp), %rcx
movq %rcx, -0x38(%rbp)
movups 0x323d(%rip), %xmm0     # 0x1d338
movups %xmm0, 0xb(%rax)
movups 0x3227(%rip), %xmm0     # 0x1d32d
movups %xmm0, (%rax)
movq %rcx, -0x40(%rbp)
movq -0x48(%rbp), %rax
movb $0x0, (%rax,%rcx)
movq %r14, %rdi
callq 0xdcc8
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x1a12b
callq 0x32a0
callq 0x1a3ba
jmp 0x1a091
callq 0x1a3ba
movzbl 0x913f(%rip), %eax      # 0x23280
leal -0x2a(%rax), %ecx
cmpl $0x35, %ecx
ja 0x1a2e3
movabsq $0x2000000000002b, %rdx # imm = 0x2000000000002B
btq %rcx, %rdx
jae 0x1a2e3
movb 0x9119(%rip), %al       # 0x23280
movb %al, 0xf4eb(%rip)       # 0x29658
callq 0x1a3ba
cmpb $0x27, 0x9107(%rip)     # 0x23280
je 0x1a1d9
movq 0x8e4e(%rip), %rbx      # 0x22fd0
leaq 0x3166(%rip), %rsi      # 0x1d2ef
movl $0x26, %edx
movq %rbx, %rdi
callq 0x3340
movb 0x90e4(%rip), %al       # 0x23280
leaq -0x68(%rbp), %rsi
movb %al, (%rsi)
movl $0x1, %edx
movq %rbx, %rdi
callq 0x3340
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x32b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x31d0
movl $0x10, 0xf44d(%rip)     # 0x29630
jmp 0x1a2cf
callq 0x1a3ba
cmpb $0x3d, 0x908c(%rip)     # 0x23280
jne 0x1a362
movl $0x18, 0xf42c(%rip)     # 0x29630
jmp 0x1a2cf
callq 0x1a3ba
cmpb $0x3d, 0x906b(%rip)     # 0x23280
jne 0x1a24f
movl $0x1c, 0xf40f(%rip)     # 0x29630
jmp 0x1a2cf
movl %eax, 0xf404(%rip)      # 0x29630
jmp 0x1a2cf
movl $0x23, 0xf3f5(%rip)     # 0x29630
jmp 0x1a2d4
movl $0x19, 0xf3e6(%rip)     # 0x29630
jmp 0x1a2d4
movl $0x1b, 0xf3d7(%rip)     # 0x29630
jmp 0x1a2d4
leaq -0x58(%rbp), %r15
movq %r15, -0x10(%r15)
leaq -0x90(%rbp), %rbx
movq $0x16, (%rbx)
leaq -0x68(%rbp), %r14
movq %r14, %rdi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x3490
movq %rax, (%r14)
movq (%rbx), %rcx
movq %rcx, 0x10(%r14)
movups 0x3083(%rip), %xmm0     # 0x1d316
movups %xmm0, (%rax)
movabsq $0x676e697274732072, %rdx # imm = 0x676E697274732072
movq %rdx, 0xe(%rax)
movq %rcx, 0x8(%r14)
movq (%r14), %rax
movb $0x0, (%rax,%rcx)
movq %r14, %rdi
callq 0xdcc8
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0x1a2c5
callq 0x32a0
movl $0x12, 0xf361(%rip)     # 0x29630
callq 0x1a3ba
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movsbl %al, %edi
leal -0x30(%rdi), %eax
cmpl $0xa, %eax
jb 0x1a161
callq 0x3430
testl %eax, %eax
jne 0x1a161
movq 0x8cca(%rip), %rbx      # 0x22fd0
leaq 0x2fc1(%rip), %rsi      # 0x1d2ce
movl $0x20, %edx
movq %rbx, %rdi
callq 0x3340
movb 0x8f60(%rip), %al       # 0x23280
leaq -0x68(%rbp), %rsi
movb %al, (%rsi)
movl $0x1, %edx
movq %rbx, %rdi
callq 0x3340
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x32b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x31d0
jmp 0x1a161
movq 0x8c67(%rip), %rdi      # 0x22fd0
leaq 0x2f0f(%rip), %rsi      # 0x1d27f
callq 0x32c0
movq %rax, %rdi
callq 0x3130
movl $0x1, %edi
callq 0x3360
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
jne 0x1a3ad
jmp 0x1a3b2
movq %rax, %rbx
movq -0x48(%rbp), %rdi
jmp 0x1a3a8
movq %rax, %rbx
movq -0x88(%rbp), %rdi
cmpq %r12, %rdi
je 0x1a3b2
callq 0x32a0
movq %rbx, %rdi
callq 0x3480