1: <?php
2:
3: namespace BN\Compiler\Grammar;
4:
5: class Operators
6: {
7: private $operators = array();
8:
9: public function register($symbol, OperatorBuilder $builder)
10: {
11: $this->operators[$symbol]['order'] = $builder->buildOrder();
12: $this->operators[$symbol]['evaluator'] = $builder->buildEvaluator();
13: $this->operators[$symbol]['operands'] = $builder->buildOperands();
14: }
15:
16: public function exists($operatorSymbol)
17: {
18: return array_key_exists($operatorSymbol, $this->operators);
19: }
20:
21:
22: public function getOrder($operatorSymbol)
23: {
24: return $this->operators[$operatorSymbol]['order'];
25: }
26:
27:
28: public function getOperands($operatorSymbol)
29: {
30: return $this->operators[$operatorSymbol]['operands'];
31: }
32:
33:
34: public function getEvaluator($operatorSymbol)
35: {
36: return $this->operators[$operatorSymbol]['evaluator'];
37: }
38: }
39: