--- 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>"
!