Please Help with references

B

Balaji

import __main__

tempbuffer= None

permbuffer={}

class E:
def __init__(self):
# print id(self)
self.hasVar = False


def doOperation(self,op,rightOperand):
e = E()
if self.__class__ == E:
e.hasVar = self.hasVar
elif self.__class__ == V or rightOperand.__class__ == V or \
(rightOperand.__class__ == E and rightOperand.hasVar == True):
e.hasVar = True
e.operator = op
e.left = self
e.right = rightOperand
global tempbuffer
global permbuffer
print "bll"
f = copy.copy(e)
print f
r =findNonTempBufferRef(tempbuffer)
print r
if r != 'tempbuffer':
print "hello"
permbuffer[r] =tempbuffer
tempbuffer = f
return e


def relationalOperators(self,op,rightOperand):
print self,rightOperand
e=E()
e.operator =op
e.left=self
e.right=rightOperand
return e

def __neg__(self):
return self

def __radd__(self,e2):
return self.doOperation('+',e2)

def __add__(self,e2):
return self.doOperation('+',e2)

class V(E):
""" This is a variable for MPY"""
def __init__(self):
print "V",
E.__init__(self)
self.hasVar = True
self.val = None

def __str__(self):
if self.val:
# print "self.val *****"
return str(self.val)
else:
return findRefTo(self) or "MPY Error! Printing unnamed variable."



def findRefTo(obj):
import expression # Needed to get access to main.
vnames = vars(__main__)
for name in vnames.keys():
if vnames[name] == obj:
return name
return None

def findNonTempBufferRef(obj):
import expression # Needed to get access to main.
vnames = vars(__main__)
print vnames
for name in vnames.keys():
if vnames[name] == obj:
return name
return None





**************************************************

This my code...

On interpretor if i

create x=V() and y=V() creates two instances of class variable which
inherits from expression class E.

now if i say

x+y

and then c=x+y

and ce=x+y

i think i loose the original one...

i want to store in a permbuffer all asignments made..

after assigning c and ce i want a copy of both in a permbuffer..

Iam at my witends .. Please help...

Balaji
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,756
Messages
2,569,540
Members
45,024
Latest member
ARDU_PROgrammER

Latest Threads

Top