for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php declare(strict_types=1);
/**
* @license http://opensource.org/licenses/mit-license.php MIT
* @link https://github.com/nicoSWD
* @author Nicolas Oelgart <[email protected]>
*/
namespace nicoSWD\Rule\Grammar\JavaScript\Methods;
use nicoSWD\Rule\TokenStream\Token\BaseToken;
use nicoSWD\Rule\TokenStream\Token\TokenArray;
use nicoSWD\Rule\TokenStream\Token\TokenString;
use nicoSWD\Rule\TokenStream\TokenCollection;
use nicoSWD\Rule\Parser\Exception\ParserException;
use nicoSWD\Rule\Grammar\CallableFunction;
final class Join extends CallableFunction
{
public function call(?BaseToken ...$parameters): BaseToken
if (!$this->token instanceof TokenArray) {
token
nicoSWD\Rule\Grammar\JavaScript\Methods\Join
throw new ParserException(sprintf('%s.join is not a function', $this->token->getValue()));
}
$glue = $this->parseParameter($parameters, numParam: 0);
if ($glue) {
$glue = $glue->getValue();
} else {
$glue = ',';
$array = $this->token->getValue();
if ($array instanceof TokenCollection) {
$array = $array->toArray();
return new TokenString(implode($glue, $array));