unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
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





  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).