nyacc: fixed c99/CPP bug: need to skip space before lparen
authorMatt Wette <matt.wette@gmail.com>
Mon, 2 Jan 2017 15:42:23 +0000 (07:42 -0800)
committerJan Nieuwenhuizen <janneke@gnu.org>
Mon, 2 Jan 2017 15:42:23 +0000 (07:42 -0800)
module/nyacc/ChangeLog
module/nyacc/lang/c99/cppbody.scm

index 9d4cd244dc6807882dd84cafaac9bd502a339af6..1b08290ff783b44860814ff42fcd6f3ce9fbb305 100644 (file)
@@ -1,3 +1,8 @@
+2017-01-02  Matt Wette  <mwette@alumni.caltech.edu>
+
+       * lang/c99/cppbody.scm (expand-cpp-mref): skip ws between ident
+       and left paren
+
 2017-01-01  Matt Wette  <mwette@alumni.caltech.edu>
 
        * lang/c99/body.scm (gen-c-lexer): in code mode now expands includes
index bd8a2bdf7242245e722ba76924a64c31732a8ea4..090b9ed115e8d6c86e0fcc08a03fa01325e473ef 100644 (file)
   
 (define (collect-args argd dict used)
   ;;(simple-format #t "collect-args\n")
-  (if (not (eqv? (read-char) #\()) (throw 'parse-error "collect-args"))
+  (if (not (eqv? (skip-ws (read-char)) #\())
+      (let ((fn (or (port-filename (current-input-port)) "(unknown)"))
+           (ln (1+ (port-line (current-input-port)))))
+       (throw 'parse-error "~A:~A: CPP expecting `('" fn ln)))
   (let iter ((argl (list (scan-cpp-input argd dict used #t))))
-    (simple-format #t "args: ~S\n" argl)
+    ;;(simple-format #t "args: ~S\n" argl)
     (let ((ch (read-char)))
       (if (eqv? ch #\)) (reverse argl)
          (iter (cons (scan-cpp-input argd dict used #t) argl))))))