compiler/PPCTokenSequenceNode.st
changeset 438 20598d7ce9fa
parent 422 116d2b2af905
equal deleted inserted replaced
437:54b3bc9e3987 438:20598d7ce9fa
     8 	poolDictionaries:''
     8 	poolDictionaries:''
     9 	category:'PetitCompiler-Nodes'
     9 	category:'PetitCompiler-Nodes'
    10 !
    10 !
    11 
    11 
    12 
    12 
    13 !PPCTokenSequenceNode methodsFor:'as yet unclassified'!
    13 !PPCTokenSequenceNode methodsFor:'accessing'!
    14 
       
    15 asFast
       
    16 	^ self
       
    17 !
       
    18 
       
    19 compileWith: compiler effect: effect id: id
       
    20 
       
    21 	compiler startMethod: id.
       
    22 	compiler addVariable: 'memento'.			
       
    23 	compiler add: (compiler smartRemember: self).
       
    24 
       
    25 "	self addGuard: compiler."
       
    26 
       
    27 	compiler call: ((children at: 1) compileWith: compiler).
       
    28 	compiler add: 'error ifTrue: [ ^ failure ].'.
       
    29 
       
    30 	(2 to: children size) do: [ :idx  | |child|
       
    31 		child := children at: idx.
       
    32 		compiler call: (child compileWith: compiler).
       
    33 		compiler add: 'error ifTrue: [ ', (compiler smartRestore: self) ,' ^ failure ].'.
       
    34 	].
       
    35  ^ compiler stopMethod.
       
    36 !
       
    37 
    14 
    38 suffix
    15 suffix
    39 	^ #'_fast'
    16 	^ #'_fast'
       
    17 ! !
       
    18 
       
    19 !PPCTokenSequenceNode methodsFor:'visiting'!
       
    20 
       
    21 accept: visitor
       
    22 	^ visitor visitTokenSequenceNode: self
    40 ! !
    23 ! !
    41 
    24 
    42 !PPCTokenSequenceNode class methodsFor:'documentation'!
    25 !PPCTokenSequenceNode class methodsFor:'documentation'!
    43 
    26 
    44 version_HG
    27 version_HG