PPObjectTest.st
changeset 34 66d3e143a694
parent 4 90de244a7fa2
child 190 8fb7bd90b59f
equal deleted inserted replaced
33:78c58a116921 34:66d3e143a694
    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
       
    84     ^ '$Header: /cvs/stx/stx/goodies/petitparser/PPObjectTest.st,v 1.3 2012-05-04 22:04:44 vrany Exp $'
       
    85 !
       
    86 
       
    87 version_CVS
       
    88     ^ '$Header: /cvs/stx/stx/goodies/petitparser/PPObjectTest.st,v 1.3 2012-05-04 22:04:44 vrany Exp $'
       
    89 !
       
    90 
    83 version_SVN
    91 version_SVN
    84     ^ '$Id: PPObjectTest.st,v 1.2 2012-01-13 11:22:50 cg Exp $'
    92     ^ '§Id: PPObjectTest.st 4 2010-12-18 17:02:23Z kursjan §'
    85 ! !
    93 ! !