public abstract class AstWhichFunc extends AstBuiltin<AstWhichFunc>
Constructor and Description |
---|
AstWhichFunc() |
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.
|
java.lang.String[] |
args()
List of argument names.
|
abstract double |
init() |
int |
nargs()
Number of function's arguments + 1.
|
abstract double |
op(Vec l) |
abstract java.lang.String |
searchVal() |
java.lang.String |
str()
String representation of this Ast object in the Rapids language.
|
exec
description, example, exec
asBytes, clone, copyOver, frozenType, read, readExternal, readJSON, reloadFromBytes, toJsonBytes, toJsonString, write, writeExternal, writeJSON
public java.lang.String[] args()
AstPrimitive
args
in class AstPrimitive<AstWhichFunc>
public int nargs()
AstPrimitive
nargs
in class AstPrimitive<AstWhichFunc>
public java.lang.String str()
AstRoot
AstPrimitive
s this is the name of the function; for
AstParameter
s this is either the name of the variable, or the
value of the numeric constant that the parameter represents. For more
complicated constructs such as AstExec
or AstFunction
this method should return those objects as a Rapids string.str
in class AstRoot<AstWhichFunc>
public abstract double op(Vec l)
public abstract java.lang.String searchVal()
public abstract double init()
public Val apply(Env env, Env.StackHelp stk, AstRoot[] asts)
AstBuiltin
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 AstBuiltin.exec(Val[])
passing it
the arguments as the list of Val
s. 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 AstBuiltin<AstWhichFunc>
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.