Exemplo n.º 1
0
 /**
  * @return \Helstern\Nomsky\GrammarAnalysis\ParseTable\LLParseTable
  */
 public function build()
 {
     $parseTable = new LLParseTable($this->nonTerminals, $this->terminals, $this->productionHashAlgorithm);
     /** @var NormalizedProduction $production */
     foreach ($this->lookAheadSets->getEntrySetIterator() as $production => $terminalSet) {
         $lhs = $production->getLeftHandSide();
         /** @var Symbol $terminal */
         foreach ($terminalSet as $terminal) {
             $parseTable->add($lhs, $terminal, $production);
         }
     }
     return $parseTable;
 }