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