= new ArrayList<HGNode>(chartCell.getSortedNodes());
while (queue.size() > 0) {
HGNode item = (HGNode)queue.remove(0);
Trie child_tnode = gr.getTrieRoot().matchOne(item.lhs);//match rule and complete part
if (child_tnode != null
&& child_tnode.getRules() != null
&& child_tnode.getRules().getArity() == 1) {//have unary rules under this trienode
ArrayList<HGNode> l_ants = new ArrayList<HGNode>();
l_ants.add(item);
List<Rule> rules =
child_tnode.getRules().getSortedRules();
for (Rule rule : rules){//for each unary rules
ComputeNodeResult states = new ComputeNodeResult(this.featureFunctions, rule, l_ants, i, j, new SourcePath(), stateComputers, this.segmentID);
HGNode res_item = chartCell.addHyperEdgeInCell(states, rule, i, j, l_ants, new SourcePath(), false);
if (null != res_item) {