/**
  * @param TokenNode $node
  *
  * @return string
  */
 protected function printTokenNode(TokenNode $node)
 {
     $token = $node->getValue();
     if ($token instanceof EscapeToken) {
         // Not supported yet
         return '';
     }
     if ($token->is('T_PERIOD') && (!$node->getParent() instanceof BlockNode || $node->getParent() instanceof BlockNode && $node->getParent()->isSubPattern())) {
         $range = range('a', 'Z');
         return $range[mt_rand(0, count($range) - 1)];
     }
     return $token->getValue();
 }
 /**
  * @param TokenNode $node
  *
  * @return \DOMElement
  */
 protected function formatTokenNode(TokenNode $node)
 {
     $token = $node->getValue();
     $xmlNode = $this->createXmlNode('token', $token->getValue());
     $xmlNode->setAttribute('type', str_replace('_', '-', strtolower(substr($token->getName(), 2))));
     if ($token instanceof EscapeToken) {
         $xmlNode->setAttribute('exclusion-sequence', $token->isExclusionSequence() ? 'true' : 'false');
     }
     return $xmlNode;
 }