The parenscript Reference Manual

This is the parenscript Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 17:30:59 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 parenscript

Lisp to JavaScript transpiler

Maintainer

Vladimir Sedach <>

Author

Manuel Odendahl <>

License

BSD-3-Clause

Dependencies
  • cl-ppcre (system).
  • anaphora (system).
  • named-readtables (system).
Source

parenscript.asd.

Child Components

3 Modules

Modules are listed depth-first from the system components tree.


3.1 parenscript/src

Source

parenscript.asd.

Parent Component

parenscript (system).

Child Components

3.2 parenscript/src/lib

Dependencies
Source

parenscript.asd.

Parent Component

src (module).

Child Components

3.3 parenscript/runtime

Dependency

src (module).

Source

parenscript.asd.

Parent Component

parenscript (system).

Child Component

ps-runtime-lib.lisp (file).


4 Files

Files are sorted by type and then listed depth-first from the systems components trees.


4.1 Lisp


4.1.1 parenscript/parenscript.asd

Source

parenscript.asd.

Parent Component

parenscript (system).

ASDF Systems

parenscript.


4.1.2 parenscript/src/package.lisp

Source

parenscript.asd.

Parent Component

src (module).

Packages

parenscript.


4.1.3 parenscript/src/js-dom-symbol-exports.lisp

Dependency

package.lisp (file).

Source

parenscript.asd.

Parent Component

src (module).

Packages
Internals

re-export-symbols (function).


4.1.4 parenscript/src/js-ir-package.lisp

Dependency

js-dom-symbol-exports.lisp (file).

Source

parenscript.asd.

Parent Component

src (module).

Packages

ps-js.


4.1.5 parenscript/src/utils.lisp

Dependency

js-ir-package.lisp (file).

Source

parenscript.asd.

Parent Component

src (module).

Internals

4.1.6 parenscript/src/namespace.lisp

Dependency

utils.lisp (file).

Source

parenscript.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.7 parenscript/src/compiler.lisp

Dependency

namespace.lisp (file).

Source

parenscript.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.8 parenscript/src/printer.lisp

Dependency

compiler.lisp (file).

Source

parenscript.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.9 parenscript/src/compilation-interface.lisp

Dependency

printer.lisp (file).

Source

parenscript.asd.

Parent Component

src (module).

Public Interface
Internals

with-blank-compilation-environment (macro).


4.1.10 parenscript/src/non-cl.lisp

Dependency

compilation-interface.lisp (file).

Source

parenscript.asd.

Parent Component

src (module).

Public Interface
Internals

define-trivial-special-ops (macro).


4.1.11 parenscript/src/special-operators.lisp

Dependency

non-cl.lisp (file).

Source

parenscript.asd.

Parent Component

src (module).

Internals

4.1.12 parenscript/src/parse-lambda-list.lisp

Dependency

special-operators.lisp (file).

Source

parenscript.asd.

Parent Component

src (module).

Internals

4.1.13 parenscript/src/function-definition.lisp

Dependency

parse-lambda-list.lisp (file).

Source

parenscript.asd.

Parent Component

src (module).

Internals

4.1.14 parenscript/src/macros.lisp

Dependency

function-definition.lisp (file).

Source

parenscript.asd.

Parent Component

src (module).

Internals

4.1.15 parenscript/src/deprecated-interface.lisp

Dependency

macros.lisp (file).

Source

parenscript.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.16 parenscript/src/lib/ps-html.lisp

Source

parenscript.asd.

Parent Component

lib (module).

Public Interface
Internals

4.1.17 parenscript/src/lib/ps-loop.lisp

Source

parenscript.asd.

Parent Component

lib (module).

Public Interface

for-in (function).

Internals

4.1.18 parenscript/src/lib/ps-dom.lisp

Source

parenscript.asd.

Parent Component

lib (module).

Internals

assert-is-one-of (function).


4.1.19 parenscript/runtime/ps-runtime-lib.lisp

Source

parenscript.asd.

Parent Component

runtime (module).

Public Interface

*ps-lisp-library* (special variable).


5 Packages

Packages are listed by definition order.


5.1 ps-js-symbols

JavaScript standard function and property names.

Source

js-dom-symbol-exports.lisp.


5.2 ps-dhtml-symbols

Meta-package containing function/property symbols
of typical HTML4/DHTML browsers. Includes DOM Levels 0 to 2, Window working draft, and de-facto standard symbols.

This is probably the package you want to :USE if you’re doing obfuscation in Parenscript and want to target the pre-HTML5 generation of browsers.

Source

js-dom-symbol-exports.lisp.


5.3 parenscript

Source

package.lisp.

Nickname

ps

Use List
  • anaphora.
  • common-lisp.
  • editor-hints.named-readtables.
Public Interface
Internals

5.4 ps-dom2-symbols

DOM Level 2 symbols. Includes DOM Level 1 symbols.

Source

js-dom-symbol-exports.lisp.


5.5 ps-dom1-symbols

DOM Level 1 symbols.

Source

js-dom-symbol-exports.lisp.


5.6 ps-js

Source

js-ir-package.lisp.


5.7 ps-window-wd-symbols

Funtions and properties of the W3C Working Draft Window object. Includes DOM level 2 symbols.

Source

js-dom-symbol-exports.lisp.


5.8 ps-dom-nonstandard-symbols

Non-W3C-standard (incl. DOM level 0) but widely implemented functions and properties.

Source

js-dom-symbol-exports.lisp.


6 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


6.1 Public Interface


6.1.1 Special variables

Special Variable: *defined-operators*

Special operators and macros defined by Parenscript. Replace at your own risk!

Package

parenscript.

Source

compiler.lisp.

Special Variable: *indent-num-spaces*
Package

parenscript.

Source

printer.lisp.

Special Variable: *js-inline-string-delimiter*

Controls the string delimiter char used when compiling Parenscript in ps-inline.

Package

parenscript.

Source

compilation-interface.lisp.

Special Variable: *js-string-delimiter*

Specifies which character should be used for delimiting strings.

This variable is used when you want to embed the resulting JavaScript in an html attribute delimited by #\" as opposed to #\’, or vice-versa.

Package

parenscript.

Source

printer.lisp.

Special Variable: *js-target-version*
Package

parenscript.

Source

compilation-interface.lisp.

Special Variable: *parenscript-stream*
Package

parenscript.

Source

compilation-interface.lisp.

Special Variable: *ps-gensym-counter*
Package

parenscript.

Source

compiler.lisp.

Special Variable: *ps-html-empty-tag-aware-p*
Package

parenscript.

Source

ps-html.lisp.

Special Variable: *ps-html-mode*

One of :sgml or :xml

Package

parenscript.

Source

ps-html.lisp.

Special Variable: *ps-lisp-library*
Package

parenscript.

Source

ps-runtime-lib.lisp.

Special Variable: *ps-print-pretty*
Package

parenscript.

Source

printer.lisp.

Special Variable: *ps-read-function*
Package

parenscript.

Source

compilation-interface.lisp.

Special Variable: *version*

Parenscript compiler version.

Package

parenscript.

Source

compiler.lisp.

Special Variable: false
Package

parenscript.

Source

non-cl.lisp.


6.1.2 Macros

Macro: define-ps-symbol-macro (symbol expansion)
Package

parenscript.

Source

compiler.lisp.

Macro: define-script-symbol-macro (name &body body)
Package

parenscript.

Source

deprecated-interface.lisp.

Macro: defjsmacro (&rest args)
Package

parenscript.

Source

deprecated-interface.lisp.

Macro: defmacro+ps (name args &body body)

Define a Lisp macro and a Parenscript macro with the same macro function (ie - the same result from macroexpand-1), for cases when the two have different full macroexpansions (for example if the CL macro contains implementation-specific code when macroexpanded fully in the CL environment).

Package

parenscript.

Source

compiler.lisp.

Macro: defmacro/ps (name args &body body)
Package

parenscript.

Source

deprecated-interface.lisp.

Macro: defpsmacro (name args &body body)
Package

parenscript.

Source

compiler.lisp.

Macro: js (&rest args)
Package

parenscript.

Source

deprecated-interface.lisp.

Macro: js-inline (&rest body)
Package

parenscript.

Source

deprecated-interface.lisp.

Macro: maybe-once-only ((&rest vars) &body body)

Helper macro for writing Parenscript macros. Like PS-ONCE-ONLY,
except that if the given VARS are variables or constants, no intermediate variables are created.

Package

parenscript.

Source

compiler.lisp.

Macro: ps (&body body)

Given Parenscript forms (an implicit progn), compiles those forms to a JavaScript string at macro-expansion time. Expands into a form which evaluates to a string.

Package

parenscript.

