nyacc: more bugs in cpp tokl->string
authorMatt Wette <matt.wette@gmail.com>
Thu, 23 Feb 2017 13:37:25 +0000 (05:37 -0800)
committerJan Nieuwenhuizen <janneke@gnu.org>
Thu, 23 Feb 2017 13:37:25 +0000 (05:37 -0800)
module/nyacc/lang/c99/cpp.scm

index 18c289200a7f1bdf82e9448d2495596a1dc4b4e1..8dc1864d006ed8f378c95a4103e2f2add7445156 100644 (file)
        ((('ident . rval) ('ident . lval) . rest)
         (iter stl chl (string-append " " rval) (cdr tkl)))
 
-       (('space . rest)
-        (iter stl (cons #\space chl) nxt rest))
-
        ((('string . val) . rest)
         (iter stl (cons #\" chl) val (cons #\" rest)))
 
-       (((key . val) . rest)
+       ((('ident . val) . rest)
         (iter stl chl val rest))
 
+       ((('arg . val) . rest)
+        (iter stl chl val rest))
+
+       ((('defined . val) . rest)
+        (iter stl chl val rest))
+
+       (('space . rest)
+        (iter stl (cons #\space chl) nxt rest))
+
+       ((asis . rest)
+        (iter stl chl asis rest))
+
        (otherwise
         (error "no match" tkl)))))))
 
               (aval                    ; arg ref
                (iter (acons 'arg aval tkl) lvl (read-char)))
               ((string? rval)          ; cpp repl
-               (iter (acons 'string rval tkl) lvl (read-char)))
+               (iter (cons rval tkl) lvl (read-char)))
               ((pair? rval)            ; cpp macro
                (let* ((argl (car rval)) (text (cdr rval))
                       (argd (collect-args argl argd dict used))
                       (newl (expand-cpp-repl text argd dict (cons iden used))))
-                 (iter (acons 'string newl tkl) lvl (read-char))))
+                 (iter (cons newl tkl) lvl (read-char))))
               (else                    ; normal identifier
                (iter (acons 'ident iden tkl) lvl (read-char))))))))
      (else