SmallSense__TokenPatternMatcherTests.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Fri, 09 May 2014 17:29:26 +0100
changeset 204 190357b490fd
parent 203 c70b7351eda6
child 209 220fd4240b0f
permissions -rw-r--r--
Allow for spaces in token patterns to increase readibility.

"{ Package: 'jv:smallsense' }"

"{ NameSpace: SmallSense }"

Smalltalk::TestCase subclass:#TokenPatternMatcherTests
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'SmallSense-Tests'
!

!TokenPatternMatcherTests methodsFor:'tests'!

test_01

    | pattern matcher |

    pattern := SmallSense::TokenPatternParser parse: '][[:Keyword=do\::]]'.
    matcher := SmallSense::TokenPatternMatcher for: pattern.

    self assert: (matcher searchStream: (SmallSense::TokenStream on: (Scanner for: '] do:'))).
    self deny:   (matcher searchStream: (SmallSense::TokenStream on: (Scanner for: 'self matches do:'))).

    "Created: / 06-05-2014 / 16:29:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    "Modified: / 09-05-2014 / 16:36:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

test_02

    | pattern matcher |

    pattern := SmallSense::TokenPatternParser parse: '\[ ( (\:[[:Identifier:]])+ \| )? \.'.
    matcher := SmallSense::TokenPatternMatcher for: pattern.

    self assert: (matcher searchStream: (SmallSense::TokenStream on: (Scanner for: '[ .'))).
    self assert: (matcher searchStream: (SmallSense::TokenStream on: (Scanner for: '[ :arg1 | .'))).
    self assert: (matcher searchStream: (SmallSense::TokenStream on: (Scanner for: '[ :arg1 :arg2 | .'))).

    self deny: (matcher searchStream: (SmallSense::TokenStream on: (Scanner for: '[ :arg1 arg2 | .'))).

    "Created: / 06-05-2014 / 17:04:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    "Modified: / 09-05-2014 / 17:27:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !