예제 #1
0
 /**
  * @param RuleNode $astNode
  * @return string
  */
 protected function buildDOTIdentifier(RuleNode $astNode)
 {
     $idNumber = $this->visitContext->getNodeCount();
     $identifierNode = $astNode->getIdentifierNode();
     $identifierName = $identifierNode->getIdentifierName();
     return sprintf('"rule[%s][%s]"', $identifierName, $idNumber);
 }
예제 #2
0
 /**
  * @param RuleNode $astNode
  * @return bool
  */
 public function visitRuleNode(RuleNode $astNode)
 {
     $identifierNode = $astNode->getIdentifierNode();
     $name = $identifierNode->getIdentifierName();
     $symbol = new StandardSymbol(Symbol::TYPE_NON_TERMINAL, $name);
     $this->visitContext->pushLeftHandSymbol($symbol, $this);
     return true;
 }