SmallSense__SmalltalkParserTests.st
changeset 85 d6a3fdbd87db
parent 64 2257d7223898
child 96 12fe1a59dfd1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SmallSense__SmalltalkParserTests.st	Mon Sep 16 23:20:08 2013 +0100
@@ -0,0 +1,959 @@
+"{ Package: 'jv:smallsense' }"
+
+"{ NameSpace: SmallSense }"
+
+TestCase subclass:#SmalltalkParserTests
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'SmallSense-Tests'
+!
+
+
+!SmalltalkParserTests methodsFor:'parseTests'!
+
+test1
+    |collector|
+    collector := self 
+                doForSource:'  
+                    |u w b c d tokenValue val uu bb cc dd |
+                   u := 3.
+                    b:=u.
+                    c:=u floor.
+                    d floor:u.
+                    d floor:3 b:u.
+                    self rememberSymbolUsed:tokenValue.
+                    array:=#( 3 4 5 6 ).
+                    val := ConstantNode type:tokenType value:tokenValue.
+                    [u== #Symbol or:[u=3]]ifTrue:[
+                    uu := 4.
+                    bb:=uu.
+                    cc:=uu floor.
+                    dd floor:uu.
+                    dd floor:3 b:uu.
+                    ].
+                    dd do:[:w|w seduce.
+                    ].
+                    ^self.
+                    '.
+self assert:collector notNil.
+self assert:collector tree notNil.
+
+    "Created: / 21-12-2010 / 23:07:13 / Jakub <zelenja7@fel.cvut.cz>"
+    "Modified: / 22-02-2011 / 12:35:19 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test10
+    |collector|
+
+    collector := self 
+                doForSource:'  
+                    | b|
+                    u := 3.
+                    b:=u.
+                    '.
+    self assert:collector notNil.
+    self assert:collector tree notNil.
+    self assert:(collector tree nextStatement nextStatement) isNil.
+    self assert:(collector tree expression) isAssignment.
+    self assert:(collector tree expression variable) isVariable.
+    self assert:(collector tree expression expression) isConstant.
+    self assert:(collector tree nextStatement expression) isAssignment.
+    self assert:(collector tree nextStatement expression variable) isVariable.
+    self 
+        assert:(collector tree nextStatement expression expression) isVariable.
+
+    "Created: / 15-02-2011 / 15:23:50 / Jakub <zelenja7@fel.cvut.cz>"
+    "Modified: / 18-02-2011 / 16:49:19 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test11
+    |collector|
+    collector := self 
+                doForSource:'  
+                    | b|
+                    u := 3
+                    b:=u.
+                    '.
+    self assert:collector notNil.
+    self assert:collector tree notNil.
+    self assert:(collector tree nextStatement nextStatement nextStatement) isNil.
+    self assert:(collector tree expression) isAssignment.
+    self assert:(collector tree expression variable) isVariable.
+    self assert:(collector tree expression variable name= 'u').
+    self assert:(collector tree expression expression) isUnaryMessage.
+    self assert:(collector tree expression expression receiver) isConstant.
+    self assert:(collector tree expression expression receiver value=3) .
+    self assert:(collector tree expression expression selector asString)='b'.
+    self assert:(collector tree expression expression args isNil ).
+    self assert:(collector tree nextStatement expression) isErrorNode.
+    self assert:(collector tree nextStatement expression errorToken)= ':='.
+    self assert:(collector tree nextStatement nextStatement expression) isVariable.
+    self assert:(collector tree nextStatement nextStatement expression name)='u'.
+
+    "Created: / 15-02-2011 / 15:24:01 / Jakub <zelenja7@fel.cvut.cz>"
+    "Modified: / 18-02-2011 / 16:58:56 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test11a
+    |collector|
+    collector := self 
+                doForSource:'  
+                    | b|
+                    u := 3
+                    b:=u.
+                    '.
+    self assert:collector notNil.
+    self assert:collector tree notNil.
+    self assert:(collector tree nextStatement nextStatement) isNil.
+    self assert:(collector tree expression) isAssignment.
+    self assert:(collector tree expression variable) isVariable.
+    self assert:(collector tree expression variable name= 'u').
+
+    self assert:(collector tree expression expression) isErrorNode.
+    self assert:(collector tree expression expression children first receiver) isConstant.
+    self assert:(collector tree expression expression children first receiver) value =3 .
+
+    self assert:(collector tree nextStatement expression) isAssignment.
+    self assert:(collector tree nextStatement expression) variable name = 'b'.
+    self assert:(collector tree nextStatement expression) expression isVariable.
+    self assert:(collector tree nextStatement expression) expression name = 'u'.
+
+    "Created: / 16-09-2013 / 23:16:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test11b
+    |collector|
+    collector := self 
+                doForSource:'  
+                    | b|
+                    u := 3 between: 1 and: 10
+                    b:=u.
+                    '.
+    self assert:collector notNil.
+    self assert:collector tree notNil.
+    self assert:(collector tree nextStatement nextStatement) isNil.
+    self assert:(collector tree expression) isAssignment.
+    self assert:(collector tree expression variable) isVariable.
+    self assert:(collector tree expression variable name= 'u').
+
+    self assert:(collector tree expression expression) isErrorNode.
+    self assert:(collector tree expression expression children first receiver) isConstant.
+    self assert:(collector tree expression expression children first receiver) value =3 .
+
+    self assert:(collector tree nextStatement expression) isAssignment.
+    self assert:(collector tree nextStatement expression) variable name = 'b'.
+    self assert:(collector tree nextStatement expression) expression isVariable.
+    self assert:(collector tree nextStatement expression) expression name = 'u'.
+
+    "Created: / 16-09-2013 / 23:16:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test11c
+    |collector|
+    collector := self 
+                doForSource:'  
+                    | b|
+                    u := 3 between: 1 and: 10 + 10
+                    b:=u.
+                    '.
+    self assert:collector notNil.
+    self assert:collector tree notNil.
+    self assert:(collector tree nextStatement nextStatement) isNil.
+    self assert:(collector tree expression) isAssignment.
+    self assert:(collector tree expression variable) isVariable.
+    self assert:(collector tree expression variable name= 'u').
+
+    self assert:(collector tree expression expression) isErrorNode.
+    self assert:(collector tree expression expression children first receiver) isConstant.
+    self assert:(collector tree expression expression children first receiver) value =3 .
+
+    self assert:(collector tree nextStatement expression) isAssignment.
+    self assert:(collector tree nextStatement expression) variable name = 'b'.
+    self assert:(collector tree nextStatement expression) expression isVariable.
+    self assert:(collector tree nextStatement expression) expression name = 'u'.
+
+    "Created: / 16-09-2013 / 23:16:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test12
+    |collector|
+    collector := self 
+                doForSource:'  
+                    | b|
+                     : 3
+                    '.
+self assert:collector notNil.
+    self assert:collector tree notNil.
+    self assert:(collector tree nextStatement  nextStatement) isNil.
+    self assert:(collector tree expression) isErrorNode.
+    self assert:(collector tree expression errorToken =':').
+    self assert:(collector tree nextStatement expression) isConstant.
+    self assert:(collector tree nextStatement expression value=3).
+
+    "Created: / 15-02-2011 / 15:25:36 / Jakub <zelenja7@fel.cvut.cz>"
+    "Modified: / 18-02-2011 / 17:08:54 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test13
+    |collector|
+
+    collector := self 
+                doForSource:'  
+                    | b|
+                    u := 3
+                    :=u.
+                    '.
+    self assert:collector notNil.
+    self assert:collector tree notNil.
+    self 
+        assert:(collector tree nextStatement nextStatement nextStatement) isNil.
+    self assert:(collector tree expression) isAssignment.
+    self assert:(collector tree expression variable) isVariable.
+    self assert:(collector tree expression variable name = 'u').
+    self assert:(collector tree expression expression) isConstant.
+    self assert:(collector tree expression expression value =3).
+    self assert:(collector tree nextStatement expression) isErrorNode.
+    self assert:(collector tree nextStatement expression errorToken) = ':='.
+    self 
+        assert:(collector tree nextStatement nextStatement expression) isVariable.
+    self 
+        assert:(collector tree nextStatement nextStatement expression name) = 'u'.
+
+    "Created: / 15-02-2011 / 16:48:11 / Jakub <zelenja7@fel.cvut.cz>"
+    "Modified: / 17-03-2011 / 17:21:48 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test14
+    |collector|
+    collector := self 
+                doForSource:'  
+                    | b|
+                    u := 3
+                    :u.
+                    '.
+ self assert:collector notNil.
+    self assert:collector tree notNil.
+    self 
+        assert:(collector tree nextStatement nextStatement nextStatement) isNil.
+    self assert:(collector tree expression) isAssignment.
+    self assert:(collector tree expression variable) isVariable.
+    self assert:(collector tree expression variable name = 'u').
+    self assert:(collector tree expression expression) isConstant.
+    self assert:(collector tree expression expression value =3).
+    self assert:(collector tree nextStatement expression) isErrorNode.
+    self assert:(collector tree nextStatement expression errorToken) = ':'.
+    self 
+        assert:(collector tree nextStatement nextStatement expression) isVariable.
+    self 
+        assert:(collector tree nextStatement nextStatement expression name) = 'u'.
+
+    "Created: / 15-02-2011 / 17:03:42 / Jakub <zelenja7@fel.cvut.cz>"
+    "Modified: / 18-02-2011 / 19:52:39 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test15
+    |collector|
+    collector := self 
+                doForSource:'  
+                    | b|
+                    u := 3
+                    =u.
+                    '.
+ self assert:collector notNil.
+    self assert:collector tree notNil.
+    self 
+        assert:(collector tree nextStatement ) isNil.
+    self assert:(collector tree expression) isAssignment.
+    self assert:(collector tree expression variable) isVariable.
+    self assert:(collector tree expression variable name = 'u').
+    self assert:(collector tree expression expression) isBinaryMessage.
+    self assert:(collector tree expression expression receiver value =3).
+    self assert:(collector tree expression expression receiver ) isConstant.
+    self assert:(collector tree expression expression selector )= #=.
+    self assert:(collector tree expression expression args size=1 ).
+    self assert:(collector tree expression expression arg ) isVariable.    
+    self assert:(collector tree expression expression arg name='u' ).
+
+    "Created: / 15-02-2011 / 17:04:33 / Jakub <zelenja7@fel.cvut.cz>"
+    "Modified: / 18-02-2011 / 19:56:28 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test19
+    |collector|
+    collector := self 
+                doForSource:'  
+                    |b c|
+                   u := 3 u:=
+                    c u floor.
+                    '.
+self assert:collector notNil.
+self assert:collector tree notNil.
+self assert:collector tree expression isAssignment.
+self assert:collector tree nextStatement expression isErrorNode.
+self assert:collector tree nextStatement expression errorToken=':='.
+self assert:collector tree nextStatement nextStatement expression isUnaryMessage.
+
+    "Created: / 15-02-2011 / 18:15:51 / Jakub <zelenja7@fel.cvut.cz>"
+    "Modified: / 18-02-2011 / 20:00:13 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test2
+
+    |collector|
+    collector := self 
+                doForSource:'
+                    u :'.
+self assert:collector notNil.
+self assert:collector tree notNil.
+self assert:(collector tree expression name ='u').
+self assert:(collector tree expression) isVariable.
+self assert:(collector tree nextStatement expression isErrorNode).
+self assert: collector tree nextStatement expression errorToken=':'.
+
+    "Created: / 09-02-2011 / 20:54:42 / Jakub <zelenja7@fel.cvut.cz>"
+    "Modified: / 18-02-2011 / 15:04:33 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test24
+    |collector|
+    collector := self 
+                doForSource:'  
+                    |u w|
+                   self :                  '.
+self assert:collector notNil.
+self assert:collector tree notNil.
+self assert:collector tree expression isSelf.
+self assert:collector tree nextStatement expression isErrorNode.
+self assert:collector tree nextStatement expression errorToken=':'.
+
+    "Created: / 15-02-2011 / 18:37:23 / Jakub <zelenja7@fel.cvut.cz>"
+    "Modified: / 18-02-2011 / 20:02:46 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test25
+    |collector|
+"    collector := self 
+                doForSource:'  
+                    |u w|
+                   self :=5                  '.
+self assert:collector notNil.
+self assert:collector tree notNil.
+self assert:collector tree expression isSelf.
+self assert:collector tree nextStatement expression isErrorNode.
+self assert:collector tree nextStatement expression errorToken=':='.
+self assert:collector tree nextStatement nextStatement expression isConstant."
+
+    "Created: / 15-02-2011 / 18:37:56 / Jakub <zelenja7@fel.cvut.cz>"
+    "Modified: / 28-02-2011 / 17:28:20 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test26
+    |collector|
+    collector := self 
+                doForSource:'  
+                    |u w|
+                   false :=5                  '.
+self assert:collector notNil.
+self assert:collector tree notNil.
+self assert:collector tree expression isConstant.
+self assert:collector tree nextStatement expression isErrorNode.
+self assert:collector tree nextStatement expression errorToken=':='.
+self assert:collector tree nextStatement nextStatement expression isConstant.
+
+    "Created: / 15-02-2011 / 19:50:17 / Jakub <zelenja7@fel.cvut.cz>"
+    "Modified: / 18-02-2011 / 20:05:19 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test27
+    |collector|
+    collector := self 
+                doForSource:'  
+                    |u w|
+                   nil :=5                  '.
+self assert:collector notNil.
+self assert:collector tree notNil.
+self assert:collector tree expression isConstant.
+self assert:collector tree nextStatement expression isErrorNode.
+self assert:collector tree nextStatement expression errorToken=':='.
+self assert:collector tree nextStatement nextStatement expression isConstant.
+
+    "Created: / 15-02-2011 / 19:51:02 / Jakub <zelenja7@fel.cvut.cz>"
+    "Modified: / 18-02-2011 / 20:05:32 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test28
+    |collector|
+    collector := self 
+                doForSource:'  
+                    |d w tokenValue|
+                   d floor:3 b:u
+                    self rememberSymbolUsed:tokenValue.                '.
+self assert:collector notNil.
+self assert:collector tree notNil.
+
+    "Created: / 15-02-2011 / 19:52:23 / Jakub <zelenja7@fel.cvut.cz>"
+    "Modified: / 18-02-2011 / 20:06:33 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test29
+    |collector|
+    collector := self 
+                doForSource:'  
+                    |d u w|
+                   d floor:3 b:u
+                    self                 '.
+self assert:collector notNil.
+self assert:collector tree notNil.
+
+    "Created: / 15-02-2011 / 19:53:15 / Jakub <zelenja7@fel.cvut.cz>"
+    "Modified: / 18-02-2011 / 20:06:46 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test3
+    |collector|
+
+    collector := self doForSource:'
+                    u ='.
+    self assert:collector notNil.
+    self assert:collector tree notNil.
+    self assert:(collector tree expression) isBinaryMessage.
+    self assert:(collector tree expression receiver name = 'u').
+    self assert:(collector tree expression receiver) isVariable.
+    self assert:(collector tree expression selector) == #=.
+    self assert:(collector tree expression args size) = 1.
+    self assert:(collector tree expression arg) isErrorNode.
+    self assert:(collector tree expression arg errorToken = 'EOF').
+
+    "Created: / 11-02-2011 / 15:32:58 / Jakub <zelenja7@fel.cvut.cz>"
+    "Modified: / 18-02-2011 / 15:20:22 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test30
+    |collector|
+    collector := self 
+                doForSource:'  
+                    |array |
+                  self rememberSymbolUsed:tokenValue
+                    array:=#( 3 4 5 6 ).           '.
+self assert:collector notNil.
+self assert:collector tree notNil.
+
+    "Created: / 15-02-2011 / 19:54:10 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test31
+    |collector|
+    collector := self 
+                doForSource:'  
+                    |array tokenValue|
+                  self rememberSymbolUsed:tokenValue
+                    array:=( 3 4 5 6 ).           '.
+self assert:collector notNil.
+self assert:collector tree notNil.
+self assert:collector tree expression isMessage.
+self assert:collector tree nextStatement expression isErrorNode.
+self assert:collector tree nextStatement expression errorToken=':='.
+self assert:collector tree nextStatement nextStatement  expression isUnaryMessage.
+
+    "Created: / 16-02-2011 / 15:51:47 / Jakub <zelenja7@fel.cvut.cz>"
+    "Modified: / 18-02-2011 / 20:15:19 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test32
+    |collector|
+    collector := self 
+                doForSource:'  
+                    |uu w|
+                    [u== #Symbol or:[u=3]]ifTrue:[
+                    uu := 4.
+
+                    ].
+
+                    '.
+self assert:collector notNil.
+self assert:collector tree notNil.
+
+    "Created: / 16-02-2011 / 15:54:07 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test33
+    |collector|
+
+    collector := self 
+                doForSource:'  
+                    |uu w|
+                    u== #Symbol or:[u=3]]ifTrue:[
+                    uu := 4.
+
+                    ].
+
+                    '.
+    self assert:collector notNil.
+    self assert:collector tree notNil.
+    self assert:collector tree expression isMessage.
+    self assert:collector tree expression receiver isBinaryMessage.
+    self assert:collector tree expression receiver receiver isVariable.
+    self assert:collector tree expression receiver receiver name = 'u'.
+    self assert:collector tree expression receiver selector = #'=='.
+    self assert:collector tree expression receiver args size = 1.
+    self assert:collector tree expression receiver arg isConstant.
+    self assert:collector tree expression receiver arg value = #Symbol.
+    self assert:collector tree expression selector = #or:.
+    self assert:collector tree expression args size = 1.
+    self assert:collector tree expression arg1 isBlock.
+    self assert:collector tree expression arg1 statements expression 
+                isBinaryMessage.
+    self assert:collector tree nextStatement expression isErrorNode.
+    self assert:collector tree nextStatement expression errorToken = ']'.
+    self 
+        assert:collector tree nextStatement nextStatement expression isMessage.
+    self 
+        assert:collector tree nextStatement nextStatement expression receiver 
+                isErrorNode.
+    self 
+        assert:collector tree nextStatement nextStatement expression receiver 
+                errorToken = 'Keyword'.
+    self 
+        assert:collector tree nextStatement nextStatement expression selector 
+                = #ifTrue:.
+    self 
+        assert:collector tree nextStatement nextStatement expression args size = 1.
+    self 
+        assert:collector tree nextStatement nextStatement expression arg1 
+                statements expression 
+                isAssignment.
+
+    "Created: / 16-02-2011 / 15:55:49 / Jakub <zelenja7@fel.cvut.cz>"
+    "Modified: / 18-02-2011 / 20:52:03 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test34
+    |collector|
+    collector := self 
+                doForSource:'  
+                    |array |
+                  self rememberSymbolUsed:tokenValue
+                    array:=#( 3 4 5 6 .           '.
+self assert:collector notNil.
+self assert:collector tree notNil.
+self assert:collector tree expression isMessage.
+self assert:collector tree nextStatement expression isErrorNode.
+self assert:collector tree nextStatement expression errorToken=':='.
+self assert:collector tree nextStatement nextStatement  expression isConstant.
+
+    "Created: / 16-02-2011 / 16:09:35 / Jakub <zelenja7@fel.cvut.cz>"
+    "Modified: / 18-02-2011 / 20:16:54 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test35
+    |collector|
+    collector := self 
+                doForSource:'  
+                    |uu w|
+                    [u== #Symbol or:u=3]]ifTrue:[
+                    uu := 4.
+
+                    ].
+
+                    '.
+ self assert:collector notNil.
+    self assert:collector tree notNil.
+    self assert:collector tree expression isBlock.
+    self assert:collector tree expression statements expression isMessage.
+    self assert:collector tree expression statements expression receiver isBinaryMessage.
+    self assert:collector tree expression statements expression receiver receiver isVariable.
+    self assert:collector tree expression statements expression receiver receiver name = 'u'.
+    self assert:collector tree expression statements expression receiver selector = #'=='.
+    self assert:collector tree expression statements expression receiver args size = 1.
+    self assert:collector tree expression statements expression receiver arg isConstant.
+    self assert:collector tree expression statements expression receiver arg value = #Symbol.
+    self assert:collector tree expression statements expression selector = #or:.
+    self assert:collector tree expression statements expression args size = 1.
+    self assert:collector tree expression statements expression arg1 isBinaryMessage.
+    self assert:collector tree nextStatement expression isErrorNode.
+    self assert:collector tree nextStatement expression errorToken = ']'.
+    self 
+        assert:collector tree nextStatement nextStatement expression isMessage.
+    self 
+        assert:collector tree nextStatement nextStatement expression receiver 
+                isErrorNode.
+    self 
+        assert:collector tree nextStatement nextStatement expression receiver 
+                errorToken = 'Keyword'.
+    self 
+        assert:collector tree nextStatement nextStatement expression selector 
+                = #ifTrue:.
+    self 
+        assert:collector tree nextStatement nextStatement expression args size = 1.
+    self 
+        assert:collector tree nextStatement nextStatement expression arg1 
+                statements expression 
+                isAssignment.
+
+    "Created: / 16-02-2011 / 16:47:18 / Jakub <zelenja7@fel.cvut.cz>"
+    "Modified: / 18-02-2011 / 20:56:11 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test36
+    |collector|
+    collector := self 
+                doForSource:'  
+                    |uu w|
+                    [u== #Symbol ifTrue:[
+                    uu := 4.
+
+                    ].
+
+                    '.
+   self assert:collector notNil.
+    self assert:collector tree notNil.
+    self assert:collector tree expression isBlock.
+    self assert:collector tree expression statements expression isMessage.
+    self assert:collector tree expression statements expression receiver isBinaryMessage.
+    self assert:collector tree expression statements expression receiver receiver isVariable.
+    self assert:collector tree expression statements expression receiver receiver name = 'u'.
+    self assert:collector tree expression statements expression receiver selector = #'=='.
+    self assert:collector tree expression statements expression receiver args size = 1.
+    self assert:collector tree expression statements expression receiver arg isConstant.
+    self assert:collector tree expression statements expression receiver arg value = #Symbol.
+    self assert:collector tree expression statements expression selector = #ifTrue: .
+    self assert:collector tree expression statements expression args size = 1.
+    self assert:collector tree expression statements expression arg1 isBlock.
+    self assert:collector tree expression statements expression arg1 statements expression 
+                isAssignment.
+
+    "Created: / 16-02-2011 / 16:48:07 / Jakub <zelenja7@fel.cvut.cz>"
+    "Modified: / 18-02-2011 / 21:13:22 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test37
+    |collector|
+
+    collector := self 
+                doForSource:'  
+                    |uu w|
+                    [u== #Symbol) ifTrue:[
+                    uu := 4.
+
+                    ].
+
+                    '.
+    self assert:collector notNil.
+    self assert:collector tree notNil.
+    self assert:collector tree expression isBlock.
+    self 
+        assert:collector tree expression statements expression isBinaryMessage.
+    self 
+        assert:collector tree expression statements expression receiver name = 'u'.
+    self 
+        assert:collector tree expression statements expression selector = #'=='.
+    self assert:collector tree expression statements expression args size = 1.
+    self 
+        assert:collector tree expression statements expression arg1 value = #Symbol.
+    self 
+        assert:collector tree expression statements nextStatement expression 
+                isErrorNode.
+    self 
+        assert:collector tree expression statements nextStatement expression 
+                errorToken = ')'.
+    self 
+        assert:collector tree expression statements nextStatement nextStatement 
+                expression isMessage.
+    self 
+        assert:collector tree expression statements nextStatement nextStatement expression 
+                receiver isErrorNode.
+    self 
+        assert:collector tree expression statements nextStatement nextStatement expression 
+                receiver errorToken 
+                = 'Keyword'.
+    self 
+        assert:collector tree expression statements nextStatement nextStatement expression 
+                selector = #ifTrue:.
+    self 
+        assert:collector tree expression statements nextStatement nextStatement expression args 
+                size = 1.
+    self 
+        assert:collector tree expression statements nextStatement nextStatement expression arg1 
+                isBlock.
+    self 
+        assert:collector tree expression statements nextStatement nextStatement expression arg1 
+                statements expression 
+                isAssignment.
+
+    "Created: / 16-02-2011 / 17:21:06 / Jakub <zelenja7@fel.cvut.cz>"
+    "Modified: / 18-02-2011 / 21:25:27 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test38
+    |collector|
+    collector := self 
+                doForSource:'  
+                    |uu w|
+                    [:=
+
+                    ].
+
+                    '.
+self assert:collector notNil.
+self assert:collector tree notNil.
+self assert:collector tree expression isBlock.
+self assert:collector tree expression statements expression  isErrorNode.
+self assert:collector tree expression statements expression errorToken=':='.
+
+    "Created: / 18-02-2011 / 11:55:35 / Jakub <zelenja7@fel.cvut.cz>"
+    "Modified: / 18-02-2011 / 21:40:40 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test39
+    |collector|                
+    collector := self 
+                doForSource:'  
+                    |uu w|
+                    :=3
+
+                    '.
+self assert:collector notNil.
+self assert:collector tree notNil.
+self assert:collector tree expression isErrorNode.
+self assert:collector tree expression errorToken=':='.
+self assert:collector tree  nextStatement expression isConstant.
+self assert:collector tree  nextStatement expression value=3.
+
+    "Created: / 18-02-2011 / 17:11:24 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test4
+    |collector|
+
+    collector := self doForSource:'
+                    u 3'.
+    self assert:collector notNil.
+    self assert:collector tree notNil.
+    self assert:(collector tree expression) isUnaryMessage.
+    self assert:(collector tree expression receiver name = 'u').
+    self assert:(collector tree expression receiver) isVariable.
+    self assert:(collector tree expression selector asString) = '3'.
+
+    "Created: / 15-02-2011 / 14:13:48 / Jakub <zelenja7@fel.cvut.cz>"
+    "Modified: / 18-03-2011 / 22:10:14 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test40
+    |collector|
+    collector := self 
+                doForSource:'  
+                    |array tokenValue|
+                  self rememberSymbolUsed:tokenValue
+                    array:=( 3 4 5 6.           '.
+self assert:collector notNil.
+self assert:collector tree notNil.
+self assert:collector tree expression isMessage.
+self assert:collector tree nextStatement expression isErrorNode.
+self assert:collector tree nextStatement expression errorToken=':='.
+self assert:collector tree nextStatement nextStatement  expression isUnaryMessage.
+
+    "Created: / 18-02-2011 / 20:17:31 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test41
+    |collector|
+    collector := self 
+                doForSource:'  
+                    |array tokenValue|
+                  self rememberSymbolUsed:tokenValue
+                    array:=( 3 4 5 6 :=u           '.
+self assert:collector notNil.
+self assert:collector tree notNil.
+self assert:collector tree expression isMessage.
+self assert:collector tree nextStatement expression isErrorNode.
+self assert:collector tree nextStatement expression errorToken=':='.
+self assert:collector tree nextStatement nextStatement  expression isUnaryMessage.
+self assert:collector tree nextStatement nextStatement nextStatement  expression isErrorNode.
+self assert:collector tree nextStatement nextStatement nextStatement  expression errorToken=':='.
+self assert:collector tree nextStatement nextStatement nextStatement nextStatement  expression isVariable.
+
+    "Created: / 18-02-2011 / 20:35:35 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test42
+    |collector|
+    collector := self 
+                doForSource:'  
+                    |array tokenValue|
+                  self rememberSymbolUsed:tokenValue
+                    array:= 3 4 5 6 :=u)           '.
+self assert:collector notNil.
+self assert:collector tree notNil.
+self assert:collector tree expression isMessage.
+self assert:collector tree nextStatement expression isErrorNode.
+self assert:collector tree nextStatement expression errorToken=':='.
+self assert:collector tree nextStatement nextStatement  expression isUnaryMessage.
+self assert:collector tree nextStatement nextStatement nextStatement  expression isErrorNode.
+self assert:collector tree nextStatement nextStatement nextStatement  expression errorToken=':='.
+self assert:collector tree nextStatement nextStatement nextStatement nextStatement  expression isVariable.
+self assert:collector tree nextStatement nextStatement nextStatement nextStatement nextStatement expression isErrorNode.
+self assert:collector tree nextStatement nextStatement nextStatement nextStatement nextStatement expression errorToken=')'.
+
+    "Created: / 18-02-2011 / 20:37:17 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test43
+    |collector|
+    collector := self 
+                doForSource:'  
+                    |uu w b|
+                    [u== #Symbol ifTrue:[
+                    uu := 4.
+
+                    ].
+                      b:=3
+                    '.
+   self assert:collector notNil.
+    self assert:collector tree notNil.
+    self assert:collector tree expression isBlock.
+    self assert:collector tree expression statements expression isMessage.
+    self assert:collector tree expression statements expression receiver isBinaryMessage.
+    self assert:collector tree expression statements expression receiver receiver isVariable.
+    self assert:collector tree expression statements expression receiver receiver name = 'u'.
+    self assert:collector tree expression statements expression receiver selector = #'=='.
+    self assert:collector tree expression statements expression receiver args size = 1.
+    self assert:collector tree expression statements expression receiver arg isConstant.
+    self assert:collector tree expression statements expression receiver arg value = #Symbol.
+    self assert:collector tree expression statements expression selector = #ifTrue: .
+    self assert:collector tree expression statements expression args size = 1.
+    self assert:collector tree expression statements expression arg1 isBlock.
+    self assert:collector tree expression statements expression arg1 statements expression 
+                isAssignment.
+
+    "Created: / 18-02-2011 / 21:16:10 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test44
+    |collector|
+    collector := self 
+                doForSource:'  
+                    |b c|
+                   u :=b b: u:c
+                    '.
+self assert:collector notNil.
+self assert:collector tree notNil.
+self assert:collector tree expression isAssignment.
+
+    "Created: / 20-02-2011 / 18:54:11 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test5
+    |collector|
+
+    collector := self doForSource:'
+                    u +'.
+    self assert:collector notNil.
+    self assert:collector tree notNil.
+    self assert:(collector tree expression) isBinaryMessage.
+    self assert:(collector tree expression receiver name = 'u').
+    self assert:(collector tree expression receiver) isVariable.
+    self assert:(collector tree expression selector) isSymbol.
+    self assert:(collector tree expression selector asString) = '+'.
+    self assert:(collector tree expression args size) = 1.
+    self assert:(collector tree expression arg) isErrorNode.
+    self assert:(collector tree expression arg errorToken = 'EOF').
+
+    "Created: / 15-02-2011 / 15:18:25 / Jakub <zelenja7@fel.cvut.cz>"
+    "Modified: / 18-02-2011 / 15:31:37 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test6
+    |collector|
+
+    collector := self doForSource:'
+                    u +.'.
+    self assert:collector notNil.
+    self assert:collector tree notNil.
+    self assert:(collector tree expression) isBinaryMessage.
+    self assert:(collector tree expression receiver name = 'u').
+    self assert:(collector tree expression receiver) isVariable.
+    self assert:(collector tree expression selector) isSymbol.
+    self assert:(collector tree expression selector asString) = '+'.
+    self assert:(collector tree expression args size) = 1.
+    self assert:(collector tree expression arg) isErrorNode.
+    self assert:(collector tree expression arg errorToken = '.').
+
+    "Created: / 15-02-2011 / 15:19:08 / Jakub <zelenja7@fel.cvut.cz>"
+    "Modified: / 18-02-2011 / 15:32:56 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test7
+    |collector|
+
+    collector := self doForSource:'
+                    u 3.'.
+    self assert:collector notNil.
+    self assert:collector tree notNil.
+    self assert:(collector tree expression) isUnaryMessage.
+    self assert:(collector tree expression receiver name = 'u').
+    self assert:(collector tree expression receiver) isVariable.
+    self assert:(collector tree expression selector asString) = '3'.
+
+    "Created: / 15-02-2011 / 15:19:22 / Jakub <zelenja7@fel.cvut.cz>"
+    "Modified: / 18-03-2011 / 22:10:21 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test8
+    |collector|
+
+    collector := self doForSource:'
+                    u =.'.
+    self assert:collector notNil.
+    self assert:collector tree notNil.
+    self assert:(collector tree expression) isBinaryMessage.
+    self assert:(collector tree expression receiver name = 'u').
+    self assert:(collector tree expression receiver) isVariable.
+    self assert:(collector tree expression selector) == #'='.
+    self assert:(collector tree expression args size) = 1.
+    self assert:(collector tree expression arg) isErrorNode.
+    self assert:(collector tree expression arg errorToken = '.').
+
+    "Created: / 15-02-2011 / 15:19:38 / Jakub <zelenja7@fel.cvut.cz>"
+    "Modified: / 18-02-2011 / 15:34:13 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+test9
+    |collector|
+
+    collector := self doForSource:'
+                    u :.'.
+    self assert:collector notNil.
+    self assert:collector tree notNil.
+    self assert:(collector tree expression name = 'u').
+    self assert:(collector tree expression) isVariable.
+    self assert:(collector tree nextStatement expression isErrorNode).
+    self assert:collector tree nextStatement expression errorToken = ':'.
+    self assert:collector tree nextStatement nextStatement isNil.
+
+    "Created: / 15-02-2011 / 15:19:52 / Jakub <zelenja7@fel.cvut.cz>"
+    "Modified: / 18-02-2011 / 15:35:42 / Jakub <zelenja7@fel.cvut.cz>"
+!
+
+testBadAssignment
+    |collector|
+
+    collector := self doForSource:'
+                    u := '.
+    self assert:collector notNil.
+    self assert:collector tree notNil.
+    self assert:(collector tree expression) isAssignment.
+    self assert:(collector tree expression variable name = 'u').
+    self assert:(collector tree expression variable) isVariable.
+    self assert:(collector tree expression expression) isErrorNode.
+    self assert:(collector tree expression expression errorToken = 'EOF').
+
+    "Modified: / 18-02-2011 / 15:39:33 / Jakub <zelenja7@fel.cvut.cz>"
+! !
+
+!SmalltalkParserTests class methodsFor:'documentation'!
+
+version_SVN
+    ^ '$Id: SmallSenseParserTests.st 7694 2011-04-04 19:53:25Z vranyj1 $'
+! !
+