Seditio Source
Root |
./othercms/phpBB3/vendor/s9e/text-formatter/src/Configurator/RendererGenerators/PHP/XPathConvertor/Convertors/Core.php
<?php

/**
* @package   s9e\TextFormatter
* @copyright Copyright (c) 2010-2021 The s9e authors
* @license   http://www.opensource.org/licenses/mit-license.php The MIT License
*/
namespace s9e\TextFormatter\Configurator\RendererGenerators\PHP\XPathConvertor\Convertors;

class
Core extends AbstractConvertor
{
   
/**
    * {@inheritdoc}
    */
   
public function getMatchers(): array
    {
        return [
           
'String:Attribute'     => '@ ([-\\w]++)',
           
'String:Dot'           => '\\.',
           
'Number:LiteralNumber' => '(-?) (\\d++)',
           
'String:LiteralString' => '("[^"]*"|\'[^\']*\')',
           
'String:LocalName'     => 'local-name \\(\\)',
           
'String:Name'          => 'name \\(\\)',
           
'String:Parameter'     => '\\$(\\w+)'
       
];
    }

   
/**
    * Convert the attribute syntax
    *
    * @param  string $attrName
    * @return string
    */
   
public function parseAttribute($attrName)
    {
        return
'$node->getAttribute(' . var_export($attrName, true) . ')';
    }

   
/**
    * Convert the dot syntax
    *
    * @return string
    */
   
public function parseDot()
    {
        return
'$node->textContent';
    }

   
/**
    * Convert a literal number
    *
    * @param  string $sign
    * @param  string $number
    * @return string
    */
   
public function parseLiteralNumber($sign, $number)
    {
        return
$this->normalizeNumber($sign, $number);
    }

   
/**
    * Convert a literal string
    *
    * @param  string $string Literal string, including the quotes
    * @return string
    */
   
public function parseLiteralString($string)
    {
        return
var_export(substr($string, 1, -1), true);
    }

   
/**
    * Convert a local-name() function call
    *
    * @return string
    */
   
public function parseLocalName()
    {
        return
'$node->localName';
    }

   
/**
    * Convert a name() function call
    *
    * @return string
    */
   
public function parseName()
    {
        return
'$node->nodeName';
    }

   
/**
    * Convert the parameter syntax
    *
    * @param  string $paramName
    * @return string
    */
   
public function parseParameter($paramName)
    {
        return
'$this->params[' . var_export($paramName, true) . ']';
    }
}