nyacc: more CPP fixes
[mes.git] / module / nyacc / lang / c99 / cppbody.scm
index eb717142a733e44a02ac2b9364c49ec791ee0e0a..8814b3f7f8bc91b28366231e701879200217aea5 100644 (file)
       (((key . val) . rest)
        (iter (cons val stl) (cdr tkl)))
 
+      (('space . rest)
+       (iter (cons " " stl) rest))
+
       (((? char? ch) . rest)
        (iter (cons (string ch) stl) rest))
 
       (unread-char ch) (rtokl->string tkl))
      
      ((read-c-comm ch #f) =>
-      (lambda (cp) (iter (acons `comm cp tkl) lvl (read-char))))
+      (lambda (cp) (iter (acons `comm (cdr cp) tkl) lvl (read-char))))
+     
+     ((char-set-contains? c:ws ch)
+      (if (and (pair? tkl) (char? (car tkl)))
+         (iter (cons 'space tkl) lvl (read-char))
+         (iter tkl lvl (read-char))))
      
-     ((char-set-contains? c:ws ch) (iter tkl lvl (read-char)))
      ((char=? #\( ch) (iter (cons ch tkl) (1+ lvl) (read-char)))
      ((char=? #\) ch) (iter (cons ch tkl) (1- lvl) (read-char)))
      ((char=? #\# ch)