Source

compilation-interface.lisp.

Macro: ps-doc (&body body)

Expands Parenscript forms in a clean environment.

Package

parenscript.

Source

compilation-interface.lisp.

Macro: ps-html (&rest html-forms)
Package

parenscript.

Source

ps-html.lisp.

Macro: ps-inline (form &optional string-delimiter)
Package

parenscript.

Source

compilation-interface.lisp.

Macro: ps-once-only ((&rest vars) &body body)

Helper macro for writing Parenscript macros. Useful for preventing unwanted multiple evaluation.

Package

parenscript.

Source

compiler.lisp.

Macro: ps-package-prefix (package)
Package

parenscript.

Source

namespace.lisp.

Macro: ps-to-stream (stream &body body)

Given Parenscript forms (an implicit progn), compiles those forms to a JavaScript string at macro-expansion time. Expands into a form which writes the resulting code to stream.

Package

parenscript.

Source

compilation-interface.lisp.

Macro: var (name &optional value docstr)
Package

parenscript.

Source

non-cl.lisp.

Macro: while (test &body body)
Package

parenscript.

Source

deprecated-interface.lisp.

Macro: who-ps-html (&rest html-forms)
Package

parenscript.

Source

ps-html.lisp.

Macro: with-ps-gensyms (symbols &body body)

Helper macro for writing Parenscript macros. Each element of SYMBOLS is either a symbol or a list of (symbol gensym-prefix-string).

Package

parenscript.

Source

compiler.lisp.

Macro: with-unique-js-names (&rest args)
Package

parenscript.

Source

deprecated-interface.lisp.


6.1.3 Ordinary functions

Function: chain (method-calls)
Package

parenscript.

Source

non-cl.lisp.

Function: compile-script (ps-form &key output-stream)

Compiles the Parenscript form PS-FORM into Javascript.
If OUTPUT-STREAM is NIL, then the result is a string; otherwise code is output to the OUTPUT-STREAM stream.

Package

parenscript.

Source

deprecated-interface.lisp.

Function: concat-string (&rest things)
Package

parenscript.

Source

deprecated-interface.lisp.

Function: for-in (place state)
Package

parenscript.

Source

ps-loop.lisp.

Function: gen-js-name (&optional prefix)
Package

parenscript.

Source

deprecated-interface.lisp.

Function: import-macros-from-lisp (&rest names)

Import the named Lisp macros into the Parenscript macro environment. When the imported macro is macroexpanded by Parenscript, it is first fully macroexpanded in the Lisp macro environment, and then that expansion is further expanded by Parenscript.

Package

parenscript.

Source

compiler.lisp.

Function: js* (&rest args)
Package

parenscript.

Source

deprecated-interface.lisp.

Function: js-compile (form)
Package

parenscript.

Source

deprecated-interface.lisp.

Function: js-inline* (&rest body)
Package

parenscript.

Source

deprecated-interface.lisp.

Function: lisp (x)
Package

parenscript.

Source

non-cl.lisp.

Function: obfuscate-package (package-designator &optional symbol-map)
Package

parenscript.

Source

namespace.lisp.

Function: ps* (&rest body)

Compiles body to a JavaScript string. If *parenscript-stream* is bound, writes the output to *parenscript-stream*, otherwise returns a string.

Package

parenscript.

Source

compilation-interface.lisp.

Function: ps-compile-file (source-file &key element-type external-format)

Opens file as input stream and calls ps-compile-stream on it.

Package

parenscript.

Source

compilation-interface.lisp.

Function: ps-compile-stream (stream)

