<?php



namespace DoctrineExtensions\Query\Mysql;



use Doctrine\ORM\Query\AST\Functions\FunctionNode,

	Doctrine\ORM\Query\Lexer;



/**

 * @author Giulia Santoiemma <giuliaries@gmail.com>

 */

class Lpad extends FunctionNode

{

	public $string = null;

	public $length = null;

	public $padstring = null;



	public function parse(\Doctrine\ORM\Query\Parser $parser)

	{

		$parser->match(Lexer::T_IDENTIFIER);

		$parser->match(Lexer::T_OPEN_PARENTHESIS);

		$this->string = $parser->ArithmeticPrimary();

		$parser->match(Lexer::T_COMMA);

		$this->length = $parser->ArithmeticPrimary();

		$parser->match(Lexer::T_COMMA);

		$this->padstring = $parser->ArithmeticPrimary();

		$parser->match(Lexer::T_CLOSE_PARENTHESIS);

	}



	public function getSql(\Doctrine\ORM\Query\SqlWalker $sqlWalker)

	{

		return 'LPAD(' .

		$this->string->dispatch($sqlWalker) . ', ' .

		$this->length->dispatch($sqlWalker) . ', ' .

		$this->padstring->dispatch($sqlWalker) .

		')';

	}

}

