001package org.maltparser.core.syntaxgraph.node;
002
003import java.util.SortedSet;
004
005import org.maltparser.core.exception.MaltChainedException;
006import org.maltparser.core.syntaxgraph.headrules.HeadRules;
007
008public interface NonTerminalNode extends PhraseStructureNode {
009        public TokenNode identifyHead(HeadRules headRules) throws MaltChainedException;
010        public TokenNode getLexicalHead(HeadRules headRules) throws MaltChainedException;
011        public TokenNode getLexicalHead() throws MaltChainedException;
012        public PhraseStructureNode getHeadChild(HeadRules headRules) throws MaltChainedException;
013        public PhraseStructureNode getHeadChild() throws MaltChainedException;
014        public SortedSet<PhraseStructureNode> getChildren();
015        public PhraseStructureNode getChild(int index);
016        public PhraseStructureNode getLeftChild();
017        public PhraseStructureNode getRightChild();
018        public int nChildren();
019        public boolean hasNonTerminalChildren();
020        public boolean hasTerminalChildren();
021        public int getHeight();
022        public boolean isContinuous();
023        public boolean isContinuousExcludeTerminalsAttachToRoot();
024        //public void reArrangeChildrenAccordingToLeftAndRightProperDesendant() throws MaltChainedException;
025}