code: public static IntNaryTree readTreeInPtbFormat(IntObjectBimap<String> lexAlphabet, IntObjectBimap<String> ntAlphabet, Reader reader) throws IOException {
          QFiles.readUntilCharacter(reader, '(');
          IntNaryTree root = IntNaryTree.readSubtreeInPtbFormat(lexAlphabet, ntAlphabet, reader);
          QFiles.readUntilCharacter(reader, ')');
          if (root == null) {
              return null;
          }
          root.updateStartEnd();
          return root;
      }
docs: Reads a full tree in Penn Treebank format. Such a tree should include an
  outer set of parentheses. The returned tree will have initialized the
  start/end fields.