public String comment() throws ParseException {
  StringBuffer retval=new StringBuffer();
  if (lookAhead(0) != '(')   return null;
  consume(1);
  while (true) {
    char next=getNextChar();
    if (next == ')') {
      break;
    }
 else     if (next == '\0') {
      throw new ParseException(this.buffer + " :unexpected EOL",this.ptr);
    }
 else     if (next == '\\') {
      retval.append(next);
      next=getNextChar();
      if (next == '\0')       throw new ParseException(this.buffer + " : unexpected EOL",this.ptr);
      retval.append(next);
    }
 else {
      retval.append(next);
    }
  }
  return retval.toString();
}

public String comment ( ) throws ParseException { StringBuffer retval = new StringBuffer ( ) ; if ( lookAhead ( 0 ) != '(' ) return null ; consume ( 1 ) ; while ( true ) { char next = getNextChar ( ) ; if ( next == ')' ) { break ; } else if ( next == '\0' ) { throw new ParseException ( this . buffer + " :unexpected EOL" , this . ptr ) ; } else if ( next == '\\' ) { retval . append ( next ) ; next = getNextChar ( ) ; if ( next == '\0' ) throw new ParseException ( this . buffer + " : unexpected EOL" , this . ptr ) ; retval . append ( next ) ; } else { retval . append ( next ) ; } } return retval . toString ( ) ; }
parse a comment string cursor is at a " ( " . leave cursor at )
