class_docstr: A DataShape parser object.
class_docstr_tok: ["A","DataShape","parser","object","."]
docstr: datashape_nooption : dim ASTERISK datashape
                     | dtype
  
  Returns a datashape object or None.
docstr_tok: ["datashape_nooption",":","dim","ASTERISK","datashape","|","dtype","Returns","a","datashape","object","or","None","."]
code: def parse_datashape_nooption(self):
      """
      datashape_nooption : dim ASTERISK datashape
                         | dtype
  
      Returns a datashape object or None.
      """
      saved_pos = self.pos
      # Try dim ASTERISK datashape
      dim = self.parse_dim()
      if dim is not None:
          if self.tok.id == lexer.ASTERISK:
              # If an asterisk is next, we're good
              self.advance_tok()
              saved_pos = self.pos
              dshape = self.parse_datashape()
              if dshape is None:
                  self.pos = saved_pos
                  self.raise_error("Expected a dim or a dtype")
              return coretypes.DataShape(dim, *dshape.parameters)
      # Try dtype
      dtype = self.parse_dtype()
      if dtype:
          return coretypes.DataShape(dtype)
      else:
          return None
  
imports: from __future__ import absolute_import, division, print_function
  from .None import lexer, error
  from .None import coretypes
label_desc: Use image node_id 8 for calling the DataShapeParser obj's underlying member method code with example usage: obj.parse_datashape_nooption() and returns: coretypes, None, coretypes