From: Jan Nieuwenhuizen <janneke@gnu.org>
To: Matt Wette <matt.wette@gmail.com>
Cc: guile-user@gnu.org
Subject: Re: [ANN] Nyacc version 0.83.0 released
Date: Fri, 06 Apr 2018 14:38:28 +0200 [thread overview]
Message-ID: <874lko8q7v.fsf@gnu.org> (raw)
In-Reply-To: <c275dcbc-18bf-16bd-54d1-da9d1031719b@gmail.com> (Matt Wette's message of "Sun, 21 Jan 2018 10:19:11 -0800")
[-- Attachment #1: Type: text/plain, Size: 1053 bytes --]
Matt Wette writes:
Hey Matt,
> Nyacc version 0.83.0 has been released. Nyacc is a set of Guile
> modules for generating parsers, parsing C code, and converting C
> headers to Guile Scheme.
Very nice work.
I've not really been working on MesCC for months now, concentrating on
Mes itself to support running Nyacc and MesCC. I postponed updating
Nyacc and even reverted to using 0.80.40 (or actually my slightly
modified 0.80.42).
I finally got round to looking at it and delighted that everything
works! Two patches attached: cond-expands need to grok `mes' (or use
else instead of `guile'). Also, parsing can be still a bit slow when
running Nyacc on Mes (tcc.c now parses in ~1h); so I added some tracing
to stderr. Possibly you have a better way to do this, esp. the
NYACC_TRACE environment variable kludge...
Saw your headsup about changing struct definitions, shall I wait with my
upcomping Mes 0.12 release for that; do you already have a branch where
I can test it and change MesCC?
Greetings,
janneke
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-cond-expand-allow-mes.patch --]
[-- Type: text/x-patch, Size: 1975 bytes --]
From fbbba0435f1ddcd5020599017781c8e88443bda2 Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen <janneke@gnu.org>
Date: Fri, 6 Apr 2018 14:23:45 +0200
Subject: [PATCH 1/2] cond-expand: allow mes.
---
module/nyacc/lang/util.scm | 3 ++-
module/nyacc/lex.scm | 3 ++-
module/nyacc/parse.scm | 3 ++-
module/nyacc/util.scm | 2 +-
4 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/module/nyacc/lang/util.scm b/module/nyacc/lang/util.scm
index 3de9ee4..b617885 100644
--- a/module/nyacc/lang/util.scm
+++ b/module/nyacc/lang/util.scm
@@ -44,7 +44,8 @@
#t)
(guile
(use-modules (ice-9 optargs))
- (use-modules (srfi srfi-16))))
+ (use-modules (srfi srfi-16)))
+ (mes))
;; This is a generic copyright/licence that will be printed in the output
;; of the examples/nyacc/lang/*/ actions.scm and tables.scm files.
diff --git a/module/nyacc/lex.scm b/module/nyacc/lex.scm
index 3e5c1e3..5122856 100644
--- a/module/nyacc/lex.scm
+++ b/module/nyacc/lex.scm
@@ -59,7 +59,8 @@
(guile-2 #t)
(guile
(use-modules (ice-9 optargs))
- (use-modules (ice-9 syncase))))
+ (use-modules (ice-9 syncase)))
+ (mes))
(define (sf fmt . args) (apply simple-format #t fmt args))
diff --git a/module/nyacc/parse.scm b/module/nyacc/parse.scm
index 39ceca3..51d73cd 100644
--- a/module/nyacc/parse.scm
+++ b/module/nyacc/parse.scm
@@ -27,7 +27,8 @@
(use-modules (srfi srfi-43)))
(guile
(use-modules (ice-9 optargs))
- (use-modules (nyacc compat18))))
+ (use-modules (nyacc compat18)))
+ (mes))
;; @item (machine-hashed? mach) => #t|#f
;; Indicate if the machine has been hashed.
diff --git a/module/nyacc/util.scm b/module/nyacc/util.scm
index ed7168b..1d34449 100644
--- a/module/nyacc/util.scm
+++ b/module/nyacc/util.scm
@@ -34,7 +34,7 @@
(guile
(use-modules (ice-9 optargs))
(use-modules (nyacc compat18)))
- )
+ (mes))
(define (fmtstr fmt . args)
(apply simple-format #f fmt args))
--
2.16.2
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-trace-function-names-being-parsed.patch --]
[-- Type: text/x-patch, Size: 1702 bytes --]
From 1dd946b919ed84803e27af2697c83ffa8bafb34c Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen <janneke@gnu.org>
Date: Thu, 5 Apr 2018 21:13:13 +0200
Subject: [PATCH 2/2] trace function names being parsed.
* module/nyacc/lang/c99/mach.d/c99act.scm (trace-function)[NYACC_TRACE]: Trace function names being parsed.
(c99-act-v): Use it.
---
module/nyacc/lang/c99/mach.d/c99act.scm | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/module/nyacc/lang/c99/mach.d/c99act.scm b/module/nyacc/lang/c99/mach.d/c99act.scm
index cfbdb7f..565f9b4 100644
--- a/module/nyacc/lang/c99/mach.d/c99act.scm
+++ b/module/nyacc/lang/c99/mach.d/c99act.scm
@@ -8,6 +8,12 @@
;; version 3 of the License, or (at your option) any later version.
;; See the file COPYING.LESSER included with the this distribution.
+(define (trace-function $1)
+ (when (getenv "NYACC_TRACE")
+ (display " :" (current-error-port))
+ (display (cadr $1) (current-error-port))
+ (display "\n" (current-error-port))))
+
(define c99-act-v
(vector
;; $start => translation-unit
@@ -487,12 +493,15 @@
`(array-of ,$1 (var-len)))
;; direct-declarator => direct-declarator "(" parameter-type-list ")"
(lambda ($4 $3 $2 $1 . $rest)
+ (trace-function $1)
`(ftn-declr ,$1 ,(tl->list $3)))
;; direct-declarator => direct-declarator "(" identifier-list ")"
(lambda ($4 $3 $2 $1 . $rest)
+ (trace-function $1)
`(ftn-declr ,$1 ,(tl->list $3)))
;; direct-declarator => direct-declarator "(" ")"
(lambda ($3 $2 $1 . $rest)
+ (trace-function $1)
`(ftn-declr ,$1 (param-list)))
;; pointer => "*" type-qualifier-list pointer
(lambda ($3 $2 $1 . $rest)
--
2.16.2
[-- Attachment #4: Type: text/plain, Size: 152 bytes --]
--
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com
next prev parent reply other threads:[~2018-04-06 12:38 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-21 18:19 [ANN] Nyacc version 0.83.0 released Matt Wette
2018-04-06 12:38 ` Jan Nieuwenhuizen [this message]
2018-04-07 0:16 ` Matt Wette
2018-04-07 0:20 ` Matt Wette
2018-04-07 12:21 ` Jan Nieuwenhuizen
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=874lko8q7v.fsf@gnu.org \
--to=janneke@gnu.org \
--cc=guile-user@gnu.org \
--cc=matt.wette@gmail.com \
/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).