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
    }
}
$n = "<br />";
$context = new InterpreterContext();
$literal = new LiteralExpression('Четыре');
$literal->interpret($context);
print $context->lookup($literal) . $n;
$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($myvar) . $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} : ";
    $statement->interpret($context);
    if ($context->lookup($statement)) {
        print "соответствует {$n}";
    } else {
        print "не соответствует {$n}";
    }
}
Example #5
0
 public function walkVariable(VariableExpression $expression)
 {
     return $expression->update($this->walk($expression->getName()));
 }
Example #6
0
    function interpret(Context $context)
    {
        if (!is_null($this->val)) {
            $context->replace($this, $this->val);
            $this->val = null;
        }
    }
    function setValue($value)
    {
        $this->val = $value;
    }
    function getKey()
    {
        return $this->name;
    }
}
$context = new Context();
$myvar = new VariableExpression('input', 'four');
$myvar->interpret($context);
print $context->lookup($myvar) . "\n";
// output: four
$newvar = new VariableExpression('input');
$newvar->interpret($context);
print $context->lookup($newvar) . "\n";
// output: four
$myvar->setValue("five");
$myvar->interpret($context);
print $context->lookup($myvar) . "\n";
// output: five
print $context->lookup($newvar) . "\n";
// output: five
Example #7
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);