2 ;;;; Package definitions for the Parenscript
5 (eval-when (:compile-toplevel
:load-toplevel
)
6 ;; exports shared between PARENSCRIPT and PARENSCRIPT.JAVASCRIPT
7 (defparameter *shared-symbols-ps-js
*
44 #:*= #:/= #:%
= #:+= #:\
&= #:^
= #:\|
= #:~
=
65 ;; single argument statements
69 ;; single argument expressions
101 ;; conditional compilation (IE)
103 "Symbols exported from both the Parenscript and Javascript packages
104 that are also valid as Parenscript symbols for the corresponding script packages."))
108 (defpackage parenscript.javascript
110 (:nicknames javascript ps-js
)
111 #.
(cons :export
*shared-symbols-ps-js
*)
113 ;; function definition
119 #:js-to-statement-strings
121 (:documentation
"The package used to define Javascript special forms. Most of Parenscript
122 is defined as macros on top of Javascript special forms"))
124 (eval-when (:compile-toplevel
:load-toplevel
:execute
)
125 (defparameter *parenscript-lang-exports
*
127 *shared-symbols-ps-js
*
133 ;; function definition
156 #:define-symbol-macro
157 #:define-script-symbol-macro
176 ;; v v v STUFF WE SHOULD PROBABLY MOVE TO OTHER LIBS v v v
184 ;; html generator for javascript
187 "List of (uninterned) symbols. Contains all symbols considerred
188 part of the Parenscript language. These should be exported within
189 both the Lisp package and the script package for Parenscript."))
191 (defpackage :parenscript
192 (:use
:common-lisp
:parenscript.javascript
)
194 #.
(cons :export
*shared-symbols-ps-js
*)
195 #.
(cons :export
*parenscript-lang-exports
*)
199 #:compile-script-file
200 #:compile-script-system
201 #:compile-parenscript-file
202 #:compile-parenscript-file-to-string
209 #:with-new-compilation-environment
; tentative
210 #:with-compilation-environment
; tentative
211 #:*compilation-environment
*
214 #:find-script-package
218 #:comp-env-current-package
219 #:symbol-script-package
220 #:script-package-name
222 ;; for parenscript macro definition within lisp
224 #:defpsmacro
; should we use one or the other of these?
227 #:import-macros-from-lisp
230 #:with-unique-ps-names
232 #:gen-script-name-string
235 ;; deprecated interface
238 #:with-unique-js-names
245 #:js-to-statement-strings
248 (in-package :parenscript
)
251 define-script-special-form
255 *package-prefix-style
*
260 compile-to-expression
261 symbol-script-package
270 script-special-form-p
271 make-macro-env-dictionary
275 :parenscript.javascript
)
277 (defpackage parenscript.reader
278 (:nicknames parenscript-reader
)
279 (:use
:common-lisp
:parenscript
)
280 (:shadow
#:readtablep
283 #:get-macro-character
284 #:get-dispatch-macro-character
285 #:set-macro-character
286 #:set-dispatch-macro-character
287 #:make-dispatch-macro-character
288 #:set-syntax-from-char
289 #:read-preserving-whitespace
292 #:read-delimited-list
293 #:backquote-comma-dot
300 #:*read-default-float-format
*
313 #:read-delimited-list
)
314 (:documentation
"The Parenscript reader. Used for reading Parenscript
317 (defpackage parenscript.global
318 (:nicknames
"GLOBAL")
319 (:documentation
"Symbols interned in the global package are serialized in Javascript
320 as non-prefixed identifiers."))
322 (defpackage parenscript.user
324 (:nicknames ps-user parenscript-user
)
325 (:documentation
"The default package a user is inside of when compiling code."))
327 (defpackage parenscript.asdf
328 (:use
:parenscript
:asdf
:common-lisp
)
329 (:documentation
"ASDF extensions that help compile and use Parenscript systems."))
331 (defpackage parenscript.non-prefixed
(:nicknames ps.non-prefixed
))
332 (defpackage parenscript.ps-gensyms
)