docs: public CcgSyntaxTree getSyntacticParse() {
      HeadedSyntacticCategory originalSyntax = null;
      if (unaryRule != null) {
        originalSyntax = unaryRule.getUnaryRule().getInputSyntacticCategory().getCanonicalForm();
      } else {
        originalSyntax = syntax;
      }
  
      if (isTerminal()) {
        return CcgSyntaxTree.createTerminal(syntax.getSyntax(), originalSyntax.getSyntax(),
            spanStart, spanEnd, words, posTags, originalSyntax);
      } else {
        CcgSyntaxTree leftTree = left.getSyntacticParse();
        CcgSyntaxTree rightTree = right.getSyntacticParse();
  
        return CcgSyntaxTree.createNonterminal(syntax.getSyntax(), originalSyntax.getSyntax(),
            leftTree, rightTree);
      }
    }