// File: /workspace/github_cpp_makefile_star2_O3/navrajsaini[P]PL_Compiler_design_project/scanner.cpp
// Function: Scanner::numericVAl(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
int Scanner::numericVAl(string s)
{
   //cout<<s<<", "<<s.size()<<endl;
   int sSize = s.size()-1;
   int total = 0;
   int inc = 0;
   for(int i = sSize; 0 <= i; i--)
   {
      //cout<<inc<<", "<<sSize;
      char a = s[i];
      switch(a)
      {
	 case '1':
	    total = total + (1 * pow(10, inc));
	    break;
	 case '2':
	    total = total + (2 * pow(10, inc));
	    break;
	 case '3':
	    total = total + (3 * pow(10, inc));
	    break;	    
	 case '4':
	    total = total + (4 * pow(10, inc));
	    break;			 
	 case '5':
	    total = total + (5 * pow(10, inc));
	    break;	    
	 case '6':
	    total = total + (6 * pow(10, inc));
	    break;			 
	 case '7':
	    total = total + (7 * pow(10, inc));
	    break;	    
	 case '8':
	    total = total + (8 * pow(10, inc));
	    break;	    
	 case '9':
	    total = total + (9 * pow(10, inc));
	    break;	    
	 case '0':
	    total=total;	    
	 default:
	    break;
      }
      //cout<<", "<<total<<endl; 
      inc++;
   }
   //cout<<total<<endl;
   return total;  
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl 0x8(%rsi), %r14d
movl %r14d, %eax
decl %eax
js 0xbb59
movq %rsi, %rbx
movl %eax, %r15d
xorpd %xmm1, %xmm1
xorl %eax, %eax
leaq 0x7b6f(%rip), %r12      # 0x134d0
xorl %r13d, %r13d
movq (%rbx), %rcx
movzbl (%rcx,%r15), %ecx
addl $-0x31, %ecx
cmpl $0x8, %ecx
ja 0xbb40
movslq (%r12,%rcx,4), %rcx
addq %r12, %rcx
movsd %xmm1, -0x38(%rbp)
jmpq *%rcx
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x30(%rbp)
xorps %xmm1, %xmm1
cvtsi2sd %r13d, %xmm1
movsd 0x7ae6(%rip), %xmm0     # 0x13488
callq 0x2300
movsd -0x38(%rbp), %xmm1
jmp 0xbb37
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x30(%rbp)
xorps %xmm1, %xmm1
cvtsi2sd %r13d, %xmm1
movsd 0x7abb(%rip), %xmm0     # 0x13488
callq 0x2300
movsd -0x38(%rbp), %xmm1
mulsd 0x7ad1(%rip), %xmm0     # 0x134b0
jmp 0xbb37
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x30(%rbp)
xorps %xmm1, %xmm1
cvtsi2sd %r13d, %xmm1
movsd 0x7a88(%rip), %xmm0     # 0x13488
callq 0x2300
movsd -0x38(%rbp), %xmm1
mulsd 0x7aae(%rip), %xmm0     # 0x134c0
jmp 0xbb37
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x30(%rbp)
xorps %xmm1, %xmm1
cvtsi2sd %r13d, %xmm1
movsd 0x7a55(%rip), %xmm0     # 0x13488
callq 0x2300
movsd -0x38(%rbp), %xmm1
mulsd 0x7a73(%rip), %xmm0     # 0x134b8
jmp 0xbb37
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x30(%rbp)
xorps %xmm1, %xmm1
cvtsi2sd %r13d, %xmm1
movsd 0x7a22(%rip), %xmm0     # 0x13488
callq 0x2300
movsd -0x38(%rbp), %xmm1
mulsd 0x7a20(%rip), %xmm0     # 0x13498
jmp 0xbb37
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x30(%rbp)
xorps %xmm1, %xmm1
cvtsi2sd %r13d, %xmm1
movsd 0x79ef(%rip), %xmm0     # 0x13488
callq 0x2300
movsd -0x38(%rbp), %xmm1
addsd %xmm0, %xmm0
jmp 0xbb37
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x30(%rbp)
xorps %xmm1, %xmm1
cvtsi2sd %r13d, %xmm1
movsd 0x79c0(%rip), %xmm0     # 0x13488
callq 0x2300
movsd -0x38(%rbp), %xmm1
mulsd 0x79ce(%rip), %xmm0     # 0x134a8
jmp 0xbb37
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x30(%rbp)
xorps %xmm1, %xmm1
cvtsi2sd %r13d, %xmm1
movsd 0x7990(%rip), %xmm0     # 0x13488
callq 0x2300
movsd -0x38(%rbp), %xmm1
mulsd 0x7996(%rip), %xmm0     # 0x134a0
jmp 0xbb37
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x30(%rbp)
movsd 0x7968(%rip), %xmm0     # 0x13488
movsd -0x38(%rbp), %xmm1
callq 0x2300
movsd -0x38(%rbp), %xmm1
mulsd 0x7959(%rip), %xmm0     # 0x13490
addsd -0x30(%rbp), %xmm0
cvttsd2si %xmm0, %eax
addsd 0x7980(%rip), %xmm1     # 0x134c8
incl %r13d
decq %r15
cmpl %r13d, %r14d
jne 0xb964
jmp 0xbb5b
xorl %eax, %eax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop