Exemple #1
0
 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));
 }
Exemple #2
0
 /**
  * @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());
 }
Exemple #3
0
 public function compile(Compiler $compiler)
 {
     return $compiler->compileConstant($this->attributes['value']);
 }
Exemple #4
0
 public function compile(Compiler $compiler)
 {
     return $compiler->compileCocDie($this->attributes['num'], $this->attributes['bonus'], $this->attributes['penalty']);
 }
Exemple #5
0
 public function compile(Compiler $compiler)
 {
     return $compiler->compileMultiDie($this->attributes['num'], $this->attributes['sides']);
 }