--- a/compiler/PPCTokenizingCodeGenerator.st Fri Jul 31 14:07:31 2015 +0100
+++ b/compiler/PPCTokenizingCodeGenerator.st Mon Aug 17 12:56:02 2015 +0100
@@ -18,9 +18,12 @@
!
tokenGenerator
+ self error: 'deprecated'.
+
tokenGenerator isNil ifTrue: [
- tokenGenerator := PPCTokenCodeGenerator on: compiler.
- tokenGenerator arguments: arguments.
+ tokenGenerator := (PPCTokenCodeGenerator on: compiler)
+ arguments: arguments;
+ yourself.
].
^ tokenGenerator
!
@@ -63,6 +66,12 @@
^ true
! !
+!PPCTokenizingCodeGenerator methodsFor:'scanner'!
+
+compileScanner
+ compiler addConstant: self tokenGenerator compileScanner as: #scannerClass.
+! !
+
!PPCTokenizingCodeGenerator methodsFor:'visiting'!
visitAndNode: node
@@ -95,10 +104,12 @@
"TODO: JK: fix this in a proper way. Commented for now to make LRPParser cimpilable
with tokenizing"
- "child acceptsEpsilon"false ifTrue: [
+ child acceptsEpsilon "false" ifTrue: [
possibleError := false.
- compiler codeAssignParsedValueOf:[ self visit:child ] to:self retvalVar.
- compiler codeReturn
+ compiler codeIf: 'true' then: [
+ compiler codeAssignParsedValueOf:[ self visit:child ] to:self retvalVar.
+ compiler codeReturn
+ ].
] ifFalse: [
child firstSetWithTokens do: [ :first |
"For each child, for each first compile this:"
@@ -186,30 +197,15 @@
!
visitTokenConsumeNode: node
- | id |
- id := (compiler idFor: node child).
- compiler add: 'self ', id asString, ' ifTrue: ['.
- compiler indent.
- compiler codeAssign: 'nil.' to: 'currentTokenType'.
- compiler codeReturn: 'currentTokenValue'.
- compiler dedent.
- compiler add: '] ifFalse: ['.
- compiler indent.
- compiler codeError: id asString, ' expected'.
- compiler dedent.
- compiler add: '].'.
-
-"
- compiler codeReturn: 'self consume: ', (compiler idFor: node child) storeString, '.'
-"
+ "dont do anything here"
+ ^ node
!
visitTokenNode: node
- self error: 'shoudl not happend!!'
+ self error: 'should not happen!!'
!
visitTokenizingParserNode: node
- self visit: node tokenizer.
self visit: node whitespace.
compiler codeHaltIfShiftPressed.
@@ -219,8 +215,12 @@
compiler codeReturn.
!
+visitTrimmingTokenCharacterNode: node
+ self error: 'should not happen!!'
+!
+
visitTrimmingTokenNode: node
- self error: 'shoudl not happend!!'
+ self error: 'should not happen!!'
! !
!PPCTokenizingCodeGenerator class methodsFor:'documentation'!