compiler/PPCTokenStarMessagePredicateNode.st
changeset 438 20598d7ce9fa
parent 422 116d2b2af905
child 452 9f4558b3be66
equal deleted inserted replaced
437:54b3bc9e3987 438:20598d7ce9fa
     7 	classVariableNames:''
     7 	classVariableNames:''
     8 	poolDictionaries:''
     8 	poolDictionaries:''
     9 	category:'PetitCompiler-Nodes'
     9 	category:'PetitCompiler-Nodes'
    10 !
    10 !
    11 
    11 
    12 !PPCTokenStarMessagePredicateNode methodsFor:'as yet unclassified'!
    12 !PPCTokenStarMessagePredicateNode methodsFor:'visiting'!
    13 
    13 
    14 asFast
    14 accept: visitor
    15 	^ self
    15 	^ visitor visitTokenStarMessagePredicateNode: self
    16 !
       
    17 
       
    18 asInlined
       
    19 	^ PPCInlineTokenStarMessagePredicateNode new
       
    20 		name: name;
       
    21 		message: message;
       
    22 		child: child;
       
    23 		yourself
       
    24 !
       
    25 
       
    26 compileWith: compiler effect: effect id: id
       
    27 	compiler startMethod: id.
       
    28 	compiler add: '[ context peek ', message,' ] whileTrue: ['.
       
    29 	compiler indent.
       
    30 	compiler add: 'context next'.
       
    31 	compiler indent.
       
    32 	compiler dedent.
       
    33 	compiler add: '].'.
       
    34  ^ compiler stopMethod.
       
    35 !
       
    36 
       
    37 rewrite: changeStatus
       
    38 
       
    39 	(message = #isSeparator) ifTrue: [ 
       
    40 		changeStatus change.
       
    41 		^ PPCTokenStarSeparatorNode new
       
    42 			name: name;
       
    43 			child: child;
       
    44 			message: message;
       
    45 			yourself.
       
    46 	]
       
    47 ! !
    16 ! !
    48 
    17