sleep.interfaces

Interface PredicateEnvironment

public interface PredicateEnvironment

Predicate environments are similar to normal keyword environments except instead of binding commands to an identifier they are bound to a predicate condition.

In general the sleep syntax for declaring a predicate environment is:

keyword (condition) { commands; }

Script predicate environment bridge keywords should be registered with the script parser before any scripts are loaded. This can be accomplished as follows:

ParserConfig.addKeyword("keyword");

To install a new predicate environment into the script environment:

 ScriptInstance script;              // assume
 Environment    myEnvironmentBridge; // assume
 
 Hashtable environment = script.getScriptEnvironment().getEnvironment();
 environment.put("keyword", myEnvironmentBridge);
 

Predicate environments are a powerful way to create environments that are triggered selectively. Predicate environments can also be used to add new constructs to the sleep language such as an unless (comparison) { } construct.

See Also: Environment addKeyword

Method Summary
abstract voidbindPredicate(ScriptInstance si, String typeKeyword, Check condition, Block functionBody)
binds a function (functionName) of a certain type (typeKeyword) to the defined functionBody.

Method Detail

bindPredicate

public abstract void bindPredicate(ScriptInstance si, String typeKeyword, Check condition, Block functionBody)
binds a function (functionName) of a certain type (typeKeyword) to the defined functionBody.

Parameters: typeKeyword the keyword for the function. (i.e. sub) condition the condition under which this can / should be executed. functionBody the compiled body of the function (i.e. code to add 2 numbers)