code: public GrammaticalStructure newGrammaticalStructure(Tree t) {
      try {
        if (puncFilter == null) {
          if (hf == null) {
            return (GrammaticalStructure) con.newInstance(t);
          } else {
            return (GrammaticalStructure) con.newInstance(t, hf);
          }
        } else {
          if (hf == null) {
            return (GrammaticalStructure) con.newInstance(t, puncFilter);
          } else {
            return (GrammaticalStructure) con.newInstance(t, puncFilter, hf);
          }
        }
      } catch (InstantiationException e) {
        throw new RuntimeException("Cannot instantiate " + con.getDeclaringClass().getName(), e);
      } catch (IllegalAccessException e) {
        throw new RuntimeException(con.getDeclaringClass().getName() + "(Tree t) does not have public access", e);
      } catch (InvocationTargetException e) {
        throw new RuntimeException("Failed to invoke " + con, e);
      }
    }
docs: Vend a new {@link GrammaticalStructure} based on the given {@link Tree}.
  
  @param t the tree to analyze
  @return a GrammaticalStructure based on the tree