equal
deleted
inserted
replaced
|
1 "{ Package: 'stx:goodies/petitparser/compiler' }" |
|
2 |
|
3 "{ NameSpace: Smalltalk }" |
|
4 |
|
5 PPCScannerResultStrategy subclass:#PPCUniversalResultStrategy |
|
6 instanceVariableNames:'tokens' |
|
7 classVariableNames:'' |
|
8 poolDictionaries:'' |
|
9 category:'PetitCompiler-Scanner' |
|
10 ! |
|
11 |
|
12 !PPCUniversalResultStrategy methodsFor:'accessing'! |
|
13 |
|
14 indexForRetval: retval |
|
15 " tokens withIndexDo: [ :e :index | |
|
16 (e == retval) ifTrue: [ ^ index ] |
|
17 ]. |
|
18 |
|
19 self error: 'This should not happen!!' |
|
20 " |
|
21 ^ codeGen idGen numericIdFor: retval |
|
22 ! |
|
23 |
|
24 tokens |
|
25 ^ tokens |
|
26 ! |
|
27 |
|
28 tokens: array |
|
29 self assert: (array isArray). |
|
30 tokens := array |
|
31 ! ! |
|
32 |
|
33 !PPCUniversalResultStrategy methodsFor:'as yet unclassified'! |
|
34 |
|
35 recordFailure: retval |
|
36 codeGen codeRecordFailure: (self indexForRetval: retval) |
|
37 ! |
|
38 |
|
39 recordFailure: retval offset: offset |
|
40 codeGen codeRecordFailure: (self indexForRetval: retval) |
|
41 ! |
|
42 |
|
43 recordMatch: retval |
|
44 codeGen codeComment: 'symbol: ', retval storeString. |
|
45 codeGen codeRecordMatch: (self indexForRetval: retval) |
|
46 ! |
|
47 |
|
48 recordMatch: retval offset: offset |
|
49 codeGen codeComment: 'symbol: ', retval storeString. |
|
50 codeGen codeRecordMatch: (self indexForRetval: retval) offset: offset |
|
51 ! |
|
52 |
|
53 reset |
|
54 " ^ codeGen code: 'self reset:', tokens storeString, '.'" |
|
55 ^ codeGen code: 'self reset.' |
|
56 ! |
|
57 |
|
58 returnResult: state |
|
59 self assert: (state isKindOf: PEGFsaState). |
|
60 codeGen codeReturn. |
|
61 ! ! |
|
62 |