compiler/PPCTokenizingVisitor.st
changeset 459 4751c407bb40
parent 452 9f4558b3be66
child 460 87a3d30ab570
child 502 1e45d3c96ec5
--- a/compiler/PPCTokenizingVisitor.st	Sun May 10 06:28:36 2015 +0100
+++ b/compiler/PPCTokenizingVisitor.st	Tue May 12 01:24:03 2015 +0100
@@ -11,26 +11,37 @@
 
 !PPCTokenizingVisitor methodsFor:'hooks'!
 
-afterAccept: node retval: retval
-    Halt if: [ node name = 'start' ].
+afterAccept: node retval: parserNode
     self isRoot ifTrue: [ 
-        | tokenizerNode |
+        | tokenizerNode whitespaceNode |
         self change.
         tokens addLast: self eofToken.
         tokens do: [ :token | token unmarkForInline  ].
         
+        whitespaceNode := tokens detect: [ :e | e isTrimmingTokenNode ] ifFound: [:token | 
+                token whitespace copy
+                    unmarkForInline;
+                    name: 'consumeWhitespace';
+                    yourself 
+            ] ifNone: [
+         		PPCNilNode new
+                    name: 'consumeWhitespace';
+                    yourself
+            ].
+        
         tokenizerNode := PPCTokenChoiceNode new
             children: tokens asArray;
             name: 'nextToken';
             yourself.
     
         ^ PPCTokenizingParserNode new
-            parser: retval;
+            parser: parserNode;
             tokenizer: tokenizerNode;
+            whitespace: whitespaceNode;
             name: #'mainParser';
             yourself
     ].
-    ^ retval
+    ^ parserNode
     
 !