Reads (using the value of *ps-read-function*, #’read by default, as the read function) Parenscript forms from stream and compiles them as if by ps*. If *parenscript-stream* is bound, writes the output to *parenscript-stream*, otherwise and returns a string.

Package

parenscript.

Source

compilation-interface.lisp.

Function: ps-doc* (&rest body)
Package

parenscript.

Source

compilation-interface.lisp.

Function: ps-gensym (&optional x)
Package

parenscript.

Source

compiler.lisp.

Function: ps-inline* (form &optional *js-string-delimiter*)
Package

parenscript.

Source

compilation-interface.lisp.

Function: stringify (&rest things)

Like concatenate but prints all of its arguments.

Package

parenscript.

Source

non-cl.lisp.

Function: symbol-to-js (symbol)
Package

parenscript.

Source

deprecated-interface.lisp.

Function: symbol-to-js-string (symbol &optional mangle-symbol-name?)
Package

parenscript.

Source

namespace.lisp.

Function: unobfuscate-package (package-designator)
Package

parenscript.

Source

namespace.lisp.


6.2 Internals


6.2.1 Special variables

Special Variable: %compiling-reserved-forms-p%

Used to issue warnings when replacing PS special operators or macros.

Package

parenscript.

Source

compiler.lisp.

Special Variable: *column*
Package

parenscript.

Source

printer.lisp.

Special Variable: *compilation-level*

This value takes on the following values:
:toplevel indicates that we are traversing toplevel forms. :inside-toplevel-form indicates that we are inside a call to ps-compile-* nil indicates we are no longer toplevel-related.

Package

parenscript.

Source

compiler.lisp.

Special Variable: *current-block-tag*

Name of the lexically enclosing block, if any.

Package

parenscript.

Source

compiler.lisp.

Special Variable: *defun-setf-name-prefix*
Package

parenscript.

Source

macros.lisp.

Special Variable: *dynamic-return-tags*

Tags that need to be thrown to to reach.

Package

parenscript.

Source

compiler.lisp.

Special Variable: *enclosing-function-arguments*

Lexical variables bound in all lexically enclosing function argument lists.

Package

parenscript.

Source

compiler.lisp.

Special Variable: *enclosing-lexicals*

All enclosing lexical variables (includes function names).

Package

parenscript.

Source

compiler.lisp.

Special Variable: *function-block-names*

All block names that this function is responsible for catching.

Package

parenscript.

Source

compiler.lisp.

Special Variable: *function-lambda-list*

Table of lambda lists for defined functions.

Package

parenscript.

Source

compiler.lisp.

Special Variable: *html-empty-tags*
Package

parenscript.

Source

ps-html.lisp.

Special Variable: *indent-level*
Package

parenscript.

Source

printer.lisp.

Special Variable: *js-lisp-escaped-chars*
Package

parenscript.

Source

printer.lisp.

Special Variable: *lambda-list-keywords*
Package

parenscript.

Source

parse-lambda-list.lisp.

Special Variable: *lambda-wrappable-statements*

Statement special forms that can be wrapped in a lambda to make them into expressions. Control transfer forms like BREAK, RETURN, and CONTINUE need special treatment, and are not included.

Package

parenscript.

Source

compiler.lisp.

Special Variable: *local-function-names*

Functions named by flet and label.

Package

parenscript.

Source

compiler.lisp.

Special Variable: *loop-keywords*
Package

parenscript.

Source

ps-loop.lisp.

Special Variable: *loop-return-set-var*

Variable which is set by RETURN-FROM when it returns a value from inside a loop. The value is the name of a PS variable which dynamically indicates if the return statement indeed has been invoked.

Package

parenscript.

Source

compiler.lisp.

Special Variable: *loop-return-var*

Variable which is used to return values from inside loop bodies.

Package

parenscript.

Source

compiler.lisp.

Special Variable: *loop-scope-lexicals*

Lexical variables introduced by a loop.

Package

parenscript.

Source

compiler.lisp.

Special Variable: *loop-scope-lexicals-captured*

Lexical variables introduced by a loop that are also captured by lambdas inside a loop.

Package

parenscript.

Source

compiler.lisp.

Special Variable: *macro-env*

Current macro environment.

Package

parenscript.

Source

compiler.lisp.

Special Variable: *macro-toplevel*

Toplevel macro environment dictionary.

Package

parenscript.

Source

compiler.lisp.

Special Variable: *macro-toplevel-lambda-list*

Table of lambda lists for toplevel macros.

Package

parenscript.

Source

compiler.lisp.

Special Variable: *obfuscated-packages*
Package

parenscript.

Source

namespace.lisp.

Special Variable: *package-prefix-table*
Package

parenscript.

Source

namespace.lisp.

Special Variable: *psw-stream*
Package

parenscript.

Source

printer.lisp.

Special Variable: *reserved-symbol-names*
Package

parenscript.

Source

compiler.lisp.

Special Variable: *setf-expanders*

Setf expander dictionary. Key is the symbol of the access function of the place, value is an expansion function that takes the arguments of the access functions as a first value and the form to be stored as the second value.

Package

parenscript.

Source

compiler.lisp.

Special Variable: *special-expression-operators*
Package

parenscript.

Source

compiler.lisp.

Special Variable: *special-statement-operators*
Package

parenscript.

Source

compiler.lisp.

Special Variable: *special-variables*

Special variables declared during any Parenscript run. Re-bind this if you want to clear the list.

Package

parenscript.

Source

compiler.lisp.

Special Variable: *symbol-macro-env*
Package

parenscript.

Source

compiler.lisp.

Special Variable: *symbol-macro-toplevel*
Package

parenscript.

Source

compiler.lisp.

Special Variable: *used-up-names*

Names that have been already used for lexical bindings in the current function scope.

Package

parenscript.

Source

compiler.lisp.

Special Variable: *vars-needing-to-be-declared*

This special variable is expected to be bound to a fresh list by special forms that introduce a new JavaScript lexical block (currently function definitions and lambdas). Enclosed special forms are expected to push variable declarations onto the list when the variables declaration cannot be made by the enclosed form (for example, a x,y,z expression progn). It is then the responsibility of the enclosing special form to introduce the variable declarations in its lexical block.

Package

parenscript.

Source

compiler.lisp.

Special Variable: clear-multiple-values?
Package

parenscript.

Source

compiler.lisp.

Special Variable: compile-expression?
Package

parenscript.

Source

compiler.lisp.

Special Variable: in-case?

Bind to T when compiling CASE branches.

Package

parenscript.

Source

compiler.lisp.

Special Variable: in-function-scope?

Lets the compiler know when lambda wrapping is necessary.

Package

parenscript.

Source

compiler.lisp.

Special Variable: in-loop-scope?

Used for seeing when we’re in loops, so that we can introduce proper scoping for lambdas closing over loop-bound variables (otherwise they all share the same binding).

Package

parenscript.

Source

compiler.lisp.

Special Variable: returning-values?
Package

parenscript.

Source

special-operators.lisp.


6.2.2 Macros

Macro: %define-special-operator (type name lambda-list &body body)
Package

parenscript.

Source

compiler.lisp.

Macro: collect (collections &body body)
Package

parenscript.

Source

parse-lambda-list.lisp.

Macro: def-js-maths (&rest mathdefs)
Package

parenscript.

Source

macros.lisp.

Macro: define-expression-operator (name lambda-list &body body)
Package

parenscript.

Source

compiler.lisp.

Macro: define-statement-operator (name lambda-list &body body)
Package

parenscript.

Source

compiler.lisp.

Macro: define-trivial-special-ops (&rest mappings)
Package

parenscript.

Source

non-cl.lisp.

Macro: defprinter (js-primitive args &body body)
Package

parenscript.

Source

printer.lisp.

Macro: defpsmacro-deprecated (old new)
Package

parenscript.

Source

deprecated-interface.lisp.

Macro: defun-js (old-name new-name args &body body)
Package

parenscript.

Source

deprecated-interface.lisp.

Macro: inc-dec (op op1 op2)
Package

parenscript.

Source

special-operators.lisp.

Macro: local-functions (special-op &body bindings)
Package

parenscript.

Source

function-definition.lisp.

Macro: loop-case (key &body forms)
Package

parenscript.

Source

ps-loop.lisp.

Macro: with-blank-compilation-environment (&body body)
Package

parenscript.

Source

compilation-interface.lisp.

Macro: with-declaration-effects ((var block) &body body)
Package

parenscript.

Source

special-operators.lisp.

Macro: with-local-macro-environment ((var env) &body body)
Package

parenscript.

Source

special-operators.lisp.


6.2.3 Ordinary functions

Function: a-with-clause (state)
Package

parenscript.

Source

ps-loop.lisp.

Function: accumulate (kind item var state)
Package

parenscript.

Source

ps-loop.lisp.

Function: adjust-compilation-level (form level)

Given the current *compilation-level*, LEVEL, and the fully macroexpanded form, FORM, returns the new value for *compilation-level*.

Package

parenscript.

Source

compiler.lisp.

Function: as-keyword (key)
Package

parenscript.

Source

ps-loop.lisp.

Function: assert-is-one-of (val options)
Package

parenscript.

Source

ps-dom.lisp.

Function: assignment-op (op)
Package

parenscript.

Source

special-operators.lisp.

Function: associative? (op)
Package

parenscript.

Source

printer.lisp.

Function: body-clause (term state)
Package

parenscript.

Source

ps-loop.lisp.

Function: build-body (clauses firstvar)
Package

parenscript.

Source

ps-loop.lisp.

Function: build-loop (clauses)
Package

parenscript.

Source

ps-loop.lisp.

Function: check-setq-args (args)
Package

parenscript.

Source

macros.lisp.

Function: clause (state)
Package

parenscript.

Source

ps-loop.lisp.

Function: collapse-function-return-blocks (body)
Package

parenscript.

Source

function-definition.lisp.

Function: collect-function-names (fn-defs)
Package

parenscript.

Source

function-definition.lisp.

Function: collect-list-expander (n-value n-tail forms)
Package

parenscript.

Source

parse-lambda-list.lisp.

Function: compile-expression (form)
Package

parenscript.

Source

compiler.lisp.

Function: compile-function-body (args body)
Package

parenscript.

Source

function-definition.lisp.

Function: compile-local-function-defs (fn-defs renames)
Package

parenscript.

Source

function-definition.lisp.

Function: compile-loop-body (loop-vars body)
Package

parenscript.

Source

special-operators.lisp.

Function: compile-named-function-body (name lambda-list body)
Package

parenscript.

Source

function-definition.lisp.

Function: compile-named-local-function (name args body)
Package

parenscript.

Source

function-definition.lisp.

Function: compile-progn (body)
Package

parenscript.

Source

special-operators.lisp.

Function: compile-special-form (form)
Package

parenscript.

Source

compiler.lisp.

Function: compile-statement (form)
Package

parenscript.

Source

compiler.lisp.

Function: complex-js-expr? (expr)
Package

parenscript.

Source

macros.lisp.

Function: concat-constant-strings (str-list)
Package

parenscript.

Source

ps-html.lisp.

Function: defined-operator-override-check (name &rest body)
Package

parenscript.

Source

compiler.lisp.

Function: destructuring-wrap (arr n bindings declarations body)
Package

parenscript.

Source

macros.lisp.

Function: do-make-for-steps (decls)
Package

parenscript.

Source

macros.lisp.

Function: do-make-iter-psteps (decls)
Package

parenscript.

Source

macros.lisp.

Function: do-make-iteration-bindings (decls)
Package

parenscript.

Source

macros.lisp.

Function: dot->rest (x)
Package

parenscript.

Source

ps-loop.lisp.

Function: eat (state &optional what tag)

Consumes the next meaningful chunk of loop for processing.

Package

parenscript.

Source

ps-loop.lisp.

Function: empty-tag-p (tag)
Package

parenscript.

Source

ps-html.lisp.

Function: encode-js-identifier (identifier)

Given a string, produces to a valid JavaScript identifier by following transformation heuristics case conversion. For example, paren-script becomes parenScript, *some-global* becomes SOMEGLOBAL.

Package

parenscript.

Source

utils.lisp.

Function: err (expected got)
Package

parenscript.

Source

ps-loop.lisp.

Function: extract-bindings (x)
Package

parenscript.

Source

ps-loop.lisp.

Function: fix-nary-comparison (operator objects)
Package

parenscript.

Source

special-operators.lisp.

Function: flatten (x &optional acc)
Package

parenscript.

Source

utils.lisp.

Function: flatten-blocks (body)
Package

parenscript.

Source

utils.lisp.

Function: fold-iterations-where-possible (clauses)
Package

parenscript.

Source

ps-loop.lisp.

Function: for-= (place state)
Package

parenscript.

Source

ps-loop.lisp.

Function: for-clause (state)
Package

parenscript.

Source

ps-loop.lisp.

Function: for-from (from-key var state)
Package

parenscript.

Source

ps-loop.lisp.

Function: for-keys-of (place state)
Package

parenscript.

Source

ps-loop.lisp.

Function: for-on (place state)
Package

parenscript.

Source

ps-loop.lisp.

Function: hoist-expr? (bindings expr)
Package

parenscript.

Source

macros.lisp.

Function: js-compile-list (form)
Package

parenscript.

Source

deprecated-interface.lisp.

Function: js-equal (ps-form1 ps-form2)
Package

parenscript.

Source

deprecated-interface.lisp.

Function: js-target-at-least (version)
Package

parenscript.

Source

utils.lisp.

Function: lookup-macro-def (name env)
Package

parenscript.

Source

compiler.lisp.

Function: make-for-vars/inits (init-forms)
Package

parenscript.

Source

special-operators.lisp.

Function: make-macro-dictionary ()
Package

parenscript.

Source

compiler.lisp.

Function: make-ps-macro-function (args body)

Given the arguments and body to a parenscript macro, returns a function that may be called on the entire parenscript form and outputs some parenscript code. Returns a second value that is the effective lambda list from a Parenscript perspective.

Package

parenscript.

Source

compiler.lisp.

Function: master-loop (master-iter body)
Package

parenscript.

Source

ps-loop.lisp.

Function: maybe-hoist (expr state)
Package

parenscript.

Source

ps-loop.lisp.

Function: maybe-obfuscate-symbol (symbol)
Package

parenscript.

Source

namespace.lisp.

Function: maybe-rename-lexical-var (x symbols-in-bindings)
Package

parenscript.

Source

special-operators.lisp.

Function: maybe-rename-local-function (fun-name)
Package

parenscript.

Source

function-definition.lisp.

Function: newline-and-indent (&optional indent-spaces)
Package

parenscript.

Source

printer.lisp.

Function: ordered-set-difference (list1 list2 &key test)

CL set-difference may not preserve order.

Package

parenscript.

Source

utils.lisp.

Function: organize-iterations (clauses)
Package

parenscript.

Source

ps-loop.lisp.

Function: parenscript-print (form immediate?)
Package

parenscript.

Source

printer.lisp.

Function: parenthesize-print (x)
Package

parenscript.

Source

printer.lisp.

Function: parse-body (body &key allow-docstring)

Parses a function or block body, which may or may not include a docstring. Returns 2 or 3 values: a docstring (if allowed for), a list of (declare ...) forms, and the remaining body.

Package

parenscript.

Source

function-definition.lisp.

Function: parse-extended-function (lambda-list body)

The lambda list is transformed as follows:

* standard and optional variables are the mapped directly into the js-lambda list

* keyword variables are not included in the js-lambda list, but instead are obtained from the magic js ARGUMENTS pseudo-array. Code assigning values to keyword vars is prepended to the body of the function.

Package

parenscript.

Source

function-definition.lisp.

Function: parse-key-spec (key-spec)

parses an &key parameter. Returns 5 values:
var, init-form, keyword-name, supplied-p-var, init-form-supplied-p.

Syntax of key spec:
[&key {var | ({var | (keyword-name var)} [init-form [supplied-p-parameter]])}*

Package

parenscript.

Source

function-definition.lisp.

Function: parse-lambda-list (lambda-list)
Package

parenscript.

Source

parse-lambda-list.lisp.

Function: parse-lambda-list-like-thing (list)
Package

parenscript.

Source

parse-lambda-list.lisp.

Function: parse-optional-spec (spec)

Parses an &optional parameter. Returns 3 values: var, init-form, supplied-p-var. [&optional {var | (var [init-form [supplied-p-parameter]])}*]

Package

parenscript.

Source

function-definition.lisp.

Function: parse-ps-loop (terms)
Package

parenscript.

Source

ps-loop.lisp.

Function: parse-semver (semver-string)
Package

parenscript.

Source

utils.lisp.

Function: peek (state)
Package

parenscript.

Source

ps-loop.lisp.

Function: pop-declarations-for-var (var declarations)
Package

parenscript.

Source

macros.lisp.

Function: precedence (op)
Package

parenscript.

Source

printer.lisp.

Function: print-comma-delimited-list (ps-forms)
Package

parenscript.

Source

printer.lisp.

Function: print-comment (comment-str)
Package

parenscript.

Source

printer.lisp.

Function: print-fun-def (name args body)
Package

parenscript.

Source

printer.lisp.

Function: print-op (op)
Package

parenscript.

Source

printer.lisp.

Function: print-op-argument (op argument)
Package

parenscript.

Source

printer.lisp.

Function: process-html-forms-cl-who (forms)
Package

parenscript.

Source

ps-html.lisp.

Function: process-html-forms-lhtml (forms)
Package

parenscript.

Source

ps-html.lisp.

Function: prologue-wrap (prologue body)
Package

parenscript.

Source

ps-loop.lisp.

Function: property-bindings (bindings expr body)
Package

parenscript.

Source

ps-loop.lisp.

Function: property-bindings-p (x)
Package

parenscript.

Source

ps-loop.lisp.

Function: ps-compile (form)
Package

parenscript.

Source

compiler.lisp.

Function: ps-macroexpand (form)
Package

parenscript.

Source

compiler.lisp.

Function: ps-macroexpand-1 (form)
Package

parenscript.

Source

compiler.lisp.

Function: psw (&rest objs)
Package

parenscript.

Source

printer.lisp.

Function: push-body-clause (clause state)
Package

parenscript.

Source

ps-loop.lisp.

Function: push-iter-clause (clause state)
Package

parenscript.

Source

ps-loop.lisp.

Function: push-tokens (state toks)
Package

parenscript.

Source

ps-loop.lisp.

Function: re-export-symbols (from-package to-package)
Package

parenscript.

Source

js-dom-symbol-exports.lisp.

Function: references? (exp place)
Package

parenscript.

Source

special-operators.lisp.

Function: repeat-clause (state)
Package

parenscript.

Source

ps-loop.lisp.

Function: reserved-symbol-p (symbol)
Package

parenscript.

Source

compiler.lisp.

Function: return-exp (tag &optional value)
Package

parenscript.

Source

special-operators.lisp.

Function: return-result-of (tag form)
Package

parenscript.

Source

special-operators.lisp.

Function: special-form? (form)
Package

parenscript.

Source

compiler.lisp.

Function: special-variable? (sym)
Package

parenscript.

Source

compiler.lisp.

Function: style-warn (&rest args)
Package

parenscript.

Source

parse-lambda-list.lisp.

Function: symbol-macro? (form)

If FORM is a symbol macro, return its macro function. Otherwise, return NIL.

Package

parenscript.

Source

compiler.lisp.

Function: tree-find (a tree)
Package

parenscript.

Source

utils.lisp.

Function: try-expressionizing-if? (exp &optional score)

Heuristic that tries not to expressionize deeply nested if expressions.

Package

parenscript.

Source

special-operators.lisp.

Function: until-clause (state)
Package

parenscript.

Source

ps-loop.lisp.

Function: warn-deprecated (old-name &optional new-name)
Package

parenscript.

Source

deprecated-interface.lisp.

Function: while-clause (state)
Package

parenscript.

Source

ps-loop.lisp.

Function: with-lambda-scope (form)
Package

parenscript.

Source

special-operators.lisp.

Function: wrap-for-dynamic-return (handled-tags body)
Package

parenscript.

Source

special-operators.lisp.


6.2.4 Generic functions

Generic Reader: accum-kind (object)
Package

parenscript.

Methods
Reader Method: accum-kind ((loop-state loop-state))

automatically generated reader method

Source

ps-loop.lisp.

Target Slot

accum-kind.

Generic Writer: (setf accum-kind) (object)
Package

parenscript.

Methods
Writer Method: (setf accum-kind) ((loop-state loop-state))

automatically generated writer method

Source

ps-loop.lisp.

Target Slot

accum-kind.

Generic Reader: accum-var (object)
Package

parenscript.

Methods
Reader Method: accum-var ((loop-state loop-state))

automatically generated reader method

Source

ps-loop.lisp.

Target Slot

accum-var.

Generic Writer: (setf accum-var) (object)
Package

parenscript.

Methods
Writer Method: (setf accum-var) ((loop-state loop-state))

automatically generated writer method

Source

ps-loop.lisp.

Target Slot

accum-var.

Generic Reader: clauses (object)
Package

parenscript.

Methods
Reader Method: clauses ((loop-state loop-state))

automatically generated reader method

Source

ps-loop.lisp.

Target Slot

clauses.

Generic Writer: (setf clauses) (object)
Package

parenscript.

Methods
Writer Method: (setf clauses) ((loop-state loop-state))

automatically generated writer method

Source

ps-loop.lisp.

Target Slot

clauses.

Generic Reader: error-form (condition)
Package

parenscript.

Methods
Reader Method: error-form ((condition compile-expression-error))
Source

compiler.lisp.

Target Slot

form.

Generic Reader: finally (object)
Package

parenscript.

Methods
Reader Method: finally ((loop-state loop-state))

automatically generated reader method

Source

ps-loop.lisp.

Target Slot

finally.

Generic Writer: (setf finally) (object)
Package

parenscript.

Methods
Writer Method: (setf finally) ((loop-state loop-state))

automatically generated writer method

Source

ps-loop.lisp.

Target Slot

finally.

Generic Reader: name (object)
Package

parenscript.

Methods
Reader Method: name ((loop-state loop-state))

automatically generated reader method

Source

ps-loop.lisp.

Target Slot

name.

Generic Writer: (setf name) (object)
Package

parenscript.

Methods
Writer Method: (setf name) ((loop-state loop-state))

automatically generated writer method

Source

ps-loop.lisp.

Target Slot

name.

Generic Reader: prologue (object)
Package

parenscript.

Methods
Reader Method: prologue ((loop-state loop-state))

automatically generated reader method

Source

ps-loop.lisp.

Target Slot

prologue.

Generic Writer: (setf prologue) (object)
Package

parenscript.

Methods
Writer Method: (setf prologue) ((loop-state loop-state))

automatically generated writer method

Source

ps-loop.lisp.

Target Slot

prologue.

Generic Function: ps-print (form)
Package

parenscript.

Source

printer.lisp.

Methods
Method: ps-print ((number number))
Method: ps-print ((string string))
Method: ps-print ((char character))
Method: ps-print ((compiled-form cons))
Method: ps-print ((s symbol))
Method: ps-print ((x (eql ps-js:false)))
Method: ps-print ((x (eql t)))
Method: ps-print ((x null))
Generic Function: ps-print% (js-primitive args)
Package

parenscript.

Source

printer.lisp.

Methods
Method: ps-print% ((op (eql ps-js:escape)) g0)
Method: ps-print% ((op (eql ps-js:instanceof)) g0)
Method: ps-print% ((op (eql ps-js:regex)) g0)
Method: ps-print% ((op (eql ps-js:try)) g0)
Method: ps-print% ((op (eql ps-js:switch)) g0)
Method: ps-print% ((op (eql ps-js:while)) g81)
Method: ps-print% ((op (eql ps-js:with)) g0)
Method: ps-print% ((op (eql ps-js:for-in)) g0)
Method: ps-print% ((op (eql ps-js:for)) g0)
Method: ps-print% ((op (eql ps-js:break)) g19)
Method: ps-print% ((op (eql ps-js:continue)) g0)
Method: ps-print% ((op (eql ps-js:label)) g0)
Method: ps-print% ((op (eql ps-js:var)) g0)
Method: ps-print% ((op (eql ps-js:?)) g0)
Method: ps-print% ((op (eql ps-js:if)) g0)
Method: ps-print% ((op (eql ps-js:getprop)) g0)
Method: ps-print% ((op (eql ps-js:object)) g0)
Method: ps-print% ((op (eql ps-js:defun)) g0)
Method: ps-print% ((op (eql ps-js:lambda)) g0)
Method: ps-print% ((op (eql ps-js:block)) g0)
Method: ps-print% ((op (eql ps-js:funcall)) g0)
Method: ps-print% ((op (eql ps-js:|,|)) g0)
Method: ps-print% ((op (eql ps-js:array)) g0)
Method: ps-print% ((op (eql ps-js:aref)) g0)
Method: ps-print% ((op (eql ps-js:!==)) g880)
Method: ps-print% ((op (eql ps-js:===)) g791)
Method: ps-print% ((op (eql ps-js:!=)) g765)
Method: ps-print% ((op (eql ps-js:==)) g739)
Method: ps-print% ((op (eql ps-js:<=)) g713)
Method: ps-print% ((op (eql ps-js:<)) g687)
Method: ps-print% ((op (eql ps-js:>=)) g661)
Method: ps-print% ((op (eql ps-js:>)) g635)
Method: ps-print% ((op (eql ps-js:in)) g609)
Method: ps-print% ((op (eql ps-js:=)) g583)
Method: ps-print% ((op (eql ps-js:|\|=|)) g557)
Method: ps-print% ((op (eql ps-js:^=)) g531)
Method: ps-print% ((op (eql ps-js:&=)) g505)
Method: ps-print% ((op (eql ps-js:>>)) g479)
Method: ps-print% ((op (eql ps-js:<<)) g453)
Method: ps-print% ((op (eql ps-js:^)) g427)
Method: ps-print% ((op (eql ps-js:%=)) g401)
Method: ps-print% ((op (eql ps-js:/=)) g375)
Method: ps-print% ((op (eql ps-js:*=)) g349)
Method: ps-print% ((op (eql ps-js:+=)) g323)
Method: ps-print% ((op (eql ps-js:-=)) g297)
Method: ps-print% ((op (eql ps-js:|\||)) g271)
Method: ps-print% ((op (eql ps-js:&)) g182)
Method: ps-print% ((op (eql ps-js:|\|\||)) g156)
Method: ps-print% ((op (eql ps-js:&&)) g130)
Method: ps-print% ((op (eql ps-js:%)) g104)
Method: ps-print% ((op (eql ps-js:/)) g78)
Method: ps-print% ((op (eql ps-js:*)) g52)
Method: ps-print% ((op (eql ps-js:-)) g26)
Method: ps-print% ((op (eql ps-js:+)) g0)
Method: ps-print% ((op (eql ps-js:post--)) g0)
Method: ps-print% ((op (eql ps-js:post++)) g0)
Method: ps-print% ((op (eql ps-js:return)) g0)
Method: ps-print% ((op (eql ps-js:throw)) g57)
Method: ps-print% ((op (eql ps-js:new)) g38)
Method: ps-print% ((op (eql ps-js:typeof)) g19)
Method: ps-print% ((op (eql ps-js:delete)) g0)
Method: ps-print% ((op (eql ps-js:unary-plus)) g0)
Method: ps-print% ((op (eql ps-js:negate)) g0)
Method: ps-print% ((op (eql ps-js:--)) g57)
Method: ps-print% ((op (eql ps-js:++)) g38)
Method: ps-print% ((op (eql ps-js:~)) g19)
Method: ps-print% ((op (eql ps-js:!)) g0)
Generic Reader: tokens (object)
Package

parenscript.

Methods
Reader Method: tokens ((loop-state loop-state))

automatically generated reader method

Source

ps-loop.lisp.

Target Slot

tokens.

Generic Writer: (setf tokens) (object)
Package

parenscript.

Methods
Writer Method: (setf tokens) ((loop-state loop-state))

automatically generated writer method

Source

ps-loop.lisp.

Target Slot

tokens.


6.2.5 Conditions

Condition: compile-expression-error
Package

parenscript.

Source

compiler.lisp.

Direct superclasses

error.

Direct methods

error-form.

Direct slots
Slot: form
Initargs

:form

Readers

error-form.

Writers

This slot is read-only.

Condition: simple-style-warning
Package

parenscript.

Source

utils.lisp.

Direct superclasses
  • simple-warning.
  • style-warning.

6.2.6 Classes

Class: loop-state
Package

parenscript.

Source

ps-loop.lisp.

Direct methods
Direct slots
Slot: tokens
Initargs

:tokens

Readers

tokens.

Writers

(setf tokens).

Slot: name
Readers

name.

Writers

(setf name).

Slot: clauses
Readers

clauses.

Writers

(setf clauses).

Slot: prologue
Readers

prologue.

Writers

(setf prologue).

Slot: finally
Readers

finally.

Writers

(setf finally).

Slot: accum-var
Readers

accum-var.

Writers

(setf accum-var).

Slot: accum-kind
Readers

accum-kind.

Writers

(setf accum-kind).


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   %   (  
A   B   C   D   E   F   G   H   I   J   L   M   N   O   P   R   S   T   U   V   W  
Index Entry  Section

%
%define-special-operator: Private macros

(
(setf accum-kind): Private generic functions
(setf accum-kind): Private generic functions
(setf accum-var): Private generic functions
(setf accum-var): Private generic functions
(setf clauses): Private generic functions
(setf clauses): Private generic functions
(setf finally): Private generic functions
(setf finally): Private generic functions
(setf name): Private generic functions
(setf name): Private generic functions
(setf prologue): Private generic functions
(setf prologue): Private generic functions
(setf tokens): Private generic functions
(setf tokens): Private generic functions

A
a-with-clause: Private ordinary functions
accum-kind: Private generic functions
accum-kind: Private generic functions
accum-var: Private generic functions
accum-var: Private generic functions
accumulate: Private ordinary functions
adjust-compilation-level: Private ordinary functions
as-keyword: Private ordinary functions
assert-is-one-of: Private ordinary functions
assignment-op: Private ordinary functions
associative?: Private ordinary functions

B
body-clause: Private ordinary functions
build-body: Private ordinary functions
build-loop: Private ordinary functions

C
chain: Public ordinary functions
check-setq-args: Private ordinary functions
clause: Private ordinary functions
clauses: Private generic functions
clauses: Private generic functions
collapse-function-return-blocks: Private ordinary functions
collect: Private macros
collect-function-names: Private ordinary functions
collect-list-expander: Private ordinary functions
compile-expression: Private ordinary functions
compile-function-body: Private ordinary functions
compile-local-function-defs: Private ordinary functions
compile-loop-body: Private ordinary functions
compile-named-function-body: Private ordinary functions
compile-named-local-function: Private ordinary functions
compile-progn: Private ordinary functions
compile-script: Public ordinary functions
compile-special-form: Private ordinary functions
compile-statement: Private ordinary functions
complex-js-expr?: Private ordinary functions
concat-constant-strings: Private ordinary functions
concat-string: Public ordinary functions

D
def-js-maths: Private macros
define-expression-operator: Private macros
define-ps-symbol-macro: Public macros
define-script-symbol-macro: Public macros
define-statement-operator: Private macros
define-trivial-special-ops: Private macros
defined-operator-override-check: Private ordinary functions
defjsmacro: Public macros
defmacro+ps: Public macros
defmacro/ps: Public macros
defprinter: Private macros
defpsmacro: Public macros
defpsmacro-deprecated: Private macros
defun-js: Private macros
destructuring-wrap: Private ordinary functions
do-make-for-steps: Private ordinary functions
do-make-iter-psteps: Private ordinary functions
do-make-iteration-bindings: Private ordinary functions
dot->rest: Private ordinary functions

E
eat: Private ordinary functions
empty-tag-p: Private ordinary functions
encode-js-identifier: Private ordinary functions
err: Private ordinary functions
error-form: Private generic functions
error-form: Private generic functions
extract-bindings: Private ordinary functions

F
finally: Private generic functions
finally: Private generic functions
fix-nary-comparison: Private ordinary functions
flatten: Private ordinary functions
flatten-blocks: Private ordinary functions
fold-iterations-where-possible: Private ordinary functions
for-=: Private ordinary functions
for-clause: Private ordinary functions
for-from: Private ordinary functions
for-in: Public ordinary functions
for-keys-of: Private ordinary functions
for-on: Private ordinary functions
Function, a-with-clause: Private ordinary functions
Function, accumulate: Private ordinary functions
Function, adjust-compilation-level: Private ordinary functions
Function, as-keyword: Private ordinary functions
Function, assert-is-one-of: Private ordinary functions
Function, assignment-op: Private ordinary functions
Function, associative?: Private ordinary functions
Function, body-clause: Private ordinary functions
Function, build-body: Private ordinary functions
Function, build-loop: Private ordinary functions
Function, chain: Public ordinary functions
Function, check-setq-args: Private ordinary functions
Function, clause: Private ordinary functions
Function, collapse-function-return-blocks: Private ordinary functions
Function, collect-function-names: Private ordinary functions
Function, collect-list-expander: Private ordinary functions
Function, compile-expression: Private ordinary functions
Function, compile-function-body: Private ordinary functions
Function, compile-local-function-defs: Private ordinary functions
Function, compile-loop-body: Private ordinary functions
Function, compile-named-function-body: Private ordinary functions
Function, compile-named-local-function: Private ordinary functions
Function, compile-progn: Private ordinary functions
Function, compile-script: Public ordinary functions
Function, compile-special-form: Private ordinary functions
Function, compile-statement: Private ordinary functions
Function, complex-js-expr?: Private ordinary functions
Function, concat-constant-strings: Private ordinary functions
Function, concat-string: Public ordinary functions
Function, defined-operator-override-check: Private ordinary functions
Function, destructuring-wrap: Private ordinary functions
Function, do-make-for-steps: Private ordinary functions
Function, do-make-iter-psteps: Private ordinary functions
Function, do-make-iteration-bindings: Private ordinary functions
Function, dot->rest: Private ordinary functions
Function, eat: Private ordinary functions
Function, empty-tag-p: Private ordinary functions
Function, encode-js-identifier: Private ordinary functions
Function, err: Private ordinary functions
Function, extract-bindings: Private ordinary functions
Function, fix-nary-comparison: Private ordinary functions
Function, flatten: Private ordinary functions
Function, flatten-blocks: Private ordinary functions
Function, fold-iterations-where-possible: Private ordinary functions
Function, for-=: Private ordinary functions
Function, for-clause: Private ordinary functions
Function, for-from: Private ordinary functions
Function, for-in: Public ordinary functions
Function, for-keys-of: Private ordinary functions
Function, for-on: Private ordinary functions
Function, gen-js-name: Public ordinary functions
Function, hoist-expr?: Private ordinary functions
Function, import-macros-from-lisp: Public ordinary functions
Function, js*: Public ordinary functions
Function, js-compile: Public ordinary functions
Function, js-compile-list: Private ordinary functions
Function, js-equal: Private ordinary functions
Function, js-inline*: Public ordinary functions
Function, js-target-at-least: Private ordinary functions
Function, lisp: Public ordinary functions
Function, lookup-macro-def: Private ordinary functions
Function, make-for-vars/inits: Private ordinary functions
Function, make-macro-dictionary: Private ordinary functions
Function, make-ps-macro-function: Private ordinary functions
Function, master-loop: Private ordinary functions
Function, maybe-hoist: Private ordinary functions
Function, maybe-obfuscate-symbol: Private ordinary functions
Function, maybe-rename-lexical-var: Private ordinary functions
Function, maybe-rename-local-function: Private ordinary functions
Function, newline-and-indent: Private ordinary functions
Function, obfuscate-package: Public ordinary functions
Function, ordered-set-difference: Private ordinary functions
Function, organize-iterations: Private ordinary functions
Function, parenscript-print: Private ordinary functions
Function, parenthesize-print: Private ordinary functions
Function, parse-body: Private ordinary functions
Function, parse-extended-function: Private ordinary functions
Function, parse-key-spec: Private ordinary functions
Function, parse-lambda-list: Private ordinary functions
Function, parse-lambda-list-like-thing: Private ordinary functions
Function, parse-optional-spec: Private ordinary functions
Function, parse-ps-loop: Private ordinary functions
Function, parse-semver: Private ordinary functions
Function, peek: Private ordinary functions
Function, pop-declarations-for-var: Private ordinary functions
Function, precedence: Private ordinary functions
Function, print-comma-delimited-list: Private ordinary functions
Function, print-comment: Private ordinary functions
Function, print-fun-def: Private ordinary functions
Function, print-op: Private ordinary functions
Function, print-op-argument: Private ordinary functions
Function, process-html-forms-cl-who: Private ordinary functions
Function, process-html-forms-lhtml: Private ordinary functions
Function, prologue-wrap: Private ordinary functions
Function, property-bindings: Private ordinary functions
Function, property-bindings-p: Private ordinary functions
Function, ps*: Public ordinary functions
Function, ps-compile: Private ordinary functions
Function, ps-compile-file: Public ordinary functions
Function, ps-compile-stream: Public ordinary functions
Function, ps-doc*: Public ordinary functions
Function, ps-gensym: Public ordinary functions
Function, ps-inline*: Public ordinary functions
Function, ps-macroexpand: Private ordinary functions
Function, ps-macroexpand-1: Private ordinary functions
Function, psw: Private ordinary functions
Function, push-body-clause: Private ordinary functions
Function, push-iter-clause: Private ordinary functions
Function, push-tokens: Private ordinary functions
Function, re-export-symbols: Private ordinary functions
Function, references?: Private ordinary functions
Function, repeat-clause: Private ordinary functions
Function, reserved-symbol-p: Private ordinary functions
Function, return-exp: Private ordinary functions
Function, return-result-of: Private ordinary functions
Function, special-form?: Private ordinary functions
Function, special-variable?: Private ordinary functions
Function, stringify: Public ordinary functions
Function, style-warn: Private ordinary functions
Function, symbol-macro?: Private ordinary functions
Function, symbol-to-js: Public ordinary functions
Function, symbol-to-js-string: Public ordinary functions
Function, tree-find: Private ordinary functions
Function, try-expressionizing-if?: Private ordinary functions
Function, unobfuscate-package: Public ordinary functions
Function, until-clause: Private ordinary functions
Function, warn-deprecated: Private ordinary functions
Function, while-clause: Private ordinary functions
Function, with-lambda-scope: Private ordinary functions
Function, wrap-for-dynamic-return: Private ordinary functions

G
gen-js-name: Public ordinary functions
Generic Function, (setf accum-kind): Private generic functions
Generic Function, (setf accum-var): Private generic functions
Generic Function, (setf clauses): Private generic functions
Generic Function, (setf finally): Private generic functions
Generic Function, (setf name): Private generic functions
Generic Function, (setf prologue): Private generic functions
Generic Function, (setf tokens): Private generic functions
Generic Function, accum-kind: Private generic functions
Generic Function, accum-var: Private generic functions
Generic Function, clauses: Private generic functions
Generic Function, error-form: Private generic functions
Generic Function, finally: Private generic functions
Generic Function, name: Private generic functions
Generic Function, prologue: Private generic functions
Generic Function, ps-print: Private generic functions
Generic Function, ps-print%: Private generic functions
Generic Function, tokens: Private generic functions

H
hoist-expr?: Private ordinary functions

I
import-macros-from-lisp: Public ordinary functions
inc-dec: Private macros

J
js: Public macros
js*: Public ordinary functions
js-compile: Public ordinary functions
js-compile-list: Private ordinary functions
js-equal: Private ordinary functions
js-inline: Public macros
js-inline*: Public ordinary functions
js-target-at-least: Private ordinary functions

L
lisp: Public ordinary functions
local-functions: Private macros
lookup-macro-def: Private ordinary functions
loop-case: Private macros

M
Macro, %define-special-operator: Private macros
Macro, collect: Private macros
Macro, def-js-maths: Private macros
Macro, define-expression-operator: Private macros
Macro, define-ps-symbol-macro: Public macros
Macro, define-script-symbol-macro: Public macros
Macro, define-statement-operator: Private macros
Macro, define-trivial-special-ops: Private macros
Macro, defjsmacro: Public macros
Macro, defmacro+ps: Public macros
Macro, defmacro/ps: Public macros
Macro, defprinter: Private macros
Macro, defpsmacro: Public macros
Macro, defpsmacro-deprecated: Private macros
Macro, defun-js: Private macros
Macro, inc-dec: Private macros
Macro, js: Public macros
Macro, js-inline: Public macros
Macro, local-functions: Private macros
Macro, loop-case: Private macros
Macro, maybe-once-only: Public macros
Macro, ps: Public macros
Macro, ps-doc: Public macros
Macro, ps-html: Public macros
Macro, ps-inline: Public macros
Macro, ps-once-only: Public macros
Macro, ps-package-prefix: Public macros
Macro, ps-to-stream: Public macros
Macro, var: Public macros
Macro, while: Public macros
Macro, who-ps-html: Public macros
Macro, with-blank-compilation-environment: Private macros
Macro, with-declaration-effects: Private macros
Macro, with-local-macro-environment: Private macros
Macro, with-ps-gensyms: Public macros
Macro, with-unique-js-names: Public macros
make-for-vars/inits: Private ordinary functions
make-macro-dictionary: Private ordinary functions
make-ps-macro-function: Private ordinary functions
master-loop: Private ordinary functions
maybe-hoist: Private ordinary functions
maybe-obfuscate-symbol: Private ordinary functions
maybe-once-only: Public macros
maybe-rename-lexical-var: Private ordinary functions
maybe-rename-local-function: Private ordinary functions
Method, (setf accum-kind): Private generic functions
Method, (setf accum-var): Private generic functions
Method, (setf clauses): Private generic functions
Method, (setf finally): Private generic functions
Method, (setf name): Private generic functions
Method, (setf prologue): Private generic functions
Method, (setf tokens): Private generic functions
Method, accum-kind: Private generic functions
Method, accum-var: Private generic functions
Method, clauses: Private generic functions
Method, error-form: Private generic functions
Method, finally: Private generic functions
Method, name: Private generic functions
Method, prologue: Private generic functions
Method, ps-print: Private generic functions
Method, ps-print: Private generic functions
Method, ps-print: Private generic functions
Method, ps-print: Private generic functions
Method, ps-print: Private generic functions
Method, ps-print: Private generic functions
Method, ps-print: Private generic functions
Method, ps-print: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, ps-print%: Private generic functions
Method, tokens: Private generic functions

N
name: Private generic functions
name: Private generic functions
newline-and-indent: Private ordinary functions

O
obfuscate-package: Public ordinary functions
ordered-set-difference: Private ordinary functions
organize-iterations: Private ordinary functions

P
parenscript-print: Private ordinary functions
parenthesize-print: Private ordinary functions
parse-body: Private ordinary functions
parse-extended-function: Private ordinary functions
parse-key-spec: Private ordinary functions
parse-lambda-list: Private ordinary functions
parse-lambda-list-like-thing: Private ordinary functions
parse-optional-spec: Private ordinary functions
parse-ps-loop: Private ordinary functions
parse-semver: Private ordinary functions
peek: Private ordinary functions
pop-declarations-for-var: Private ordinary functions
precedence: Private ordinary functions
print-comma-delimited-list: Private ordinary functions
print-comment: Private ordinary functions
print-fun-def: Private ordinary functions
print-op: Private ordinary functions
print-op-argument: Private ordinary functions
process-html-forms-cl-who: Private ordinary functions
process-html-forms-lhtml: Private ordinary functions
prologue: Private generic functions
prologue: Private generic functions
prologue-wrap: Private ordinary functions
property-bindings: Private ordinary functions
property-bindings-p: Private ordinary functions
ps: Public macros
ps*: Public ordinary functions
ps-compile: Private ordinary functions
ps-compile-file: Public ordinary functions
ps-compile-stream: Public ordinary functions
ps-doc: Public macros
ps-doc*: Public ordinary functions
ps-gensym: Public ordinary functions
ps-html: Public macros
ps-inline: Public macros
ps-inline*: Public ordinary functions
ps-macroexpand: Private ordinary functions
ps-macroexpand-1: Private ordinary functions
ps-once-only: Public macros
ps-package-prefix: Public macros
ps-print: Private generic functions
ps-print: Private generic functions
ps-print: Private generic functions
ps-print: Private generic functions
ps-print: Private generic functions
ps-print: Private generic functions
ps-print: Private generic functions
ps-print: Private generic functions
ps-print: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-print%: Private generic functions
ps-to-stream: Public macros
psw: Private ordinary functions
push-body-clause: Private ordinary functions
push-iter-clause: Private ordinary functions
push-tokens: Private ordinary functions

R
re-export-symbols: Private ordinary functions
references?: Private ordinary functions
repeat-clause: Private ordinary functions
reserved-symbol-p: Private ordinary functions
return-exp: Private ordinary functions
return-result-of: Private ordinary functions

S
special-form?: Private ordinary functions
special-variable?: Private ordinary functions
stringify: Public ordinary functions
style-warn: Private ordinary functions
symbol-macro?: Private ordinary functions
symbol-to-js: Public ordinary functions
symbol-to-js-string: Public ordinary functions

T
tokens: Private generic functions
tokens: Private generic functions
tree-find: Private ordinary functions
try-expressionizing-if?: Private ordinary functions

U
unobfuscate-package: Public ordinary functions
until-clause: Private ordinary functions

V
var: Public macros

W
warn-deprecated: Private ordinary functions
while: Public macros
while-clause: Private ordinary functions
who-ps-html: Public macros
with-blank-compilation-environment: Private macros
with-declaration-effects: Private macros
with-lambda-scope: Private ordinary functions
with-local-macro-environment: Private macros
with-ps-gensyms: Public macros
with-unique-js-names: Public macros
wrap-for-dynamic-return: Private ordinary functions


A.3 Variables

Jump to:   %   *  
A   C   F   I   N   P   R   S   T  
Index Entry  Section

%
%compiling-reserved-forms-p%: Private special variables

*
*column*: Private special variables
*compilation-level*: Private special variables
*current-block-tag*: Private special variables
*defined-operators*: Public special variables
*defun-setf-name-prefix*: Private special variables
*dynamic-return-tags*: Private special variables
*enclosing-function-arguments*: Private special variables
*enclosing-lexicals*: Private special variables
*function-block-names*: Private special variables
*function-lambda-list*: Private special variables
*html-empty-tags*: Private special variables
*indent-level*: Private special variables
*indent-num-spaces*: Public special variables
*js-inline-string-delimiter*: Public special variables
*js-lisp-escaped-chars*: Private special variables
*js-string-delimiter*: Public special variables
*js-target-version*: Public special variables
*lambda-list-keywords*: Private special variables
*lambda-wrappable-statements*: Private special variables
*local-function-names*: Private special variables
*loop-keywords*: Private special variables
*loop-return-set-var*: Private special variables
*loop-return-var*: Private special variables
*loop-scope-lexicals*: Private special variables
*loop-scope-lexicals-captured*: Private special variables
*macro-env*: Private special variables
*macro-toplevel*: Private special variables
*macro-toplevel-lambda-list*: Private special variables
*obfuscated-packages*: Private special variables
*package-prefix-table*: Private special variables
*parenscript-stream*: Public special variables
*ps-gensym-counter*: Public special variables
*ps-html-empty-tag-aware-p*: Public special variables
*ps-html-mode*: Public special variables
*ps-lisp-library*: Public special variables
*ps-print-pretty*: Public special variables
*ps-read-function*: Public special variables
*psw-stream*: Private special variables
*reserved-symbol-names*: Private special variables
*setf-expanders*: Private special variables
*special-expression-operators*: Private special variables
*special-statement-operators*: Private special variables
*special-variables*: Private special variables
*symbol-macro-env*: Private special variables
*symbol-macro-toplevel*: Private special variables
*used-up-names*: Private special variables
*vars-needing-to-be-declared*: Private special variables
*version*: Public special variables

A
accum-kind: Private classes
accum-var: Private classes

C
clauses: Private classes
clear-multiple-values?: Private special variables
compile-expression?: Private special variables

F
false: Public special variables
finally: Private classes
form: Private conditions

I
in-case?: Private special variables
in-function-scope?: Private special variables
in-loop-scope?: Private special variables

N
name: Private classes

P
prologue: Private classes

R
returning-values?: Private special variables

S
Slot, accum-kind: Private classes
Slot, accum-var: Private classes
Slot, clauses: Private classes
Slot, finally: Private classes
Slot, form: Private conditions
Slot, name: Private classes
Slot, prologue: Private classes
Slot, tokens: Private classes
Special Variable, %compiling-reserved-forms-p%: Private special variables
Special Variable, *column*: Private special variables
Special Variable, *compilation-level*: Private special variables
Special Variable, *current-block-tag*: Private special variables
Special Variable, *defined-operators*: Public special variables
Special Variable, *defun-setf-name-prefix*: Private special variables
Special Variable, *dynamic-return-tags*: Private special variables
Special Variable, *enclosing-function-arguments*: Private special variables
Special Variable, *enclosing-lexicals*: Private special variables
Special Variable, *function-block-names*: Private special variables
Special Variable, *function-lambda-list*: Private special variables
Special Variable, *html-empty-tags*: Private special variables
Special Variable, *indent-level*: Private special variables
Special Variable, *indent-num-spaces*: Public special variables
Special Variable, *js-inline-string-delimiter*: Public special variables
Special Variable, *js-lisp-escaped-chars*: Private special variables
Special Variable, *js-string-delimiter*: Public special variables
Special Variable, *js-target-version*: Public special variables
Special Variable, *lambda-list-keywords*: Private special variables
Special Variable, *lambda-wrappable-statements*: Private special variables
Special Variable, *local-function-names*: Private special variables
Special Variable, *loop-keywords*: Private special variables
Special Variable, *loop-return-set-var*: Private special variables
Special Variable, *loop-return-var*: Private special variables
Special Variable, *loop-scope-lexicals*: Private special variables
Special Variable, *loop-scope-lexicals-captured*: Private special variables
Special Variable, *macro-env*: Private special variables
Special Variable, *macro-toplevel*: Private special variables
Special Variable, *macro-toplevel-lambda-list*: Private special variables
Special Variable, *obfuscated-packages*: Private special variables
Special Variable, *package-prefix-table*: Private special variables
Special Variable, *parenscript-stream*: Public special variables
Special Variable, *ps-gensym-counter*: Public special variables
Special Variable, *ps-html-empty-tag-aware-p*: Public special variables
Special Variable, *ps-html-mode*: Public special variables
Special Variable, *ps-lisp-library*: Public special variables
Special Variable, *ps-print-pretty*: Public special variables
Special Variable, *ps-read-function*: Public special variables
Special Variable, *psw-stream*: Private special variables
Special Variable, *reserved-symbol-names*: Private special variables
Special Variable, *setf-expanders*: Private special variables
Special Variable, *special-expression-operators*: Private special variables
Special Variable, *special-statement-operators*: Private special variables
Special Variable, *special-variables*: Private special variables
Special Variable, *symbol-macro-env*: Private special variables
Special Variable, *symbol-macro-toplevel*: Private special variables
Special Variable, *used-up-names*: Private special variables
Special Variable, *vars-needing-to-be-declared*: Private special variables
Special Variable, *version*: Public special variables
Special Variable, clear-multiple-values?: Private special variables
Special Variable, compile-expression?: Private special variables
Special Variable, false: Public special variables
Special Variable, in-case?: Private special variables
Special Variable, in-function-scope?: Private special variables
Special Variable, in-loop-scope?: Private special variables
Special Variable, returning-values?: Private special variables

T
tokens: Private classes


A.4 Data types

Jump to:   C   D   F   J   L   M   N   P   R   S   U  
Index Entry  Section

C
Class, loop-state: Private classes
compilation-interface.lisp: The parenscript/src/compilation-interface․lisp file
compile-expression-error: Private conditions
compiler.lisp: The parenscript/src/compiler․lisp file
Condition, compile-expression-error: Private conditions
Condition, simple-style-warning: Private conditions

D
deprecated-interface.lisp: The parenscript/src/deprecated-interface․lisp file

F
File, compilation-interface.lisp: The parenscript/src/compilation-interface․lisp file
File, compiler.lisp: The parenscript/src/compiler․lisp file
File, deprecated-interface.lisp: The parenscript/src/deprecated-interface․lisp file
File, function-definition.lisp: The parenscript/src/function-definition․lisp file
File, js-dom-symbol-exports.lisp: The parenscript/src/js-dom-symbol-exports․lisp file
File, js-ir-package.lisp: The parenscript/src/js-ir-package․lisp file
File, macros.lisp: The parenscript/src/macros․lisp file
File, namespace.lisp: The parenscript/src/namespace․lisp file
File, non-cl.lisp: The parenscript/src/non-cl․lisp file
File, package.lisp: The parenscript/src/package․lisp file
File, parenscript.asd: The parenscript/parenscript․asd file
File, parse-lambda-list.lisp: The parenscript/src/parse-lambda-list․lisp file
File, printer.lisp: The parenscript/src/printer․lisp file
File, ps-dom.lisp: The parenscript/src/lib/ps-dom․lisp file
File, ps-html.lisp: The parenscript/src/lib/ps-html․lisp file
File, ps-loop.lisp: The parenscript/src/lib/ps-loop․lisp file
File, ps-runtime-lib.lisp: The parenscript/runtime/ps-runtime-lib․lisp file
File, special-operators.lisp: The parenscript/src/special-operators․lisp file
File, utils.lisp: The parenscript/src/utils․lisp file
function-definition.lisp: The parenscript/src/function-definition․lisp file

J
js-dom-symbol-exports.lisp: The parenscript/src/js-dom-symbol-exports․lisp file
js-ir-package.lisp: The parenscript/src/js-ir-package․lisp file

L
lib: The parenscript/src/lib module
loop-state: Private classes

M
macros.lisp: The parenscript/src/macros․lisp file
Module, lib: The parenscript/src/lib module
Module, runtime: The parenscript/runtime module
Module, src: The parenscript/src module

N
namespace.lisp: The parenscript/src/namespace․lisp file
non-cl.lisp: The parenscript/src/non-cl․lisp file

P
Package, parenscript: The parenscript package
Package, ps-dhtml-symbols: The ps-dhtml-symbols package
Package, ps-dom-nonstandard-symbols: The ps-dom-nonstandard-symbols package
Package, ps-dom1-symbols: The ps-dom1-symbols package
Package, ps-dom2-symbols: The ps-dom2-symbols package
Package, ps-js: The ps-js package
Package, ps-js-symbols: The ps-js-symbols package
Package, ps-window-wd-symbols: The ps-window-wd-symbols package
package.lisp: The parenscript/src/package․lisp file
parenscript: The parenscript system
parenscript: The parenscript package
parenscript.asd: The parenscript/parenscript․asd file
parse-lambda-list.lisp: The parenscript/src/parse-lambda-list․lisp file
printer.lisp: The parenscript/src/printer․lisp file
ps-dhtml-symbols: The ps-dhtml-symbols package
ps-dom-nonstandard-symbols: The ps-dom-nonstandard-symbols package
ps-dom.lisp: The parenscript/src/lib/ps-dom․lisp file
ps-dom1-symbols: The ps-dom1-symbols package
ps-dom2-symbols: The ps-dom2-symbols package
ps-html.lisp: The parenscript/src/lib/ps-html․lisp file
ps-js: The ps-js package
ps-js-symbols: The ps-js-symbols package
ps-loop.lisp: The parenscript/src/lib/ps-loop․lisp file
ps-runtime-lib.lisp: The parenscript/runtime/ps-runtime-lib․lisp file
ps-window-wd-symbols: The ps-window-wd-symbols package

R
runtime: The parenscript/runtime module

S
simple-style-warning: Private conditions
special-operators.lisp: The parenscript/src/special-operators․lisp file
src: The parenscript/src module
System, parenscript: The parenscript system

U
utils.lisp: The parenscript/src/utils․lisp file