Exemplo n.º 1
0
 def do_evaluate( self, env ):
     idx = self.index.evaluate( env )
     arr = self.array_value.evaluate( env )
     if arr.is_known( env ):
         assert( idx.__class__ == PepInt )
         assert( implements_interface( arr, PepArray ) )
         # TODO: handle large number indices
         return arr.get_index( int( idx.value ) ).evaluate( env )
     else:
         return self
Exemplo n.º 2
0
    def do_evaluate( self, env ):
        # Look up this symbol in the namespace of our environment
        value = self._lookup( env ).evaluate( env )

        if value.is_known( env ):
            # Pass back what we looked up
            return value
        elif implements_interface( value, PepSymbol ):
            return value
        else:
            # If what we find is a variable (i.e. something unknown until
            # runtime) then we simply return ourselves: for the purpose of
            # rendering, this _is_ a symbol.
            return self