|
From: Kevin A. <ka...@us...> - 2004-05-09 19:46:39
|
Update of /cvsroot/pythoncard/PythonCard/samples/rpn In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20248/samples/rpn Modified Files: rpn.py Log Message: converted tabs to spaces or deleted rogue lines Index: rpn.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/samples/rpn/rpn.py,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** rpn.py 5 May 2004 16:53:44 -0000 1.8 --- rpn.py 9 May 2004 19:46:24 -0000 1.9 *************** *** 19,95 **** def __init__(self): ! ''' Initialize stack and registers ''' # init stack T, Z, Y, X , top of stack is at the right side ! self._emptyStack = [0.0, 0.0, 0.0, 0.0] ! self._stackData = self._emptyStack # new_data_flag is set when the first new character is entered for a value self.clr_flag() # create a list for all 10 Storage Registers, initialize to 0 ! self._mem = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] def display(self): ! ''' display stack and memory data ''' ! print "\nStack: ", self._stackData ! print "Mem: ", self._mem, "\n" ! def stackSize(self): ! ''' make sure stack has at least 4 elements ''' ! while len(self._stackData) < 5: ! self.display() ! self._stackData.insert(0,0.0) ! # Stack functions def rotate(self): ! ''' rotate top 4 elements of stack ''' ! self.stackSize() ! # remove top 4 elements, then add back to stack in reverse order self._X = self._stackData.pop() ! self._Y = self._stackData.pop() ! self._Z = self._stackData.pop() self._T = self._stackData.pop() ! self._stackData.append(self._X) ! self._stackData.append(self._T) ! self._stackData.append(self._Z) ! self._stackData.append(self._Y) ! def push(self, value): ! ''' add value to top of stack ''' self._stackData.append(float(value)) def pop(self): ! ''' remove and return top of stack - X ''' ! self.stackSize() ! return self._stackData.pop() def readX(self): ! ''' return the top of stack, X, no change to stack ''' ! return self._stackData[-1:][0] def swap(self): ! ''' swap X and Y ''' ! self.stackSize() self._X = self._stackData.pop() self._Y = self._stackData.pop() ! self._stackData.append(self._X) ! self._stackData.append(self._Y) def add(self): ''' X = X + Y ''' ! self.stackSize() self._stackData.append(self._stackData.pop() + self._stackData.pop()) def subtract(self): ''' X = Y - X ''' ! self.stackSize() self._stackData.append( - (self._stackData.pop()) + self._stackData.pop()) def multiply(self): ''' X = X * Y ''' ! self.stackSize() self._stackData.append(self._stackData.pop() * self._stackData.pop()) def divide(self): ''' X = Y / X ''' ! self.stackSize() self._X = self._stackData.pop() self._Y = self._stackData.pop() --- 19,95 ---- def __init__(self): ! ''' Initialize stack and registers ''' # init stack T, Z, Y, X , top of stack is at the right side ! self._emptyStack = [0.0, 0.0, 0.0, 0.0] ! self._stackData = self._emptyStack # new_data_flag is set when the first new character is entered for a value self.clr_flag() # create a list for all 10 Storage Registers, initialize to 0 ! self._mem = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] def display(self): ! ''' display stack and memory data ''' ! print "\nStack: ", self._stackData ! print "Mem: ", self._mem, "\n" ! def stackSize(self): ! ''' make sure stack has at least 4 elements ''' ! while len(self._stackData) < 5: ! self.display() ! self._stackData.insert(0,0.0) ! # Stack functions def rotate(self): ! ''' rotate top 4 elements of stack ''' ! self.stackSize() ! # remove top 4 elements, then add back to stack in reverse order self._X = self._stackData.pop() ! self._Y = self._stackData.pop() ! self._Z = self._stackData.pop() self._T = self._stackData.pop() ! self._stackData.append(self._X) ! self._stackData.append(self._T) ! self._stackData.append(self._Z) ! self._stackData.append(self._Y) ! def push(self, value): ! ''' add value to top of stack ''' self._stackData.append(float(value)) def pop(self): ! ''' remove and return top of stack - X ''' ! self.stackSize() ! return self._stackData.pop() def readX(self): ! ''' return the top of stack, X, no change to stack ''' ! return self._stackData[-1:][0] def swap(self): ! ''' swap X and Y ''' ! self.stackSize() self._X = self._stackData.pop() self._Y = self._stackData.pop() ! self._stackData.append(self._X) ! self._stackData.append(self._Y) def add(self): ''' X = X + Y ''' ! self.stackSize() self._stackData.append(self._stackData.pop() + self._stackData.pop()) def subtract(self): ''' X = Y - X ''' ! self.stackSize() self._stackData.append( - (self._stackData.pop()) + self._stackData.pop()) def multiply(self): ''' X = X * Y ''' ! self.stackSize() self._stackData.append(self._stackData.pop() * self._stackData.pop()) def divide(self): ''' X = Y / X ''' ! self.stackSize() self._X = self._stackData.pop() self._Y = self._stackData.pop() *************** *** 98,102 **** else: self._X = None ! self._stackData.append(self._X) # memory operations --- 98,102 ---- else: self._X = None ! self._stackData.append(self._X) # memory operations *************** *** 156,160 **** self.components.result.text = "ERROR" self._stack.clr_flag() ! self._stack.display() def on_InvertBtn_mouseClick(self, event): --- 156,160 ---- self.components.result.text = "ERROR" self._stack.clr_flag() ! self._stack.display() def on_InvertBtn_mouseClick(self, event): *************** *** 164,171 **** self._stack.push( 1 / self._stack.pop() ) else: ! self.stack.pop() self._stack.push(None) self.components.result.text = str(self._stack.readX()) ! self._stack.display() def on_ROTBtn_mouseClick(self, event): --- 164,171 ---- self._stack.push( 1 / self._stack.pop() ) else: ! self.stack.pop() self._stack.push(None) self.components.result.text = str(self._stack.readX()) ! self._stack.display() def on_ROTBtn_mouseClick(self, event): *************** *** 174,178 **** # put X back into the result box self.components.result.text = str(self._stack.readX()) ! self._stack.display() --- 174,178 ---- # put X back into the result box self.components.result.text = str(self._stack.readX()) ! self._stack.display() *************** *** 182,186 **** # put X back into the result box self.components.result.text = str(self._stack.readX()) ! self._stack.display() --- 182,186 ---- # put X back into the result box self.components.result.text = str(self._stack.readX()) ! self._stack.display() *************** *** 196,200 **** # put X back into the result box self.components.result.text = str(self._stack.readX()) ! self._stack.display() def on_MinusBtn_mouseClick(self, event): --- 196,200 ---- # put X back into the result box self.components.result.text = str(self._stack.readX()) ! self._stack.display() def on_MinusBtn_mouseClick(self, event): *************** *** 203,207 **** # put X back into the result box self.components.result.text = str(self._stack.readX()) ! self._stack.display() --- 203,207 ---- # put X back into the result box self.components.result.text = str(self._stack.readX()) ! self._stack.display() *************** *** 211,215 **** # put X back into the result box self.components.result.text = str(self._stack.readX()) ! self._stack.display() --- 211,215 ---- # put X back into the result box self.components.result.text = str(self._stack.readX()) ! self._stack.display() *************** *** 223,228 **** else: self.components.result.text = "Divide by Zero Error" ! self._stack.display() ! def on_CHSBtn_mouseClick(self, event): --- 223,228 ---- else: self.components.result.text = "Divide by Zero Error" ! self._stack.display() ! def on_CHSBtn_mouseClick(self, event): *************** *** 232,236 **** self._stack.push( -1.0 * self._stack.pop() ) self.components.result.text = str(self._stack.readX()) ! self._stack.display() # storage register operations --- 232,236 ---- self._stack.push( -1.0 * self._stack.pop() ) self.components.result.text = str(self._stack.readX()) ! self._stack.display() # storage register operations *************** *** 247,251 **** # register is a non-integer print "ERROR - Non-integer value given for register" ! self._stack.display() --- 247,251 ---- # register is a non-integer print "ERROR - Non-integer value given for register" ! self._stack.display() *************** *** 260,264 **** print "ERROR - Non-integer value given for register" return ! self._stack.display() # misc --- 260,264 ---- print "ERROR - Non-integer value given for register" return ! self._stack.display() # misc |