repl: Add sc-expand meta command, include syntax-case.
authorJan Nieuwenhuizen <janneke@gnu.org>
Sun, 30 Oct 2016 15:18:59 +0000 (16:18 +0100)
committerJan Nieuwenhuizen <janneke@gnu.org>
Mon, 12 Dec 2016 19:33:49 +0000 (20:33 +0100)
* module/mes/repl.mes (,sc-expand): New meta command.
* scripts/repl.mes: Include psyntax-0, psyntax-1, psyntax.  Not used as
  basis for match yet.

module/mes/repl.mes
scripts/repl.mes

index 5f705e6faa2d7f7d804b921212ab4fe64e8a0d37..d221937fbbc588bc07b0fd12ae28e31aff7e04e5 100644 (file)
@@ -94,6 +94,7 @@ along with Mes.  If not, see <http://www.gnu.org/licenses/>.
   "Help Commands:
 
   ,expand SEXP         - Expand SEXP
+  ,sc-expand SEXP      - SC-expand SEXP
   ,help                - Show this help
   ,show TOPIC          - Show info on TOPIC [c, w]
 ")
@@ -118,6 +119,17 @@ along with Mes.  If not, see <http://www.gnu.org/licenses/>.
               (newline))
         (display (expand-macro sexp))
         (newline)))
+
+    (define (scexpand)
+      (let ((sexp (read-env (current-module))))
+        (when #t print-sexp?
+              (display "[sexp=")
+              (display sexp)
+              (display "]")
+              (newline))
+        (display (sc-expand sexp))
+        (newline)))
+
     (define (help) (display help-commands))
     (define (show)
       (define topic-alist `((#\newline . ,show-commands)
@@ -127,6 +139,7 @@ along with Mes.  If not, see <http://www.gnu.org/licenses/>.
         (display (assoc-ref topic-alist topic))))
     (define (meta command)
       (let ((command-alist `((expand . ,expand)
+                             (sc-expand . ,scexpand)
                              (help . ,help)
                              (show . ,show))))
         ((or (assoc-ref command-alist command)
index 83630098a007611371d28f6c83b787ef77606409..60f0f9ad8a33b4f09786e3484b1d804005ef5c61 100755 (executable)
@@ -34,5 +34,9 @@ exit $?
 (mes-use-module (mes match))
 (mes-use-module (mes repl))
 
+(mes-use-module (mes psyntax-0))
+(mes-use-module (mes psyntax))
+(mes-use-module (mes psyntax-1))
+
 (repl)
 ()