compiler/PPCCompilerTokenizingRememberStrategy.st
changeset 464 f6d77fee9811
parent 459 4751c407bb40
child 515 b5316ef15274
equal deleted inserted replaced
459:4751c407bb40 464:f6d77fee9811
     4 
     4 
     5 Object subclass:#PPCCompilerTokenizingRememberStrategy
     5 Object subclass:#PPCCompilerTokenizingRememberStrategy
     6 	instanceVariableNames:'compiler'
     6 	instanceVariableNames:'compiler'
     7 	classVariableNames:''
     7 	classVariableNames:''
     8 	poolDictionaries:''
     8 	poolDictionaries:''
     9 	category:'PetitCompiler-Core'
     9 	category:'PetitCompiler-Compiler'
    10 !
    10 !
    11 
    11 
    12 
    12 
    13 !PPCCompilerTokenizingRememberStrategy class methodsFor:'instance creation'!
    13 !PPCCompilerTokenizingRememberStrategy class methodsFor:'instance creation'!
    14 
    14 
    27 !PPCCompilerTokenizingRememberStrategy methodsFor:'as yet unclassified'!
    27 !PPCCompilerTokenizingRememberStrategy methodsFor:'as yet unclassified'!
    28 
    28 
    29 smartRemember: parser to: variableName 
    29 smartRemember: parser to: variableName 
    30     parser isContextFree ifTrue: [ 
    30     parser isContextFree ifTrue: [ 
    31         compiler codeAssign: '{ context lwRemember. currentTokenType . currentTokenValue }.' 
    31         compiler codeAssign: '{ context lwRemember. currentTokenType . currentTokenValue }.' 
       
    32 "		compiler codeAssign: 'context lwRemember.' "
    32                     to: variableName.
    33                     to: variableName.
    33     ] ifFalse: [ 
    34     ] ifFalse: [ 
    34         compiler codeAssign: '{ context remember. currentTokenType . currentTokenValue }.'
    35         compiler codeAssign: '{ context remember. currentTokenType . currentTokenValue }.'
    35                     to: variableName.
    36                     to: variableName.
    36     ]
    37     ]
    37 !
    38 !
    38 
    39 
    39 smartRestore: parser from: mementoName
    40 smartRestore: parser from: mementoName
    40     parser isContextFree ifTrue: [ 
    41     parser isContextFree ifTrue: [ 
    41         compiler add: 'context lwRestore: ', mementoName, ' first.'.
    42         compiler add: 'context lwRestore: (', mementoName, ' at: 1).'.
       
    43 "		compiler add: 'context lwRestore: ', mementoName, '.'."
    42     ] ifFalse: [ 
    44     ] ifFalse: [ 
    43         compiler add: 'context restore: ', mementoName, ' first.'.
    45         compiler add: 'context restore: (', mementoName, ' at: 1).'.
    44     ].
    46     ].
    45     compiler codeAssign: mementoName, ' second.' to: 'currentTokenType'.
    47 
    46     compiler codeAssign: mementoName, ' third.' to: 'currentTokenValue'.	
    48     compiler codeAssign: '(', mementoName, ' at: 2).' to: 'currentTokenType'.
       
    49     compiler codeAssign: '(', mementoName, ' at: 3).' to: 'currentTokenValue'.	
       
    50     
    47 ! !
    51 ! !
    48 
    52 
    49 !PPCCompilerTokenizingRememberStrategy class methodsFor:'documentation'!
    53 !PPCCompilerTokenizingRememberStrategy class methodsFor:'documentation'!
    50 
    54 
    51 version_HG
    55 version_HG