diff -r 20598d7ce9fa -r 9f4558b3be66 compiler/PPCStarAnyNode.st --- a/compiler/PPCStarAnyNode.st Thu Apr 30 23:43:14 2015 +0200 +++ b/compiler/PPCStarAnyNode.st Sun May 10 06:28:36 2015 +0100 @@ -12,12 +12,30 @@ !PPCStarAnyNode methodsFor:'as yet unclassified'! prefix - ^ #starAny + ^ #starAny +! ! + +!PPCStarAnyNode methodsFor:'first follow next'! + +firstSets: aFirstDictionary into: aSet suchThat: aBlock + " + First and follow should be performed on the non-specialized tree, i.e. on a tree + with star -> messageNode. Not on myself. + + The reason for that is, that: + - I am terminal + - I am nullable + + This means, I look like epsilon node for the first follow analysis. And epsilons + are ignored in sequences, thus sequence of StarMessagePredicate, Literal + leads to { Literal } as firstSet and not expected { MessagePredicate, Literal } + " + ^ self error: 'Cannot perform first/follow analysis on myself, sorry for that :(' ! ! !PPCStarAnyNode methodsFor:'visiting'! accept: visitor - ^ visitor visitStarAnyNode: self + ^ visitor visitStarAnyNode: self ! !