Matt Wette writes:
> NYACC version 0.80.4 is released
>
> This is a bug-fix release, to fix several bugs discovered by janneke. Thanks
> Jan.
> 1) C parser not parsing “0ULL” as numeric; fixed.
> 2) #undef FOO not working; fixed;
> 3) struct foo { …} => (struct-def (ident (“foo”))… ; fixed: => (struct-def
> (ident “foo”) …
> 4) C pre-processor argument reading dropping characters
Yay, thanks again!
Meanwhile, rain1 and I found two bugs. First is not really a bug, debug
printing while parsing \xXX. Do
(with-input-from-file "x00.c" parse-c99)
with x00.c:
char *s = "\x66\x6f\x6f\x20";
see patch attached.
The others is parsing of "\0", see null.c. Instead of a null character
(or possibly literally "\0") we get an ascii 0 (without backslash).
Not sure what we want here, if "\0" passes through literally, the
compiler will need to parse strings again and change those to null?
Greetings,
janneke
x00.c
Description: Binary data
>From aa97207497b1d290734d04accf019caa4e854796 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen <[email protected]> Date: Tue, 1 Aug 2017 19:39:25 +0200 Subject: [PATCH] typo: fix parsing of \xXX * module/nyacc/lex.scm (read-hex): Comment-out debug printing. --- module/nyacc/lex.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/nyacc/lex.scm b/module/nyacc/lex.scm index 2a4d28a..3636738 100644 --- a/module/nyacc/lex.scm +++ b/module/nyacc/lex.scm @@ -206,7 +206,7 @@ (cs:lhx (string->char-set "abcdef"))) (lambda (ch) ;; ch == #\x always (let iter ((cv 0) (ch (read-char)) (n 0)) - (simple-format #t "ch=~S\n" ch) + ;;(simple-format #t "ch=~S\n" ch) (cond ((eof-object? ch) cv) ((> n 2) (unread-char ch) cv) -- Jan Nieuwenhuizen <[email protected]> | GNU LilyPond http://lilypond.org Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com
null.c
Description: Binary data
-- Jan Nieuwenhuizen <[email protected]> | GNU LilyPond http://lilypond.org Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com
