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 |
71 |
72 beenHere := false. |
72 beenHere := false. |
73 result := self parserClass |
73 result := self parserClass |
74 parse: '\x.' |
74 parse: '\x.' |
75 onError: [ beenHere := true ]. |
75 onError: [ beenHere := true ]. |
76 self assert: beenHere. |
76 self assert: beenHere. |
77 |
77 |
78 beenHere := false. |
78 beenHere := false. |
79 result := self parserClass |
79 result := self parserClass |
80 parse: '\x.' |
80 parse: '\x.' |
81 onError: [ :fail | beenHere := true. fail ]. |
81 onError: [ :fail | beenHere := true. fail ]. |
82 self assert: beenHere. |
82 self assert: beenHere. |
83 "We don't use $ before character sign in ST/X" |
83 "We don't use $ before character sign in ST/X" |
84 self assert: (result message includesSubString: '('). |
84 self assert: (result message includesSubString: '('). |
85 "/ self assert: (result message includesSubString: '$('). |
85 "/ self assert: (result message includesSubString: '$('). |
86 self assert: (result message includesSubString: 'expected'). |
86 self assert: (result message includesSubString: 'expected'). |
87 self assert: (result position = 0). |
87 self assert: (result position = 0). |
88 |
88 |
89 beenHere := false. |
89 beenHere := false. |
90 result := self parserClass |
90 result := self parserClass |
91 parse: '\x.' |
91 parse: '\x.' |
92 onError: [ :msg :pos | |
92 onError: [ :msg :pos | |
93 "We don't use $ before character sign in ST/X" |
93 "We don't use $ before character sign in ST/X" |
94 self assert: (msg includesSubString: '('). |
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_SVN |
153 version_SVN |
154 ^ '$Id: PPLambdaParserTest.st,v 1.1 2011-08-18 18:56:17 cg Exp $' |
154 ^ '$Id: PPLambdaParserTest.st,v 1.2 2012-01-13 11:22:50 cg Exp $' |
155 ! ! |
155 ! ! |