protected static token do_id() throws java.io.IOException {
  StringBuffer result=new StringBuffer();
  String result_str;
  Integer keyword_num;
  char buffer[]=new char[1];
  buffer[0]=(char)next_char;
  result.append(buffer,0,1);
  advance();
  while (id_char(next_char)) {
    buffer[0]=(char)next_char;
    result.append(buffer,0,1);
    advance();
  }
  result_str=result.toString();
  keyword_num=(Integer)keywords.get(result_str);
  if (keyword_num != null)   return new token(keyword_num.intValue());
  return new str_token(sym.ID,result_str);
}

protected static token do_id ( ) throws java . io . IOException { StringBuffer result = new StringBuffer ( ) ; String result_str ; Integer keyword_num ; char buffer [ ] = new char [ 1 ] ; buffer [ 0 ] = ( char ) next_char ; result . append ( buffer , 0 , 1 ) ; advance ( ) ; while ( id_char ( next_char ) ) { buffer [ 0 ] = ( char ) next_char ; result . append ( buffer , 0 , 1 ) ; advance ( ) ; } result_str = result . toString ( ) ; keyword_num = ( Integer ) keywords . get ( result_str ) ; if ( keyword_num != null ) return new token ( keyword_num . intValue ( ) ) ; return new str_token ( sym . ID , result_str ) ; }
process an identifier . identifiers begin with a letter , underscore , or dollar sign , which is followed by zero or more letters , numbers , underscores or dollar signs . this routine returns an str_token suitable for return by the scanner .
