Lisphp_Runtime_Predicate_Type::getFunctions PHP Method

getFunctions() public static method

public static getFunctions ( Lisphp_Scope $superscope = null )
$superscope Lisphp_Scope
    public static function getFunctions(Lisphp_Scope $superscope = null)
    {
        $scope = new Lisphp_Scope($superscope);
        foreach (self::$types as $type) {
            $scope["{$type}?"] = new self($type);
        }
        $scope['nil?'] = new self('null');
        return $scope;
    }

Usage Example

Exemplo n.º 1
0
 /**
  * @return Lisphp_Scope
  */
 public static function sandbox()
 {
     $scope = new Lisphp_Scope();
     $scope['nil'] = null;
     $scope['true'] = $scope['#t'] = $scope['else'] = true;
     $scope['false'] = $scope['#f'] = false;
     $scope['eval'] = new Lisphp_Runtime_Eval();
     $scope['quote'] = new Lisphp_Runtime_Quote();
     $scope['symbol'] = new Lisphp_Runtime_PHPFunction(array('Lisphp_Symbol', 'get'));
     $scope['define'] = new Lisphp_Runtime_Define();
     $scope['setf!'] = new Lisphp_Runtime_Setf();
     $scope['let'] = new Lisphp_Runtime_Let();
     $scope['macro'] = new Lisphp_Runtime_Macro();
     $scope['lambda'] = new Lisphp_Runtime_Lambda();
     $scope['apply'] = new Lisphp_Runtime_Apply();
     $scope['do'] = new Lisphp_Runtime_Do();
     $scope['dict'] = new Lisphp_Runtime_Dict();
     $scope['array'] = new Lisphp_Runtime_Array();
     $scope['list'] = new Lisphp_Runtime_List();
     $scope['car'] = new Lisphp_Runtime_List_Car();
     $scope['cdr'] = new Lisphp_Runtime_List_Cdr();
     $scope['at'] = new Lisphp_Runtime_List_At();
     $scope['set-at!'] = new Lisphp_Runtime_List_SetAt();
     $scope['unset-at!'] = new Lisphp_Runtime_List_UnsetAt();
     $scope['exists-at?'] = new Lisphp_Runtime_List_ExistsAt();
     $scope['count'] = new Lisphp_Runtime_List_Count();
     $scope['map'] = new Lisphp_Runtime_List_Map();
     $scope['filter'] = new Lisphp_Runtime_List_Filter();
     $scope['fold'] = new Lisphp_Runtime_List_Fold();
     $scope['cond'] = new Lisphp_Runtime_List_Cond();
     $scope['=='] = $scope['eq'] = $scope['eq?'] = new Lisphp_Runtime_Predicate_Eq();
     $scope['='] = $scope['equal'] = $scope['equal?'] = new Lisphp_Runtime_Predicate_Equal();
     $scope['!=='] = $scope['/=='] = $scope['not-eq'] = $scope['not-eq?'] = new Lisphp_Runtime_Predicate_NotEq();
     $scope['!='] = $scope['/='] = $scope['not-equal'] = $scope['not-equal?'] = new Lisphp_Runtime_Predicate_NotEqual();
     $scope['<'] = new Lisphp_Runtime_Predicate_LessThan();
     $scope['>'] = new Lisphp_Runtime_Predicate_GreaterThan();
     $scope['<='] = new Lisphp_Runtime_Predicate_LessEqual();
     $scope['>='] = new Lisphp_Runtime_Predicate_GreaterEqual();
     foreach (Lisphp_Runtime_Predicate_Type::getFunctions() as $n => $f) {
         $scope[$n] = $f;
     }
     $scope['isa?'] = $scope['is-a?'] = new Lisphp_Runtime_Predicate_IsA();
     $scope['+'] = new Lisphp_Runtime_Arithmetic_Addition();
     $scope['-'] = new Lisphp_Runtime_Arithmetic_Subtraction();
     $scope['*'] = new Lisphp_Runtime_Arithmetic_Multiplication();
     $scope['/'] = new Lisphp_Runtime_Arithmetic_Division();
     $scope['%'] = $scope['mod'] = new Lisphp_Runtime_Arithmetic_Modulus();
     $scope['string'] = new Lisphp_Runtime_PHPFunction('strval');
     $scope['.'] = $scope['concat'] = new Lisphp_Runtime_String_Concat();
     $scope['string-join'] = new Lisphp_Runtime_String_StringJoin();
     $scope['substring'] = new Lisphp_Runtime_PHPFunction('substr');
     $scope['string-upcase'] = new Lisphp_Runtime_PHPFunction('strtoupper');
     $scope['string-downcase'] = new Lisphp_Runtime_PHPFunction('strtolower');
     $scope['not'] = new Lisphp_Runtime_Logical_Not();
     $scope['and'] = new Lisphp_Runtime_Logical_And();
     $scope['or'] = new Lisphp_Runtime_Logical_Or();
     $scope['if'] = new Lisphp_Runtime_Logical_If();
     $scope['->'] = new Lisphp_Runtime_Object_GetAttribute();
     return $scope;
 }
All Usage Examples Of Lisphp_Runtime_Predicate_Type::getFunctions
Lisphp_Runtime_Predicate_Type