Esempio n. 1
0
 //Chapuz maximo porque el enunciado es una mierda que no esta bien pensado, los parametros se pasa como referencia, no como copia de referencia. Solo Dios sabe como putas se tratan las referencias cuando estan en return o cuando son rValue en una asignacion o declaracion. La usac es una mierda :(
 public MyError Add(string key, MemoryBlock memoryBlock)
 {
     if (SymbolTable.Contains(key))
     {
         return(ScopeErrorFactory.AlreadyDefined(key));
     }
     SymbolTable.UnsafeAdd(key, memoryBlock);
     return(null);
 }
Esempio n. 2
0
 public MyError Add(string key, PyObj value)
 {
     if (SymbolTable.Contains(key))
     {
         return(ScopeErrorFactory.AlreadyDefined(key));
     }
     SymbolTable.UnsafeAdd(key, value);
     return(null);
 }
Esempio n. 3
0
 public MyError Set(string key, PyObj value)
 {
     if (SymbolTable.Set(key, value))
     {
         return(null);
     }
     if (!IsBottom())
     {
         return(OuterScope.Set(key, value));
     }
     return(ScopeErrorFactory.NotFound(key));
 }
Esempio n. 4
0
        public Word Get(string key)
        {
            MemoryBlock memoryBlock = SymbolTable.Get(key);

            if (memoryBlock != null)
            {
                return(memoryBlock);
            }
            if (!IsBottom())
            {
                return(OuterScope.Get(key));
            }
            return(ScopeErrorFactory.NotFound(key));
        }