if (this.grammars[k].hasRuleForSpan(i, j, foreignSentenceLength)
&& null != this.dotcharts[k].getDotCell(i, j)) {
for (DotNode dotNode: this.dotcharts[k].getDotCell(i, j).getDotNodes()) {
RuleCollection ruleCollection = dotNode.getTrieNode().getRules();
if (ruleCollection != null) { // have rules under this trienode
// TODO: filter the rule according to LHS constraint
completeCell(i, j, dotNode, ruleCollection.getSortedRules(), ruleCollection.getArity(), dotNode.getSourcePath());
}
}
}
}