nanopass/nanopass-framework-racket

Extending a language can't infer meta variables.

Opened this issue · 0 comments

The following piece of code produces a define-language: unrecognized meta-variable in language r0-let error although works fine in chez.

#lang nanopass

(define program-info? list?)

(define-language r0
  (terminals
   (program-info (info))
   (integer (n)))
  (Program (p)
    (program info e))
  (Expr (e)
    n
    (- e)
    (+ e0 e1)
    (read)))

(define variable? symbol?)

(define-language r0-let
  (extends r0)
  (terminals
   (+ (variable (x))))
  (Expr (e body)
    (+ x)
    (+ (let ((x e)) body))))