PPLambdaParserTest.st
changeset 37 d602818dd055
parent 4 90de244a7fa2
child 189 90b8d7cb0482
equal deleted inserted replaced
36:4fe8e6295f9e 37:d602818dd055
    61 ! !
    61 ! !
    62 
    62 
    63 !PPLambdaParserTest methodsFor:'testing-utilities'!
    63 !PPLambdaParserTest methodsFor:'testing-utilities'!
    64 
    64 
    65 testParseOnError
    65 testParseOnError
    66 	| beenHere |
    66         | beenHere |
    67 	result := self parserClass
    67         result := self parserClass
    68 		parse: '\x.y'
    68                 parse: '\x.y'
    69 		onError: [ self fail ].
    69                 onError: [ self fail ].
    70 	self assert: result = #('x' 'y').
    70         self assert: result = #('x' 'y').
       
    71         
       
    72         beenHere := false.
       
    73         result := self parserClass
       
    74                 parse: '\x.'
       
    75                 onError: [ beenHere := true ].
       
    76         self assert: beenHere.
       
    77         
       
    78         beenHere := false.
       
    79         result := self parserClass
       
    80                 parse: '\x.'
       
    81                 onError: [ :fail | beenHere := true. fail ].
       
    82         self assert: beenHere.
       
    83         "We don't use $ before character sign in ST/X"
       
    84         self assert: (result message includesSubString: '(').
       
    85 "/        self assert: (result message includesSubString: '$(').
       
    86         self assert: (result message includesSubString: 'expected').
       
    87         self assert: (result position = 0).
    71 
    88 
    72 	beenHere := false.
    89         beenHere := false.
    73 	result := self parserClass
    90         result := self parserClass
    74 		parse: '\x.'
    91                 parse: '\x.'
    75 		onError: [ beenHere := true ].
    92                 onError: [ :msg :pos | 
    76 	self assert: beenHere.
    93                         "We don't use $ before character sign in ST/X"
    77 
    94                         self assert: (msg includesSubString: '(').
    78 	beenHere := false.
       
    79 	result := self parserClass
       
    80 		parse: '\x.'
       
    81 		onError: [ :fail | beenHere := true. fail ].
       
    82 	self assert: beenHere.
       
    83 	"We don't use $ before character sign in ST/X"
       
    84 	self assert: (result message includesSubString: '(').
       
    85 "/        self assert: (result message includesSubString: '$(').
       
    86 	self assert: (result message includesSubString: 'expected').
       
    87 	self assert: (result position = 0).
       
    88 
       
    89 	beenHere := false.
       
    90 	result := self parserClass
       
    91 		parse: '\x.'
       
    92 		onError: [ :msg :pos |
       
    93 			"We don't use $ before character sign in ST/X"
       
    94 			self assert: (msg includesSubString: '(').
       
    95 "/                        self assert: (msg includesSubString: '$(').
    95 "/                        self assert: (msg includesSubString: '$(').
    96 			self assert: (msg includesSubString: 'expected').
    96                         self assert: (msg includesSubString: 'expected').
    97 			self assert: (pos = 0).
    97                         self assert: (pos = 0).
    98 			beenHere := true ].
    98                         beenHere := true ].
    99 	self assert: result.
    99         self assert: result.
   100 	self assert: beenHere
   100         self assert: beenHere
   101 
   101 
   102     "Modified: / 19-12-2010 / 16:52:33 / Jan Kurs <kurs.jan@post.cz>"
   102     "Modified: / 19-12-2010 / 16:52:33 / Jan Kurs <kurs.jan@post.cz>"
   103 !
   103 !
   104 
   104 
   105 testParseStartingAtOnError
   105 testParseStartingAtOnError
   107 	result := self parserClass
   107 	result := self parserClass
   108 		parse: 'x'
   108 		parse: 'x'
   109 		startingAt: #variable
   109 		startingAt: #variable
   110 		onError: [ self fail ].
   110 		onError: [ self fail ].
   111 	self assert: result = 'x'.
   111 	self assert: result = 'x'.
   112 
   112 	
   113 	beenHere := false.
   113 	beenHere := false.
   114 	result := self parserClass
   114 	result := self parserClass
   115 		parse: '\'
   115 		parse: '\'
   116 		startingAt: #variable
   116 		startingAt: #variable
   117 		onError: [ beenHere := true ].
   117 		onError: [ beenHere := true ].
   118 	self assert: beenHere.
   118 	self assert: beenHere.
   119 
   119 	
   120 	beenHere := false.
   120 	beenHere := false.
   121 	result := self parserClass
   121 	result := self parserClass
   122 		parse: '\'
   122 		parse: '\'
   123 		startingAt: #variable
   123 		startingAt: #variable
   124 		onError: [ :fail | beenHere := true. fail ].
   124 		onError: [ :fail | beenHere := true. fail ].
   128 
   128 
   129 	beenHere := false.
   129 	beenHere := false.
   130 	result := self parserClass
   130 	result := self parserClass
   131 		parse: '\'
   131 		parse: '\'
   132 		startingAt: #variable
   132 		startingAt: #variable
   133 		onError: [ :msg :pos |
   133 		onError: [ :msg :pos | 
   134 			self assert: msg = 'letter expected'.
   134 			self assert: msg = 'letter expected'.
   135 			self assert: pos = 0.
   135 			self assert: pos = 0.
   136 			beenHere := true ].
   136 			beenHere := true ].
   137 	self assert: beenHere
   137 	self assert: beenHere
   138 !
   138 !
   139 
   139 
   140 testProductionAt
   140 testProductionAt
   141 	self assert: (parser productionAt: #foo) isNil.
   141 	self assert: (parser productionAt: #foo) isNil.
   142 	self assert: (parser productionAt: #foo ifAbsent: [ true ]).
   142 	self assert: (parser productionAt: #foo ifAbsent: [ true ]).
   143 
   143 	
   144 	self assert: (parser productionAt: #start) notNil.
   144 	self assert: (parser productionAt: #start) notNil.
   145 	self assert: (parser productionAt: #start ifAbsent: [ true ]) notNil.
   145 	self assert: (parser productionAt: #start ifAbsent: [ true ]) notNil.
   146 
   146 	
   147 	self assert: (parser productionAt: #variable) notNil.
   147 	self assert: (parser productionAt: #variable) notNil.
   148 	self assert: (parser productionAt: #variable ifAbsent: [ true ]) notNil
   148 	self assert: (parser productionAt: #variable ifAbsent: [ true ]) notNil
   149 ! !
   149 ! !
   150 
   150 
   151 !PPLambdaParserTest class methodsFor:'documentation'!
   151 !PPLambdaParserTest class methodsFor:'documentation'!
   152 
   152 
       
   153 version
       
   154     ^ '$Header: /cvs/stx/stx/goodies/petitparser/PPLambdaParserTest.st,v 1.3 2012-05-04 22:05:16 vrany Exp $'
       
   155 !
       
   156 
       
   157 version_CVS
       
   158     ^ '$Header: /cvs/stx/stx/goodies/petitparser/PPLambdaParserTest.st,v 1.3 2012-05-04 22:05:16 vrany Exp $'
       
   159 !
       
   160 
   153 version_SVN
   161 version_SVN
   154     ^ '$Id: PPLambdaParserTest.st,v 1.2 2012-01-13 11:22:50 cg Exp $'
   162     ^ '§Id: PPLambdaParserTest.st 5 2010-12-19 17:38:27Z kursjan §'
   155 ! !
   163 ! !