PHP Classes

File: application/modules/extensions/aws/JmesPath/SyntaxErrorException.php

Recommend this page to a friend!
  Classes of Tran Tuan   Pretty PHP S3 Files Manager   application/modules/extensions/aws/JmesPath/SyntaxErrorException.php   Download  
File: application/modules/extensions/aws/JmesPath/SyntaxErrorException.php
Role: Application script
Content type: text/plain
Description: Application script
Class: Pretty PHP S3 Files Manager
Web based interface to manage files in Amazon S3
Author: By
Last change:
Date: 8 years ago
Size: 1,126 bytes
 

Contents

Class file image Download
<?php
namespace JmesPath;

/**
 * Syntax errors raise this exception that gives context
 */
class SyntaxErrorException extends \InvalidArgumentException
{
   
/**
     * @param string $expectedTypesOrMessage Expected array of tokens or message
     * @param array $token Current token
     * @param string $expression Expression input
     */
   
public function __construct(
       
$expectedTypesOrMessage,
        array
$token,
       
$expression
   
) {
       
$message = "Syntax error at character {$token['pos']}\n"
           
. $expression . "\n" . str_repeat(' ', $token['pos']) . "^\n";
       
$message .= !is_array($expectedTypesOrMessage)
            ?
$expectedTypesOrMessage
           
: $this->createTokenMessage($token, $expectedTypesOrMessage);
       
parent::__construct($message);
    }

    private function
createTokenMessage(array $token, array $valid)
    {
        return
sprintf(
           
'Expected one of the following: %s; found %s "%s"',
           
implode(', ', array_keys($valid)),
           
$token['type'],
           
$token['value']
        );
    }
}