1 /* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
2 * Use of this file is governed by the BSD 3-clause license that
3 * can be found in the LICENSE.txt file in the project root.
8 #include "antlr4-common.h"
13 /** This interface describes the minimal core of methods triggered
14 * by {@link ParseTreeWalker}. E.g.,
16 * ParseTreeWalker walker = new ParseTreeWalker();
17 * walker.walk(myParseTreeListener, myParseTree); <-- triggers events in your listener
19 * If you want to trigger events in multiple listeners during a single
20 * tree walk, you can use the ParseTreeDispatcher object available at
22 * https://github.com/antlr/antlr4/issues/841
24 class ANTLR4CPP_PUBLIC ParseTreeListener {
26 virtual ~ParseTreeListener();
28 virtual void visitTerminal(TerminalNode *node) = 0;
29 virtual void visitErrorNode(ErrorNode *node) = 0;
30 virtual void enterEveryRule(ParserRuleContext *ctx) = 0;
31 virtual void exitEveryRule(ParserRuleContext *ctx) = 0;
33 bool operator == (const ParseTreeListener &other) {
34 return this == &other;