What is the right way to check if given line is java code?
Input: LogSupport.java:44 com/sun/activation/registries/LogSupport log (Ljava/lang/String;)V
Expected Output: false.
Input: Scanner in = new Scanner(System.in);
Expected Output: true.
I tried Eclipse JDT ASTParser to check if we can create an AST. Here's the code:
public static boolean isJava(String line) {
boolean isJava = false;
ASTParser parser = ASTParser.newParser(AST.JLS3);
parser.setSource(line.toCharArray());
parser.setResolveBindings(false);
ASTNode node = null;
parser.setKind(ASTParser.K_STATEMENTS);
try {
node = parser.createAST(null);
if (node == null) return false;
isJava = true;
} catch (Exception e) {
return false;
}
return isJava;
}
But this does not work. Any ideas? Thanks!