package tools.index; import java.util.Stack; import org.antlr.v4.runtime.ParserRuleContext; import ast.ASTNode; import ast.ASTNodeBuilder; import ast.walking.ASTNodeVisitor; import ast.walking.ASTWalker; import databaseNodes.FileDatabaseNode; public abstract class IndexerASTWalker extends ASTWalker { protected IndexerState state; protected ASTNodeVisitor astVisitor; public void setIndexerState(IndexerState aState) { state = aState; } @Override public void startOfUnit(ParserRuleContext ctx, String filename) { FileDatabaseNode currentFileNode = state.getCurrentFileNode(); astVisitor.handleStartOfUnit(currentFileNode); } @Override public void endOfUnit(ParserRuleContext ctx, String filename) { } @Override public void processItem(ASTNode node, Stack<ASTNodeBuilder> nodeStack) { node.accept(astVisitor); } }