AbstractSourceVisitor.java

package org.sterling.source.syntax;

import org.sterling.SterlingException;
import org.sterling.util.VisitorState;

public abstract class AbstractSourceVisitor<R, S extends VisitorState> implements SourceVisitor<R, S> {

    @Override
    public R visit(SourceNode node, S state) throws SterlingException {
        state.beginVisit(node);
        R value = node.accept(this, state);
        state.endVisit(node);
        return value;
    }
}