C4BaseListener.java
package org.thewonderlemming.c4plantuml.grammars;
import org.antlr.v4.runtime.ParserRuleContext;
import org.antlr.v4.runtime.tree.ErrorNode;
import org.antlr.v4.runtime.tree.ParseTreeListener;
import org.antlr.v4.runtime.tree.TerminalNode;
import org.thewonderlemming.c4plantuml.grammars.generated.C4L1ParserBaseListener;
import org.thewonderlemming.c4plantuml.grammars.generated.C4L1ParserListener;
import org.thewonderlemming.c4plantuml.grammars.generated.C4L2ParserBaseListener;
import org.thewonderlemming.c4plantuml.grammars.generated.C4L2ParserListener;
import org.thewonderlemming.c4plantuml.grammars.generated.C4L3ParserBaseListener;
import org.thewonderlemming.c4plantuml.grammars.generated.C4L3ParserListener;
/**
* A simple {@link ParseTreeListener} that implements {@link C4L1ParserListener}, {@link C4L2ParserListener} and
* {@link C4L3ParserListener} to be able to parse every C4 grammar files using the same class.
* <p>
* The default behavior of the methods is to do nothing. You have to override them if you need a specific processing.
*
* @author thewonderlemming
*
*/
public class C4BaseListener
implements C4L1ParserListenerDecorator, C4L2ParserListenerDecorator, C4L3ParserListenerDecorator {
private final C4L1ParserBaseListener c4l1Listener = new C4L1ParserBaseListener();
private final C4L2ParserBaseListener c4l2Listener = new C4L2ParserBaseListener();
private final C4L3ParserBaseListener c4l3Listener = new C4L3ParserBaseListener();
/**
* {@inheritDoc}
*
* Enters a parse tree.
* <p>
* Does nothing, by default. You have to override it if you want to add custom
* behavior.
*/
@Override
public void enterEveryRule(final ParserRuleContext ctx) {
// Base silent implementation. Override this to add behavior
}
/**
* {@inheritDoc}
*
* Exits a parse tree.
* <p>
* Does nothing, by default. You have to override it if you want to add custom
* behavior.
*/
@Override
public void exitEveryRule(final ParserRuleContext ctx) {
// Base silent implementation. Override this to add behavior
}
@Override
public C4L1ParserListener getDecoratedC4L1ParserListener() {
return this.c4l1Listener;
}
@Override
public C4L2ParserListener getDecoratedC4L2ParserListener() {
return this.c4l2Listener;
}
@Override
public C4L3ParserListener getDecoratedC4L3ParserListener() {
return this.c4l3Listener;
}
/**
* {@inheritDoc}
*
* Visits a {@link ErrorNode}.
* <p>
* Does nothing, by default. You have to override it if you want to add custom
* behavior.
*/
@Override
public void visitErrorNode(final ErrorNode node) {
// Base silent implementation. Override this to add behavior
}
/**
* {@inheritDoc}
*
* Visits a {@link TerminalNode}.
* <p>
* Does nothing, by default. You have to override it if you want to add custom
* behavior.
*/
@Override
public void visitTerminal(final TerminalNode node) {
// Base silent implementation. Override this to add behavior
}
}