Hi All,
The following example outputs:
#(language:L1 (foo #<syntax:20:11 a> #<syntax:20:16 b>))
#(language:L2 (foo a b))
I was expecting:
#(language:L1 (foo #<syntax:20:11 a> #<syntax:20:16 b>))
#(language:L2 (foo #<syntax:23:11 a> #<syntax:23:16 b>))
The problem seems to be that unparse-id is called even though I haven't used unparse-L2 explicitly.
Is it intentionally or is it a bug?
#lang racket
(require nanopass/base)
(define id? identifier?)
(define unparse-id syntax-e)
(define-language L1
(entry Bar)
(terminals (id (x)))
(Foo (f)
(foo x ...)))
(define-language L2
(entry Foo)
(terminals ((id (x)) . => . unparse-id))
(Foo (f)
(foo x ...)))
(with-output-language (L1 Foo)
`(foo ,#'a ,#'b))
(with-output-language (L2 Foo)
`(foo ,#'a ,#'b))
/Jens Axel