diff --git a/DebuggableASTInterpreter/DASTInterpreter.class.st b/DebuggableASTInterpreter/DASTInterpreter.class.st index 3e73c77..7ccb093 100644 --- a/DebuggableASTInterpreter/DASTInterpreter.class.st +++ b/DebuggableASTInterpreter/DASTInterpreter.class.st @@ -406,6 +406,14 @@ DASTInterpreter >> visitLiteralVariableNode: aRBVariableNode [ ^ self visitGlobalNode: aRBVariableNode ] +{ #category : #visiting } +DASTInterpreter >> visitLocalVariableNode: aNode [ + + "call visitTemporaryNode: for backward compatibility" + + ^ self visitTemporaryNode: aNode +] + { #category : #visiting } DASTInterpreter >> visitMessageNode: aRBMessageNode [ | arguments receiver method newContext | diff --git a/DebuggableASTInterpreter/DASTInterpreterClassForTests3.class.st b/DebuggableASTInterpreter/DASTInterpreterClassForTests3.class.st index 35c133d..1342c84 100644 --- a/DebuggableASTInterpreter/DASTInterpreterClassForTests3.class.st +++ b/DebuggableASTInterpreter/DASTInterpreterClassForTests3.class.st @@ -38,3 +38,8 @@ DASTInterpreterClassForTests3 >> initialize [ DASTInterpreterClassForTests3 >> setClassVariable [ classVar := 42 ] + +{ #category : #initialization } +DASTInterpreterClassForTests3 >> setClassVariableToNil [ + classVar := nil +] diff --git a/DebuggableASTInterpreter/DASTInterpreterTests.class.st b/DebuggableASTInterpreter/DASTInterpreterTests.class.st index ee27ea3..5002048 100644 --- a/DebuggableASTInterpreter/DASTInterpreterTests.class.st +++ b/DebuggableASTInterpreter/DASTInterpreterTests.class.st @@ -261,8 +261,13 @@ DASTInterpreterTests >> testFalse [ { #category : #'tests-variables-class' } DASTInterpreterTests >> testGetClassVariableFromMethodInInstanceSide [ - self assert: (self evaluateProgram: 'DASTInterpreterClassForTests3 new getClassVariable' ) - equals: 42 + + | value | + value := DASTInterpreterClassForTests3 new getClassVariable. + self + assert: (self evaluateProgram: + 'DASTInterpreterClassForTests3 new getClassVariable') + equals: value ] @@ -773,10 +778,12 @@ DASTInterpreterTests >> testSendMessageToBlock [ { #category : #'tests-variables-class' } DASTInterpreterTests >> testSetAndGetClassVariableFromMethodInInstanceSide [ "ToDo: reimplement when the environment contains representation of objects" - self assert: (self evaluateProgram: 'DASTInterpreterClassForTests3 new setClassVariable. DASTInterpreterClassForTests3 new getClassVariable' ) - equals: 42 - + DASTInterpreterClassForTests3 new setClassVariableToNil. + self + assert: (self evaluateProgram: + 'DASTInterpreterClassForTests3 new setClassVariable. DASTInterpreterClassForTests3 new getClassVariable') + equals: 42 ] { #category : #'tests-variables-class' } diff --git a/DebuggableASTInterpreter/DASTPostOrderTreeVisitor.class.st b/DebuggableASTInterpreter/DASTPostOrderTreeVisitor.class.st index c4dba67..6ceb325 100644 --- a/DebuggableASTInterpreter/DASTPostOrderTreeVisitor.class.st +++ b/DebuggableASTInterpreter/DASTPostOrderTreeVisitor.class.st @@ -38,7 +38,7 @@ DASTPostOrderTreeVisitor >> visitArgumentNode: aRBArgumentNode [ ] { #category : #visiting } -DASTPostOrderTreeVisitor >> visitArgumentVariableNode: aRBVariableNode [ +DASTPostOrderTreeVisitor >> visitArgumentVariableNode: aRBVariableNode [ ^ self visitTemporaryNode: aRBVariableNode ] @@ -113,6 +113,14 @@ DASTPostOrderTreeVisitor >> visitLiteralVariableNode: aRBVariableNode [ ^ self visitGlobalNode: aRBVariableNode ] +{ #category : #visiting } +DASTPostOrderTreeVisitor >> visitLocalVariableNode: aNode [ + + "call visitTemporaryNode: for backward compatibility" + + ^ self visitTemporaryNode: aNode +] + { #category : #visiting } DASTPostOrderTreeVisitor >> visitMessageNode: aRBMessageNode [ @@ -157,7 +165,7 @@ DASTPostOrderTreeVisitor >> visitSuperNode: aRBSuperNode [ ^ stack push: aRBSuperNode ] -{ #category : #'as yet unclassified' } +{ #category : #visiting } DASTPostOrderTreeVisitor >> visitTemporaryNode: aRBTemporaryNode [ stack push: aRBTemporaryNode ]