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, ParserConfig.addKeyword(String)
    • Method Detail

      • bindPredicate

        void bindPredicate​(ScriptInstance si,
                           java.lang.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)