@SuppressWarnings("unchecked") private void indexAstNodes() { visitor.visitBlockStatement(module.getStatementBlock()); for (MethodNode method : module.getMethods()) visitor.visitMethod(method); for (ClassNode clazz : module.getClasses()) visitor.visitClass(clazz); }
public ModuleNode buildAST(SourceUnit sourceUnit, ClassLoader classLoader, Reduction cst) throws ParserException { setClassLoader(classLoader); makeModule(); try { convertGroovy(ast); if (output.getStatementBlock().isEmpty() && output.getMethods().isEmpty() && output.getClasses().isEmpty()) { output.addStatement(ReturnStatement.RETURN_NULL_OR_VOID); } // set the script source position ClassNode scriptClassNode = output.getScriptClassDummy(); if (scriptClassNode != null) { List<Statement> statements = output.getStatementBlock().getStatements(); if (!statements.isEmpty()) { Statement firstStatement = statements.get(0); Statement lastStatement = statements.get(statements.size() - 1); scriptClassNode.setSourcePosition(firstStatement); scriptClassNode.setLastColumnNumber(lastStatement.getLastColumnNumber()); scriptClassNode.setLastLineNumber(lastStatement.getLastLineNumber()); } } } catch (ASTRuntimeException e) { throw new ASTParserException(e.getMessage() + ". File: " + sourceUnit.getName(), e); } return output; }
public void visitModuleNode(ModuleNode moduleNode) { //visit imports like import java.io.File and import java.io.File as MyFile for (ImportNode importNode : moduleNode.getImports()) { visitNode(importNode.getType()); } //visit static imports like import java.lang.Math.* for (ImportNode importNode : moduleNode.getStaticStarImports().values()) { visitNode(importNode.getType()); } //visit static imports like import java.lang.Math.cos for (ImportNode importNode : moduleNode.getStaticImports().values()) { visitNode(importNode.getType()); } for (ClassNode classNode : moduleNode.getClasses()) { if (!classNode.isScript()) { visitClass(classNode); } else { for (MethodNode method : moduleNode.getMethods()) { visitMethod(method); } } } //visit Statements that are not inside a class if (!moduleNode.getStatementBlock().isEmpty()) { visitBlockStatement(moduleNode.getStatementBlock()); } }
if (sourceUnit.getAST().getMethods() != null) { for (MethodNode node : sourceUnit.getAST().getMethods()) { if (node != null) { if (node.getParameters() != null) {
@Override public void call(SourceUnit source) { if (!source.getAST().getMethods().isEmpty()) { hasMethods = true; } emptyScript = isEmpty(source); }
public static ClassNode getScriptClass(SourceUnit source) { if (source.getAST().getStatementBlock().getStatements().isEmpty() && source.getAST().getMethods().isEmpty()) { // There is no script class when there are no statements or methods declared in the script return null; } return source.getAST().getClasses().get(0); }
public Map<OffsetRange, Set<ColoringAttributes>> annotate() { highlights.clear(); for (Object object : root.getClasses()) { visitClass((ClassNode)object); } for (Object object : root.getMethods()) { visitMethod((MethodNode)object); } visitBlockStatement(root.getStatementBlock()); return highlights; }
source.getAST().getMethods().clear();
public static void visitScriptCode(SourceUnit source, GroovyCodeVisitor transformer) { source.getAST().getStatementBlock().visit(transformer); for (Object method : source.getAST().getMethods()) { MethodNode methodNode = (MethodNode) method; methodNode.getCode().visit(transformer); } }
public ModuleNode buildAST(SourceUnit sourceUnit, ClassLoader classLoader, Reduction cst) throws ParserException { setClassLoader(classLoader); makeModule(); try { convertGroovy(ast); if(output.getStatementBlock().isEmpty() && output.getMethods().isEmpty() && output.getClasses().isEmpty()) { output.addStatement(ReturnStatement.RETURN_NULL_OR_VOID); } } catch (ASTRuntimeException e) { throw new ASTParserException(e.getMessage() + ". File: " + sourceUnit.getName(), e); } return output; }
@SuppressWarnings("unchecked") private List<ASTNode> find(ASTNode node, int line, int column) { assert line >=0 : "line number was negative: " + line; assert column >=0 : "column number was negative: " + column; assert node != null : "ASTNode should not be null"; assert node instanceof ModuleNode : "ASTNode must be a ModuleNode"; ModuleNode moduleNode = (ModuleNode) node; PathFinderVisitor pathFinder = new PathFinderVisitor(moduleNode.getContext(), line, column); for (ClassNode classNode : moduleNode.getClasses()) { pathFinder.visitClass(classNode); } for (MethodNode methodNode : moduleNode.getMethods()) { pathFinder.visitMethod(methodNode); } return pathFinder.getPath(); }
public ModuleNode buildAST(SourceUnit sourceUnit, ClassLoader classLoader, Reduction cst) throws ParserException { setClassLoader(classLoader); makeModule(); try { convertGroovy(ast); if (output.getStatementBlock().isEmpty() && output.getMethods().isEmpty() && output.getClasses().isEmpty()) { output.addStatement(ReturnStatement.RETURN_NULL_OR_VOID); } // set the script source position ClassNode scriptClassNode = output.getScriptClassDummy(); if (scriptClassNode != null) { List<Statement> statements = output.getStatementBlock().getStatements(); if (statements.size() > 0) { Statement firstStatement = statements.get(0); Statement lastStatement = statements.get(statements.size() - 1); scriptClassNode.setSourcePosition(firstStatement); scriptClassNode.setLastColumnNumber(lastStatement.getLastColumnNumber()); scriptClassNode.setLastLineNumber(lastStatement.getLastLineNumber()); } } } catch (ASTRuntimeException e) { throw new ASTParserException(e.getMessage() + ". File: " + sourceUnit.getName(), e); } return output; }
if (sourceUnit.getAST().getMethods() != null) { for (MethodNode node : sourceUnit.getAST().getMethods()) { if (node != null) { if (node.getParameters() != null) {
staticFieldVisitor.visitClass(scriptClassNode); List<MethodNode> methods = mn.getMethods(); if(methods!=null){ for(MethodNode method: methods){
staticFieldVisitor.visitClass(scriptClassNode); List<MethodNode> methods = mn.getMethods(); if(methods!=null){ for(MethodNode method: methods){