use of net.sourceforge.pmd.lang.dfa.Linker in project pmd by pmd.
the class StatementAndBraceFinder method buildDataFlowFor.
public void buildDataFlowFor(JavaNode node) {
if (!(node instanceof ASTMethodDeclaration) && !(node instanceof ASTConstructorDeclaration)) {
throw new RuntimeException("Can't build a data flow for anything other than a method or a constructor");
}
this.dataFlow = new Structure(dataFlowHandler);
this.dataFlow.createStartNode(node.getBeginLine());
this.dataFlow.createNewNode(node);
node.jjtAccept(this, dataFlow);
this.dataFlow.createEndNode(node.getEndLine());
if (LOGGER.isLoggable(Level.FINE)) {
// TODO SRT Remove after development
LOGGER.fine("DataFlow is " + this.dataFlow.dump());
}
Linker linker = new Linker(dataFlowHandler, dataFlow.getBraceStack(), dataFlow.getContinueBreakReturnStack());
try {
linker.computePaths();
} catch (SequenceException | LinkerException e) {
e.printStackTrace();
}
}
use of net.sourceforge.pmd.lang.dfa.Linker in project pmd by pmd.
the class StatementAndBraceFinder method buildDataFlowFor.
public void buildDataFlowFor(PLSQLNode node) {
LOGGER.entering(this.getClass().getCanonicalName(), "buildDataFlowFor");
if (LOGGER.isLoggable(Level.FINEST)) {
LOGGER.finest("buildDataFlowFor: node class " + node.getClass().getCanonicalName() + " @ line " + node.getBeginLine() + ", column " + node.getBeginColumn() + " --- " + new Throwable().getStackTrace());
}
if (!(node instanceof ASTMethodDeclaration) && !(node instanceof ASTProgramUnit) && !(node instanceof ASTTypeMethod) && !(node instanceof ASTTriggerUnit) && !(node instanceof ASTTriggerTimingPointSection)) {
throw new RuntimeException("Can't build a data flow for anything other than a Method or a Trigger");
}
this.dataFlow = new Structure(dataFlowHandler);
this.dataFlow.createStartNode(node.getBeginLine());
this.dataFlow.createNewNode(node);
node.jjtAccept(this, dataFlow);
this.dataFlow.createEndNode(node.getEndLine());
if (LOGGER.isLoggable(Level.FINE)) {
LOGGER.fine("DataFlow is " + this.dataFlow.dump());
}
Linker linker = new Linker(dataFlowHandler, dataFlow.getBraceStack(), dataFlow.getContinueBreakReturnStack());
try {
linker.computePaths();
} catch (LinkerException e) {
LOGGER.severe("LinkerException");
e.printStackTrace();
} catch (SequenceException e) {
LOGGER.severe("SequenceException");
e.printStackTrace();
}
LOGGER.exiting(this.getClass().getCanonicalName(), "buildDataFlowFor");
}
Aggregations