class_docstr: A DataShape parser object.
class_docstr_tok: ["A","DataShape","parser","object","."]
docstr: Advances self.pos by one, if it is not already at the end.
docstr_tok: ["Advances","self.pos","by","one",",","if","it","is","not","already","at","the","end","."]
code: def advance_tok(self):
      """Advances self.pos by one, if it is not already at the end."""
      if self.pos != self.end_pos:
          self.pos = self.pos + 1
          try:
              # If self.pos has not been backtracked,
              # we need to request a new token from the lexer
              if self.pos >= len(self.tokens):
                  self.tokens.append(next(self.lex))
          except StopIteration:
              # Create an EOF token, whose span starts at the
              # end of the last token to use for error messages
              if len(self.tokens) > 0:
                  span = (self.tokens[self.pos - 1].span[1],) * 2
              else:
                  span = (0, 0)
              self.tokens.append(lexer.Token(None, None, span, None))
              self.end_pos = self.pos
  
imports: from __future__ import absolute_import, division, print_function
  from .None import lexer, error
  from .None import coretypes
label_desc: Use image node_id 2 for calling the DataShapeParser obj's underlying member method code with example usage: obj.advance_tok() without return types