docs: def resolve(self, token):
          """Attempts to resolve the :class:`SymbolToken` against the current table.
  
          If the ``text`` is not None, the token is returned, otherwise, a token
          in the table is attempted to be retrieved.  If not token is found, then
          this method will raise.
          """
          if token.text is not None:
              return token
          resolved_token = self.symbol_table.get(token.sid, None)
          if resolved_token is None:
              raise IonException('Out of range SID: %d' % token.sid)
          return resolved_token