compiler/PPCTokenizingVisitor.st
changeset 460 87a3d30ab570
parent 454 a9cd5ea7cc36
parent 459 4751c407bb40
child 461 5986bf6d7d60
--- a/compiler/PPCTokenizingVisitor.st	Mon May 11 18:31:26 2015 +0100
+++ b/compiler/PPCTokenizingVisitor.st	Tue May 12 01:33:33 2015 +0100
@@ -11,25 +11,37 @@
 
 !PPCTokenizingVisitor methodsFor:'hooks'!
 
-afterAccept: node retval: retval
+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
 
     "Modified: / 10-05-2015 / 07:27:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !