summaryrefslogtreecommitdiff
path: root/module/language/javascript.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/language/javascript.scm')
-rw-r--r--module/language/javascript.scm11
1 files changed, 11 insertions, 0 deletions
diff --git a/module/language/javascript.scm b/module/language/javascript.scm
index 8829b3be0..4a4943545 100644
--- a/module/language/javascript.scm
+++ b/module/language/javascript.scm
@@ -4,6 +4,7 @@
#:use-module (srfi srfi-9)
#:use-module (srfi srfi-9 gnu)
#:export (
+ make-assign assign
make-const const
make-function function
make-return return
@@ -50,6 +51,7 @@
(define (print-js exp port)
(format port "#<js ~S>" (unparse-js exp)))
+(define-js-type assign id exp)
(define-js-type const c)
(define-js-type function args body)
(define-js-type return exp)
@@ -66,6 +68,8 @@
(define (unparse-js exp)
(match exp
+ (($ assign id exp)
+ `(assign ,id ,(unparse-js exp)))
(($ const c)
`(const ,c))
(($ function args body)
@@ -99,6 +103,13 @@
(define (print-exp exp port)
(match exp
+ (($ assign id exp)
+ (print-id id port)
+ (format port " = ")
+ (display "(" port)
+ (print-exp exp port)
+ (display ")" port))
+
(($ const c)
(print-const c port))