equal
deleted
inserted
replaced
1 "{ Package: 'stx:goodies/petitparser/compiler' }" |
1 "{ Package: 'stx:goodies/petitparser/compiler' }" |
2 |
2 |
3 "{ NameSpace: Smalltalk }" |
3 "{ NameSpace: Smalltalk }" |
4 |
4 |
5 Object subclass:#PPCGuard |
5 Object subclass:#PPCGuard |
6 instanceVariableNames:'node classification id message' |
6 instanceVariableNames:'classification id message' |
7 classVariableNames:'' |
7 classVariableNames:'' |
8 poolDictionaries:'' |
8 poolDictionaries:'' |
9 category:'PetitCompiler-Core' |
9 category:'PetitCompiler-Core' |
10 ! |
10 ! |
11 |
11 |
79 |
79 |
80 compileMessage: compiler |
80 compileMessage: compiler |
81 compiler add: '(context peek ', message, ')' |
81 compiler add: '(context peek ', message, ')' |
82 ! |
82 ! |
83 |
83 |
84 initializeFor: aPPCNode |
84 initializeFor: node |
85 node := aPPCNode. |
|
86 message := #unknown. |
85 message := #unknown. |
87 id := nil. |
86 id := nil. |
88 |
87 |
89 "No Guards for trimming parser so far" |
88 "No Guards for trimming parser so far" |
90 ((node firstSetSuchThat: [ :e | e isKindOf: PPCTrimNode ]) isEmpty not) ifTrue: [ |
89 ((node firstSetSuchThat: [ :e | e isKindOf: PPCTrimNode ]) isEmpty) ifFalse: [ |
91 ^ self initializeForNoGuard |
90 ^ self initializeForNoGuard |
92 ]. |
91 ]. |
93 (node acceptsEpsilon) ifTrue: [ |
92 (node acceptsEpsilon) ifTrue: [ |
94 ^ self initializeForEpsilon |
93 ^ self initializeForEpsilon |
95 ]. |
94 ]. |