Global

Methods

applyOP(op, a, b) → {any}

Parameters:
Name Type Description
op String operation string
a any op1
b any op2
Source:
Returns:
operation result
Type
any

checkDiv(x) → {any}

Parameters:
Name Type Description
x any (expected) non-zero number
Source:
Returns:
x
Type
any

checkNumber(x) → {any}

Parameters:
Name Type Description
x any (expected) Number type
Source:
Returns:
x
Type
any

checkType(x, type) → {any}

check x whether is expected type
Parameters:
Name Type Description
x any primitive value
type String primitive type
Source:
Returns:
x
Type
any

Continuation(func, args)

pass func's args
Parameters:
Name Type Description
func function which will be passed
args Array func's arguments
Source:

evaluate(expr, env, callback) → {any}

Parameters:
Name Type Description
expr Object expression ast
env Environment runtime context
callback function pass to another
Source:
Returns:
expression result
Type
any

Execute(func, args)

execute function with guarding stack
Parameters:
Name Type Description
func function which will be called
args Array func's arguments
Source:

GUARD(func, args)

guard the stack
Parameters:
Name Type Description
func function which need to be guarded
args Array func's args
Source:

InputStream(input) → {Object}

The character input stream, can do something on one char
Parameters:
Name Type Description
input String code string
Source:
Returns:
inputstream used by TokenStream
Type
Object

makejs(expr)

Parameters:
Name Type Description
expr any expression ast
Source:
Returns:
string with js code

makeLambda(expr, env) → {function}

As you can see, it returns a plain JavaScript function that encloses over the environment and the expression to evaluate. It's important to understand that nothing happens when this closure is created — but when it's called, it will extend the environment that it saved at creation time with the new bindings of arguments/values (if less values are passed than the function's argument list, the missing ones will get the value false). And then it just evaluates the body in the new scope.
Parameters:
Name Type Description
expr any expression ast
env any runtime context
Source:
Returns:
lambda
Type
function

parser(input) → {Object}

Parameters:
Name Type Description
input TokenStream operate tokens
Source:
Returns:
ast
Type
Object

TokenStream(input) → {Object}

Parameters:
Name Type Description
input InputStream which has deal with byte
Source:
Returns:
which can parse token to object; used by parser
Type
Object