1340 */
1341 List<Diag> errorsOnly(List<Diag> diagnostics) {
1342 return diagnostics.stream()
1343 .filter(d -> d.isError())
1344 .collect(toList());
1345 }
1346
1347 void printDiagnostics(String source, List<Diag> diagnostics, boolean embed) {
1348 String padding = embed? " " : "";
1349 for (Diag diag : diagnostics) {
1350 //assert diag.getSource().equals(source);
1351
1352 if (!embed) {
1353 if (diag.isError()) {
1354 hard("Error:");
1355 } else {
1356 hard("Warning:");
1357 }
1358 }
1359
1360 for (String line : diag.getMessage(null).split("\\r?\\n")) {
1361 if (!line.trim().startsWith("location:")) {
1362 hard("%s%s", padding, line);
1363 }
1364 }
1365
1366 int pstart = (int) diag.getStartPosition();
1367 int pend = (int) diag.getEndPosition();
1368 Matcher m = LINEBREAK.matcher(source);
1369 int pstartl = 0;
1370 int pendl = -2;
1371 while (m.find(pstartl)) {
1372 pendl = m.start();
1373 if (pendl >= pstart) {
1374 break;
1375 } else {
1376 pstartl = m.end();
1377 }
1378 }
1379 if (pendl < pstart) {
1380 pendl = source.length();
|
1340 */
1341 List<Diag> errorsOnly(List<Diag> diagnostics) {
1342 return diagnostics.stream()
1343 .filter(d -> d.isError())
1344 .collect(toList());
1345 }
1346
1347 void printDiagnostics(String source, List<Diag> diagnostics, boolean embed) {
1348 String padding = embed? " " : "";
1349 for (Diag diag : diagnostics) {
1350 //assert diag.getSource().equals(source);
1351
1352 if (!embed) {
1353 if (diag.isError()) {
1354 hard("Error:");
1355 } else {
1356 hard("Warning:");
1357 }
1358 }
1359
1360 for (String line : diag.getMessage(null).split("\\r?\\n")) { // TODO: Internationalize
1361 if (!line.trim().startsWith("location:")) {
1362 hard("%s%s", padding, line);
1363 }
1364 }
1365
1366 int pstart = (int) diag.getStartPosition();
1367 int pend = (int) diag.getEndPosition();
1368 Matcher m = LINEBREAK.matcher(source);
1369 int pstartl = 0;
1370 int pendl = -2;
1371 while (m.find(pstartl)) {
1372 pendl = m.start();
1373 if (pendl >= pstart) {
1374 break;
1375 } else {
1376 pstartl = m.end();
1377 }
1378 }
1379 if (pendl < pstart) {
1380 pendl = source.length();
|