Example #1
0
 function evaluate($input)
 {
     $icontext = new InterpreterContext();
     $prefab = new VariableExpression('input', $input);
     $prefab->interpret($icontext);
     $this->interpreter->interpret($icontext);
     $result = $icontext->lookup($this->interpreter);
     return $result;
 }
Example #2
0
 function evaluate($input)
 {
     $context = new Context();
     $prefab = new VariableExpression('input', $input);
     // add the input variable to Context
     $prefab->interpret($context);
     $this->interpreter->interpret($context);
     $result = $context->lookup($this->interpreter);
     return $result;
 }
Example #3
0
<?php

$context = new InterpreterContext();
$myvar = new VariableExpression("input", "four");
$myvar->interpret($context);
echo $context->lookup($myvar) . "<br/>";
$new_var = new VariableExpression("input");
$new_var->interpret($context);
echo $context->lookup($new_var) . "<br/>";
$myvar->setValue("five");
$myvar->interpret($context);
echo $context->lookup($myvar) . "<br/>";
echo $context->lookup($new_var) . "<br/>";
$literal = new LiteralExpression("Four");
$literal->interpret($context);
echo $context->lookup($literal) . "<br/>";
Example #4
0
    function getKey()
    {
        return $this->name;
    }
}
//$context = new InterpreterContext();
//$literal = new LiteralExpression('Четыре');
//$literal->interpret($context);
//
//echo $context->lookup($literal);
$context = new InterpreterContext();
$myVar = new VariableExpression('input', 'Четыре');
$myVar->interpret($context);
print $context->lookup($myVar) . '\\n';
$newVar = new VariableExpression('input');
$newVar->interpret($context);
print $context->lookup($newVar) . '\\n';
$myVar->setValue('Пять');
$myVar->interpret($context);
print $context->lookup($myVar) . '\\n';
print $context->lookup($newVar) . '\\n';
$context = new InterpreterContext();
$input = new VariableExpression('input');
$statement = new BooleanOrExpression(new EqualsExpression($input, new LiteralExpression('Четыре')), new EqualsExpression($input, new LiteralExpression('4')));
foreach (['Четыре', '4', '52'] as $val) {
    $input->setValue($val);
    print $val . '\\n';
    $statement->interpret($context);
    if ($context->lookup($statement)) {
        print 'соотв.';
    } else {
Example #5
0
}
class OrExpression extends OperatorExpression
{
    protected function doInterpret(InterpreterContext $context, $resultL, $resultR)
    {
        $context->replace($this, $resultL || $resultR);
    }
}
class AndExpression extends OperatorExpression
{
    protected function doInterpret(InterpreterContext $context, $resultL, $resultR)
    {
        $context->replace($this, $resultL && $resultR);
    }
}
$context = new InterpreterContext();
$literal = new LiteralExpression('quatro');
$literal->interpret($context);
print $context->lookup($literal);
$var = new VariableExpression('input', 'cinco');
$var->interpret($context);
echo "\n";
print $context->lookup($var);
$var = new VariableExpression('input');
$var->interpret($context);
echo "\n";
print $context->lookup($var);
$var->setValue('oito');
$var->interpret($context);
echo "\n";
print $context->lookup($var);