|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectedu.vub.at.eval.Evaluator
The Evaluator class serves as a repository for auxiliary evaluation methods.
Nested Class Summary | |
private static interface |
Evaluator.BindClosure
|
Field Summary | |
static NATTable |
_ANON_MTH_ARGS_
|
static AGSymbol |
_ANON_MTH_NAM_
|
static AGSymbol |
_APPLY_
|
static AGSymbol |
_CURNS_SYM_
|
private static java.lang.ThreadLocal |
_GLOBAL_SCOPE_
A thread-local variable is used to assign a unique global scope to each separate actor. |
static AGSymbol |
_INIT_
|
private static java.lang.ThreadLocal |
_JLOBBY_ROOT_
A thread-local variable is used to assign a unique jlobby root to each separate actor. |
static AGSymbol |
_LAMBDA_
|
private static java.lang.ThreadLocal |
_LOBBY_NAMESPACE_
A thread-local variable is used to assign a unique lobby namespace to each separate actor. |
Constructor Summary | |
Evaluator()
|
Method Summary | |
static void |
assignArgsToParams(java.lang.String funnam,
ATContext context,
ATTable parameters,
ATTable arguments)
Deprecated. use partial evalation using PartialBinder.bind(ATObject[], ATContext, edu.vub.at.eval.PartialBinder.BindClosure) instead. |
private static void |
bindArguments(java.lang.String funnam,
ATContext context,
ATTable parameters,
ATTable arguments,
Evaluator.BindClosure binder)
Deprecated. use partial evalation using PartialBinder.bind(ATObject[], ATContext, edu.vub.at.eval.PartialBinder.BindClosure) instead. |
private static java.lang.String |
classnameToValuename(java.lang.String classname,
java.lang.String prefix)
|
private static NATObject |
createGlobalLexicalScope()
A global scope has the sentinel instance as its lexical parent. |
private static NATObject |
createJLobbyRoot()
A jlobby root package is a JavaPackage with an empty path prefix |
private static NATObject |
createLobbyNamespace()
A lobby namespace is a simple empty object |
static void |
defineParamsForArgs(java.lang.String funnam,
ATContext context,
ATTable parameters,
ATTable arguments)
Deprecated. use partial evalation using PartialBinder.bind(ATObject[], ATContext, edu.vub.at.eval.PartialBinder.BindClosure) instead. |
static NATTable |
evalMandatoryPars(ATTable formals,
ATContext ctx)
Given a formal parameter list, this auxiliary method returns a new table consisting of the values of the bindings of the mandatory parameters of formals within the context ctx. |
static NATTable |
evaluateArguments(NATTable args,
ATContext ctx)
This function is called whenever arguments to a function, message, method need to be evaluated. |
static NATObject |
getGlobalLexicalScope()
|
static JavaPackage |
getJLobbyRoot()
|
static NATObject |
getLobbyNamespace()
|
static java.lang.String |
getSimpleName(java.lang.Class c)
Returns the unqualified name of a class. |
static java.lang.String |
loadContentOfFile(java.io.File file)
Returns the raw contents of a file in a String (using this JVM's default character encoding) |
static NATText |
printAsList(ATTable tab)
|
static NATText |
printAsStatements(ATTable tab)
|
static NATText |
printElements(ATObject[] els,
java.lang.String start,
java.lang.String sep,
java.lang.String stop)
Auxiliary function used to print the elements of a table using various separators. |
static NATText |
printElements(NATTable tab,
java.lang.String start,
java.lang.String sep,
java.lang.String stop)
Auxiliary function used to print the elements of a table using various separators. |
static void |
resetEnvironment()
Restores the global lexical scope to a fresh empty object. |
static java.lang.String |
toString(ATObject obj)
|
static java.lang.String |
valueNameOf(java.lang.Class c)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final AGSymbol _ANON_MTH_NAM_
public static final NATTable _ANON_MTH_ARGS_
public static final AGSymbol _LAMBDA_
public static final AGSymbol _APPLY_
public static final AGSymbol _INIT_
public static final AGSymbol _CURNS_SYM_
private static final java.lang.ThreadLocal _GLOBAL_SCOPE_
private static final java.lang.ThreadLocal _LOBBY_NAMESPACE_
private static final java.lang.ThreadLocal _JLOBBY_ROOT_
Constructor Detail |
public Evaluator()
Method Detail |
public static final NATText printElements(ATObject[] els, java.lang.String start, java.lang.String sep, java.lang.String stop) throws InterpreterException
InterpreterException
public static final NATText printElements(NATTable tab, java.lang.String start, java.lang.String sep, java.lang.String stop) throws InterpreterException
InterpreterException
public static final NATText printAsStatements(ATTable tab) throws InterpreterException
InterpreterException
public static final NATText printAsList(ATTable tab) throws InterpreterException
InterpreterException
public static final NATTable evaluateArguments(NATTable args, ATContext ctx) throws InterpreterException
InterpreterException
private static final void bindArguments(java.lang.String funnam, ATContext context, ATTable parameters, ATTable arguments, Evaluator.BindClosure binder) throws InterpreterException
PartialBinder.bind(ATObject[], ATContext, edu.vub.at.eval.PartialBinder.BindClosure)
instead.
funnam
- the name of the function for which to bind these elements, for debugging purposes onlycontext
- the context whose lexical scope denotes the frame in which to store the bindings
The context is also the context in which to evaluate optional argument expressions.parameters
- the formal parameter references (of which the last element may be a 'rest' arg to collect left-over arguments)arguments
- the actual arguments, already evaluatedbinder
- a functor object describing the strategy to bind an argument to a parameter (assign or define the parameter)
XArityMismatch
- when the formals don't match the actuals
InterpreterException
public static final void defineParamsForArgs(java.lang.String funnam, ATContext context, ATTable parameters, ATTable arguments) throws InterpreterException
PartialBinder.bind(ATObject[], ATContext, edu.vub.at.eval.PartialBinder.BindClosure)
instead.
InterpreterException
public static final void assignArgsToParams(java.lang.String funnam, ATContext context, ATTable parameters, ATTable arguments) throws InterpreterException
PartialBinder.bind(ATObject[], ATContext, edu.vub.at.eval.PartialBinder.BindClosure)
instead.
InterpreterException
public static NATTable evalMandatoryPars(ATTable formals, ATContext ctx) throws InterpreterException
InterpreterException
public static java.lang.String loadContentOfFile(java.io.File file) throws java.io.IOException
java.io.IOException
public static NATObject getGlobalLexicalScope()
public static NATObject getLobbyNamespace()
public static JavaPackage getJLobbyRoot()
public static void resetEnvironment()
private static NATObject createGlobalLexicalScope()
private static NATObject createLobbyNamespace()
private static NATObject createJLobbyRoot()
public static final java.lang.String valueNameOf(java.lang.Class c)
public static final java.lang.String toString(ATObject obj)
private static final java.lang.String classnameToValuename(java.lang.String classname, java.lang.String prefix)
public static final java.lang.String getSimpleName(java.lang.Class c)
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |