PPObjectTest.st
changeset 4 90de244a7fa2
parent 0 739fe9b7253e
child 34 66d3e143a694
equal deleted inserted replaced
3:e1b11f74e142 4:90de244a7fa2
     1 "{ Package: 'squeak:petitparser' }"
     1 "{ Package: 'stx:goodies/petitparser' }"
     2 
     2 
     3 PPAbstractParseTest subclass:#PPObjectTest
     3 PPAbstractParseTest subclass:#PPObjectTest
     4 	instanceVariableNames:''
     4 	instanceVariableNames:''
     5 	classVariableNames:''
     5 	classVariableNames:''
     6 	poolDictionaries:''
     6 	poolDictionaries:''
    36 
    36 
    37 !PPObjectTest methodsFor:'testing-fancy'!
    37 !PPObjectTest methodsFor:'testing-fancy'!
    38 
    38 
    39 testFibonacci
    39 testFibonacci
    40 	"This parser accepts fibonacci sequences with arbitrary start pairs."
    40 	"This parser accepts fibonacci sequences with arbitrary start pairs."
    41 	
    41 
    42 	| parser |
    42 	| parser |
    43 	parser := ((self integer , self integer) end ==> [ :pair | pair first + pair last ])
    43 	parser := ((self integer , self integer) end ==> [ :pair | pair first + pair last ])
    44 		/ (self integer , (self integer , self integer) and >=> [ :stream :continuation |
    44 		/ (self integer , (self integer , self integer) and >=> [ :stream :continuation |
    45 			| result |
    45 			| result |
    46 			result := continuation value.
    46 			result := continuation value.
    54 	self assert: parser parse: #(1 1 2 3 5 8) to: 13.
    54 	self assert: parser parse: #(1 1 2 3 5 8) to: 13.
    55 	self assert: parser parse: #(1 1 2 3 5 8 13) to: 21.
    55 	self assert: parser parse: #(1 1 2 3 5 8 13) to: 21.
    56 	self assert: parser fail: #().
    56 	self assert: parser fail: #().
    57 	self assert: parser fail: #(1).
    57 	self assert: parser fail: #(1).
    58 	self assert: parser fail: #(1 2 3 4) end: 2
    58 	self assert: parser fail: #(1 2 3 4) end: 2
    59 	
    59 
    60 ! !
    60 ! !
    61 
    61 
    62 !PPObjectTest methodsFor:'testing-operators'!
    62 !PPObjectTest methodsFor:'testing-operators'!
    63 
    63 
    64 testChoice
    64 testChoice
    73 	parser := self integer , self string.
    73 	parser := self integer , self string.
    74 	self assert: parser parse: #(123 'abc') to: #(123 'abc').
    74 	self assert: parser parse: #(123 'abc') to: #(123 'abc').
    75 	self assert: parser fail: #(123 456).
    75 	self assert: parser fail: #(123 456).
    76 	self assert: parser fail: #('abc' 'def').
    76 	self assert: parser fail: #('abc' 'def').
    77 	self assert: parser fail: #('abc' 123)
    77 	self assert: parser fail: #('abc' 123)
    78 	
    78 
    79 ! !
    79 ! !
    80 
    80 
    81 !PPObjectTest class methodsFor:'documentation'!
    81 !PPObjectTest class methodsFor:'documentation'!
    82 
    82 
    83 version_SVN
    83 version_SVN
    84     ^ '$Id: PPObjectTest.st,v 1.1 2011-08-18 18:56:17 cg Exp $'
    84     ^ '$Id: PPObjectTest.st,v 1.2 2012-01-13 11:22:50 cg Exp $'
    85 ! !
    85 ! !