API for PS version and defined operators info.
[parenscript.git] / src / package.lisp
blobc2c6eb2bc966b2dab88e430c465f4ec16614328f
1 (in-package #:cl)
3 (pushnew :parenscript *features*)
5 (eval-when (:compile-toplevel :load-toplevel :execute)
6 (named-readtables:defreadtable :parenscript
7 (:merge :standard)
8 (:case :invert)))
10 (named-readtables:in-readtable :parenscript)
12 (defpackage #:parenscript
13 (:use #:cl #:anaphora #:named-readtables)
14 (:nicknames #:ps)
15 (:export
16 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
17 ;;; Compiler interface
19 ;; compiler
20 #:*js-target-version*
21 #:ps
22 #:*parenscript-stream*
23 #:ps-to-stream
24 #:ps-doc
25 #:ps-doc*
26 #:ps*
27 #:ps-inline
28 #:ps-inline*
29 #:*ps-read-function*
30 #:ps-compile-file
31 #:ps-compile-stream
32 ;; for parenscript macro definition within lisp
33 #:defpsmacro
34 #:defmacro+ps
35 #:import-macros-from-lisp
36 #:*defined-operators*
37 #:*version*
39 ;; gensym
40 #:ps-gensym
41 #:with-ps-gensyms
42 #:ps-once-only
43 #:*ps-gensym-counter*
45 ;; naming and namespaces
46 #:in-package
47 #:use-package
48 #:ps-package-prefix
49 #:obfuscate-package
50 #:unobfuscate-package
52 ;; printer
53 #:symbol-to-js-string
54 #:*js-string-delimiter*
55 #:*js-inline-string-delimiter*
56 #:*ps-print-pretty*
57 #:*indent-num-spaces*
59 ;; deprecated interface
60 #:define-script-symbol-macro
61 #:gen-js-name
62 #:with-unique-js-names
63 #:defjsmacro
64 #:js-compile
65 #:js-inline
66 #:js-inline*
67 #:js
68 #:js*
69 #:symbol-to-js
70 #:slot-value
71 #:compile-script
72 #:defmacro/ps
73 #:%
74 #:==
75 #:===
76 #:!=
77 #:!==
78 #:labeled-for
79 #:do-set-timeout
80 #:concat-string
81 #:with
82 #:label
84 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
85 ;;; Language
87 ;; literals
88 #:t
89 #:f
90 #.(symbol-name 'nil) ; for case-sensitive Lisps like some versions of Allegro
91 #:this
92 #:undefined
93 #:{}
95 ;; keywords
96 #:break
97 #:continue
99 ;; array literals
100 #:array
101 #:list
102 #:aref
103 #:elt
104 #:make-array
105 #:[]
107 ;; operators
108 ;; logical boolean
109 #:not
110 #:and
111 #:or
113 ;; bitwise boolean
114 #:logand
115 #:logior
116 #:logxor
117 #:lognot
118 #:ash
122 #:rem
127 #:<=
128 #:>=
129 #:incf
130 #:decf
131 #:equal
132 #:eql
133 #:eq
136 ;; compile-time stuff
137 #:eval-when
139 ;; body forms
140 #:progn
142 ;; object literals
143 #:create
144 #:with-slots
146 ;; if
147 #:if
148 #:when
149 #:unless
151 ;; single argument statements
152 #:return
153 #:return-from
154 #:throw
156 ;; single argument expressions
157 #:delete
158 #:typeof
159 #:instanceof
160 #:new
162 ;; assignment and binding
163 #:setf
164 #:defsetf
165 #:psetf
166 #:setq
167 #:psetq
168 #:let*
169 #:let
171 ;; variables
172 #:var
173 #:defvar
175 ;; iteration
176 #:for
177 #:for-in
178 #:while
179 #:do
180 #:do*
181 #:dotimes
182 #:dolist
183 #:loop
185 ;; case
186 #:switch
187 #:case
188 #:default
190 ;; try throw catch
191 #:try
193 ;; regex literals
194 #:regex
196 ;; function definition
197 #:defun
198 #:lambda
199 #:flet
200 #:labels
202 ;; lambda lists
203 #:&key
204 #:&rest
205 #:&body
206 #:&optional
207 #:&aux
208 #:&environment
209 #:&key-object
211 ;; slot access
212 #:with-slots
213 #:getprop
214 #:in
216 ;; macros
217 #:macrolet
218 #:symbol-macrolet
219 #:define-symbol-macro
220 #:define-ps-symbol-macro
221 #:defmacro
223 ;; lisp eval
224 #:lisp
226 ;; v v v STUFF WE SHOULD PROBABLY MOVE TO OTHER LIBS v v v
228 ;; html generator for javascript
229 #:*ps-html-empty-tag-aware-p*
230 #:*ps-html-mode*
231 #:ps-html
232 #:who-ps-html
234 ;; utils
235 #:max
236 #:min
237 #:floor
238 #:ceiling
239 #:round
240 #:sin
241 #:cos
242 #:tan
243 #:asin
244 #:acos
245 #:atan
246 #:pi
247 #:sinh
248 #:cosh
249 #:tanh
250 #:asinh
251 #:acosh
252 #:atanh
253 #:1+
254 #:1-
255 #:abs
256 #:evenp
257 #:oddp
258 #:exp
259 #:expt
260 #:log
261 #:sqrt
262 #:random
263 #:ignore-errors
264 #:concatenate
265 #:stringify
266 #:length
267 #:defined
268 #:undefined
270 #:chain
271 #:stringp
272 #:numberp
273 #:functionp
274 #:objectp
275 #:append
276 #:apply
277 #:destructuring-bind
279 ;; DOM accessing utils
280 #:inner-html
281 #:uri-encode
282 #:attribute
283 #:offset
284 #:scroll
285 #:inner
286 #:client
288 ;; js runtime utils
289 #:*ps-lisp-library*
290 #:mapcar
291 #:map-into
292 #:map
293 #:member
294 #:append
295 #:set-difference