sleep.bridges
Class BasicNumbers

java.lang.Object
  extended by sleep.bridges.BasicNumbers
All Implemented Interfaces:
java.io.Serializable, Function, Loadable, Operator, Predicate

public class BasicNumbers
extends java.lang.Object
implements Predicate, Operator, Loadable, Function

provides some of the basic number crunching functionality

See Also:
Serialized Form

Constructor Summary
BasicNumbers()
           
 
Method Summary
 boolean decide(java.lang.String n, ScriptInstance i, java.util.Stack l)
          decides the truthfulness of the proposition predicateName applied to the passedInTerms.
 Scalar evaluate(java.lang.String name, ScriptInstance si, java.util.Stack args)
          Evaluate a function and return the resulting scalar.
 Scalar operate(java.lang.String o, ScriptInstance i, java.util.Stack locals)
          apply operator operatorName on the values in the stack.
 boolean scriptLoaded(ScriptInstance aScript)
          called when a script is loaded
 boolean scriptUnloaded(ScriptInstance aScript)
          called when a script is unloaded
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BasicNumbers

public BasicNumbers()
Method Detail

scriptUnloaded

public boolean scriptUnloaded(ScriptInstance aScript)
Description copied from interface: Loadable
called when a script is unloaded

Specified by:
scriptUnloaded in interface Loadable

scriptLoaded

public boolean scriptLoaded(ScriptInstance aScript)
Description copied from interface: Loadable
called when a script is loaded

Specified by:
scriptLoaded in interface Loadable

evaluate

public Scalar evaluate(java.lang.String name,
                       ScriptInstance si,
                       java.util.Stack args)
Description copied from interface: Function
Evaluate a function and return the resulting scalar. Only the sleep interpreter should ever call this function. If you have a maddening desire to call this Function object yourself, then use the convienence method in SleepUtils.

Specified by:
evaluate in interface Function
Parameters:
name - the function being called.
si - an instance of the script calling this function.
args - a stack containing the locals passed to this function. The locals are Scalar values passed in reverse order i.e. [arg n, arg n-1, ..., arg 1, arg 0]
Returns:
an instance of Scalar containing the return value of this function.
See Also:
SleepUtils.runCode(Function, String, ScriptInstance, Stack)

decide

public boolean decide(java.lang.String n,
                      ScriptInstance i,
                      java.util.Stack l)
Description copied from interface: Predicate
decides the truthfulness of the proposition predicateName applied to the passedInTerms.

Specified by:
decide in interface Predicate
Parameters:
n - a predicate i.e. ==
i - an instance of the script asking about this predicate.
l - a stack of terms i.e. [3, 4]. These arguments are passed in REVERSE ORDER i.e. [right hand side, left hand side]
Returns:
a boolean, in the case of a predicate == and the terms [3, 4] we know 3 == 4 is false so return false.

operate

public Scalar operate(java.lang.String o,
                      ScriptInstance i,
                      java.util.Stack locals)
Description copied from interface: Operator
apply operator operatorName on the values in the stack.

Specified by:
operate in interface Operator
Parameters:
o - the name of the operator, for example the String "+"
i - instance of the script calling this operator
locals - a stack containing values the operator is to be applied to: [left hand side, right hand side]
Returns:
a Scalar containing the result of the operatorName applied to the passedInLocals, in the case of "+" applied to [4, 3] we would get a Scalar containing the integer 7.