/**
* SymbolTable
*
* @param CompilationContext $compilationContext
*/
public function __construct(CompilationContext $compilationContext)
{
/* this_ptr */
$thisVar = new Variable('variable', 'this', $compilationContext->currentBranch);
$thisVar->setIsInitialized(true, $compilationContext, array());
$thisVar->increaseUses();
$thisVar->setReadOnly(true);
$thisVar->setLowName('this_ptr');
$thisVar->setDynamicTypes('object');
$this->variables['this'] = $thisVar;
$returnValue = new Variable('variable', 'return_value', $compilationContext->currentBranch);
$returnValue->setIsInitialized(true, $compilationContext, array());
$returnValue->increaseUses();
$this->variables['return_value'] = $returnValue;
$returnValue = new Variable('variable', 'return_value_ptr', $compilationContext->currentBranch);
$returnValue->setIsInitialized(true, $compilationContext, array());
$returnValue->increaseUses();
$this->variables['return_value_ptr'] = $returnValue;
}