Changeset 4050
- Timestamp:
- Dec 17, 2008, 9:06:36 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
to-imperative/trunk/java/java/org/refal/plus/Expr.java
r4040 r4050 333 333 } 334 334 335 private static boolean isIdentifierStartChar (char c) { 336 return ('A' <= c && c <= 'Z') || c == '_'; 337 } 338 339 private static boolean isIdentifierInternalChar (char c) { 340 return isIdentifierStartChar(c) || ('a' <= c && c <= 'z') || ('0' <= c && c <= '9') || (c == '.'); 341 } 342 343 private static boolean isIdentifier (String str) { 344 if (str.length() == 0) 345 return false; 346 if (!isIdentifierStartChar(str.charAt(0))) 347 return false; 348 for (int i = 1, l = str.length(); i < l; i++) 349 if (!isIdentifierInternalChar(str.charAt(i))) 350 return false; 351 return true; 352 } 353 354 private static void convertCharacter (StringBuffer strBuf, char c) { 355 switch (c) { 356 case '\t': strBuf.append("\\t"); break; 357 case '\r': strBuf.append("\\r"); break; 358 case '\n': strBuf.append("\\n"); break; 359 case '\\': strBuf.append("\\\\"); break; 360 case '\'': strBuf.append("\\\'"); break; 361 case '\"': strBuf.append("\\\""); break; 362 default: strBuf.append(c); break; 363 } 364 } 365 335 366 public String toString () { 336 367 StringBuffer strBuf = new StringBuffer(); … … 340 371 341 372 private void toString (StringBuffer strBuf) { 342 boolean chars = false; 343 boolean isNotFirst = false; 373 boolean chars = false, isNotFirst = false; 344 374 for (Comparable<?> term : this) { 345 375 if (term instanceof Character) { … … 351 381 isNotFirst = true; 352 382 } 353 switch (((Character) term).charValue()) { 354 case '\t': 355 strBuf.append("\\t"); 356 continue; 357 case '\r': 358 strBuf.append("\\r"); 359 continue; 360 case '\n': 361 strBuf.append("\\n"); 362 continue; 363 case '\\': 364 strBuf.append("\\\\"); 365 continue; 366 case '\'': 367 strBuf.append("\\\'"); 368 continue; 369 case '\"': 370 strBuf.append("\\\""); 371 continue; 372 default: 373 strBuf.append(term); 374 continue; 375 } 383 convertCharacter(strBuf, (Character) term); 384 continue; 376 385 } 377 386 if (chars) { … … 391 400 else { 392 401 strBuf.append('"'); 393 for (int i = 0; i < w.length(); i++) { 394 char c = w.charAt(i); 395 switch (c) { 396 case '\t': strBuf.append("\\t"); continue; 397 case '\r': strBuf.append("\\r"); continue; 398 case '\n': strBuf.append("\\n"); continue; 399 case '\\': strBuf.append("\\\\"); continue; 400 case '\'': strBuf.append("\\\'"); continue; 401 case '\"': strBuf.append("\\\""); continue; 402 default: strBuf.append(c); continue; 403 } 404 } 402 for (int i = 0; i < w.length(); i++) 403 convertCharacter(strBuf, w.charAt(i)); 405 404 strBuf.append('"'); 406 405 } … … 425 424 ((Expr) term).toChars(strBuf); 426 425 strBuf.append(')'); 427 } else if ( term instanceof Reference && ((Reference) term).objectinstanceof org.refal.plus.objects.String)428 ((org.refal.plus.objects.String) ((Reference) term).object).toExpr().toChars(strBuf);426 } else if (Symbol.isObject(term) instanceof org.refal.plus.objects.String) 427 ((org.refal.plus.objects.String) Symbol.isObject(term)).toExpr().toChars(strBuf); 429 428 else 430 429 strBuf.append(term.toString()); 431 }432 433 private static boolean isIdentifier (String str) {434 if (str.length() == 0)435 return false;436 char c = str.charAt(0);437 if (!Character.isUpperCase(c) && c != '_')438 return false;439 for (int i = 1; i < str.length(); i++) {440 c = str.charAt(i);441 if (!Character.isLetterOrDigit(c) && c != '_' && c != '.')442 return false;443 }444 return true;445 430 } 446 431
Note: See TracChangeset
for help on using the changeset viewer.