From: Matt Wette <matt.wette@gmail.com>
To: Jan Nieuwenhuizen <janneke@gnu.org>
Cc: Guile User <guile-user@gnu.org>
Subject: Re: [ANN] nyacc 0.80.4 released
Date: Tue, 1 Aug 2017 16:10:48 -0700 [thread overview]
Message-ID: <85FC89DE-29B4-4364-9EC9-3A1ADDD4C57C@gmail.com> (raw)
In-Reply-To: <87d18fypqd.fsf@gnu.org>
> On Aug 1, 2017, at 1:53 PM, Jan Nieuwenhuizen <janneke@gnu.org> wrote:
>
> 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!
Thanks for the reports. I am happy to see the severity in bugs reducing.
For the FFI-helper I need to parse the rat’s nest under /usr/include so I am catching more.
>
> 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?
I am not sure what you are getting at here. If I have
char *s = “foo\0bar”;
then the tree is
(trans-unit
(decl (decl-spec-list (type-spec (fixed-type "char")))
(init-declr-list
(init-declr
(ptr-declr (pointer) (ident "s"))
(initzer (p-expr (string "foo\x00bar")))))))
so the null character makes it into the tree. The tree language is SXML so this should be a
legal Scheme string, which I think it is. See http://dl.acm.org/citation.cfm?doid=571727.571736.
On the other hand, the C99 pretty-printer turns out
char *s = "foo\x00bar”;
which is wrong. I will work on something to make this look like “foo\0bar”.
Look for fixes to above, along with some (minor) changes in c99 output, in 0.81.0.
Matt
next prev parent reply other threads:[~2017-08-01 23:10 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-28 23:47 [ANN] nyacc 0.80.4 released Matt Wette
2017-08-01 20:53 ` Jan Nieuwenhuizen
2017-08-01 23:10 ` Matt Wette [this message]
2017-08-02 5:23 ` Jan Nieuwenhuizen
2017-08-02 12:13 ` Matt Wette
2017-08-02 12:22 ` Matt Wette
2017-08-04 10:31 ` Jan Nieuwenhuizen
2017-08-04 17:38 ` Matt Wette
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/guile/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=85FC89DE-29B4-4364-9EC9-3A1ADDD4C57C@gmail.com \
--to=matt.wette@gmail.com \
--cc=guile-user@gnu.org \
--cc=janneke@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).