The jwacs Reference Manual

Table of Contents

Next: , Previous: , Up: (dir)   [Contents][Index]

The jwacs Reference Manual

This is the jwacs Reference Manual, version 0.3, generated automatically by Declt version 2.3 "Robert April" on Tue Feb 20 08:52:56 2018 GMT+0.


Next: , Previous: , Up: Top   [Contents][Index]

1 Introduction

jwacs - Javascript With Advanced Continuation Support

Jwacs is a program for transforming code written in an extended version of 
Javascript that contains continuation support into regular Javascript that can 
be run in any standards-compliant browser.

The extended language is also called jwacs, which is perhaps a little confusing. 
Suggestions are welcome.

See doc/index.html or http://chumsley.org/jwacs/ for documentation, including a Quick 
Start guide.


Next: , Previous: , Up: Top   [Contents][Index]

2 Systems

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


Previous: , Up: Systems   [Contents][Index]

2.1 jwacs

Author

James Wright <james@chumsley.org>

License

MIT License <http://www.opensource.org/licenses/mit-license.php>

Description

Javascript With Advanced Continuation Support

Version

0.3

Dependency

cl-ppcre

Source

jwacs.asd (file)

Components

Next: , Previous: , Up: Top   [Contents][Index]

3 Modules

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


Previous: , Up: Modules   [Contents][Index]

3.1 jwacs/external

Parent

jwacs (system)

Location

external/

Component

yacc.lisp (file)


Next: , Previous: , Up: Top   [Contents][Index]

4 Files

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


Next: , Previous: , Up: Files   [Contents][Index]

4.1 Lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.1 jwacs.asd

Location

jwacs.asd

Systems

jwacs (system)

Packages

jwacs-system

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.2 jwacs/external/yacc.lisp

Parent

external (module)

Location

external/yacc.lisp

Packages

yacc

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.3 jwacs/package.lisp

Dependency

default-iframe.html (file)

Parent

jwacs (system)

Location

package.lisp

Packages

jwacs


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.4 jwacs/general-utilities.lisp

Dependency

package.lisp (file)

Parent

jwacs (system)

Location

general-utilities.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.5 jwacs/conditions.lisp

Dependency

general-utilities.lisp (file)

Parent

jwacs (system)

Location

conditions.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.6 jwacs/lexer-macros.lisp

Dependency

conditions.lisp (file)

Parent

jwacs (system)

Location

lexer-macros.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.7 jwacs/lex-javascript.lisp

Dependency

lexer-macros.lisp (file)

Parent

jwacs (system)

Location

lex-javascript.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.8 jwacs/js-source-model.lisp

Dependency

lex-javascript.lisp (file)

Parent

jwacs (system)

Location

js-source-model.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.9 jwacs/parse-javascript-yacc.lisp

Dependency

js-source-model.lisp (file)

Parent

jwacs (system)

Location

parse-javascript-yacc.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.10 jwacs/parse-javascript.lisp

Dependency

parse-javascript-yacc.lisp (file)

Parent

jwacs (system)

Location

parse-javascript.lisp

Exported Definitions

parse (function)

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.11 jwacs/pretty-print.lisp

Dependency

parse-javascript.lisp (file)

Parent

jwacs (system)

Location

pretty-print.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.12 jwacs/source-transformations.lisp

Dependency

pretty-print.lisp (file)

Parent

jwacs (system)

Location

source-transformations.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.13 jwacs/shift-decls-transformation.lisp

Dependency

source-transformations.lisp (file)

Parent

jwacs (system)

Location

shift-decls-transformation.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.14 jwacs/ugly-print.lisp

Dependency

shift-decls-transformation.lisp (file)

Parent

jwacs (system)

Location

ugly-print.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.15 jwacs/static-analysis.lisp

Dependency

ugly-print.lisp (file)

Parent

jwacs (system)

Location

static-analysis.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.16 jwacs/type-analysis.lisp

Dependency

static-analysis.lisp (file)

Parent

jwacs (system)

Location

type-analysis.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.17 jwacs/explicitize-transformation.lisp

Dependency

type-analysis.lisp (file)

Parent

jwacs (system)

Location

explicitize-transformation.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.18 jwacs/shadow-values-transformation.lisp

Dependency

explicitize-transformation.lisp (file)

Parent

jwacs (system)

Location

shadow-values-transformation.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.19 jwacs/cps-transformation.lisp

Dependency

shadow-values-transformation.lisp (file)

Parent

jwacs (system)

Location

cps-transformation.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.20 jwacs/loop-transformation.lisp

Dependency

cps-transformation.lisp (file)

Parent

jwacs (system)

Location

loop-transformation.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.21 jwacs/trampoline-transformation.lisp

Dependency

loop-transformation.lisp (file)

Parent

jwacs (system)

Location

trampoline-transformation.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.22 jwacs/runtime-transformation.lisp

Dependency

trampoline-transformation.lisp (file)

Parent

jwacs (system)

Location

runtime-transformation.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.23 jwacs/compiler.lisp

Dependency

runtime-transformation.lisp (file)

Parent

jwacs (system)

Location

compiler.lisp

Exported Definitions
Internal Definitions

Previous: , Up: Lisp files   [Contents][Index]

4.1.24 jwacs/main.lisp

Dependency

compiler.lisp (file)

Parent

jwacs (system)

Location

main.lisp

Exported Definitions

main (function)

Internal Definitions

Next: , Previous: , Up: Files   [Contents][Index]

4.2 HTML


Next: , Previous: , Up: HTML files   [Contents][Index]

4.2.1 jwacs/default-template.html

Dependency

jw-debug-runtime.js (file)

Parent

jwacs (system)

Location

default-template.html


Previous: , Up: HTML files   [Contents][Index]

4.2.2 jwacs/default-iframe.html

Dependency

default-template.html (file)

Parent

jwacs (system)

Location

default-iframe.html


Previous: , Up: Files   [Contents][Index]

4.3 Other


Next: , Previous: , Up: Other files   [Contents][Index]

4.3.1 jwacs/jw-runtime.js

Dependency

external (module)

Parent

jwacs (system)

Location

jw-runtime.js


Previous: , Up: Other files   [Contents][Index]

4.3.2 jwacs/jw-debug-runtime.js

Dependency

jw-runtime.js (file)

Parent

jwacs (system)

Location

jw-debug-runtime.js


Next: , Previous: , Up: Top   [Contents][Index]

5 Packages

Packages are listed by definition order.


Next: , Previous: , Up: Packages   [Contents][Index]

5.1 jwacs-system

Source

jwacs.asd

Nickname

jw-system

Use List
Internal Definitions

Next: , Previous: , Up: Packages   [Contents][Index]

5.2 yacc

Source

yacc.lisp (file)

Use List

common-lisp

Exported Definitions
Internal Definitions

Previous: , Up: Packages   [Contents][Index]

5.3 jwacs

Source

package.lisp (file)

Nickname

jw

Use List
Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

6 Definitions

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


Next: , Previous: , Up: Definitions   [Contents][Index]

6.1 Exported definitions


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.1 Macros

Macro: define-grammar NAME &body BODY

DEFINE-GRAMMAR NAME OPTION... PRODUCTION...
PRODUCTION ::= (SYMBOL RHS...)
RHS ::= SYMBOL | (SYMBOL... [ACTION])
Defines the special variable NAME to be a grammar. Options are as in MAKE-GRAMMAR.

Package

yacc

Source

yacc.lisp (file)

Macro: define-parser NAME &body BODY

DEFINE-GRAMMAR NAME OPTION... PRODUCTION...
PRODUCTION ::= (SYMBOL RHS...)
RHS ::= SYMBOL | (SYMBOL... [ACTION])
Defines the special variable NAME to be a parser. Options are as in MAKE-GRAMMAR and MAKE-PARSER.

Package

yacc

Source

yacc.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.2 Functions

Function: build-app MAIN-MODULE-PATH &key DEBUG-MODE COMPRESS-MODE COMBINE-MODE TEMPLATE-URIPATH OUTPUT-URIPATH PREFIX-LOOKUP RUNTIME-URIPATH INLINE-OUTPUT-STREAM INLINE-MAIN-TEXT

Build a wrapper html file for a jwacs application. COMBINE-MODE is forced to T if an INLINE-OUTPUT-STREAM is provided.

Package

jwacs

Source

compiler.lisp (file)

Function: main ()

This is the main entry-point for the jwacs binary.

Package

jwacs

Source

main.lisp (file)

Function: make-grammar &key NAME START-SYMBOL TERMINALS PRECEDENCE PRODUCTIONS
Package

yacc

Source

yacc.lisp (file)

Function: make-parser GRAMMAR &key DISCARD-MEMOS MUFFLE-CONFLICTS PRINT-DERIVES-EPSILON PRINT-FIRST-TERMINALS PRINT-STATES PRINT-GOTO-GRAPH PRINT-LOOKAHEADS

Combines COMPUTE-ALL-LOOKAHEADS and COMPUTE-PARSING-TABLES. MUFFLE-WARNINGS is one of NIL, T, :SOME or a list of the form (sr rr).

Package

yacc

Source

yacc.lisp (file)

Function: make-production SYMBOL DERIVES &key ACTION ACTION-FORM
Package

yacc

Source

yacc.lisp (file)

Function: parse STR

Parse STR as a Javascript script, returning a list of statements. Semicolon insertion is performed according to the ECMA-262 standard.

Package

jwacs

Source

parse-javascript.lisp (file)

Function: parse-with-lexer LEXER PARSER

Parse the stream of symbols provided by LEXER using PARSER.
LEXER is a function of no arguments returning a symbol and a semantic value, and should return (VALUES NIL NIL) when the end of input is reached. Handle YACC-PARSE-ERROR to provide custom error reporting.

Package

yacc

Source

yacc.lisp (file)

Function: process IN-PATH
Package

jwacs

Source

compiler.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.3 Generic functions

Generic Function: yacc-parse-error-expected-terminals CONDITION
Package

yacc

Methods
Method: yacc-parse-error-expected-terminals (CONDITION yacc-parse-error)
Source

yacc.lisp (file)

Generic Function: yacc-parse-error-terminal CONDITION
Package

yacc

Methods
Method: yacc-parse-error-terminal (CONDITION yacc-parse-error)
Source

yacc.lisp (file)

Generic Function: yacc-parse-error-value CONDITION
Package

yacc

Methods
Method: yacc-parse-error-value (CONDITION yacc-parse-error)
Source

yacc.lisp (file)


Previous: , Up: Exported definitions   [Contents][Index]

6.1.4 Conditions

Condition: missing-import ()

Indicates that an import could not be located

Package

jwacs

Source

conditions.lisp (file)

Direct superclasses
Direct methods
Direct slots
Slot: parent-uripath
Initargs

:parent-uripath

Readers

parent-uripath (generic function)

Slot: import-uripath
Initargs

:import-uripath

Readers

import-uripath (generic function)

Condition: syntax-error ()

Indicates that an error occured during parsing

Package

jwacs

Source

conditions.lisp (file)

Direct superclasses
Direct methods
Direct slots
Slot: token
Initargs

:token

Readers

token (generic function)

Slot: expected-terminals
Initargs

:expected-terminals

Readers

expected-terminals (generic function)

Condition: yacc-parse-error ()
Package

yacc

Source

yacc.lisp (file)

Direct superclasses

error (condition)

Direct methods
Direct slots
Slot: terminal
Initargs

:terminal

Readers

yacc-parse-error-terminal (generic function)

Slot: value
Initargs

:value

Readers

yacc-parse-error-value (generic function)

Slot: expected-terminals
Initargs

:expected-terminals

Readers

yacc-parse-error-expected-terminals (generic function)


Previous: , Up: Definitions   [Contents][Index]

6.2 Internal definitions


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.1 Special variables

