private void addToChart(Trie trie,int j,boolean isUnary){
  if (!isUnary && trie.hasRules()) {
    DotNode dotNode=new DotNode(i,j,trie,new ArrayList<>(nodeStack),null);
    addToCandidates(dotNode);
  }
  for (int l=j + 1; l <= sentence.length(); l++)   consume(trie,j,l);
}

private void addToChart ( Trie trie , int j , boolean isUnary ) { if ( ! isUnary && trie . hasRules ( ) ) { DotNode dotNode = new DotNode ( i , j , trie , new ArrayList < > ( nodeStack ) , null ) ; addToCandidates ( dotNode ) ; } for ( int l = j + 1 ; l <= sentence . length ( ) ; l ++ ) consume ( trie , j , l ) ; }
adds all rules at a trie node to the chart , unless its a unary rule . a unary rule is the first outgoing arc of a grammar ' s root trie . for terminals , these are added during the seeding stage ; for nonterminals , these confuse cube pruning and can result in infinite loops , and are handled separately ( see addunarynodes ( ) ) ;
