code: def make_node(cls, lineno, s, lower, upper):
          
          if lower is None or upper is None or s is None:
              return None
  
          if not check_type(lineno, Type.string, s):
              return None
  
          lo = up = None
          base = NUMBER(api.config.OPTIONS.string_base.value, lineno=lineno)
          lower = TYPECAST.make_node(gl.SYMBOL_TABLE.basic_types[gl.STR_INDEX_TYPE],
                                     BINARY.make_node('MINUS', lower, base, lineno=lineno,
                                                      func=lambda x, y: x - y), lineno)
          upper = TYPECAST.make_node(gl.SYMBOL_TABLE.basic_types[gl.STR_INDEX_TYPE],
                                     BINARY.make_node('MINUS', upper, base, lineno=lineno,
                                                      func=lambda x, y: x - y), lineno)
  
          if lower is None or upper is None:
              return None
  
          if is_number(lower):
              lo = lower.value
              if lo < gl.MIN_STRSLICE_IDX:
                  lower.value = lo = gl.MIN_STRSLICE_IDX
  
          if is_number(upper):
              up = upper.value
              if up > gl.MAX_STRSLICE_IDX:
                  upper.value = up = gl.MAX_STRSLICE_IDX
  
          if is_number(lower, upper):
              if lo > up:
                  return STRING('', lineno)
  
              if s.token == 'STRING':  # A constant string? Recalculate it now
                  up += 1
                  st = s.value.ljust(up)  # Procrustean filled (right)
                  return STRING(st[lo:up], lineno)
  
              # a$(0 TO INF.) = a$
              if lo == gl.MIN_STRSLICE_IDX and up == gl.MAX_STRSLICE_IDX:
                  return s
  
          return cls(s, lower, upper, lineno)
docs: Creates a node for a string slice. S is the string expression Tree.
          Lower and upper are the bounds, if lower & upper are constants, and
          s is also constant, then a string constant is returned.
  
          If lower > upper, an empty string is returned.