/** * @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); }
/** * @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; }