summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Component.php6
-rw-r--r--src/Components/AlterOperation.php4
-rw-r--r--src/Components/Array2d.php5
-rw-r--r--src/Components/ArrayObj.php2
-rw-r--r--src/Components/CaseExpression.php10
-rw-r--r--src/Components/CreateDefinition.php15
-rw-r--r--src/Components/DataType.php2
-rw-r--r--src/Components/Expression.php14
-rw-r--r--src/Components/ExpressionArray.php2
-rw-r--r--src/Components/Limit.php4
-rw-r--r--src/Components/OptionsArray.php5
-rw-r--r--src/Components/RenameOperation.php8
-rw-r--r--src/Core.php51
-rw-r--r--src/Lexer.php50
-rw-r--r--src/Parser.php44
-rw-r--r--src/Statement.php10
-rw-r--r--src/Statements/CreateStatement.php8
-rw-r--r--src/Statements/DeleteStatement.php18
-rw-r--r--src/Statements/InsertStatement.php8
-rw-r--r--src/Statements/ReplaceStatement.php6
-rw-r--r--src/Translator.php69
-rw-r--r--src/common.php21
22 files changed, 206 insertions, 156 deletions
diff --git a/src/Component.php b/src/Component.php
index 08720cf..43d0fec 100644
--- a/src/Component.php
+++ b/src/Component.php
@@ -12,8 +12,6 @@
*/
namespace SqlParser;
-require_once 'common.php';
-
/**
* A component (of a statement) is a part of a statement that is common to
* multiple query types.
@@ -44,7 +42,7 @@ abstract class Component
) {
// This method should be abstract, but it can't be both static and
// abstract.
- throw new \Exception(\__('Not implemented yet.'));
+ throw new \Exception(Translator::gettext('Not implemented yet.'));
}
/**
@@ -64,7 +62,7 @@ abstract class Component
{
// This method should be abstract, but it can't be both static and
// abstract.
- throw new \Exception(\__('Not implemented yet.'));
+ throw new \Exception(Translator::gettext('Not implemented yet.'));
}
/**
diff --git a/src/Components/AlterOperation.php b/src/Components/AlterOperation.php
index c2344c6..582ee84 100644
--- a/src/Components/AlterOperation.php
+++ b/src/Components/AlterOperation.php
@@ -225,7 +225,7 @@ class AlterOperation extends Component
if (! ($token->value == 'SET' && $list->tokens[$list->idx - 1]->value == 'CHARACTER')) {
$parser->error(
- __('A new statement was found, but no delimiter between it and the previous one.'),
+ 'A new statement was found, but no delimiter between it and the previous one.',
$token
);
break;
@@ -237,7 +237,7 @@ class AlterOperation extends Component
if ($ret->options->isEmpty()) {
$parser->error(
- __('Unrecognized alter operation.'),
+ 'Unrecognized alter operation.',
$list->tokens[$list->idx]
);
}
diff --git a/src/Components/Array2d.php b/src/Components/Array2d.php
index 2199efe..13d2a8f 100644
--- a/src/Components/Array2d.php
+++ b/src/Components/Array2d.php
@@ -12,6 +12,7 @@ use SqlParser\Component;
use SqlParser\Parser;
use SqlParser\Token;
use SqlParser\TokensList;
+use SQLParser\Translator;
/**
* `VALUES` keyword parser.
@@ -88,7 +89,7 @@ class Array2d extends Component
} elseif ($arrCount != $count) {
$parser->error(
sprintf(
- __('%1$d values were expected, but found %2$d.'),
+ Translator::gettext('%1$d values were expected, but found %2$d.'),
$count,
$arrCount
),
@@ -111,7 +112,7 @@ class Array2d extends Component
if ($state === 0) {
$parser->error(
- __('An opening bracket followed by a set of values was expected.'),
+ 'An opening bracket followed by a set of values was expected.',
$list->tokens[$list->idx]
);
}
diff --git a/src/Components/ArrayObj.php b/src/Components/ArrayObj.php
index bed7fc7..d9449f2 100644
--- a/src/Components/ArrayObj.php
+++ b/src/Components/ArrayObj.php
@@ -115,7 +115,7 @@ class ArrayObj extends Component
&& (($token->type !== Token::TYPE_OPERATOR)
|| ($token->value !== '('))
) {
- $parser->error(__('An opening bracket was expected.'), $token);
+ $parser->error('An opening bracket was expected.', $token);
break;
}
diff --git a/src/Components/CaseExpression.php b/src/Components/CaseExpression.php
index df5a1bd..e410aab 100644
--- a/src/Components/CaseExpression.php
+++ b/src/Components/CaseExpression.php
@@ -134,7 +134,7 @@ class CaseExpression extends Component
++$list->idx;
break;
} elseif ($token->type === Token::TYPE_KEYWORD) {
- $parser->error(__('Unexpected keyword.'), $token);
+ $parser->error('Unexpected keyword.', $token);
break;
} else {
$ret->value = Expression::parse($parser, $list);
@@ -164,7 +164,7 @@ class CaseExpression extends Component
++$list->idx;
break;
} elseif ($token->type === Token::TYPE_KEYWORD) {
- $parser->error(__('Unexpected keyword.'), $token);
+ $parser->error('Unexpected keyword.', $token);
break;
}
} else {
@@ -176,7 +176,7 @@ class CaseExpression extends Component
$state = 0;
$ret->results[] = $new_result;
} elseif ($token->type === Token::TYPE_KEYWORD) {
- $parser->error(__('Unexpected keyword.'), $token);
+ $parser->error('Unexpected keyword.', $token);
break;
}
}
@@ -190,7 +190,7 @@ class CaseExpression extends Component
$ret->results[] = $new_result;
$state = 1;
} elseif ($token->type === Token::TYPE_KEYWORD) {
- $parser->error(__('Unexpected keyword.'), $token);
+ $parser->error('Unexpected keyword.', $token);
break;
}
}
@@ -199,7 +199,7 @@ class CaseExpression extends Component
if ($state !== 3) {
$parser->error(
- __('Unexpected end of CASE expression'),
+ 'Unexpected end of CASE expression',
$list->tokens[$list->idx - 1]
);
}
diff --git a/src/Components/CreateDefinition.php b/src/Components/CreateDefinition.php
index 86bb315..4fb8c9c 100644
--- a/src/Components/CreateDefinition.php
+++ b/src/Components/CreateDefinition.php
@@ -203,7 +203,7 @@ class CreateDefinition extends Component
$state = 1;
} else {
$parser->error(
- __('An opening bracket was expected.'),
+ 'An opening bracket was expected.',
$token
);
break;
@@ -224,10 +224,9 @@ class CreateDefinition extends Component
// Reserved keywords can't be used
// as field names without backquotes
$parser->error(
- __('A symbol name was expected! '
- . 'A reserved keyword can not be used '
- . 'as a column name without backquotes.'
- ),
+ 'A symbol name was expected! '
+ . 'A reserved keyword can not be used '
+ . 'as a column name without backquotes.' ,
$token
);
return $ret;
@@ -238,7 +237,7 @@ class CreateDefinition extends Component
}
} else {
$parser->error(
- __('A symbol name was expected!'),
+ 'A symbol name was expected!',
$token
);
return $ret;
@@ -270,7 +269,7 @@ class CreateDefinition extends Component
break;
} else {
$parser->error(
- __('A comma or a closing bracket was expected.'),
+ 'A comma or a closing bracket was expected.',
$token
);
$state = 0;
@@ -286,7 +285,7 @@ class CreateDefinition extends Component
if (($state !== 0) && ($state !== 6)) {
$parser->error(
- __('A closing bracket was expected.'),
+ 'A closing bracket was expected.',
$list->tokens[$list->idx - 1]
);
}
diff --git a/src/Components/DataType.php b/src/Components/DataType.php
index 378ec9d..084fb01 100644
--- a/src/Components/DataType.php
+++ b/src/Components/DataType.php
@@ -124,7 +124,7 @@ class DataType extends Component
if ($state === 0) {
$ret->name = strtoupper($token->value);
if (($token->type !== Token::TYPE_KEYWORD) || (!($token->flags & Token::FLAG_KEYWORD_DATA_TYPE))) {
- $parser->error(__('Unrecognized data type.'), $token);
+ $parser->error('Unrecognized data type.', $token);
}
$state = 1;
} elseif ($state === 1) {
diff --git a/src/Components/Expression.php b/src/Components/Expression.php
index 7a7a333..569199c 100644
--- a/src/Components/Expression.php
+++ b/src/Components/Expression.php
@@ -245,7 +245,7 @@ class Expression extends Component
}
if ($alias) {
$parser->error(
- __('An alias was expected.'),
+ 'An alias was expected.',
$token
);
break;
@@ -314,7 +314,7 @@ class Expression extends Component
break;
}
} elseif ($brackets < 0) {
- // $parser->error(__('Unexpected closing bracket.'), $token);
+ // $parser->error('Unexpected closing bracket.', $token);
// $brackets = 0;
break;
}
@@ -333,7 +333,7 @@ class Expression extends Component
if ($alias) {
// An alias is expected (the keyword `AS` was previously found).
if (!empty($ret->alias)) {
- $parser->error(__('An alias was previously found.'), $token);
+ $parser->error('An alias was previously found.', $token);
break;
}
$ret->alias = $token->value;
@@ -352,7 +352,7 @@ class Expression extends Component
|| ($prev[1]->type === Token::TYPE_NONE))
) {
if (!empty($ret->alias)) {
- $parser->error(__('An alias was previously found.'), $token);
+ $parser->error('An alias was previously found.', $token);
break;
}
$ret->alias = $prev[1]->value;
@@ -365,7 +365,7 @@ class Expression extends Component
// the column name we parsed is actually the table name
// and the table name is actually a database name.
if ((!empty($ret->database)) || ($dot)) {
- $parser->error(__('Unexpected dot.'), $token);
+ $parser->error('Unexpected dot.', $token);
}
$ret->database = $ret->table;
$ret->table = $ret->column;
@@ -384,7 +384,7 @@ class Expression extends Component
break;
}
if (!empty($ret->alias)) {
- $parser->error(__('An alias was previously found.'), $token);
+ $parser->error('An alias was previously found.', $token);
break;
}
$ret->alias = $token->value;
@@ -395,7 +395,7 @@ class Expression extends Component
if ($alias) {
$parser->error(
- __('An alias was expected.'),
+ 'An alias was expected.',
$list->tokens[$list->idx - 1]
);
}
diff --git a/src/Components/ExpressionArray.php b/src/Components/ExpressionArray.php
index e2aa86e..1bfce74 100644
--- a/src/Components/ExpressionArray.php
+++ b/src/Components/ExpressionArray.php
@@ -103,7 +103,7 @@ class ExpressionArray extends Component
if ($state === 0) {
$parser->error(
- __('An expression was expected.'),
+ 'An expression was expected.',
$list->tokens[$list->idx]
);
}
diff --git a/src/Components/Limit.php b/src/Components/Limit.php
index 13a1127..434b9f8 100644
--- a/src/Components/Limit.php
+++ b/src/Components/Limit.php
@@ -87,7 +87,7 @@ class Limit extends Component
if (($token->type === Token::TYPE_KEYWORD) && ($token->value === 'OFFSET')) {
if ($offset) {
- $parser->error(__('An offset was expected.'), $token);
+ $parser->error('An offset was expected.', $token);
}
$offset = true;
continue;
@@ -109,7 +109,7 @@ class Limit extends Component
if ($offset) {
$parser->error(
- __('An offset was expected.'),
+ 'An offset was expected.',
$list->tokens[$list->idx - 1]
);
}
diff --git a/src/Components/OptionsArray.php b/src/Components/OptionsArray.php
index 315237f..94b7f66 100644
--- a/src/Components/OptionsArray.php
+++ b/src/Components/OptionsArray.php
@@ -12,6 +12,7 @@ use SqlParser\Component;
use SqlParser\Parser;
use SqlParser\Token;
use SqlParser\TokensList;
+use SQLParser\Translator;
/**
* Parses a list of options.
@@ -143,7 +144,7 @@ class OptionsArray extends Component
if (isset($ret->options[$lastOptionId])) {
$parser->error(
sprintf(
- __('This option conflicts with "%1$s".'),
+ Translator::gettext('This option conflicts with "%1$s".'),
is_array($ret->options[$lastOptionId])
? $ret->options[$lastOptionId]['name']
: $ret->options[$lastOptionId]
@@ -257,7 +258,7 @@ class OptionsArray extends Component
) {
$parser->error(
sprintf(
- __('Value/Expression for the option %1$s was expected.'),
+ 'Value/Expression for the option %1$s was expected.',
$ret->options[$lastOptionId]['name']
),
$list->tokens[$list->idx - 1]
diff --git a/src/Components/RenameOperation.php b/src/Components/RenameOperation.php
index 291bd43..9f6b1b4 100644
--- a/src/Components/RenameOperation.php
+++ b/src/Components/RenameOperation.php
@@ -98,7 +98,7 @@ class RenameOperation extends Component
);
if (empty($expr->old)) {
$parser->error(
- __('The old name of the table was expected.'),
+ 'The old name of the table was expected.',
$token
);
}
@@ -108,7 +108,7 @@ class RenameOperation extends Component
$state = 2;
} else {
$parser->error(
- __('Keyword "TO" was expected.'),
+ 'Keyword "TO" was expected.',
$token
);
break;
@@ -124,7 +124,7 @@ class RenameOperation extends Component
);
if (empty($expr->new)) {
$parser->error(
- __('The new name of the table was expected.'),
+ 'The new name of the table was expected.',
$token
);
}
@@ -142,7 +142,7 @@ class RenameOperation extends Component
if ($state !== 3) {
$parser->error(
- __('A rename operation was expected.'),
+ 'A rename operation was expected.',
$list->tokens[$list->idx - 1]
);
}
diff --git a/src/Core.php b/src/Core.php
new file mode 100644
index 0000000..2cb15cc
--- /dev/null
+++ b/src/Core.php
@@ -0,0 +1,51 @@
+<?php
+
+/**
+ * Defines the core helper infrastructure of the library.
+ *
+ * @package SqlParser
+ */
+namespace SqlParser;
+
+class Core
+{
+
+ /**
+ * Whether errors should throw exceptions or just be stored.
+ *
+ * @var bool
+ *
+ * @see static::$errors
+ */
+ public $strict = false;
+
+ /**
+ * List of errors that occurred during lexing.
+ *
+ * Usually, the lexing does not stop once an error occurred because that
+ * error might be false positive or a partial result (even a bad one)
+ * might be needed.
+ *
+ * @var Exception[]
+ *
+ * @see Core::error()
+ */
+ public $errors = array();
+
+ /**
+ * Creates a new error log.
+ *
+ * @param Exception $error The error exception.
+ *
+ * @throws Exception Throws the exception, if strict mode is enabled.
+ *
+ * @return void
+ */
+ public function error($error)
+ {
+ if ($this->strict) {
+ throw $error;
+ }
+ $this->errors[] = $error;
+ }
+}
diff --git a/src/Lexer.php b/src/Lexer.php
index 9de2a7a..8aceb42 100644
--- a/src/Lexer.php
+++ b/src/Lexer.php
@@ -11,8 +11,6 @@
*/
namespace SqlParser;
-require_once 'common.php';
-
use SqlParser\Exceptions\LexerException;
if (!defined('USE_UTF_STRINGS')) {
@@ -41,7 +39,7 @@ if (!defined('USE_UTF_STRINGS')) {
* @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
* @see Context
*/
-class Lexer
+class Lexer extends Core
{
/**
@@ -80,15 +78,6 @@ class Lexer
);
/**
- * Whether errors should throw exceptions or just be stored.
- *
- * @var bool
- *
- * @see static::$errors
- */
- public $strict = false;
-
- /**
* The string to be parsed.
*
* @var string|UtfString
@@ -146,19 +135,6 @@ class Lexer
public $delimiterLen;
/**
- * List of errors that occurred during lexing.
- *
- * Usually, the lexing does not stop once an error occurred because that
- * error might be false positive or a partial result (even a bad one)
- * might be needed.
- *
- * @var LexerException[]
- *
- * @see Lexer::error()
- */
- public $errors = array();
-
- /**
* Gets the tokens list parsed by a new instance of a lexer.
*
* @param string|UtfString $str The query to be lexed.
@@ -263,7 +239,7 @@ class Lexer
// @assert($this->last === $lastIdx);
$token = new Token($this->str[$this->last]);
$this->error(
- __('Unexpected character.'),
+ 'Unexpected character.',
$this->str[$this->last],
$this->last
);
@@ -300,7 +276,7 @@ class Lexer
if (($token->type === Token::TYPE_NONE) && ($token->value === 'DELIMITER')) {
if ($this->last + 1 >= $this->len) {
$this->error(
- __('Expected whitespace(s) before delimiter.'),
+ 'Expected whitespace(s) before delimiter.',
'',
$this->last + 1
);
@@ -318,7 +294,7 @@ class Lexer
// Preparing the token that holds the new delimiter.
if ($this->last + 1 >= $this->len) {
$this->error(
- __('Expected delimiter.'),
+ 'Expected delimiter.',
'',
$this->last + 1
);
@@ -334,7 +310,7 @@ class Lexer
if (empty($this->delimiter)) {
$this->error(
- __('Expected delimiter.'),
+ 'Expected delimiter.',
'',
$this->last
);
@@ -372,13 +348,13 @@ class Lexer
*
* @return void
*/
- public function error($msg = '', $str = '', $pos = 0, $code = 0)
+ public function error($msg, $str = '', $pos = 0, $code = 0)
{
- $error = new LexerException($msg, $str, $pos, $code);
- if ($this->strict) {
- throw $error;
- }
- $this->errors[] = $error;
+ $error = new LexerException(
+ Translator::gettext($msg),
+ $str, $pos, $code
+ );
+ parent::error($error);
}
/**
@@ -835,7 +811,7 @@ class Lexer
if (($this->last >= $this->len) || ($this->str[$this->last] !== $quote)) {
$this->error(
sprintf(
- __('Ending quote %1$s was expected.'),
+ Translator::gettext('Ending quote %1$s was expected.'),
$quote
),
'',
@@ -875,7 +851,7 @@ class Lexer
if (($str = $this->parseString('`')) === null) {
if (($str = static::parseUnknown()) === null) {
$this->error(
- __('Variable name was expected.'),
+ 'Variable name was expected.',
$this->str[$this->last],
$this->last
);
diff --git a/src/Parser.php b/src/Parser.php
index ddefc7e..e5c09f3 100644
--- a/src/Parser.php
+++ b/src/Parser.php
@@ -9,8 +9,6 @@
*/
namespace SqlParser;
-require_once 'common.php';
-
use SqlParser\Exceptions\ParserException;
use SqlParser\Statements\SelectStatement;
use SqlParser\Statements\TransactionStatement;
@@ -23,7 +21,7 @@ use SqlParser\Statements\TransactionStatement;
* @package SqlParser
* @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
-class Parser
+class Parser extends Core
{
/**
@@ -319,28 +317,6 @@ class Parser
public $list;
/**
- * Whether errors should throw exceptions or just be stored.
- *
- * @var bool
- *
- * @see static::$errors
- */
- public $strict = false;
-
- /**
- * List of errors that occurred during parsing.
- *
- * Usually, the parsing does not stop once an error occurred because that
- * error might be a false positive or a partial result (even a bad one)
- * might be needed.
- *
- * @var ParserException[]
- *
- * @see Parser::error()
- */
- public $errors = array();
-
- /**
* List of statements parsed.
*
* @var Statement[]
@@ -453,7 +429,7 @@ class Parser
&& ($token->type !== Token::TYPE_DELIMITER)
) {
$this->error(
- __('Unexpected beginning of statement.'),
+ 'Unexpected beginning of statement.',
$token
);
}
@@ -472,7 +448,7 @@ class Parser
// is aware that it is a statement, but it does not have
// a parser for it yet.
$this->error(
- __('Unrecognized statement type.'),
+ 'Unrecognized statement type.',
$token
);
}
@@ -557,7 +533,7 @@ class Parser
// saved.
$this->statements[] = $statement;
$this->error(
- __('No transaction was previously started.'),
+ 'No transaction was previously started.',
$token
);
} else {
@@ -596,12 +572,12 @@ class Parser
*
* @return void
*/
- public function error($msg = '', Token $token = null, $code = 0)
+ public function error($msg, Token $token = null, $code = 0)
{
- $error = new ParserException($msg, $token, $code);
- if ($this->strict) {
- throw $error;
- }
- $this->errors[] = $error;
+ $error = new ParserException(
+ Translator::gettext($msg),
+ $token, $code
+ );
+ parent::error($error);
}
}
diff --git a/src/Statement.php b/src/Statement.php
index e3e5968..a0a2b17 100644
--- a/src/Statement.php
+++ b/src/Statement.php
@@ -242,7 +242,7 @@ abstract class Statement
if (($token->type !== TOKEN::TYPE_COMMENT)
&& ($token->type !== Token::TYPE_WHITESPACE)
) {
- $parser->error(__('Unexpected token.'), $token);
+ $parser->error('Unexpected token.', $token);
}
continue;
}
@@ -306,7 +306,7 @@ abstract class Statement
) {
if (!empty($parsedClauses[$token->value])) {
$parser->error(
- __('This type of clause was previously parsed.'),
+ 'This type of clause was previously parsed.',
$token
);
break;
@@ -334,7 +334,7 @@ abstract class Statement
// this statement it means it is a new statement, but no
// delimiter was found between them.
$parser->error(
- __('A new statement was found, but no delimiter between it and the previous one.'),
+ 'A new statement was found, but no delimiter between it and the previous one.',
$token
);
break;
@@ -366,7 +366,7 @@ abstract class Statement
} else {
// There is no parser for this keyword and isn't the beginning
// of a statement (so no options) either.
- $parser->error(__('Unrecognized keyword.'), $token);
+ $parser->error('Unrecognized keyword.', $token);
continue;
}
}
@@ -492,7 +492,7 @@ abstract class Statement
if ($joinStart == 0 || ($joinStart == 2 && $error = 1)) {
$token = $list->tokens[$clauseStartIdx];
$parser->error(
- __('Unexpected ordering of clauses.'),
+ 'Unexpected ordering of clauses.',
$token
);
return false;
diff --git a/src/Statements/CreateStatement.php b/src/Statements/CreateStatement.php
index ed13952..6eeb41f 100644
--- a/src/Statements/CreateStatement.php
+++ b/src/Statements/CreateStatement.php
@@ -378,7 +378,7 @@ class CreateStatement extends Statement
if ((!isset($this->name)) || ($this->name === '')) {
$parser->error(
- __('The name of the entity was expected.'),
+ 'The name of the entity was expected.',
$list->tokens[$list->idx]
);
} else {
@@ -433,7 +433,7 @@ class CreateStatement extends Statement
// The 'LIKE' keyword was found, but no table_name was found next to it
if ($this->like == null) {
$parser->error(
- __('A table name was expected.'),
+ 'A table name was expected.',
$list->tokens[$list->idx]
);
}
@@ -441,7 +441,7 @@ class CreateStatement extends Statement
$this->fields = CreateDefinition::parse($parser, $list);
if (empty($this->fields)) {
$parser->error(
- __('At least one column definition was expected.'),
+ 'At least one column definition was expected.',
$list->tokens[$list->idx]
);
}
@@ -552,7 +552,7 @@ class CreateStatement extends Statement
$token = $list->getNextOfType(Token::TYPE_KEYWORD);
if ($token->value !== 'RETURNS') {
$parser->error(
- __('A "RETURNS" keyword was expected.'),
+ 'A "RETURNS" keyword was expected.',
$token
);
} else {
diff --git a/src/Statements/DeleteStatement.php b/src/Statements/DeleteStatement.php
index d83d0e9..e86f4ec 100644
--- a/src/Statements/DeleteStatement.php
+++ b/src/Statements/DeleteStatement.php
@@ -222,7 +222,7 @@ class DeleteStatement extends Statement
if ($token->type === Token::TYPE_KEYWORD
&& $token->value !== 'FROM'
) {
- $parser->error(__('Unexpected keyword.'), $token);
+ $parser->error('Unexpected keyword.', $token);
break;
} elseif ($token->type === Token::TYPE_KEYWORD
&& $token->value === 'FROM'
@@ -238,7 +238,7 @@ class DeleteStatement extends Statement
if ($token->type === Token::TYPE_KEYWORD
&& $token->value !== 'FROM'
) {
- $parser->error(__('Unexpected keyword.'), $token);
+ $parser->error('Unexpected keyword.', $token);
break;
} elseif ($token->type === Token::TYPE_KEYWORD
&& $token->value === 'FROM'
@@ -247,7 +247,7 @@ class DeleteStatement extends Statement
$this->from = ExpressionArray::parse($parser, $list);
$state = 2;
} else {
- $parser->error(__('Unexpected token.'), $token);
+ $parser->error('Unexpected token.', $token);
break;
}
} elseif ($state === 2) {
@@ -278,7 +278,7 @@ class DeleteStatement extends Statement
$this->limit = Limit::parse($parser, $list);
$state = 6;
} elseif ($token->type === Token::TYPE_KEYWORD) {
- $parser->error(__('Unexpected keyword.'), $token);
+ $parser->error('Unexpected keyword.', $token);
break;
}
} elseif ($state === 3) {
@@ -289,10 +289,10 @@ class DeleteStatement extends Statement
$this->where = Condition::parse($parser, $list);
$state = 4;
} elseif ($token->type === Token::TYPE_KEYWORD) {
- $parser->error(__('Unexpected keyword.'), $token);
+ $parser->error('Unexpected keyword.', $token);
break;
} else {
- $parser->error(__('Unexpected token.'), $token);
+ $parser->error('Unexpected token.', $token);
break;
}
} elseif ($state === 4) {
@@ -300,7 +300,7 @@ class DeleteStatement extends Statement
&& $token->type === Token::TYPE_KEYWORD
) {
$parser->error(
- __('This type of clause is not valid in Multi-table queries.'),
+ 'This type of clause is not valid in Multi-table queries.',
$token
);
break;
@@ -319,7 +319,7 @@ class DeleteStatement extends Statement
$this->limit = Limit::parse($parser, $list);
$state = 6;
} elseif ($token->type === Token::TYPE_KEYWORD) {
- $parser->error(__('Unexpected keyword.'), $token);
+ $parser->error('Unexpected keyword.', $token);
break;
}
} elseif ($state === 5) {
@@ -330,7 +330,7 @@ class DeleteStatement extends Statement
$this->limit = Limit::parse($parser, $list);
$state = 6;
} elseif ($token->type === Token::TYPE_KEYWORD) {
- $parser->error(__('Unexpected keyword.'), $token);
+ $parser->error('Unexpected keyword.', $token);
break;
}
}
diff --git a/src/Statements/InsertStatement.php b/src/Statements/InsertStatement.php
index 9db1a44..1e760ff 100644
--- a/src/Statements/InsertStatement.php
+++ b/src/Statements/InsertStatement.php
@@ -196,7 +196,7 @@ class InsertStatement extends Statement
if ($token->type === Token::TYPE_KEYWORD
&& $token->value !== 'INTO'
) {
- $parser->error(__('Unexpected keyword.'), $token);
+ $parser->error('Unexpected keyword.', $token);
break;
} else {
++$list->idx;
@@ -224,7 +224,7 @@ class InsertStatement extends Statement
$this->select = new SelectStatement($parser, $list);
} else {
$parser->error(
- __('Unexpected keyword.'),
+ 'Unexpected keyword.',
$token
);
break;
@@ -233,7 +233,7 @@ class InsertStatement extends Statement
$miniState = 1;
} else {
$parser->error(
- __('Unexpected token.'),
+ 'Unexpected token.',
$token
);
break;
@@ -253,7 +253,7 @@ class InsertStatement extends Statement
if ($lastCount === $miniState) {
$parser->error(
- __('Unexpected token.'),
+ 'Unexpected token.',
$token
);
break;
diff --git a/src/Statements/ReplaceStatement.php b/src/Statements/ReplaceStatement.php
index 0e85507..d03cf5c 100644
--- a/src/Statements/ReplaceStatement.php
+++ b/src/Statements/ReplaceStatement.php
@@ -162,7 +162,7 @@ class ReplaceStatement extends Statement
if ($token->type === Token::TYPE_KEYWORD
&& $token->value !== 'INTO'
) {
- $parser->error(__('Unexpected keyword.'), $token);
+ $parser->error('Unexpected keyword.', $token);
break;
} else {
++$list->idx;
@@ -190,7 +190,7 @@ class ReplaceStatement extends Statement
$this->select = new SelectStatement($parser, $list);
} else {
$parser->error(
- __('Unexpected keyword.'),
+ 'Unexpected keyword.',
$token
);
break;
@@ -198,7 +198,7 @@ class ReplaceStatement extends Statement
$state = 2;
} else {
$parser->error(
- __('Unexpected token.'),
+ 'Unexpected token.',
$token
);
break;
diff --git a/src/Translator.php b/src/Translator.php
new file mode 100644
index 0000000..c6a1d3d
--- /dev/null
+++ b/src/Translator.php
@@ -0,0 +1,69 @@
+<?php
+
+/**
+ * Defines the localization helper infrastructure of the library.
+ *
+ * @package SqlParser
+ */
+namespace SqlParser;
+
+use MoTranslator;
+
+class Translator
+{
+ /**
+ * The MoTranslator loader object.
+ *
+ * @var MoTranslator\Loader
+ */
+ private static $loader;
+
+ /**
+ * The MoTranslator translator object.
+ *
+ * @var MoTranslator\Translator
+ */
+ private static $translator;
+
+ /**
+ * Loads transator
+ *
+ * @return void
+ */
+ public static function load()
+ {
+ if (is_null(self::$loader)) {
+ // Create loader object
+ self::$loader = new MoTranslator\Loader();
+
+ // Set locale
+ self::$loader->setlocale(
+ self::$loader->detectlocale()
+ );
+
+ // Set default text domain
+ self::$loader->textdomain('sqlparser');
+
+ // Set path where to look for a domain
+ self::$loader->bindtextdomain('sqlparser', __DIR__ . '/../locale/');
+ }
+
+ if (is_null(self::$translator)) {
+ // Get translator
+ self::$translator = self::$loader->get_translator();
+ }
+ }
+
+ /**
+ * Translates a string
+ *
+ * @param string $msgid String to be translated
+ *
+ * @return string translated string (or original, if not found)
+ */
+ public static function gettext($msgid)
+ {
+ self::load();
+ return self::$translator->gettext($msgid);
+ }
+}
diff --git a/src/common.php b/src/common.php
deleted file mode 100644
index 3575c24..0000000
--- a/src/common.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/**
- * Defines common elements used by the library.
- *
- * @package SqlParser
- */
-
-if (!function_exists('__')) {
- /**
- * Translates the given string.
- *
- * @param string $str String to be translated.
- *
- * @return string
- */
- function __($str)
- {
- return $str;
- }
-}