private String optNodeDigest(ParseTreeNode node){
  StringBuilder sb=new StringBuilder();
  sb.append('(');
  for (  ParseTreeNode child : node.children()) {
    nodeDigest(child,sb);
    if (sb.length() > longestKeyLength) {
      return null;
    }
  }
  nodeTail(node,sb);
  if (sb.length() > longestKeyLength) {
    return null;
  }
  return sb.toString();
}

private String optNodeDigest ( ParseTreeNode node ) { StringBuilder sb = new StringBuilder ( ) ; sb . append ( '(' ) ; for ( ParseTreeNode child : node . children ( ) ) { nodeDigest ( child , sb ) ; if ( sb . length ( ) > longestKeyLength ) { return null ; } } nodeTail ( node , sb ) ; if ( sb . length ( ) > longestKeyLength ) { return null ; } return sb . toString ( ) ; }
returns the digest of node , or null if the digest would be longer than the longest key in the knowledge base , and thus unable to match any key in the knowledge base .
