compiler/PPCTokenizingCodeGen.st
changeset 515 b5316ef15274
child 518 a6d8b93441b0
child 524 f6f68d32de73
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compiler/PPCTokenizingCodeGen.st	Mon Aug 17 12:13:16 2015 +0100
@@ -0,0 +1,59 @@
+"{ Package: 'stx:goodies/petitparser/compiler' }"
+
+"{ NameSpace: Smalltalk }"
+
+PPCCodeGen subclass:#PPCTokenizingCodeGen
+	instanceVariableNames:'rememberStrategy errorStrategy'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'PetitCompiler-Compiler-Codegen'
+!
+
+!PPCTokenizingCodeGen methodsFor:'code generation'!
+
+codeClearError
+    errorStrategy codeClearError
+!
+
+codeError
+    errorStrategy codeError
+!
+
+codeError: message
+    errorStrategy codeError: message.
+!
+
+smartRemember: parser to: variableName 
+    rememberStrategy smartRemember: parser to: variableName
+!
+
+smartRestore: parser from: mementoName
+    rememberStrategy smartRestore: parser from: mementoName
+! !
+
+!PPCTokenizingCodeGen methodsFor:'hooks'!
+
+errorStrategy
+    ^ errorStrategy ifNil: [ PPCCompilerTokenizingErrorStrategy on: self  ]
+!
+
+errorStrategy: whatever
+    errorStrategy := whatever 
+!
+
+rememberStrategy
+    ^ rememberStrategy ifNil: [ PPCCompilerTokenizingRememberStrategy on: self  ]
+!
+
+rememberStrategy: whatever
+    rememberStrategy := whatever 
+! !
+
+!PPCTokenizingCodeGen methodsFor:'initialization'!
+
+initialize
+    super initialize.
+    rememberStrategy := PPCCompilerTokenizingRememberStrategy on: self.
+    errorStrategy := PPCCompilerTokenizingErrorStrategy on: self.
+! !
+