PPComposedTest.st
changeset 96 b3a69699d996
parent 14 d72aa40bcf53
child 186 8fc35b70c3b9
equal deleted inserted replaced
95:3ba2f35e7a50 96:b3a69699d996
   142 	self assert: parser fail: '1,'.
   142 	self assert: parser fail: '1,'.
   143 	self assert: parser fail: '1,,2'
   143 	self assert: parser fail: '1,,2'
   144 !
   144 !
   145 
   145 
   146 testNestedComments
   146 testNestedComments
   147 	"C ::= B I* E"
   147         "C ::= B I* E"
   148 	"I ::= !!E (C | T)"
   148         "I ::= !!E (C | T)"
   149 	"B ::= /*"
   149         "B ::= /*"
   150 	"E ::= */"
   150         "E ::= */"
   151 	"T ::= ."
   151         "T ::= ."
   152 	
   152         
   153 	| begin end any inside parser |
   153         | begin end any inside parser |
   154 	begin := '/*' asParser.
   154         begin := '/*' asParser.
   155 	end := '*/' asParser.
   155         end := '*/' asParser.
   156 	any := #any asParser.
   156         any := #any asParser.
   157 	
   157         
   158 	parser := PPUnresolvedParser new.
   158         parser := PPUnresolvedParser new.
   159 	inside := end not , (parser / any).
   159         inside := end not , (parser / any).
   160 	parser def: begin , inside star , end.
   160         parser def: begin , inside star , end.
   161 	
   161         
   162 	self assert: parser parse: '/*ab*/cd' end: 6.
   162         self assert: parser parse: '/*ab*/cd' end: 6.
   163 	self assert: parser parse: '/*a/*b*/c*/'.
   163         self assert: parser parse: '/*a/*b*/c*/'.
   164 	self assert: parser fail: '/*a/*b*/c'
   164         self assert: parser fail: '/*a/*b*/c'
   165 !
   165 !
   166 
   166 
   167 testPalindrome
   167 testPalindrome
   168 	"S0 ::= a S1 a | b S1 b | ...
   168 	"S0 ::= a S1 a | b S1 b | ...
   169 	 S1 ::= S0 | epsilon"
   169 	 S1 ::= S0 | epsilon"
   403 ! !
   403 ! !
   404 
   404 
   405 !PPComposedTest class methodsFor:'documentation'!
   405 !PPComposedTest class methodsFor:'documentation'!
   406 
   406 
   407 version
   407 version
   408     ^ '$Header: /cvs/stx/stx/goodies/petitparser/PPComposedTest.st,v 1.3 2012-05-04 21:59:40 vrany Exp $'
   408     ^ '$Header: /cvs/stx/stx/goodies/petitparser/PPComposedTest.st,v 1.4 2012-12-01 15:10:15 cg Exp $'
   409 !
   409 !
   410 
   410 
   411 version_CVS
   411 version_CVS
   412     ^ '$Header: /cvs/stx/stx/goodies/petitparser/PPComposedTest.st,v 1.3 2012-05-04 21:59:40 vrany Exp $'
   412     ^ '$Header: /cvs/stx/stx/goodies/petitparser/PPComposedTest.st,v 1.4 2012-12-01 15:10:15 cg Exp $'
   413 !
   413 !
   414 
   414 
   415 version_SVN
   415 version_SVN
   416     ^ '§Id: PPComposedTest.st 4 2010-12-18 17:02:23Z kursjan §'
   416     ^ '§Id: PPComposedTest.st 4 2010-12-18 17:02:23Z kursjan §'
   417 ! !
   417 ! !