private String base_phone_number() throws ParseException {
  StringBuilder s=new StringBuilder();
  if (debug)   dbg_enter("base_phone_number");
  try {
    int lc=0;
    while (lexer.hasMoreChars()) {
      char w=lexer.lookAhead(0);
      if (Lexer.isDigit(w) || w == '-' || w == '.' || w == '(' || w == ')') {
        lexer.consume(1);
        s.append(w);
        lc++;
      }
 else       if (lc > 0)       break;
 else       throw createParseException("unexpected " + w);
    }
    return s.toString();
  }
  finally {
    if (debug)     dbg_leave("base_phone_number");
  }
}

private String base_phone_number ( ) throws ParseException { StringBuilder s = new StringBuilder ( ) ; if ( debug ) dbg_enter ( "base_phone_number" ) ; try { int lc = 0 ; while ( lexer . hasMoreChars ( ) ) { char w = lexer . lookAhead ( 0 ) ; if ( Lexer . isDigit ( w ) || w == '-' || w == '.' || w == '(' || w == ')' ) { lexer . consume ( 1 ) ; s . append ( w ) ; lc ++ ; } else if ( lc > 0 ) break ; else throw createParseException ( "unexpected " + w ) ; } return s . toString ( ) ; } finally { if ( debug ) dbg_leave ( "base_phone_number" ) ; } }
parser for the base phone number .
