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