/** * Copyright (c) 2012-2016 André Bargull * Alle Rechte vorbehalten / All Rights Reserved. Use is subject to license terms. * * <https://github.com/anba/es6draft> */ package com.github.anba.es6draft.ast; /** * Base interface for all abstract-syntax-tree nodes */ public interface Node { /** * Returns the begin line position. * * @return the begin line position */ int getBeginLine(); /** * Returns the begin column position. * * @return the begin column position */ int getBeginColumn(); /** * Returns the begin position. * * @return the begin position */ long getBeginPosition(); /** * Returns the end line position. * * @return the end line position */ int getEndLine(); /** * Returns the end column position. * * @return the end column position */ int getEndColumn(); /** * Returns the end position. * * @return the end position */ long getEndPosition(); /** * Visitor pattern {@code accept()} method. * * @param <R> * the return value type * @param <V> * the value object type * @param visitor * the visitor instance * @param value * the value object * @return the return value from the visitor */ <R, V> R accept(NodeVisitor<R, V> visitor, V value); <V> int accept(IntNodeVisitor<V> visitor, V value); <V> void accept(VoidNodeVisitor<V> visitor, V value); }