public abstract class AstBuiltin<T extends AstBuiltin<T>> extends AstPrimitive<T>
| Constructor and Description |
|---|
AstBuiltin() |
| Modifier and Type | Method and Description |
|---|---|
Val |
apply(Env env,
Env.StackHelp stk,
AstRoot[] asts)
Primary method to invoke this function, passing all the parameters
as the `asts` list.
|
protected Val |
exec(Val[] args)
Most Ast* functions will want to override this method.
|
args, description, example, exec, nargsasBytes, clone, copyOver, frozenType, read, readExternal, readJSON, reloadFromBytes, toJsonString, write, writeExternal, writeJSONpublic Val apply(Env env, Env.StackHelp stk, AstRoot[] asts)
Primary method to invoke this function, passing all the parameters as the `asts` list.
The default implementation of this method executes all Asts within
the provided environment, and then calls exec(Val[]) passing it
the arguments as the list of Vals. A derived class will then only
need to override the second `exec()` function which is much simpler.
However for certain functions (such as short-circuit boolean operators) executing all arguments is not desirable -- these functions would have to override this more general method.
apply in class AstPrimitive<T extends AstBuiltin<T>>env - Current execution environment. Variables are looked up here.stk - TODO need clarificationasts - List of AstRoot expressions that are arguments to the
function. First element in this list is the function itself.