/* Generated by JTB 1.5.1 */
package grammars.a.sgtree;

import java.util.List;
import grammars.a.sgvis.IVis2Visitor;
import grammars.a.sgvis.IVoidVisitor;

@SuppressWarnings("javadoc")
public interface INode extends java.io.Serializable {

  public static final String LS = System.getProperty("line.separator"); //$NON-NLS-1$

  /*
   * Visitors accept methods (no -novis option, visitors specification : Void,void,None;Vis2,R,A,int[],short...)
   */

  public <R, A> R accept(final IVis2Visitor<R, A> vis, final A argu, final int[] argu1, final short... argu2);

  public void accept(final IVoidVisitor vis);

  /*
   * Parent pointer getter and setter (-pp option)
   */

  public INode getParent();

  public void setParent(final INode n);

  /*
   * Children methods (-chm option)
   */

  public int getNbAllChildren();

  public int getNbBaseChildren();

  public int getNbUserChildren();

  public List<INode> getAllChildren();

  public List<INode> getBaseChildren();

  public List<INode> getUserChildren();

  public boolean isBaseNode();

}
