SmallSenseParserTests.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 30 Jul 2013 23:34:56 +0100
changeset 45 408d060b005e
parent 39 748389119d0a
permissions -rw-r--r--
Fix in completion class vars and pools for class-side methods.

"{ Package: 'jv:smallsense' }"

SmallSenseTestCase subclass:#SmallSenseParserTests
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'SmallSense-Tests'
!


!SmallSenseParserTests 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>"
!

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>"
! !

!SmallSenseParserTests class methodsFor:'documentation'!

version_SVN
    ^ '$Id: SmallSenseParserTests.st 7694 2011-04-04 19:53:25Z vranyj1 $'
! !