public function __construct(ITypeSystem $typeSystem, O\IEvaluationContext $evaluationContext)
{
parent::__construct($typeSystem);
$this->evaluationContext = $evaluationContext;
foreach ($evaluationContext->getVariableTable() as $variable => $value) {
$this->setExpressionType(O\Expression::variable(O\Expression::value($variable)), $typeSystem->getTypeFromValue($value));
}
}