compiler/PPCTokenizingCodeGen.st
changeset 524 f6f68d32de73
parent 515 b5316ef15274
child 525 751532c8f3db
equal deleted inserted replaced
515:b5316ef15274 524:f6f68d32de73
     9 	category:'PetitCompiler-Compiler-Codegen'
     9 	category:'PetitCompiler-Compiler-Codegen'
    10 !
    10 !
    11 
    11 
    12 !PPCTokenizingCodeGen methodsFor:'code generation'!
    12 !PPCTokenizingCodeGen methodsFor:'code generation'!
    13 
    13 
    14 codeClearError
    14 codeScannerRememberTo: variableName 
    15     errorStrategy codeClearError
    15     self codeAssign: 'scanner remember' to: variableName.
       
    16     self codeDot.
    16 !
    17 !
    17 
    18 
    18 codeError
    19 codeScannerRestoreFrom: variableName 
    19     errorStrategy codeError
    20     self code: 'scanner restore: ', variableName.
       
    21     self codeDot.
       
    22                     
    20 !
    23 !
    21 
    24 
    22 codeError: message
    25 remember: node to: variableName 
    23     errorStrategy codeError: message.
    26     ^ self codeScannerRememberTo: variableName
    24 !
    27 !
    25 
    28 
    26 smartRemember: parser to: variableName 
    29 restore: node from: mementoName
    27     rememberStrategy smartRemember: parser to: variableName
    30     ^ self codeScannerRestoreFrom: mementoName
    28 !
       
    29 
       
    30 smartRestore: parser from: mementoName
       
    31     rememberStrategy smartRestore: parser from: mementoName
       
    32 ! !
       
    33 
       
    34 !PPCTokenizingCodeGen methodsFor:'hooks'!
       
    35 
       
    36 errorStrategy
       
    37     ^ errorStrategy ifNil: [ PPCCompilerTokenizingErrorStrategy on: self  ]
       
    38 !
       
    39 
       
    40 errorStrategy: whatever
       
    41     errorStrategy := whatever 
       
    42 !
       
    43 
       
    44 rememberStrategy
       
    45     ^ rememberStrategy ifNil: [ PPCCompilerTokenizingRememberStrategy on: self  ]
       
    46 !
       
    47 
       
    48 rememberStrategy: whatever
       
    49     rememberStrategy := whatever 
       
    50 ! !
    31 ! !
    51 
    32 
    52 !PPCTokenizingCodeGen methodsFor:'initialization'!
    33 !PPCTokenizingCodeGen methodsFor:'initialization'!
    53 
    34 
    54 initialize
    35 initialize
    55     super initialize.
    36     super initialize.
    56     rememberStrategy := PPCCompilerTokenizingRememberStrategy on: self.
       
    57     errorStrategy := PPCCompilerTokenizingErrorStrategy on: self.
       
    58 ! !
    37 ! !
    59 
    38