// File: /workspace/github_c_makefile_star2_O0/luixmao[P]verilog/vlg_parser_man.cpp
// Function: errase_comments_and_spaces(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
string errase_comments_and_spaces(string s){
  bool exit = false;
  unsigned int i=0;
  while(i<s.length()){
    //delete everything after comments
    if(s[i]=='/'){
        if(s[i+1]=='/'){// if there is two adjacent "//"
          while (i!=s.length() ){ //delete all the values starting from the one located at i
            s.erase(s.begin()+i); 
            exit=true; //to exit loop
          }
          if(exit){
            break;
          }
        }
    }
    //delete repeated spaces
    if(s[i] == ' '){
       while(s[i+1] == ' ' && (i+1)<s.length() ){
         s.erase(s.begin()+i+1); 
       }
    }
    
    i++;
  }
  return s;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rsi, -0x78(%rbp)
movq %rdi, -0x70(%rbp)
movq %rdi, %rax
movq %rax, -0x68(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movb $0x0, -0x11(%rbp)
movl $0x0, -0x18(%rbp)
movq -0x78(%rbp), %rdi
movl -0x18(%rbp), %eax
movq %rax, -0x80(%rbp)
callq 0x3370
movq %rax, %rcx
movq -0x80(%rbp), %rax
cmpq %rcx, %rax
jae 0xe7c5
movq -0x78(%rbp), %rdi
movl -0x18(%rbp), %eax
movl %eax, %esi
callq 0x3480
movsbl (%rax), %eax
cmpl $0x2f, %eax
jne 0xe6e8
movq -0x78(%rbp), %rdi
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x3480
movsbl (%rax), %eax
cmpl $0x2f, %eax
jne 0xe6e6
jmp 0xe674
movq -0x78(%rbp), %rdi
movl -0x18(%rbp), %eax
movq %rax, -0x88(%rbp)
callq 0x3370
movq %rax, %rcx
movq -0x88(%rbp), %rax
cmpq %rcx, %rax
je 0xe6d9
movq -0x78(%rbp), %rdi
callq 0x31e0
movq %rax, -0x30(%rbp)
movl -0x18(%rbp), %eax
movl %eax, %esi
leaq -0x30(%rbp), %rdi
callq 0xf340
movq %rax, -0x28(%rbp)
leaq -0x20(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0xf300
movq -0x78(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x32f0
movq %rax, -0x38(%rbp)
movb $0x1, -0x11(%rbp)
jmp 0xe674
testb $0x1, -0x11(%rbp)
je 0xe6e4
jmp 0xe7c5
jmp 0xe6e6
jmp 0xe6e8
movq -0x78(%rbp), %rdi
movl -0x18(%rbp), %eax
movl %eax, %esi
callq 0x3480
movsbl (%rax), %eax
cmpl $0x20, %eax
jne 0xe7b7
jmp 0xe704
movq -0x78(%rbp), %rdi
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x3480
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x20, %ecx
movb %al, -0x89(%rbp)
jne 0xe755
movq -0x78(%rbp), %rdi
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, %eax
movq %rax, -0x98(%rbp)
callq 0x3370
movq %rax, %rcx
movq -0x98(%rbp), %rax
cmpq %rcx, %rax
setb %al
movb %al, -0x89(%rbp)
movb -0x89(%rbp), %al
testb $0x1, %al
jne 0xe761
jmp 0xe7b5
movq -0x78(%rbp), %rdi
callq 0x31e0
movq %rax, -0x58(%rbp)
movl -0x18(%rbp), %eax
movl %eax, %esi
leaq -0x58(%rbp), %rdi
callq 0xf340
movq %rax, -0x50(%rbp)
leaq -0x50(%rbp), %rdi
movl $0x1, %esi
callq 0xf340
movq %rax, -0x48(%rbp)
leaq -0x40(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0xf300
movq -0x78(%rbp), %rdi
movq -0x40(%rbp), %rsi
callq 0x32f0
movq %rax, -0x60(%rbp)
jmp 0xe704
jmp 0xe7b7
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0xe61d
movq -0x78(%rbp), %rsi
movq -0x70(%rbp), %rdi
callq 0x3140
movq -0x68(%rbp), %rax
addq $0xa0, %rsp
popq %rbp
retq
nop