From f42c318c2640d87e1348d12799fe542d498e4c36 Mon Sep 17 00:00:00 2001 From: Stephen Chang Date: Sun, 6 Apr 2014 11:55:27 -0400 Subject: [PATCH] support #lang plai closes #40 --- pasterack-parsing-utils.rkt | 2 ++ pasterack-test-cases.rkt | 3 ++- pasterack.rkt | 6 +++++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/pasterack-parsing-utils.rkt b/pasterack-parsing-utils.rkt index 833abaf..6ea8516 100644 --- a/pasterack-parsing-utils.rkt +++ b/pasterack-parsing-utils.rkt @@ -12,6 +12,7 @@ (define scribblelang-pat #px"^scribble/.*") (define htdplang-pat #px"^htdp/(.*)") (define TRlang-pat #px"^typed/racket.*") +(define plai-pat #px"^plai.*") (define (hashlang? code) (define in (open-input-string code)) @@ -37,6 +38,7 @@ (define (htdp-lang? lang) (regexp-match htdplang-pat lang)) (define (TR-lang? lang) (regexp-match TRlang-pat lang)) (define (web-lang? lang) (regexp-match weblang-pat lang)) +(define (plai-lang? lang) (regexp-match plai-pat lang)) ;; htdp form patterns (define provide-pat #px"^\\(provide (.*)\\)$") diff --git a/pasterack-test-cases.rkt b/pasterack-test-cases.rkt index 6228e9d..9d7c386 100644 --- a/pasterack-test-cases.rkt +++ b/pasterack-test-cases.rkt @@ -40,6 +40,7 @@ "5795" ; #lang blank "4662" ; blank "4126" ; nested list of images - "5791" ; list of images (thanks jrslepak) + "5791" ; list of images (thanks jrslepak) + "5568" ; plai ;; BROKEN: submodule evaluation )) diff --git a/pasterack.rkt b/pasterack.rkt index d947687..3c73d0c 100644 --- a/pasterack.rkt +++ b/pasterack.rkt @@ -76,6 +76,7 @@ (define TR-bad-ids (++ "#%module-begin with-handlers lambda λ #%top-interaction for for* " "define default-continuation-prompt-tag")) +(define plai-bad-ids "#%module-begin provide") ;; returns generated pastenum (define (write-codeblock-scrbl-file code pnum) @@ -84,7 +85,7 @@ (define lang-lst (cond [(scribble-lang? lang) (list "racket" lang)] [(htdp-lang? lang) (list (htdplang->modulename lang))] - [(TR-lang? lang) (list)] + [(or (TR-lang? lang) (plai-lang? lang)) (list)] [(web-lang? lang) (list "web-server" "web-server/http")] [else (list lang)])) (define reqs @@ -108,6 +109,9 @@ [(TR-lang? lang) (++ "(except-in typed/racket " TR-bad-ids ")\n" "(only-meta-in 0 (only-in typed/racket " TR-bad-ids "))\n")] + [(plai-lang? lang) + (++ "(except-in plai " plai-bad-ids ")\n" + "(only-meta-in 0 (only-in plai " plai-bad-ids "))\n")] [else ""]) ;; when required id is also in lang, favor require (cond