var_name = $args['var']; $this->guid = guid(); return 'guid.'='. (int)$args['start'] .'; $i'.$this->guid.'<='. (int)$args['end'] .';$i'.$this->guid.'+='. (int)$args['increment'] .'): $scope->pushVar("'. $args['var'] .'",$i'.$this->guid.'); ?>'; } public function parseClose() { return 'popVar("'. $this->var_name .'"); ?>'; } } class ForeachNode extends ClosingNode { private $key_name, $val_name, $guid; public function parseOpen($args = array()) { $this->key_name = $args['key']; $this->val_name = $args['val']; $this->guid = guid(); return 'pullVar('. $args['var'] .') as $k'.$this->guid.' => $v'.$this->guid.'): $scope->pushVar("'. $args['val'] .'", $k'.$this->guid.');$scope->pushVar("",$v'.$this->guid.'); ?>'; } public function parseClose() { return 'popVar("'. $this->key_name .'"); $scope->popVar("'. $this->val_name .'"); ?>'; } } class PrintNode extends ClosingNode { public function parseOpen($args = array()) { return ''; } } ?>