public function testCanCompileBinaryNode() { $compiler = new Compiler(); $binary = new Node\BinaryNode('+', new Node\MultiDieNode(3, 6), new Node\ConstantNode(3)); $dice = new DieCollection([new DieCollection([new SingleDie(6), new SingleDie(6), new SingleDie(6)]), new ConstantDie(3)]); $this->assertEquals($dice, $compiler->compile($binary)); }
/** * @dataProvider getUnoptimizedData */ public function testCompileWithoutOptimization($expression, $expectedDescription) { $lexer = new Lexer(); $parser = new Parser(array()); $compiler = new Compiler(); $node = $parser->parse($lexer->tokenize($expression)); $aDie = $compiler->compile($node); $this->assertEquals($expectedDescription, $aDie->getValueDescription()); }
public function compile(Compiler $compiler) { return $compiler->compileConstant($this->attributes['value']); }
public function compile(Compiler $compiler) { return $compiler->compileCocDie($this->attributes['num'], $this->attributes['bonus'], $this->attributes['penalty']); }
public function compile(Compiler $compiler) { return $compiler->compileMultiDie($this->attributes['num'], $this->attributes['sides']); }