class_docstr: wordnum:height*wordnum:height*...
  wordnum:height,
class_docstr_tok: ["wordnum",":","height","*","wordnum",":","height","*","...","wordnum",":","height",","]
code: def parse(s):
      # Deal with chains (xx*yy*zz)
      pieces = s.split("*")
      if len(pieces) > 1:
          return PropbankChainTreePointer(
              [PropbankTreePointer.parse(elt) for elt in pieces]
          )
  
      # Deal with split args (xx,yy,zz)
      pieces = s.split(",")
      if len(pieces) > 1:
          return PropbankSplitTreePointer(
              [PropbankTreePointer.parse(elt) for elt in pieces]
          )
  
      # Deal with normal pointers.
      pieces = s.split(":")
      if len(pieces) != 2:
          raise ValueError("bad propbank pointer %r" % s)
      return PropbankTreePointer(int(pieces[0]), int(pieces[1]))
  
imports: import re
  from functools import total_ordering
  from xml.etree import ElementTree
  from nltk.corpus.reader.api import *
  from nltk.corpus.reader.util import *
  from nltk.internals import raise_unorderable_types
  from nltk.tree import Tree
label_desc: Use image node_id 2 for calling the PropbankTreePointer obj's underlying member method code with example usage: obj.parse(s) and returns: PropbankTreePointer, PropbankChainTreePointer, PropbankSplitTreePointer