(t `(js:variable ,symbol))))
(defun ps-convert-op-name (op)
- (case (ensure-ps-symbol op)
+ (case op
(and '\&\&)
(or '\|\|)
(not '!)
+(in-package "PARENSCRIPT")
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ParenScript namespace system
-(in-package :parenscript)
-
-(defun ensure-ps-symbol (symbol)
- (if (eq (symbol-package symbol) #.(find-package :parenscript))
- symbol
- (intern (symbol-name symbol) #.(find-package :parenscript))))
-
;;; Symbol obfuscation
(defvar *obfuscated-packages* (make-hash-table))
(define-ps-special-form switch (test-expr &rest clauses)
`(js:switch ,(compile-parenscript-form test-expr :expecting :expression)
,(loop for (val . body) in clauses collect
- (cons (if (and (symbolp val) (eq (ensure-ps-symbol val) 'default))
+ (cons (if (eq val 'default)
'default
(compile-parenscript-form val :expecting :expression))
(mapcar (lambda (x) (compile-parenscript-form x :expecting :statement))
[&aux {var | (var [init-form])}*])"
(if (symbolp name)
`(defun-function ,name ,lambda-list ,@body)
- (progn (assert (and (= (length name) 2) (eq 'setf (ensure-ps-symbol (car name)))) ()
+ (progn (assert (and (listp name) (= (length name) 2) (eq 'setf (car name))) ()
"(defun ~s ~s ...) needs to have a symbol or (setf symbol) for a name." name lambda-list)
`(defun-setf ,name ,lambda-list ,@body))))