122 ^ self position: position |
142 ^ self position: position |
123 ! ! |
143 ! ! |
124 |
144 |
125 !PPContext methodsFor:'*petitcompiler'! |
145 !PPContext methodsFor:'*petitcompiler'! |
126 |
146 |
|
147 methodInvoked: whatever |
|
148 "nothing to do" |
|
149 ! ! |
|
150 |
|
151 !PPContext methodsFor:'*petitcompiler'! |
|
152 |
127 peek: anInteger |
153 peek: anInteger |
128 ^ stream peek: anInteger |
154 ^ stream peek: anInteger |
|
155 ! ! |
|
156 |
|
157 !PPContext methodsFor:'*petitcompiler'! |
|
158 |
|
159 setWs |
|
160 "nothing to do" |
129 ! ! |
161 ! ! |
130 |
162 |
131 !PPContext methodsFor:'*petitcompiler'! |
163 !PPContext methodsFor:'*petitcompiler'! |
132 |
164 |
133 whitespace |
165 whitespace |
196 |
228 |
197 position: anInteger |
229 position: anInteger |
198 position := anInteger |
230 position := anInteger |
199 ! ! |
231 ! ! |
200 |
232 |
|
233 !PPJavaWhitespaceParser methodsFor:'*petitcompiler'! |
|
234 |
|
235 = anotherParser |
|
236 anotherParser == self ifTrue: [ ^ true ]. |
|
237 anotherParser class = self class ifFalse: [ ^ false ]. |
|
238 ^ anotherParser name = self name |
|
239 ! ! |
|
240 |
|
241 !PPJavaWhitespaceParser methodsFor:'*petitcompiler'! |
|
242 |
|
243 hash |
|
244 ^ self name hash |
|
245 ! ! |
|
246 |
201 !PPLiteralObjectParser methodsFor:'*petitcompiler'! |
247 !PPLiteralObjectParser methodsFor:'*petitcompiler'! |
202 |
248 |
203 asCompilerNode |
249 asCompilerNode |
204 ^ PPCCharacterNode new |
250 ^ PPCCharacterNode new |
205 character: literal; |
251 character: literal; |
288 ! ! |
334 ! ! |
289 |
335 |
290 !PPParser methodsFor:'*petitcompiler'! |
336 !PPParser methodsFor:'*petitcompiler'! |
291 |
337 |
292 compile |
338 compile |
293 ^ self compile: #PPGeneratedParser |
339 ^ self compile: PPCArguments default |
294 ! ! |
340 ! ! |
295 |
341 |
296 !PPParser methodsFor:'*petitcompiler'! |
342 !PPParser methodsFor:'*petitcompiler'! |
297 |
343 |
298 compile: name |
344 compile: arguments |
299 ^ self compile: name parameters: #() |
345 self assert: (arguments isKindOf: PPCArguments). |
300 ! ! |
346 |
301 |
347 ^ PPCConfiguration default |
302 !PPParser methodsFor:'*petitcompiler'! |
348 arguments: arguments; |
303 |
349 compile: self |
304 compile: name andParse: input |
350 ! ! |
305 ^ (self compile: name) parse: input |
351 |
306 ! ! |
352 !PPParser methodsFor:'*petitcompiler'! |
307 |
353 |
308 !PPParser methodsFor:'*petitcompiler'! |
354 compile: arguments andParse: input |
309 |
355 ^ (self compile: arguments) parse: input |
310 compile: name parameters: params |
356 ! ! |
311 ^ (PPCCompiler new parameters: params; compile: self as: name) new |
357 |
312 ! ! |
358 !PPParser methodsFor:'*petitcompiler'! |
313 |
359 |
314 !PPParser methodsFor:'*petitcompiler'! |
360 compileAs: name |
315 |
361 | arguments | |
316 compileWith: aPetitCompiler |
362 arguments := PPCArguments default. |
317 | compiled | |
363 arguments name: name. |
318 self children do: [ :child | |
364 |
319 compiled := child compileWith: aPetitCompiler. |
365 ^ self compile: arguments |
320 self replace: child with: compiled bridge. |
366 ! ! |
321 ]. |
367 |
322 ^ aPetitCompiler compileBridgeTo: self |
368 !PPParser methodsFor:'*petitcompiler'! |
323 ! ! |
369 |
324 |
370 compileWithConfiguration: configuration |
325 !PPParser methodsFor:'*petitcompiler'! |
371 ^ configuration compile: self |
326 |
|
327 compileWithParameters: params |
|
328 ^ self compile: #PPGeneratedParser parameters: params |
|
329 ! ! |
372 ! ! |
330 |
373 |
331 !PPParser methodsFor:'*petitcompiler'! |
374 !PPParser methodsFor:'*petitcompiler'! |
332 |
375 |
333 firstSetSuchThat: block |
376 firstSetSuchThat: block |
518 |
571 |
519 !PPSmalltalkGrammar methodsFor:'*petitcompiler'! |
572 !PPSmalltalkGrammar methodsFor:'*petitcompiler'! |
520 |
573 |
521 comment |
574 comment |
522 ^ $" asParser, $" asParser negate star, $" asParser. |
575 ^ $" asParser, $" asParser negate star, $" asParser. |
523 ! ! |
|
524 |
|
525 !PPSmalltalkGrammar methodsFor:'*petitcompiler'! |
|
526 |
|
527 updateContext: aPPContext |
|
528 super updateContext: aPPContext. |
|
529 " |
|
530 aPPContext globalAt: #comment ifAbsentPut: [ self comment ]. |
|
531 aPPContext globalAt: #whitespace ifAbsentPut: [ PPSmalltalkWhitespaceParser new ]. |
|
532 " |
|
533 ! ! |
576 ! ! |
534 |
577 |
535 !PPSmalltalkGrammar methodsFor:'*petitcompiler'! |
578 !PPSmalltalkGrammar methodsFor:'*petitcompiler'! |
536 |
579 |
537 whitespace |
580 whitespace |
564 ^ token comments: comments |
607 ^ token comments: comments |
565 ! ! |
608 ! ! |
566 |
609 |
567 !PPSmalltalkTokenParser methodsFor:'*petitcompiler'! |
610 !PPSmalltalkTokenParser methodsFor:'*petitcompiler'! |
568 |
611 |
569 updateContext: aPPContext |
|
570 aPPContext globalAt: #whitespace ifAbsentPut: PPSmalltalkWhitespaceParser new |
|
571 ! ! |
|
572 |
|
573 !PPSmalltalkTokenParser methodsFor:'*petitcompiler'! |
|
574 |
|
575 whitespace |
612 whitespace |
576 ^ PPSmalltalkWhitespaceParser new |
613 ^ PPSmalltalkWhitespaceParser new |
577 ! ! |
614 ! ! |
578 |
615 |
579 !PPSmalltalkWhitespaceParser methodsFor:'*petitcompiler'! |
616 !PPSmalltalkWhitespaceParser methodsFor:'*petitcompiler'! |
644 ^ 'TOKEN[', parser displayName, ']' |
681 ^ 'TOKEN[', parser displayName, ']' |
645 ! ! |
682 ! ! |
646 |
683 |
647 !PPTokenParser methodsFor:'*petitcompiler'! |
684 !PPTokenParser methodsFor:'*petitcompiler'! |
648 |
685 |
649 firstSets: aFirstDictionary into: aSet |
|
650 "Or keep empty, if token is a terminal" |
|
651 ^ super firstSets: aFirstDictionary into: aSet |
|
652 ! ! |
|
653 |
|
654 !PPTokenParser methodsFor:'*petitcompiler'! |
|
655 |
|
656 isFirstSetTerminal |
686 isFirstSetTerminal |
657 ^ false |
687 ^ false |
658 ! ! |
688 ! ! |
659 |
689 |
660 !PPTokenParser methodsFor:'*petitcompiler'! |
690 !PPTokenParser methodsFor:'*petitcompiler'! |