code: def _auto_positive_symbol(tokens, local_dict, global_dict):
      
      result = []
  
      tokens.append((None, None))  # so zip traverses all tokens
      for tok, nextTok in zip(tokens, tokens[1:]):
          tokNum, tokVal = tok
          nextTokNum, nextTokVal = nextTok
          if tokNum == token.NAME:
              name = tokVal
              if name in global_dict:
                  obj = global_dict[name]
                  if isinstance(obj, (Basic, type)) or callable(obj):
                      result.append((token.NAME, name))
                      continue
  
              # try to resolve known alternative unit name
              try:
                  used_name = inv_name_alternatives[str(name)]
              except KeyError:
                  # if we don't know this name it's a user-defined unit name
                  # so we should create a new symbol for it
                  used_name = str(name)
  
              result.extend(
                  [
                      (token.NAME, "Symbol"),
                      (token.OP, "("),
                      (token.NAME, repr(used_name)),
                      (token.OP, ","),
                      (token.NAME, "positive"),
                      (token.OP, "="),
                      (token.NAME, "True"),
                      (token.OP, ")"),
                  ]
              )
          else:
              result.append((tokNum, tokVal))
  
      return result
docs: Inserts calls to ``Symbol`` for undefined variables.
      Passes in positive=True as a keyword argument.
      Adapted from sympy.sympy.parsing.sympy_parser.auto_symbol