javascript generator syntax
This commit is contained in:
42
private/syntax-helpers.rkt
Normal file
42
private/syntax-helpers.rkt
Normal file
@@ -0,0 +1,42 @@
|
||||
#lang racket/base
|
||||
|
||||
(require racket/string
|
||||
"utils.rkt"
|
||||
)
|
||||
(provide symbol??
|
||||
symstr
|
||||
symstr-eval
|
||||
is-if?)
|
||||
|
||||
|
||||
(define (symbol?? a)
|
||||
(let ((r (symbol? a)))
|
||||
r))
|
||||
|
||||
(define (symstr x)
|
||||
(cond
|
||||
((list? x)
|
||||
(string-append "[ "
|
||||
(string-join (map symstr-eval x) ", ")
|
||||
" ]"))
|
||||
((vector? x)
|
||||
(symstr (vector->list x)))
|
||||
(else
|
||||
(let ((r (format "~a" x)))
|
||||
(let ((r* (if (string-prefix? r "(quote")
|
||||
(let ((s (substring r 7)))
|
||||
(substring s 0 (- (string-length s) 1)))
|
||||
r)))
|
||||
r*)))
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(define (symstr-eval x)
|
||||
(cond
|
||||
((string? x) (format "\"~a\"" (esc-double-quote x)))
|
||||
(else (symstr x))))
|
||||
|
||||
(define (is-if? x)
|
||||
(displayln x)
|
||||
(eq? x 'if))
|
||||
Reference in New Issue
Block a user