Special Variable: *add-handler-prop*

property name for the ’add exception handler to stack’ operation field of a boxed result object

Package

jwacs

Source

trampoline-transformation.lisp (file)

Special Variable: *addhandler-fn*

Runtime function that adds a new exception handler to the global handler stack

Package

jwacs

Source

runtime-transformation.lisp (file)

Special Variable: *arguments-name*

Name of the ‘arguments‘ identifier

Package

jwacs

Source

shadow-values-transformation.lisp (file)

Special Variable: *cached-runtimes*

A lookup table for generating the appropriate runtime depending upon the specified name

Package

jwacs

Source

compiler.lisp (file)

Special Variable: *call-fn*

Runtime function that we use to make indirect calls with large numbers of arguments to targets that may not be transformed

Package

jwacs

Source

runtime-transformation.lisp (file)

Special Variable: *call0-fn*

Runtime function that we use to make indirect calls with a small number of arguments to targets that may not be transformed

Package

jwacs

Source

runtime-transformation.lisp (file)

Special Variable: *callfromdirect-fn*

Runtime function which will call a transformed function with a trampoline loop and identity continuation

Package

jwacs

Source

runtime-transformation.lisp (file)

Special Variable: *compiler-pipeline*

The list of transformations (in order) that are performed to convert jwacs source into Javascript source.

Package

jwacs

Source

compiler.lisp (file)

Special Variable: *constructor-cache*

Map from structure-type symbol to copy-function symbol

Package

jwacs

Source

source-transformations.lisp (file)

Special Variable: *cont-id*

An identifier whose name is *cont-name*

Package

jwacs

Source

cps-transformation.lisp (file)

Special Variable: *cont-name*

The name of the standard continuation parameter

Package

jwacs

Source

cps-transformation.lisp (file)

Special Variable: *continuation-property*

The name of the property that we set on each continuation function

Package

jwacs

Source

runtime-transformation.lisp (file)

Special Variable: *current-filename*

The name of the file currently being parsed

Package

jwacs

Source

parse-javascript.lisp (file)

Special Variable: *current-handler-stack-reference*

Element that refers to the current handler stack. This should be one of *TOPLEVEL-HANDLER-STACK-REFERENCE*, *IN-FUNCTION-HANDLER-STACK-REFERENCE*, or *IN-THUNK-HANDLER-STACK-REFERENCE*.

Package

jwacs

Source

runtime-transformation.lisp (file)

Special Variable: *cycle-free-collapse-pass*

T if no cycles were encountered on this pass of COLLAPSE-NODES

Package

jwacs

Source

type-analysis.lisp (file)

Special Variable: *debug-eval-boilerplate*

Boilerplate code for debug-mode local evaluation

Package

jwacs

Source

trampoline-transformation.lisp (file)

Special Variable: *debug-eval-var-name*

Name of the parameter containing an expression to be evaluated locally for debug-mode thunks

Package

jwacs

Source

trampoline-transformation.lisp (file)

Special Variable: *debug-mode*

When true, we pack more information into each boxed thunk

Package

jwacs

Source

trampoline-transformation.lisp (file)

Special Variable: *debug-runtime-text*

The text of the debug-mode jwacs runtime

Package

jwacs

Source

compiler.lisp (file)

Special Variable: *default-iframe*

The text of the hidden iframe for bookmark handling

Package

jwacs

Source

compiler.lisp (file)

Special Variable: *default-template*

The text of the default application template

Package

jwacs

Source

compiler.lisp (file)

Special Variable: *done-prop*

property name for the done field of a boxed result object

Package

jwacs

Source

trampoline-transformation.lisp (file)

Special Variable: *end-pos-prop*

property name for the end-position debug property on boxed thunks

Package

jwacs

Source

trampoline-transformation.lisp (file)

Special Variable: *environment*

list of assoc lists representing the current lexical environment

Package

jwacs

Source

ugly-print.lisp (file)

Special Variable: *escape-script-end-tags*

