This is an automated email from the ASF dual-hosted git repository. markd pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/systemds.git
commit 81b806835ba198fd94cc6d512990b883c7995c4e Author: Mark Dokter <[email protected]> AuthorDate: Fri Feb 5 02:09:27 2021 +0100 [MINOR] Better codegen source debug print with line numbers --- .../apache/sysds/runtime/codegen/CodegenUtils.java | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/src/main/java/org/apache/sysds/runtime/codegen/CodegenUtils.java b/src/main/java/org/apache/sysds/runtime/codegen/CodegenUtils.java index d8d3d2b..d8dfec5 100644 --- a/src/main/java/org/apache/sysds/runtime/codegen/CodegenUtils.java +++ b/src/main/java/org/apache/sysds/runtime/codegen/CodegenUtils.java @@ -28,6 +28,7 @@ import java.util.Arrays; import java.util.Iterator; import java.util.List; import java.util.Map.Entry; +import java.util.Scanner; import java.util.concurrent.ConcurrentHashMap; import javax.tools.Diagnostic; @@ -315,4 +316,41 @@ public class CodegenUtils LocalFileUtils.createLocalFileIfNotExist(tmp); _workingDir = tmp; } + + /** + * <p>Extension of org.apache.commons.lang.StringUtils + * to account for negatives and decimals.</p> + * + * @param str the String to check, may be null + * @return <code>true</code> if only contains digits,-,., and is non-null + */ + public static boolean isNumeric(String str) { + if (str == null) { + return false; + } + int sz = str.length(); + for (int i = 0; i < sz; i++) { + if (!Character.isDigit(str.charAt(i))) { + if((str.charAt(i) == '-') && (i == 0)) + continue; +// if((str.charAt(i) == '.') && (sz > 1)) +// continue; + return false; + } + } + return true; + } + + public static String printWithLineNumber(String src) { + StringBuilder sb = new StringBuilder(); + sb.append("\n"); + Scanner scanner = new Scanner(src); + int line_count = 0; + while (scanner.hasNextLine()) { + String line = scanner.nextLine(); + sb.append(line_count++ + ": " + line + System.lineSeparator()); + } + scanner.close(); + return sb.toString(); + } }
