package org.maltparser.core.syntaxgraph.node;
import java.util.SortedSet;
import org.maltparser.core.exception.MaltChainedException;
import org.maltparser.core.syntaxgraph.headrules.HeadRules;
public interface NonTerminalNode extends PhraseStructureNode {
public TokenNode identifyHead(HeadRules headRules) throws MaltChainedException;
public TokenNode getLexicalHead(HeadRules headRules) throws MaltChainedException;
public TokenNode getLexicalHead() throws MaltChainedException;
public PhraseStructureNode getHeadChild(HeadRules headRules) throws MaltChainedException;
public PhraseStructureNode getHeadChild() throws MaltChainedException;
public SortedSet<PhraseStructureNode> getChildren();
public PhraseStructureNode getChild(int index);
public PhraseStructureNode getLeftChild();
public PhraseStructureNode getRightChild();
public int nChildren();
public boolean hasNonTerminalChildren();
public boolean hasTerminalChildren();
public int getHeight();
public boolean isContinuous();
public boolean isContinuousExcludeTerminalsAttachToRoot();
//public void reArrangeChildrenAccordingToLeftAndRightProperDesendant() throws MaltChainedException;
}