When non-NIL, escape script end tags (for supporting inline scripts

Package

jwacs

Source

pretty-print.lisp (file)

Special Variable: *escaping-references*

List of variable names that are referenced in a statement tail that is going to be reordered into a labelled continuation. We use this to determine when it is safe to convert a variable declaration directly into a continuation parameter, vs when we need to retain the variable declaration and assign it at the beginning of a continuation.

Package

jwacs

Source

cps-transformation.lisp (file)

Special Variable: *function-decls-in-scope*

A list of names of currently-visible function-decls. We use this to determine which calls need to be indirected through $call, and which can be ’inlined’ as unchecked CPS calls. We don’t do any handling for duplicate identifiers, since we currently assume that variable names will all have been uglified by this point.

Package

jwacs

Source

runtime-transformation.lisp (file)

Special Variable: *genvar-counter*
Package

jwacs

Source

ugly-print.lisp (file)

Special Variable: *handler-stack-k-prop*

Name of the property on continuations that contains the handler stack to use

Package

jwacs

Source

trampoline-transformation.lisp (file)

Special Variable: *handler-stack-var-name*

standard variable name for storing the current handler stack

Package

jwacs

Source

trampoline-transformation.lisp (file)

Special Variable: *in-function-handler-stack-reference*

Inside a function but outside of a thunk, the current handler stack is the handler stack property of the function’s continuation.

Package

jwacs

Source

runtime-transformation.lisp (file)

Special Variable: *in-local-scope*

T when the lexical scope is currently inside a function decl, NIL when the lexical scope is currently the global scope

Package

jwacs

Source

source-transformations.lisp (file)

Special Variable: *in-thunk-handler-stack-reference*

Inside a thunk, the current handler stack is passed in as a parameter named ‘$e‘.

Package

jwacs

Source

runtime-transformation.lisp (file)

Special Variable: *indent*

Current indentation level, in spaces (not steps)

Package

jwacs

Source

pretty-print.lisp (file)

Special Variable: *indent-step*

Number of spaces per indentation step

Package

jwacs

Source

pretty-print.lisp (file)

Special Variable: *innermost-function-node*

The value-node of the innermost function decl, if any

Package

jwacs

Source

type-analysis.lisp (file)

Special Variable: *items-closure-hash-threshold*

The number of elements when items-closure switches to using a hashtable.

Package

yacc

Source

yacc.lisp (file)

Special Variable: *keyword-symbols*

A list of the keyword symbols.

Package

jwacs

Source

lex-javascript.lisp (file)

Special Variable: *lexically-active-handlers*

List of handlers that are active in the current lexical scope. These are the handlers that need to be removed just before a value return, or at the beginning of the continuation of a tail call.

Package

jwacs

Source

cps-transformation.lisp (file)

Special Variable: *makearguments-fn*

Runtime function that constructs a shadowing ‘arguments‘ object that omits the continuation argument from the numbered arguments (but which includes it as the ’continuation’ field)

Package

jwacs

Source

runtime-transformation.lisp (file)

Special Variable: *makek-fn*

Runtime function called to flag a function expression as a continuation

Package

jwacs

Source

runtime-transformation.lisp (file)

Special Variable: *makelambda-fn*

Runtime function called to flag a function expression as a transformed jwacs function expression

Package

jwacs

Source

runtime-transformation.lisp (file)

Special Variable: *max-call0-args*

Maximum number of arguments that can be passed to a function using $call0

Package

jwacs

Source

runtime-transformation.lisp (file)

Special Variable: *max-new0-args*

Maximum number of arguments that can be passed to a constructor using $new0

Package

jwacs

Source

runtime-transformation.lisp (file)

Special Variable: *muffle-conflicts*

When T, yacc warnings about Shift/Reduce and Reduce/Reduce conflicts will be muffled. When NIL, all such conflicts will be reported.
When non-NIL, non-T, a single summary warning will be reported when conflicts exist.

This value should be set to NIL or non-T during grammar
development/debugging (so that we find out about the conflicts), but T
at all other times (so that SBCL won’t drop into the debugger when
we’re trying to load parse-javascript.lisp).

Package

jwacs-system

Source

jwacs.asd

Special Variable: *nearest-break*

Name of the break continuation function for the nearest enclosing loop

Package

jwacs

Source

cps-transformation.lisp (file)

Special Variable: *nearest-continue*

Name of the continue continuation function for the nearest enclosing loop

Package

jwacs

Source

cps-transformation.lisp (file)

Special Variable: *nested-context*

T when processing nested subexpressions

Package

jwacs

Source

explicitize-transformation.lisp (file)

Special Variable: *new-fn*

Runtime function that we use to make indirect constructions with a large number of arguments to constructors that may have been transformed

Package

jwacs

Source

runtime-transformation.lisp (file)

Special Variable: *new0-fn*

Runtime function that we use to make indirect constructions with a small number of arguments to constructors that may have been transformed

Package

jwacs

Source

runtime-transformation.lisp (file)

Special Variable: *non-escaping-break-labels*

Non-escaping label names that are valid targets for a ‘break‘ statement

Package

jwacs

Source

static-analysis.lisp (file)

Special Variable: *non-escaping-continue-labels*

Non-escaping label names that are valid targets for a ‘continue‘ statement

Package

jwacs

Source

static-analysis.lisp (file)

Special Variable: *operator-tokens*

These are operators (as distinct from general tokens) that will be built into a special regular expression.

We can’t just use the keys from *symbols-to-tokens*, because the
order that the tokens appear in this list is significant. Specifically, each ’long’ operator must occur before any operator that it is a supersequence of. Eg, ’<<<’ must occur before ’<<’, which must occur before ’<’. ’!=’ must occur before both ’!’ and ’=’.

Package

jwacs

Source

lex-javascript.lisp (file)

Special Variable: *opt-space*
Package

jwacs

Source

pretty-print.lisp (file)

Special Variable: *pogo-function*

Runtime function that drives trampoline-style programs; We have to add explicit calls to this function for toplevel calls to trampolined functions.

Package

jwacs

Source

runtime-transformation.lisp (file)

Special Variable: *pretty-mode*

When non-NIL, print nicely (ie, with indentation and newlines). When NIL, print compactly (ie, with no unnecessary whitespace).

Package

jwacs

Source

pretty-print.lisp (file)

Special Variable: *remove-handler-prop*

property name for the ’remove exception handler from stack’ operation field of a boxed result object

Package

jwacs

Source

trampoline-transformation.lisp (file)

Special Variable: *removehandler-fn*

Runtime function that removes the top exception handler from the global handler stack

Package

jwacs

Source

runtime-transformation.lisp (file)

Special Variable: *replace-handler-stack-prop*

property name for the ’replace exception handler stack’ operation field of a boxed result object

Package

jwacs

Source

trampoline-transformation.lisp (file)

Special Variable: *restricted-tokens*

Tokens that participate in ’restricted productions’. Value should be either :PRE or :POST. For each of these tokens, the lexer will emit either a :NO-LINE-TERMINATOR or a :LINE-TERMINATOR token depending upon whether the token was preceded/followed by a line-break.

Package

jwacs

Source

lex-javascript.lisp (file)

Special Variable: *result-prop*

property name for the result field of a boxed result object

Package

jwacs

Source

trampoline-transformation.lisp (file)

Special Variable: *runtime-text*

The text of the jwacs runtime

Package

jwacs

Source

compiler.lisp (file)

Special Variable: *shadowed-arguments-name*

Name of the variable that currently shadows ‘arguments‘

Package

jwacs

Source

shadow-values-transformation.lisp (file)

Special Variable: *shadowed-this-name*

Name of the variable that currently shadows ‘this‘

Package

jwacs

Source

shadow-values-transformation.lisp (file)

Special Variable: *start-pos-prop*

property name for the start-position debug property on boxed thunks

Package

jwacs

Source

trampoline-transformation.lisp (file)

Special Variable: *symbols-to-tokens*

Map from token symbol to token string. This contains an entry for every token in *tokens-to-symbols*, plus additional entries for the ’operation’ symbols.

Package

jwacs

Source

lex-javascript.lisp (file)

Special Variable: *thunk-prop*

property name for the thunk field of a boxed result object

Package

jwacs

Source

trampoline-transformation.lisp (file)

Special Variable: *tokens-to-symbols*

Map from string to token symbol.
Every symbol that the tokenizer will return is in this map.

Package

jwacs

Source

lex-javascript.lisp (file)

Special Variable: *toplevel-handler-stack-reference*

At the toplevel and outside of a thunk, there is no handler stack yet.

Package

jwacs

Source

runtime-transformation.lisp (file)

Special Variable: *transformed-property*

The name of the property that we set on each transformed function

Package

jwacs

Source

runtime-transformation.lisp (file)

Special Variable: *version*
Package

jwacs

Source

main.lisp (file)

Special Variable: floating-re

Regular expression for recognizing floating-point literals

Package

jwacs

Source

lex-javascript.lisp (file)

Special Variable: integer-re

Regular expression for recognizing integer literals

Package

jwacs

Source

lex-javascript.lisp (file)

Special Variable: javascript-script
Package

jwacs

Source

parse-javascript.lisp (file)

Special Variable: operator-re

Regular expression for recognizing operators

Package

jwacs

Source

lex-javascript.lisp (file)

Special Variable: regexp-re

(Lisp) regular expression for recognizing (Javascript) regular expression literals

Package

jwacs

Source

lex-javascript.lisp (file)

Special Variable: string-re

Regular expression for recognizing string literals

Package

jwacs

Source

lex-javascript.lisp (file)

Special Variable: undefined-id

Contains the ‘undefined‘ identifier

Package

jwacs

Source

parse-javascript.lisp (file)

Special Variable: whitespace-and-comments-re

Regular expression for consuming (and thereby skipping) whitespace and comments

Package

jwacs

Source

lex-javascript.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.2 Macros

Macro: aif TEST-FORM THEN-FORM &optional ELSE-FORM

Anaphoric IF expression; binds IT.

Package

jwacs

Source

general-utilities.lisp (file)

Macro: awhen TEST-FORM &body BODY

Anaphoric WHEN expression; binds IT.

Package

jwacs

Source

general-utilities.lisp (file)

Macro: bind-with-backchannels (&rest BINDINGS) FORM &body BODY
Package

jwacs

Source

general-utilities.lisp (file)

Macro: defelement NAME &rest SLOTS
Package

jwacs

Source

js-source-model.lisp (file)

Macro: defparser PARSER-NAME STARTING-PRODUCTION &body PRODUCTIONS

This macro emulates the Lispworks parsergenerator’s defparser macro, but instead creates output for CL-YACC

Package

jwacs

Source

parse-javascript-yacc.lisp (file)

Macro: deftoken SYMBOL &optional KEY TOKEN-TYPE

Add a token’s symbol and possibly string to the appropriate lookups.

Different actions will be taken depending upon the TOKEN-TYPE: OPERATOR-TOKENs are infix operators, which are recognized as atomic tokens regardless of whether they are surrounded by whitespace (unlike identifier tokens, for example).
KEYWORDs are reserved strings that can never be used as an identifier. OPERATIONs will never be returned by the lexer, but they are used in the source model in the same place as tokens (ie, in :op-symbol slots), so they are treated as tokens for now.

Package

jwacs

Source

lex-javascript.lisp (file)

Macro: forbid-transformation-elements XFORM ELM-TYPE-LIST

Generate DEFMETHOD forms that throw an error if the transformation specified in XFORM is applied to any of the element types in ELM-TYPE-LIST

Package

jwacs

Source

source-transformations.lisp (file)

Macro: in-local-scope &body BODY

Execute BODY with *IN-LOCAL-SCOPE* bound to T

Package

jwacs

Source

source-transformations.lisp (file)

Macro: re-cond (STRING &key START) &rest CLAUSES

(re-cond (STRING :start START) (REGEXP FORMS*)*
If REGEXP matches STRING, then %S, %E, %SUB-S, and %SUB-E will be bound during execution of FORMS

Package

jwacs

Source

lexer-macros.lisp (file)

Macro: when-let (BIND-VAR TEST-FORM) &body BODY

Anaphoric WHEN expression that allows the caller to specify the name of the bound variable

Package

jwacs

Source

general-utilities.lisp (file)

Macro: with-added-environment &body BODY

Executes BODY with a new environment added to the environment stack

Package

jwacs

Source

ugly-print.lisp (file)

Macro: with-indent &body BODY

Execute the contained forms with *indent* set one step deeper.

Package

jwacs

Source

pretty-print.lisp (file)

Macro: with-module-output (STREAM-NAME MODULE &key APPEND) &body BODY

Outputs to a module, optionally appending

Package

jwacs

Source

compiler.lisp (file)

Macro: with-nesting &body BODY

Execute the forms of BODY with *NESTED-CONTEXT* bound to T.

Package

jwacs

Source

explicitize-transformation.lisp (file)

Macro: with-non-escaping-break-target (ELM) &body BODY
Package

jwacs

Source

static-analysis.lisp (file)

Macro: with-non-escaping-continue-target (ELM) &body BODY
Package

jwacs

Source

static-analysis.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.3 Functions

Function: %copy-item INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: %make-grammar &key (NAME NAME) (TERMINALS TERMINALS) (PRECEDENCE PRECEDENCE) (PRODUCTIONS PRODUCTIONS) (%SYMBOLS %SYMBOLS) (DERIVES-EPSILON DERIVES-EPSILON) (DERIVES-FIRST DERIVES-FIRST) (DERIVES-FIRST-TERMINAL DERIVES-FIRST-TERMINAL)
Package

yacc

Source

yacc.lisp (file)

Function: %make-kernel ITEMS
Package

yacc

Source

yacc.lisp (file)

Function: %make-parser STATES GOTO ACTION
Package

yacc

Source

yacc.lisp (file)

Function: absolute-uripath-p URIPATH

Predicate for checking if a URIPATH is specified from the root rather than relative to the current tree position.

Package

jwacs

Source

compiler.lisp (file)

Function: accept-action-p OBJECT
Package

yacc

Source

yacc.lisp (file)

Function: action-equal-p A1 A2
Package

yacc

Source

yacc.lisp (file)

Function: action-p OBJECT
Package

yacc

Source

yacc.lisp (file)

Function: add-assignment-edge LEFT-NODE RIGHT-NODE &optional QUEUE

Add an assignment edge from LEFT-NODE to RIGHT-NODE if no such edge already exists. If QUEUE is non-NIL, queues LEFT-NODE for further processing.

Package

jwacs

Source

type-analysis.lisp (file)

Function: add-binding VAR-NAME VAR-NEWNAME

Add a binding to the environment. In our case, name and new name

Package

jwacs

Source

ugly-print.lisp (file)

Function: add-handler-end INSTANCE
Function: (setf add-handler-end) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: add-handler-handler INSTANCE
Function: (setf add-handler-handler) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: add-handler-label INSTANCE
Function: (setf add-handler-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: add-handler-p OBJECT
Package

jwacs

Source

js-source-model.lisp (file)

Function: add-handler-start INSTANCE
Function: (setf add-handler-start) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: add-handler-thunk-body INSTANCE
Function: (setf add-handler-thunk-body) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: anonymous-node-p NODE

Return T if NODE is an ’anonymous’ node (ie, one whose name is an uninterned symbol).

Package

jwacs

Source

type-analysis.lisp (file)

Function: append-module SRC-MODULE TARGET-MODULE

Appends the contents of SRC-MODULE to the end of TARGET-MODULE, creating TARGET-MODULE if necessary. If TARGET-MODULE is compressed and SRC-MODULE is not, then SRC-MODULE’s text will be compressed before being added to TARGET-MODULE.

Package

jwacs

Source

compiler.lisp (file)

Function: array-literal-elements INSTANCE
Function: (setf array-literal-elements) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: array-literal-end INSTANCE
Function: (setf array-literal-end) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: array-literal-label INSTANCE
Function: (setf array-literal-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: array-literal-p OBJECT
Package

jwacs

Source

js-source-model.lisp (file)

Function: array-literal-start INSTANCE
Function: (setf array-literal-start) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: assignment-operator-p ELM

Returns non-NIL if ELM represents an operation with an assignment side-effect

Package

jwacs

Source

cps-transformation.lisp (file)

Function: backchannel-signal CHANNEL VALUE

Signals VALUE on backchannel CHANNEL. Returns T if the message was received.

Package

jwacs

Source

general-utilities.lisp (file)

Function: binary-operator-end INSTANCE
Function: (setf binary-operator-end) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: binary-operator-label INSTANCE
Function: (setf binary-operator-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: binary-operator-left-arg INSTANCE
Function: (setf binary-operator-left-arg) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: binary-operator-op-symbol INSTANCE
Function: (setf binary-operator-op-symbol) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: binary-operator-p OBJECT
Package

jwacs

Source

js-source-model.lisp (file)

Function: binary-operator-right-arg INSTANCE
Function: (setf binary-operator-right-arg) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: binary-operator-start INSTANCE
Function: (setf binary-operator-start) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: boolean-arg NAME VAL

Converts an argument to a boolean option to a boolean value

Package

jwacs

Source

main.lisp (file)

Function: break-statement-end INSTANCE
Function: (setf break-statement-end) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: break-statement-label INSTANCE
Function: (setf break-statement-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: break-statement-p OBJECT
Package

jwacs

Source

js-source-model.lisp (file)

Function: break-statement-start INSTANCE
Function: (setf break-statement-start) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: break-statement-target-label INSTANCE
Function: (setf break-statement-target-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: call-expression-p ELM

Return non-NIL if ELM is a CallExpression, or NIL otherwise.

Package

jwacs

Source

js-source-model.lisp (file)

Function: case-clause-body INSTANCE
Function: (setf case-clause-body) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: case-clause-end INSTANCE
Function: (setf case-clause-end) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: case-clause-label INSTANCE
Function: (setf case-clause-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: case-clause-p OBJECT
Package

jwacs

Source

js-source-model.lisp (file)

Function: case-clause-start INSTANCE
Function: (setf case-clause-start) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: case-clause-value INSTANCE
Function: (setf case-clause-value) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: catch-clause-binding INSTANCE
Function: (setf catch-clause-binding) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: catch-clause-body INSTANCE
Function: (setf catch-clause-body) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: catch-clause-end INSTANCE
Function: (setf catch-clause-end) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: catch-clause-label INSTANCE
Function: (setf catch-clause-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: catch-clause-p OBJECT
Package

jwacs

Source

js-source-model.lisp (file)

Function: catch-clause-start INSTANCE
Function: (setf catch-clause-start) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: change-uripath-extension URIPATH NEW-EXTENSION

Converts URIPATH to a URIPATH that points to a different type of file. Eg, (CHANGE-URIPATH-EXTENSION "/common/lib.jw" "js") ==> "/common/lib.js"

Package

jwacs

Source

compiler.lisp (file)

Function: clear-lr1-collection COLLECTION
Package

yacc

Source

yacc.lisp (file)

Function: coerce-token LEXER TERMINAL

Force LEXER to interpret the next token as TERMINAL. An error will be raised if that’s not actually possible.

Package

jwacs

Source

lex-javascript.lisp (file)

Function: collapse-type-graph GRAPH

Adds an edge from each location-node in GRAPH to each value-node that it has a path to, and removes all other assignment edges. Removes all ’dotted’ edges (ie, args, ret, and props) from location-nodes; only value-nodes will have dotted edges after this processing is done.

Package

jwacs

Source

type-analysis.lisp (file)

Function: combine-first F1 S GRAMMAR

FIRST(s1.s) where f1=FIRST(s1).

Package

yacc

Source

yacc.lisp (file)

Function: combine-statements &rest ELM-ARGUMENTS

Combine ELM-ARGUMENTS into a single list, stripping out statement-blocks if necessary

Package

jwacs

Source

js-source-model.lisp (file)

Function: comma-expr-end INSTANCE
Function: (setf comma-expr-end) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: comma-expr-exprs INSTANCE
Function: (setf comma-expr-exprs) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: comma-expr-label INSTANCE
Function: (setf comma-expr-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: comma-expr-p OBJECT
Package

jwacs

Source

js-source-model.lisp (file)

Function: comma-expr-start INSTANCE
Function: (setf comma-expr-start) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: compute-all-lookaheads KERNELS GRAMMAR

Compute the LR(1) lookaheads for all the collections in KERNELS.

Package

yacc

Source

yacc.lisp (file)

Function: compute-field-name FIELD-ELM

Return the name of a property. For properties specified by literals, this is the
name of the property; for all other field names (ie, for identifiers or other expressions) this will be the special field-name ’ANY.

Package

jwacs

Source

type-analysis.lisp (file)

Function: compute-goto KERNEL SYMBOL GRAMMAR

Compute the kernel of goto(KERNEL, SYMBOL)

Package

yacc

Source

yacc.lisp (file)

Function: compute-kernels GRAMMAR

Compute the set collections of LR(0) items for GRAMMAR.

Package

yacc

Source

yacc.lisp (file)

Function: compute-lookaheads KERNEL GRAMMAR &optional PROPAGATE-ONLY

Compute the LR(1) lookaheads for all items in KERNEL. If PROPAGATE-ONLY is true, ignore spontaneous generation.

Package

yacc

Source

yacc.lisp (file)

Function: compute-parsing-tables KERNELS GRAMMAR &key MUFFLE-CONFLICTS

Compute the parsing tables for grammar GRAMMAR and transitions KERNELS. PRECEDENCE is as in FIND-PRECEDENCE. MUFFLE-WARNINGS is one of NIL, T, :SOME or a list of the form (sr rr).

Package

yacc

Source

yacc.lisp (file)

Function: compute-terminated-clauses CLAUSE-LIST

Takes a list of switch clauses that may or may not be terminated (eg, by a break statement),
and returns a list of clauses with equivalent effects that are more suitable for cps translation. Specifically:
1) Terminated clauses are returned unchanged. A terminated clause is one which is terminated
in all its control paths.
2) ’Null clauses’ (ie, clauses with no body) are also returned unchanged so long as they aren’t the final clause. If they are the final clause, their body is set to a single break statement. 3) Unterminated clauses have the body of each following clause appended to them (up to and including the first terminated clause).
4) If the final clause is unterminated, it will have a break statement appended to it
5) If there is no default clause, a default clause will be added to the end of the list with a body containing a single break statement.

eg:

case 10:
doSomething();
case 20:
case 30:
doSomethingElse();
break;
default:

===>

case 10:
doSomething();
doSomethingElse();
break;
case 20:
case 30:
doSomethingElse();
break;
default:
break;

Package

jwacs

Source

cps-transformation.lisp (file)

Function: conditional-condition INSTANCE
Function: (setf conditional-condition) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: conditional-end INSTANCE
Function: (setf conditional-end) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: conditional-false-arg INSTANCE
Function: (setf conditional-false-arg) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: conditional-label INSTANCE
Function: (setf conditional-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: conditional-p OBJECT
Package

jwacs

Source

js-source-model.lisp (file)

Function: conditional-start INSTANCE
Function: (setf conditional-start) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: conditional-true-arg INSTANCE
Function: (setf conditional-true-arg) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: connect-type-graph GRAPH
Package

jwacs

Source

type-analysis.lisp (file)

Function: consume-token LEXER

Reads the next token from LEXER’s source text (where ’next’ is determined by
the value of LEXER’s cursor). The cursor is assumed to point to a non-whitespace character on entry; on exit points to the first character after the consumed token. Returns a token structure. The token’s terminal will be NIL on end of input

Package

jwacs

Source

lex-javascript.lisp (file)

Function: consume-whitespace LEXER

Consumes whitespace and comments. Lexer’s cursor is updated to the next non-whitespace character, and its ENCOUNTERED-LINE-TERMINATOR slot is set based upon whether or not the skipped whitespace included a newline. Returns non-NIL if line-terminators were encountered.

Package

jwacs

Source

lex-javascript.lisp (file)

Function: continuation-call-args INSTANCE
Function: (setf continuation-call-args) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: continuation-call-end INSTANCE
Function: (setf continuation-call-end) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: continuation-call-fn INSTANCE
Function: (setf continuation-call-fn) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: continuation-call-label INSTANCE
Function: (setf continuation-call-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: continuation-call-p OBJECT
Package

jwacs

Source

js-source-model.lisp (file)

Function: continuation-call-start INSTANCE
Function: (setf continuation-call-start) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: continuation-function-body INSTANCE
Function: (setf continuation-function-body) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: continuation-function-end INSTANCE
Function: (setf continuation-function-end) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: continuation-function-label INSTANCE
Function: (setf continuation-function-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: continuation-function-name INSTANCE
Function: (setf continuation-function-name) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: continuation-function-p OBJECT
Package

jwacs

Source

js-source-model.lisp (file)

Function: continuation-function-parameters INSTANCE
Function: (setf continuation-function-parameters) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: continuation-function-start INSTANCE
Function: (setf continuation-function-start) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: continue-statement-end INSTANCE
Function: (setf continue-statement-end) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: continue-statement-label INSTANCE
Function: (setf continue-statement-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: continue-statement-p OBJECT
Package

jwacs

Source

js-source-model.lisp (file)

Function: continue-statement-start INSTANCE
Function: (setf continue-statement-start) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: continue-statement-target-label INSTANCE
Function: (setf continue-statement-target-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-accept-action INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: copy-action INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: copy-add-handler INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-array-literal INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-binary-operator INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-break-statement INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-case-clause INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-catch-clause INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-comma-expr INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-conditional INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-continuation-call INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-continuation-function INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-continue-statement INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-default-clause INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-do-statement INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-error-action INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: copy-expression INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-finally-clause INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-fn-call INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-for INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-for-in INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-function-decl INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-function-expression INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-goto INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: copy-grammar INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: copy-identifier INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-if-statement INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-import-decl INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-kernel INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: copy-location-node INSTANCE
Package

jwacs

Source

type-analysis.lisp (file)

Function: copy-lr0-item INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: copy-lr1-item INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: copy-module INSTANCE
Package

jwacs

Source

compiler.lisp (file)

Function: copy-new-expr INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-node-queue-container INSTANCE
Package

jwacs

Source

type-analysis.lisp (file)

Function: copy-node-queue-entry INSTANCE
Package

jwacs

Source

type-analysis.lisp (file)

Function: copy-numeric-literal INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-object-literal INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-parser INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: copy-production INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: copy-property-access INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-re-literal INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-reduce-action INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: copy-remove-handler INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-resume-statement INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-return-statement INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-shift-action INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: copy-source-element INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-special-value INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-statement-block INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-string-literal INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-suspend-statement INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-switch INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-throw-statement INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-thunk-function INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-token INSTANCE
Package

jwacs

Source

lex-javascript.lisp (file)

Function: copy-try INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-type-graph GRAPH

Returns a newly-created equivalent GRAPH

Package

jwacs

Source

type-analysis.lisp (file)

Function: copy-type-graph-node INSTANCE
Package

jwacs

Source

type-analysis.lisp (file)

Function: copy-unary-operator INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-value-node INSTANCE
Package

jwacs

Source

type-analysis.lisp (file)

Function: copy-var-decl INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-var-decl-statement INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-while INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: copy-with INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: decode-arguments ()

Decode the command-line arguments and return the resulting option values

Package

jwacs

Source

main.lisp (file)

Function: default-clause-body INSTANCE
Function: (setf default-clause-body) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: default-clause-end INSTANCE
Function: (setf default-clause-end) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: default-clause-label INSTANCE
Function: (setf default-clause-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: default-clause-p OBJECT
Package

jwacs

Source

js-source-model.lisp (file)

Function: default-clause-start INSTANCE
Function: (setf default-clause-start) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: dequeue-node QUEUE

Remove and return a node from the front of QUEUE

Package

jwacs

Source

type-analysis.lisp (file)

Function: derives-epsilon SYMBOL GRAMMAR &optional SEEN

True if symbol derives epsilon.

Package

yacc

Source

yacc.lisp (file)

Function: derives-epsilon* SYMBOL GRAMMAR &optional SEEN

Unmemoised version of DERIVES-EPSILON.

Package

yacc

Source

yacc.lisp (file)

Function: derives-first C GRAMMAR &optional SEEN

The list of symbols A such that C rm->* A.eta for some eta.

Package

yacc

Source

yacc.lisp (file)

Function: derives-first-terminal C GRAMMAR &optional SEEN

The list of terminals a such that C rm->* a.eta, last non-epsilon.

Package

yacc

Source

yacc.lisp (file)

Function: determine-imported-modules MAIN-MODULE PREFIX-LOOKUP &optional ALREADY-IMPORTED

Determines the modules imported by MAIN-MODULE. Modules whose pathnames are elements of ALREADY-IMPORTED will not be included. Nonexistent files return an empty list of modules.

Package

jwacs

Source

compiler.lisp (file)

Function: determine-modules MAIN-MODULE PREFIX-LOOKUP

Using MAIN-MODULE as the main module, determine a list of modules that need to be processed to generate an app.

Package

jwacs

Source

compiler.lisp (file)

Function: do-statement-body INSTANCE
Function: (setf do-statement-body) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: do-statement-condition INSTANCE
Function: (setf do-statement-condition) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: do-statement-end INSTANCE
Function: (setf do-statement-end) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: do-statement-label INSTANCE
Function: (setf do-statement-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: do-statement-p OBJECT
Package

jwacs

Source

js-source-model.lisp (file)

Function: do-statement-start INSTANCE
Function: (setf do-statement-start) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: effective-fn-call-p ELM

Both function calls and new expressions are ’effective’ function calls, because they will both wind up as function calls after the compiler pipeline gets through with them.

Package

jwacs

Source

static-analysis.lisp (file)

Function: element-end ELEMENT

Returns the end position of source-element or token ELEMENT.

Package

jwacs

Source

parse-javascript.lisp (file)

Function: element-start ELEMENT

Returns the start position of source-element or token ELEMENT.

Package

jwacs

Source

parse-javascript.lisp (file)

Function: emit-elms ELMS OUT-STREAM &key PRETTY-OUTPUT

Prints ELMS to OUT-STREAM. If PRETTY-OUTPUT is NIL, the elements will be printed compactly

Package

jwacs

Source

compiler.lisp (file)

Function: enqueue-ancestors QUEUE NODE PATH

Adds NODE and all of the assignment-ancestors of NODE to QUEUE.
PATH contains a list of nodes processed so far (used for cycle-detection).

Package

jwacs

Source

type-analysis.lisp (file)

Function: enqueue-node QUEUE NODE

Add NODE to the end of QUEUE

Package

jwacs

Source

type-analysis.lisp (file)

Function: ensure-unique-binding VAR-NAME

Adds a unique name for VAR-NAME to the environment, and returns the unique name. The unique name will be uglified or otherwise ’uniquified’ for non-toplevel identifiers; toplevel identifiers will be left as-is.

Package

jwacs

Source

ugly-print.lisp (file)

Function: error-action-p OBJECT
Package

yacc

Source

yacc.lisp (file)

Function: escape-regexp RE-STRING
Package

jwacs

Source

lex-javascript.lisp (file)

Function: expand-hashtable-to-values HASHTABLE

Returns a list of all the values stored in a hashtable.

Package

jwacs

Source

parse-javascript-yacc.lisp (file)

Function: explicit-return-p ELM

Convenience function for the common case where we’re concerned about function termination (rather than loop or clause termination)

Package

jwacs

Source

static-analysis.lisp (file)

Function: explicitize-short-circuit-operator ELM

Transforms ELM (should be a BINARY-OPERATOR) in a way that preserves the short-circuit semantics

Package

jwacs

Source

explicitize-transformation.lisp (file)

Function: expression-end INSTANCE
Function: (setf expression-end) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: expression-label INSTANCE
Function: (setf expression-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: expression-p OBJECT
Package

jwacs

Source

js-source-model.lisp (file)

Function: expression-start INSTANCE
Function: (setf expression-start) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: finally-clause-body INSTANCE
Function: (setf finally-clause-body) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: finally-clause-end INSTANCE
Function: (setf finally-clause-end) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: finally-clause-label INSTANCE
Function: (setf finally-clause-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: finally-clause-p OBJECT
Package

jwacs

Source

js-source-model.lisp (file)

Function: finally-clause-start INSTANCE
Function: (setf finally-clause-start) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: find-binding VAR-NAME

Looks through the set of environments and finds the most recently bound variable, returns its bound value

Package

jwacs

Source

ugly-print.lisp (file)

Function: find-free-variables-in-scope ELM

This is basically TRANSFORM-IN-SCOPE. It adds bindings for each variable and function declaration that it encounters.

Package

jwacs

Source

static-analysis.lisp (file)

Function: find-goto KERNEL SYMBOL
Package

yacc

Source

yacc.lisp (file)

Function: find-location-node GRAPH NAME

Return the location node named NAME from GRAPH if one already exists, or NIL otherwise

Package

jwacs

Source

type-analysis.lisp (file)

Function: find-node-property NODE NAME

Return the location node pointed to by NODE’s NAME property if one already exists, or NIL otherwise

Package

jwacs

Source

type-analysis.lisp (file)

Function: find-precedence OP PRECEDENCE

Return the tail of PRECEDENCE starting with the element containing OP. PRECEDENCE is a list of elements of the form (KEYWORD . (op...)).

Package

yacc

Source

yacc.lisp (file)

Function: find-single-terminal S GRAMMAR

Return the only terminal in S, or NIL if none or multiple.

Package

yacc

Source

yacc.lisp (file)

Function: find-value-node GRAPH NAME

Return the value named NAME from GRAPH

Package

jwacs

Source

type-analysis.lisp (file)

Function: find-value-node-named NAME NODE-LIST

If NODE-LIST contains a value-node named NAME, returns it.

Package

jwacs

Source

type-analysis.lisp (file)

Function: first-terminals S GRAMMAR

FIRST(s) without epsilon.

Package

yacc

Source

yacc.lisp (file)

Function: fn-call-args INSTANCE
Function: (setf fn-call-args) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: fn-call-end INSTANCE
Function: (setf fn-call-end) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: fn-call-fn INSTANCE
Function: (setf fn-call-fn) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: fn-call-label INSTANCE
Function: (setf fn-call-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: fn-call-p OBJECT
Package

jwacs

Source

js-source-model.lisp (file)

Function: fn-call-start INSTANCE
Function: (setf fn-call-start) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: for-body INSTANCE
Function: (setf for-body) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: for-condition INSTANCE
Function: (setf for-condition) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: for-end INSTANCE
Function: (setf for-end) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: for-in-binding INSTANCE
Function: (setf for-in-binding) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: for-in-body INSTANCE
Function: (setf for-in-body) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: for-in-collection INSTANCE
Function: (setf for-in-collection) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: for-in-end INSTANCE
Function: (setf for-in-end) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: for-in-label INSTANCE
Function: (setf for-in-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: for-in-p OBJECT
Package

jwacs

Source

js-source-model.lisp (file)

Function: for-in-start INSTANCE
Function: (setf for-in-start) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: for-initializer INSTANCE
Function: (setf for-initializer) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: for-label INSTANCE
Function: (setf for-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: for-p OBJECT
Package

jwacs

Source

js-source-model.lisp (file)

Function: for-start INSTANCE
Function: (setf for-start) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: for-step INSTANCE
Function: (setf for-step) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: force-space S

Prints a space to S in ugly mode to ensure that two elements will be separated

Package

jwacs

Source

pretty-print.lisp (file)

Function: fresh-line-indented S

Start a new, indented line.

Package

jwacs

Source

pretty-print.lisp (file)

Function: function-decl-body INSTANCE
Function: (setf function-decl-body) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: function-decl-end INSTANCE
Function: (setf function-decl-end) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: function-decl-label INSTANCE
Function: (setf function-decl-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: function-decl-name INSTANCE
Function: (setf function-decl-name) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: function-decl-p OBJECT
Package

jwacs

Source

js-source-model.lisp (file)

Function: function-decl-parameters INSTANCE
Function: (setf function-decl-parameters) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: function-decl-start INSTANCE
Function: (setf function-decl-start) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: function-expression-body INSTANCE
Function: (setf function-expression-body) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: function-expression-end INSTANCE
Function: (setf function-expression-end) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: function-expression-label INSTANCE
Function: (setf function-expression-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: function-expression-name INSTANCE
Function: (setf function-expression-name) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: function-expression-p OBJECT
Package

jwacs

Source

js-source-model.lisp (file)

Function: function-expression-parameters INSTANCE
Function: (setf function-expression-parameters) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: function-expression-start INSTANCE
Function: (setf function-expression-start) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: function-in-scope-p TARGET-NAME

Return non-NIL if a function-decl with name NAME is currently visible in scope

Package

jwacs

Source

runtime-transformation.lisp (file)

Function: generate-productions PRODUCTIONS

Used by defparser macro. Take the lispworks list of productions and convert them into CL-YACC versions

Package

jwacs

Source

parse-javascript-yacc.lisp (file)

Function: generate-rules-with-optional RULE-SPEC &optional MASK

Accepts a PARSERGEN rulespec and transforms it by treating each symbol that begins with a #\? character as being optional. The output is a list of one or more rules that exhaust all the present/absent possibilities. This is an internal utility for generating rules for the different grammar rules that are specified with wildcards.

Package

jwacs

Source

parse-javascript.lisp (file)

Function: generate-runtime RUNTIME-MODULE COMPRESS-MODE COMBINE-MODE

Generate a runtime at the location pointed to by RUNTIME-MODULE. Only specially-named runtimes will be generated. If COMBINE-MODE is non-NIL, an inline module will be generated; otherwise a module will be emitted to disk.

Package

jwacs

Source

compiler.lisp (file)

Function: genvar &optional ORIG-NAME

Generates a unique string that will be our ugly name for variables. When *PRETTY-MODE* is non-NIL and ORIG-NAME is provided, the name will be unique but not all that ugly.

Package

jwacs

Source

ugly-print.lisp (file)

Function: get-constructor STRUCT-OBJECT

Accept a structure object and return the (likely) name of its constructor. CAVEAT: Assumes that the structure was defined in the same package as its name.

Package

jwacs

Source

source-transformations.lisp (file)

Function: get-continuation-node GRAPH NODE &optional QUEUE

Returns the continuation value-node for value-node NODE, creating it if necessary. Creating a continuation node may cause a return-node to be created and queued as a side-effect.

Package

jwacs

Source

type-analysis.lisp (file)

Function: get-exemplar-value-nodes GRAPH CONSTRUCTOR-NAME

Returns a list containing a value-node for an exemplar value of a type created by constructor CONSTRUCTOR-NAME (which will usually be the name of a built-in type such as Number)

Package

jwacs

Source

type-analysis.lisp (file)

Function: get-instance-node GRAPH CONSTRUCTOR &optional QUEUE

Returns a node representing an instance of the type(s) constructed by CONSTRUCTOR. CONSTRUCTOR is either the name of a location-node to retrieve from GRAPH, or a node in GRAPH representing the constructor.

For Object and Array types, a new instance node is
created. For all other types, the same ’exemplar node’ is used for all instances.

If QUEUE is non-NIL and the constructor node had to be created, then the new node will be queued for processing.

Package

jwacs

Source

type-analysis.lisp (file)

Function: get-location-node GRAPH NAME &optional QUEUE

Return the location node named NAME from GRAPH, creating it if necessary. If the node is created and QUEUE is non-NIL, then the new node will be queued for processing.

Package

jwacs

Source

type-analysis.lisp (file)

Function: get-module-text MODULE

Reads the entire text of a module.

Package

jwacs

Source

compiler.lisp (file)

Function: get-node-argument GRAPH NODE INDEX

Return the location node pointed to by NODE’s INDEXth argument, creating it in GRAPH if necessary

Package

jwacs

Source

type-analysis.lisp (file)

Function: get-node-property GRAPH NODE NAME &optional QUEUE

Return the location node pointed to by NODE’s NAME property, creating it in GRAPH if necessary. If the property node is created, then it will be queued for processing if QUEUE is non-NIL.

Package

jwacs

Source

type-analysis.lisp (file)

Function: get-return-node GRAPH NODE &optional QUEUE

Returns the return-node of type-graph-node NODE, creating it in GRAPH if necessary. If NODE is created then it will be added to QUEUE if QUEUE is non-NIL.

Package

jwacs

Source

type-analysis.lisp (file)

Function: get-this-context-node GRAPH NODE &optional QUEUE

Returns the this-context-node of value-node NODE, creating it if necessary. If a new node is created then it will be added to QUEUE if QUEUE is non-NIL.

Package

jwacs

Source

type-analysis.lisp (file)

Function: goto-equal-p G1 G2
Package

yacc

Source

yacc.lisp (file)

Function: goto-p OBJECT
Package

yacc

Source

yacc.lisp (file)

Function: goto-symbol INSTANCE
Function: (setf goto-symbol) VALUE INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: goto-target INSTANCE
Function: (setf goto-target) VALUE INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: grammar-%symbols INSTANCE
Function: (setf grammar-%symbols) VALUE INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: grammar-derives-epsilon INSTANCE
Function: (setf grammar-derives-epsilon) VALUE INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: grammar-derives-first INSTANCE
Function: (setf grammar-derives-first) VALUE INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: grammar-derives-first-terminal INSTANCE
Function: (setf grammar-derives-first-terminal) VALUE INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: grammar-discard-memos GRAMMAR
Package

yacc

Source

yacc.lisp (file)

Function: grammar-epsilon-productions GRAMMAR
Package

yacc

Source

yacc.lisp (file)

Function: grammar-name INSTANCE
Function: (setf grammar-name) VALUE INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: grammar-p OBJECT
Package

yacc

Source

yacc.lisp (file)

Function: grammar-precedence INSTANCE
Function: (setf grammar-precedence) VALUE INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: grammar-productions INSTANCE
Function: (setf grammar-productions) VALUE INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: grammar-symbols GRAMMAR

The set of symbols (both terminal and nonterminal) of GRAMMAR.

Package

yacc

Source

yacc.lisp (file)

Function: grammar-terminals INSTANCE
Function: (setf grammar-terminals) VALUE INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: handle-conflict A1 A2 GRAMMAR ACTION-PRODUCTIONS ID S &optional MUFFLE-CONFLICTS

Decide what to do with a conflict between A1 and A2 in state ID on symbol S. Returns three actions: the chosen action, the number of new sr and rr.

Package

yacc

Source

yacc.lisp (file)

Function: idempotent-expression-p ELM

Return true if ELM is an ’idempotent expression’, ie one which it is safe to add repetitions of

Package

jwacs

Source

js-source-model.lisp (file)

Function: identifier-end INSTANCE
Function: (setf identifier-end) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: identifier-label INSTANCE
Function: (setf identifier-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: identifier-name INSTANCE
Function: (setf identifier-name) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: identifier-p OBJECT
Package

jwacs

Source

js-source-model.lisp (file)

Function: identifier-start INSTANCE
Function: (setf identifier-start) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: if-statement-condition INSTANCE
Function: (setf if-statement-condition) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: if-statement-else-statement INSTANCE
Function: (setf if-statement-else-statement) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: if-statement-end INSTANCE
Function: (setf if-statement-end) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: if-statement-label INSTANCE
Function: (setf if-statement-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: if-statement-p OBJECT
Package

jwacs

Source

js-source-model.lisp (file)

Function: if-statement-start INSTANCE
Function: (setf if-statement-start) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: if-statement-then-statement INSTANCE
Function: (setf if-statement-then-statement) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: import-decl-end INSTANCE
Function: (setf import-decl-end) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: import-decl-label INSTANCE
Function: (setf import-decl-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: import-decl-p OBJECT
Package

jwacs

Source

js-source-model.lisp (file)

Function: import-decl-start INSTANCE
Function: (setf import-decl-start) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: import-decl-type-symbol INSTANCE
Function: (setf import-decl-type-symbol) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: import-decl-uripath INSTANCE
Function: (setf import-decl-uripath) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: inlineable-call-target FN-ELM

Return non-NIL if it is definitely safe to use FN-ELM as the target of an inlined call (rather than one that has been indirected through $call)

Package

jwacs

Source

runtime-transformation.lisp (file)

Function: item-action ITEM
Package

yacc

Source

yacc.lisp (file)

Function: item-action-form ITEM
Package

yacc

Source

yacc.lisp (file)

Function: item-derives ITEM
Package

yacc

Source

yacc.lisp (file)

Function: item-dot-left ITEM
Package

yacc

Source

yacc.lisp (file)

Function: item-dot-right ITEM &optional N
Package

yacc

Source

yacc.lisp (file)

Function: item-dot-right-p ITEM
Package

yacc

Source

yacc.lisp (file)

Function: item-dot-symbol ITEM
Package

yacc

Source

yacc.lisp (file)

Function: item-equal-p I1 I2

Equality predicate for LR(0) items.

Package

yacc

Source

yacc.lisp (file)

Function: item-lookahead INSTANCE
Function: (setf item-lookahead) VALUE INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: item-lookaheads INSTANCE
Function: (setf item-lookaheads) VALUE INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: item-lr1-equal-p I1 I2

Equality predicate for LR(1) items.

Package

yacc

Source

yacc.lisp (file)

Function: item-lr1-hash-value ITEM

Returns an object suitable for keying associations of LR1-items.

Package

yacc

Source

yacc.lisp (file)

Function: item-p OBJECT
Package

yacc

Source

yacc.lisp (file)

Function: item-position INSTANCE
Function: (setf item-position) VALUE INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: item-production INSTANCE
Function: (setf item-production) VALUE INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: item-set-equal-p C1 C2

Equality predicate for sorted sets of LR(0) items.

Package

yacc

Source

yacc.lisp (file)

Function: item-shift ITEM &optional N
Package

yacc

Source

yacc.lisp (file)

Function: item-symbol ITEM
Package

yacc

Source

yacc.lisp (file)

Function: item< I1 I2

Total strict order on LR(0) items.

Package

yacc

Source

yacc.lisp (file)

Function: items-closure ITEMS GRAMMAR

Compute the closure of a set of LR(1) items.

Package

yacc

Source

yacc.lisp (file)

Function: kernel-gotos INSTANCE
Function: (setf kernel-gotos) VALUE INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: kernel-id INSTANCE
Function: (setf kernel-id) VALUE INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: kernel-item KERNEL

The item in a singleton set of items.

Package

yacc

Source

yacc.lisp (file)

Function: kernel-items INSTANCE
Function: (setf kernel-items) VALUE INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: kernel-p OBJECT
Package

yacc

Source

yacc.lisp (file)

Function: line-terminator-p C

Return non-NIL if C is a line-terminator character according to the Javascript spec

Package

jwacs

Source

lex-javascript.lisp (file)

Function: location-node-arguments INSTANCE
Function: (setf location-node-arguments) VALUE INSTANCE
Package

jwacs

Source

type-analysis.lisp (file)

Function: location-node-assignment-backlinks INSTANCE
Function: (setf location-node-assignment-backlinks) VALUE INSTANCE
Package

jwacs

Source

type-analysis.lisp (file)

Function: location-node-assignments INSTANCE
Function: (setf location-node-assignments) VALUE INSTANCE
Package

jwacs

Source

type-analysis.lisp (file)

Function: location-node-min-call-arity INSTANCE
Function: (setf location-node-min-call-arity) VALUE INSTANCE
Package

jwacs

Source

type-analysis.lisp (file)

Function: location-node-name INSTANCE
Function: (setf location-node-name) VALUE INSTANCE
Package

jwacs

Source

type-analysis.lisp (file)

Function: location-node-p OBJECT
Package

jwacs

Source

type-analysis.lisp (file)

Function: location-node-properties INSTANCE
Function: (setf location-node-properties) VALUE INSTANCE
Package

jwacs

Source

type-analysis.lisp (file)

Function: location-node-return-node INSTANCE
Function: (setf location-node-return-node) VALUE INSTANCE
Package

jwacs

Source

type-analysis.lisp (file)

Function: location-node-this-bindings INSTANCE
Function: (setf location-node-this-bindings) VALUE INSTANCE
Package

jwacs

Source

type-analysis.lisp (file)

Function: lookup-module-type RAW-TYPE

Converts a ’raw’ module type into a canonical type symbol. A warning will be signalled for unrecognized raw types. RAW-TYPE should be either a string or a symbol.

The recognized types are:

Symbol | Description | Extensions ——-|————————|—————— ’JW | jwacs source | .jw, .jwa, .jwacs ’JS | Javascript source | .js

Package

jwacs

Source

compiler.lisp (file)

Function: lr0-item-p OBJECT
Package

yacc

Source

yacc.lisp (file)

Function: lr1-add ITEM COLLECTION

Add ITEM to COLLECTION.

Package

yacc

Source

yacc.lisp (file)

Function: lr1-add-collection ITEMS COLLECTION

Add all the elements of ITEMS to COLLECTION.

Package

yacc

Source

yacc.lisp (file)

Function: lr1-collection-empty-p COLLECTION
Package

yacc

Source

yacc.lisp (file)

Function: lr1-find ITEM COLLECTION

Find an LR(1) item equal to ITEM in COLLECTION, or NIL.

Package

yacc

Source

yacc.lisp (file)

Function: lr1-item-p OBJECT
Package

yacc

Source

yacc.lisp (file)

Function: lr1-item-shift ITEM &optional N
Package

yacc

Source

yacc.lisp (file)

Function: make-accept-action &key
Package

yacc

Source

yacc.lisp (file)

Function: make-add-handler &key (LABEL LABEL) (START START) (END END) (HANDLER HANDLER) (THUNK-BODY THUNK-BODY)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-array-literal &key (LABEL LABEL) (START START) (END END) (ELEMENTS ELEMENTS)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-binary-operator &key (LABEL LABEL) (START START) (END END) (OP-SYMBOL OP-SYMBOL) (LEFT-ARG LEFT-ARG) (RIGHT-ARG RIGHT-ARG)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-boxed-result ELM

Returns an object literal whose ‘done‘ field is ‘true‘ and whose ‘result‘ field contains ELM. If ELM is NIL, the result field will be left undefined.

Package

jwacs

Source

trampoline-transformation.lisp (file)

Function: make-boxed-thunk BODY-ELM &optional STACK-OP STACK-OP-ARG

Returns an object literal whose ‘done‘ field is ‘false‘ and whose ‘thunk‘ field contains a thunk whose body is BODY-ELM. When STACK-OP is non-NIL, a handler stack operation property will also be added with a value of STACK-OP-ARG. When *DEBUG-MODE* is non-NIL, an ‘$evalArg‘ parameter is also provided, along with boilerplate code that evaluates the argument and then returns when it’s present.

Package

jwacs

Source

trampoline-transformation.lisp (file)

Function: make-break-statement &key (LABEL LABEL) (START START) (END END) (TARGET-LABEL TARGET-LABEL)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-call-style-guard FN-NAME

Builds a if statement that checks whether the incoming continuation argument is actually a continuation. If it isn’t, then (on the assumption that this is an incoming direct-style call), re-calls the current function (whose name is FN-NAME) with a default continuation parameter (‘$id‘) followed by the original incoming parameters

Package

jwacs

Source

runtime-transformation.lisp (file)

Function: make-case-clause &key (LABEL LABEL) (START START) (END END) (VALUE VALUE) (BODY BODY)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-catch-clause &key (LABEL LABEL) (START START) (END END) (BINDING BINDING) (BODY BODY)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-comma-expr &key (LABEL LABEL) (START START) (END END) (EXPRS EXPRS)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-conditional &key (LABEL LABEL) (START START) (END END) (CONDITION CONDITION) (TRUE-ARG TRUE-ARG) (FALSE-ARG FALSE-ARG)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-continuation-call &key (LABEL LABEL) (START START) (END END) (FN FN) (ARGS ARGS)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-continuation-function &key (LABEL LABEL) (START START) (END END) (NAME NAME) (PARAMETERS PARAMETERS) (BODY BODY)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-continue-statement &key (LABEL LABEL) (START START) (END END) (TARGET-LABEL TARGET-LABEL)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-default-clause &key (LABEL LABEL) (START START) (END END) (BODY BODY)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-do-statement &key (LABEL LABEL) (START START) (END END) (CONDITION CONDITION) (BODY BODY)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-dot-graph TYPE-GRAPH &optional FNAME
Package

jwacs

Source

type-analysis.lisp (file)

Function: make-error-action &key
Package

yacc

Source

yacc.lisp (file)

Function: make-expression &key (LABEL LABEL) (START START) (END END)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-finally-clause &key (LABEL LABEL) (START START) (END END) (BODY BODY)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-fn-call &key (LABEL LABEL) (START START) (END END) (FN FN) (ARGS ARGS)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-for &key (LABEL LABEL) (START START) (END END) (INITIALIZER INITIALIZER) (CONDITION CONDITION) (STEP STEP) (BODY BODY)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-for-in &key (LABEL LABEL) (START START) (END END) (BINDING BINDING) (COLLECTION COLLECTION) (BODY BODY)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-forin-assign ELM NEW-ARRAY NEW-COUNT-REC

Creates the assignment that spoofs our iterating through the for-in collection. Just assigns the orignal iterator var from the for-in a value from our new array of values, which we are iterating through using a while loop and the variable new-count-rec

Package

jwacs

Source

loop-transformation.lisp (file)

Function: make-function-decl &key (LABEL LABEL) (START START) (END END) (NAME NAME) (PARAMETERS PARAMETERS) (BODY BODY)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-function-expression &key (LABEL LABEL) (START START) (END END) (NAME NAME) (PARAMETERS PARAMETERS) (BODY BODY)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-goto SYMBOL TARGET
Package

yacc

Source

yacc.lisp (file)

Function: make-hash-table-from-lr1-list L
Package

yacc

Source

yacc.lisp (file)

Function: make-identifier &key (LABEL LABEL) (START START) (END END) (NAME NAME)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-if-statement &key (LABEL LABEL) (START START) (END END) (CONDITION CONDITION) (THEN-STATEMENT THEN-STATEMENT) (ELSE-STATEMENT ELSE-STATEMENT)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-import-decl &key (LABEL LABEL) (START START) (END END) (TYPE-SYMBOL TYPE-SYMBOL) (URIPATH URIPATH)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-item PRODUCTION POSITION
Package

yacc

Source

yacc.lisp (file)

Function: make-kernel ITEMS &optional KERNELS
Package

yacc

Source

yacc.lisp (file)

Function: make-keyword X

Makes a keyword out of a symbol.

Package

jwacs

Source

source-transformations.lisp (file)

Function: make-labelled-catch-continuation NAME CATCH-CLAUSE &optional TAIL-RESUME-ELM

Returns a labelled continuation that can be used as a catch handler based on CATCH-CLAUSE. The continuation will accept an argument that represents the binding in the clause. Returns a var-init statement that assigns the catch continuation to a var named NAME.
If TAIL-RESUME-ELM is non-NIL, it will be added as the last statement of the handler function. It should be a resume statement that resumes the tail continuation for unterminated catch clauses.

Package

jwacs

Source

cps-transformation.lisp (file)

Function: make-labelled-continuation NAME STATEMENT-TAIL

Constructs a continuation from STATEMENT-TAIL and returns a var-decl-statement that initializes a variable named NAME to the new continuation. Note that labelled continuations accept no arguments.

Package

jwacs

Source

cps-transformation.lisp (file)

Function: make-lexer-function LEXER

Returns a function of 0 arguments that calls NEXT-TOKEN on LEXER whenever it is called. This is normally the function that gets passed into a parser.

Package

jwacs

Source

lex-javascript.lisp (file)

Function: make-location-node &key (NAME NAME) (PROPERTIES PROPERTIES) (ASSIGNMENT-BACKLINKS ASSIGNMENT-BACKLINKS) (RETURN-NODE RETURN-NODE) (ASSIGNMENTS ASSIGNMENTS) (ARGUMENTS ARGUMENTS) (THIS-BINDINGS THIS-BINDINGS) (MIN-CALL-ARITY MIN-CALL-ARITY)
Package

jwacs

Source

type-analysis.lisp (file)

Function: make-lr1-collection &optional SAME-KIND-AS
Package

yacc

Source

yacc.lisp (file)

Function: make-lr1-item PRODUCTION POSITION LOOKAHEAD
Package

yacc

Source

yacc.lisp (file)

Function: make-main-module MAIN-PATHNAME INLINE-TEXT

Constructs a module for the file located at PATH, assuming that the uripath ’.’ points to MAIN-PATHNAME’s directory. If INLINE-TEXT is non-NIL, the module will be an in-memory module.

Package

jwacs

Source

compiler.lisp (file)

Function: make-module &key (TYPE TYPE) (PATH PATH) (URIPATH URIPATH) (IMPORT-ELM IMPORT-ELM) (PARENT-MODULE PARENT-MODULE) (COMPRESSED-P COMPRESSED-P) (TEXT TEXT) (INLINE-STREAM INLINE-STREAM)
Package

jwacs

Source

compiler.lisp (file)

Function: make-new-expr &key (LABEL LABEL) (START START) (END END) (CONSTRUCTOR CONSTRUCTOR) (ARGS ARGS)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-node-queue &key TEST

Create an empty NODE-QUEUE

Package

jwacs

Source

type-analysis.lisp (file)

Function: make-node-queue-container &key (ROOT-ENTRY ROOT-ENTRY) (LOOKUP LOOKUP)
Package

jwacs

Source

type-analysis.lisp (file)

Function: make-node-queue-entry &key (PREV PREV) (NEXT NEXT) (ITEM ITEM)
Package

jwacs

Source

type-analysis.lisp (file)

Function: make-numeric-literal &key (LABEL LABEL) (START START) (END END) (VALUE VALUE)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-object-literal &key (LABEL LABEL) (START START) (END END) (PROPERTIES PROPERTIES)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-property-access &key (LABEL LABEL) (START START) (END END) (TARGET TARGET) (FIELD FIELD)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-re-literal &key (LABEL LABEL) (START START) (END END) (PATTERN PATTERN) (OPTIONS OPTIONS)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-reduce-action SYMBOL LENGTH &key ACTION ACTION-FORM
Package

yacc

Source

yacc.lisp (file)

Function: make-remove-handler &key (LABEL LABEL) (START START) (END END) (HANDLER HANDLER) (THUNK-BODY THUNK-BODY)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-resume-statement &key (LABEL LABEL) (START START) (END END) (TARGET TARGET) (ARG ARG)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-return-statement &key (LABEL LABEL) (START START) (END END) (ARG ARG)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-shift-action STATE
Package

yacc

Source

yacc.lisp (file)

Function: make-source-element &key (LABEL LABEL) (START START) (END END)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-special-value &key (LABEL LABEL) (START START) (END END) (SYMBOL SYMBOL)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-statement-block &key (LABEL LABEL) (START START) (END END) (STATEMENTS STATEMENTS)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-string-literal &key (LABEL LABEL) (START START) (END END) (VALUE VALUE)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-suspend-statement &key (LABEL LABEL) (START START) (END END)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-switch &key (LABEL LABEL) (START START) (END END) (VALUE VALUE) (CLAUSES CLAUSES)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-tail-call-continuation CONT-ID LEXICALLY-ACTIVE-HANDLERS

If LEXICALLY-ACTIVE-HANDLERS is non-NIL, returns a continuation function that removes all of the active handlers and then calls the continuation represented by CONT-ID; otherwise returns CONT-ID.

Package

jwacs

Source

cps-transformation.lisp (file)

Function: make-throw-statement &key (LABEL LABEL) (START START) (END END) (VALUE VALUE) (TARGET TARGET)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-thunk-function &key (LABEL LABEL) (START START) (END END) (NAME NAME) (PARAMETERS PARAMETERS) (BODY BODY)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-token &key (TERMINAL TERMINAL) (VALUE VALUE) (START START) (END END)
Package

jwacs

Source

lex-javascript.lisp (file)

Function: make-try &key (LABEL LABEL) (START START) (END END) (BODY BODY) (CATCH-CLAUSE CATCH-CLAUSE) (FINALLY-CLAUSE FINALLY-CLAUSE)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-type-graph-node &key (NAME NAME) (PROPERTIES PROPERTIES) (ASSIGNMENT-BACKLINKS ASSIGNMENT-BACKLINKS) (RETURN-NODE RETURN-NODE)
Package

jwacs

Source

type-analysis.lisp (file)

Function: make-unary-operator &key (LABEL LABEL) (START START) (END END) (OP-SYMBOL OP-SYMBOL) (ARG ARG)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-value-node &key (NAME NAME) (PROPERTIES PROPERTIES) (ASSIGNMENT-BACKLINKS ASSIGNMENT-BACKLINKS) (RETURN-NODE RETURN-NODE) (CONSTRUCTOR-NAME CONSTRUCTOR-NAME) (PARAMETERS PARAMETERS) (THIS-CONTEXT-NODE THIS-CONTEXT-NODE) (PROTOTYPE-NODE PROTOTYPE-NODE) (CONTINUATION-NODE CONTINUATION-NODE)
Package

jwacs

Source

type-analysis.lisp (file)

Function: make-var-decl &key (LABEL LABEL) (START START) (END END) (NAME NAME) (INITIALIZER INITIALIZER)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-var-decl-statement &key (LABEL LABEL) (START START) (END END) (VAR-DECLS VAR-DECLS)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-var-init VAR-NAME INIT-VALUE

Create a VAR-DECL-STATEMENT that initializes a variable named VAR-NAME to INIT-VALUE

Package

jwacs

Source

js-source-model.lisp (file)

Function: make-void-continuation CURRENT-CONT

Returns a function expression that calls CURRENT-CONT with no arguments. This allows us to preserve the behaviour of functions that return no value.

Package

jwacs

Source

cps-transformation.lisp (file)

Function: make-while &key (LABEL LABEL) (START START) (END END) (CONDITION CONDITION) (BODY BODY)
Package

jwacs

Source

js-source-model.lisp (file)

Function: make-with &key (LABEL LABEL) (START START) (END END) (SCOPE-OBJECT SCOPE-OBJECT) (BODY BODY)
Package

jwacs

Source

js-source-model.lisp (file)

Function: map-lr1-collection F COLLECTION

Apply F to all elements of COLLECTION.

Package

yacc

Source

yacc.lisp (file)

Function: maptree FN TREE

MAPTREE maps a function over a tree of cons cells.
If TREE is NIL, returns NIL.
If TREE is a cons cell, recursively calls MAPTREE on the CAR and CDR and returns a new cons cell whose CAR and CDR are the results.
Otherwise, returns the result of applying FN to TREE.

Package

jwacs

Source

general-utilities.lisp (file)

Function: maybe-terminate-toplevel ELM-LIST

When *IN-LOCAL-SCOPE* is NIL, returns a list of source elements that is guaranteed to be correctly terminated for the toplevel. When *IN-LOCAL-SCOPE* is non-NIL, ELM-LIST is returned unchanged.
’Correctly terminated for the toplevel’ means that if there are any effective function calls, then all control paths are terminated by either a suspend, resume, or throw statement.

Package

jwacs

Source

cps-transformation.lisp (file)

Function: memq ITEM LIST

MEMBER :TEST #’EQ

Package

yacc

Source

yacc.lisp (file)

Function: min* LEFT RIGHT

Returns the minimum of LEFT and RIGHT. Either or both arguments may be NIL. NIL is treated as being larger than any other value.

Package

jwacs

Source

type-analysis.lisp (file)

Function: module-compressed-p INSTANCE
Function: (setf module-compressed-p) VALUE INSTANCE
Package

jwacs

Source

compiler.lisp (file)

Function: module-import-elm INSTANCE
Function: (setf module-import-elm) VALUE INSTANCE
Package

jwacs

Source

compiler.lisp (file)

Function: module-inline-stream INSTANCE
Function: (setf module-inline-stream) VALUE INSTANCE
Package

jwacs

Source

compiler.lisp (file)

Function: module-p OBJECT
Package

jwacs

Source

compiler.lisp (file)

Function: module-parent-module INSTANCE
Function: (setf module-parent-module) VALUE INSTANCE
Package

jwacs

Source

compiler.lisp (file)

Function: module-path INSTANCE
Function: (setf module-path) VALUE INSTANCE
Package

jwacs

Source

compiler.lisp (file)

Function: module-text INSTANCE
Function: (setf module-text) VALUE INSTANCE
Package

jwacs

Source

compiler.lisp (file)

Function: module-type INSTANCE
Function: (setf module-type) VALUE INSTANCE
Package

jwacs

Source

compiler.lisp (file)

Function: module-uripath INSTANCE
Function: (setf module-uripath) VALUE INSTANCE
Package

jwacs

Source

compiler.lisp (file)

Function: nested-explicitize ELM

Call TX-EXPLICITIZE on ELM in a nested context (ie, with *NESTED-CONTEXT* bound to T)

Package

jwacs

Source

explicitize-transformation.lisp (file)

Function: new-expr-args INSTANCE
Function: (setf new-expr-args) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: new-expr-constructor INSTANCE
Function: (setf new-expr-constructor) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: new-expr-end INSTANCE
Function: (setf new-expr-end) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: new-expr-label INSTANCE
Function: (setf new-expr-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: new-expr-p OBJECT
Package

jwacs

Source

js-source-model.lisp (file)

Function: new-expr-start INSTANCE
Function: (setf new-expr-start) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: next-token LEXER

Returns a token structure containing the next token in the lexing operation represented by LEXER. This token will have a terminal of NIL at end of stream. The next token will be fetched from the unget-stack if that stack is non-empty.

Package

jwacs

Source

lex-javascript.lisp (file)

Function: node-queue-container-lookup INSTANCE
Function: (setf node-queue-container-lookup) VALUE INSTANCE
Package

jwacs

Source

type-analysis.lisp (file)

Function: node-queue-container-p OBJECT
Package

jwacs

Source

type-analysis.lisp (file)

Function: node-queue-container-root-entry INSTANCE
Function: (setf node-queue-container-root-entry) VALUE INSTANCE
Package

jwacs

Source

type-analysis.lisp (file)

Function: node-queue-entry-item INSTANCE
Function: (setf node-queue-entry-item) VALUE INSTANCE
Package

jwacs

Source

type-analysis.lisp (file)

Function: node-queue-entry-next INSTANCE
Function: (setf node-queue-entry-next) VALUE INSTANCE
Package

jwacs

Source

type-analysis.lisp (file)

Function: node-queue-entry-p OBJECT
Package

jwacs

Source

type-analysis.lisp (file)

Function: node-queue-entry-prev INSTANCE
Function: (setf node-queue-entry-prev) VALUE INSTANCE
Package

jwacs

Source

type-analysis.lisp (file)

Function: node-queue-size QUEUE

Return the number of nodes stored in QUEUE

Package

jwacs

Source

type-analysis.lisp (file)

Function: number-kernels KERNELS

Set a unique ID for all kernels in KERNELS.

Package

yacc

Source

yacc.lisp (file)

Function: numeric-literal-end INSTANCE
Function: (setf numeric-literal-end) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: numeric-literal-label INSTANCE
Function: (setf numeric-literal-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: numeric-literal-p OBJECT
Package

jwacs

Source

js-source-model.lisp (file)

Function: numeric-literal-start INSTANCE
Function: (setf numeric-literal-start) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: numeric-literal-value INSTANCE
Function: (setf numeric-literal-value) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: object-literal-end INSTANCE
Function: (setf object-literal-end) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: object-literal-label INSTANCE
Function: (setf object-literal-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: object-literal-p OBJECT
Package

jwacs

Source

js-source-model.lisp (file)

Function: object-literal-properties INSTANCE
Function: (setf object-literal-properties) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: object-literal-start INSTANCE
Function: (setf object-literal-start) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: parse-file PATH

Load the file at PATH and parse it into a js/jw source model

Package

jwacs

Source

parse-javascript.lisp (file)

Function: parse-grammar FORMS
Package

yacc

Source

yacc.lisp (file)

Function: parse-javascript-integer INTEGER-STR &key START END

Parse integer literals, taking account of 0x and 0 radix-specifiers

Package

jwacs

Source

lex-javascript.lisp (file)

Function: parse-module MODULE

Parse the source text contained in MODULE and return a js/jw source-model

Package

jwacs

Source

compiler.lisp (file)

Function: parse-prefix-lookup RAW-STR

Takes the argument to the prefix lookup command line option and parses it into a prefix-lookup table.

Package

jwacs

Source

main.lisp (file)

Function: parse-production FORM
Package

yacc

Source

yacc.lisp (file)

Function: parser-action INSTANCE
Function: (setf parser-action) VALUE INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: parser-goto INSTANCE
Function: (setf parser-goto) VALUE INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: parser-p OBJECT
Package

yacc

Source

yacc.lisp (file)

Function: parser-states INSTANCE
Function: (setf parser-states) VALUE INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: pathnames-equal PATH1 PATH2

Return non-NIL if PATH1 and PATH2 are equivalent. This function avoids some of the
complexity that pathnames can entail by comparing the namestrings of the two paths
rather than the paths themselves. That way we don’t have to worry about spurious distinctions between :UNSPECIFIED and NIL, :NEWEST and NIL and some actual version number, etc.

Package

jwacs

Source

general-utilities.lisp (file)

Function: pipeline-compile ELM &optional PIPELINE

Applies the transformations specified in PIPELINE to ELM in order. ELM may be either a source-element or a list of source-elements.

Package

jwacs

Source

compiler.lisp (file)

Function: populate-type-graph ELM

Populate a type-graph with nodes and initial edges based on source-element ELM

Package

jwacs

Source

type-analysis.lisp (file)

Function: position-to-line/column TEXT INDEX

Returns a cons cell containing the 1-based row and column for the character at INDEX in TEXT.

Package

jwacs

Source

lex-javascript.lisp (file)

Function: postpend LIST-ARG ATOM-ARG

Appends a list containing ATOM-ARG to LIST-ARG. eg: (POSTPEND ’(1 2) 3) ===> ’(1 2 3)

Package

jwacs

Source

general-utilities.lisp (file)

Function: prefix-p STRING PREFIX

return: whether prefix is a prefix of the string.

Package

jwacs

Source

general-utilities.lisp (file)

Function: pretty-print-arg ARG-ELM PARENT-ELM S &optional ASSOCIATIVITY

Pretty print an argument subexpression, parenthesizing if:
1. The sub-expression has a lower precedence than the parent expression, or 2. The sub-expression and the parent expression have the same precedence and this arg is on the non-associative branch.

Package

jwacs

Source

pretty-print.lisp (file)

Function: pretty-print-separated-list ELM-LIST S &optional SEP-STRING

Pretty print the elements of ELM-LIST to S separated by SEP-STRING.

Package

jwacs

Source

pretty-print.lisp (file)

Function: print-action A S D
Package

yacc

Source

yacc.lisp (file)

Function: print-derives-epsilon GRAMMAR &optional STREAM
Package

yacc

Source

yacc.lisp (file)

Function: print-first-terminals GRAMMAR &optional STREAM

Print FIRST (without epsilon) for all symbols of GRAMMAR.

Package

yacc

Source

yacc.lisp (file)

Function: print-goto-graph KERNELS &optional STREAM

Print the goto graph defined by KERNELS.

Package

yacc

Source

yacc.lisp (file)

Function: print-item I S D
Package

yacc

Source

yacc.lisp (file)

Function: print-kernel K S D
Package

yacc

Source

yacc.lisp (file)

Function: print-production P S D
Package

yacc

Source

yacc.lisp (file)

Function: print-states KERNELS LOOKAHEADS &optional STREAM
Package

yacc

Source

yacc.lisp (file)

Function: production-action INSTANCE
Function: (setf production-action) VALUE INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: production-action-form INSTANCE
Function: (setf production-action-form) VALUE INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: production-derives INSTANCE
Function: (setf production-derives) VALUE INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: production-equal-p P1 P2

Equality predicate for productions within a single grammar

Package

yacc

Source

yacc.lisp (file)

Function: production-id INSTANCE
Function: (setf production-id) VALUE INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: production-p OBJECT
Package

yacc

Source

yacc.lisp (file)

Function: production-symbol INSTANCE
Function: (setf production-symbol) VALUE INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: production< P1 P2

Total order on productions within a single grammar

Package

yacc

Source

yacc.lisp (file)

Function: property-access-end INSTANCE
Function: (setf property-access-end) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: property-access-field INSTANCE
Function: (setf property-access-field) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: property-access-label INSTANCE
Function: (setf property-access-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: property-access-p OBJECT
Package

jwacs

Source

js-source-model.lisp (file)

Function: property-access-start INSTANCE
Function: (setf property-access-start) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: property-access-target INSTANCE
Function: (setf property-access-target) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: push-token LEXER TOKEN &optional ENCOUNTERED-LINE-TERMINATOR

Push a token onto the top of LEXER’s unget stack. The next token fetched by NEXT-TOKEN will be the pushed token. The state of the ENCOUNTERED-LINE-TERMINATOR flag is also saved and will be restored by the next NEXT-TOKEN call.

Package

jwacs

Source

lex-javascript.lisp (file)

Function: re-cond-clause STRING START BLOCK-NAME CLAUSE
Package

jwacs

Source

lexer-macros.lisp (file)

Function: re-literal-end INSTANCE
Function: (setf re-literal-end) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: re-literal-label INSTANCE
Function: (setf re-literal-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: re-literal-options INSTANCE
Function: (setf re-literal-options) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: re-literal-p OBJECT
Package

jwacs

Source

js-source-model.lisp (file)

Function: re-literal-pattern INSTANCE
Function: (setf re-literal-pattern) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: re-literal-start INSTANCE
Function: (setf re-literal-start) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: read-asdf-component-text COMPONENT-PATH

Returns the contents of a file that is a component of a currently-loaded asdf system. COMPONENT-PATH is a path describing the location of the component to read. It should have at least 2 elements.
The first element is a symbol naming a system.
The last element is a string naming a component.
There may be intermediate strings naming intermediate modules. Eg:

(:JWACS-TESTS "tests" "test-cps-transformation")

names the test-cps-transformation component, which is part of the tests module, which is part of the :JWACS-TESTS system.

Package

jwacs

Source

general-utilities.lisp (file)

Function: read-entire-file PATH

Reads the entire contents of the file located at PATH and returns it as a string

Package

jwacs

Source

general-utilities.lisp (file)

Function: reduce-action-action INSTANCE
Function: (setf reduce-action-action) VALUE INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: reduce-action-action-form INSTANCE
Function: (setf reduce-action-action-form) VALUE INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: reduce-action-length INSTANCE
Function: (setf reduce-action-length) VALUE INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: reduce-action-p OBJECT
Package

yacc

Source

yacc.lisp (file)

Function: reduce-action-symbol INSTANCE
Function: (setf reduce-action-symbol) VALUE INSTANCE
Package

yacc

Source

yacc.lisp (file)

Function: relative-first S A GRAMMAR &optional SEEN

Union of FIRST(eta) for all the eta s.t. S rm->* Aeta.

Package

yacc

Source

yacc.lisp (file)

Function: relative-first-sequence S A GRAMMAR &optional SEEN

Sequence version of RELATIVE-FIRST.

Package

yacc

Source

yacc.lisp (file)

Function: remove-handler-end INSTANCE
Function: (setf remove-handler-end) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: remove-handler-handler INSTANCE
Function: (setf remove-handler-handler) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: remove-handler-label INSTANCE
Function: (setf remove-handler-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: remove-handler-p OBJECT
Package

jwacs

Source

js-source-model.lisp (file)

Function: remove-handler-start INSTANCE
Function: (setf remove-handler-start) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: remove-handler-thunk-body INSTANCE
Function: (setf remove-handler-thunk-body) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: remove-queued-node QUEUE NODE

Removes the specified NODE from QUEUE

Package

jwacs

Source

type-analysis.lisp (file)

Function: replace-special-variables LEAF

Replace $$n with (token-value (nth n-1 expr)) and $n with (nth n-1 expr)

Package

jwacs

Source

parse-javascript-yacc.lisp (file)

Function: required-argument ()
Package

yacc

Source

yacc.lisp (file)

Function: resolve-absolute-uripath URIPATH PREFIX-LOOKUP

Finds the base-pathname in PREFIX-LOOKUP that most closely matches URIPATH. URIPATH should be a string representing the path component of a URI. PREFIX-LOOKUP should be an assoc list of cells whose CAR is a prefix that begins and ends with a slash, and whose CDR is a pathname representing a directory in the filesystem.

Package

jwacs

Source

compiler.lisp (file)

Function: resolve-import-uripath BASE-PATHNAME URIPATH PREFIX-LOOKUP

Resolves the URIPATH of an import that appears in the file located at BASE-PATHNAME. Absolute URIPATHs are resolved using PREFIX-LOOKUP to determine their base-pathname.

Package

jwacs

Source

compiler.lisp (file)

Function: resume-statement-arg INSTANCE
Function: (setf resume-statement-arg) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: resume-statement-end INSTANCE
Function: (setf resume-statement-end) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: resume-statement-label INSTANCE
Function: (setf resume-statement-label) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: resume-statement-p OBJECT
Package

jwacs

Source

js-source-model.lisp (file)

Function: resume-statement-start INSTANCE
Function: (setf resume-statement-start) VALUE INSTANCE
Package

jwacs

Source

js-source-model.lisp (file)

Function: resume-statement-target INSTANCE
Function: (setf resume-statement-target) VALUE INSTANCE