interfaceSqlParser
interface SqlParser
Public API: explicitly declared with
@visibility public.A lossless SQL parser configured for a grammar release and lexical settings.
Consumers depend on this contract instead of enumerating concrete parsers.
$roundTrip = static fn (\SqlParser\Parser\SqlParser $parser, string $sql): string => $parser->parse($sql)->toString();
$roundTrip instanceof \Closure // => trueMethods§
public function version(): stringReturns the configured grammar release tag.
Returns
stringTest cases 1
Called from 1
public function tokenize(string $sql): list<Token>Reads terminals, including their leading trivia and the end marker.
Parameters
$sql | string |
Returns
list<Token>Throws
SourceException When the text cannot be tokenizedTest cases 1
Called from 3
- method-call SqlFormatter\Core\Compact\Spacing::signature() packages/sql-formatter/src/Core/Compact/Spacing.php:56
- method-call SqlSemantics\Core\Ast\DialectParser::parseScript() packages/sql-semantics/src/Core/Ast/DialectParser.php:53
- method-call SqlSemantics\Core\Ast\DialectParser::parseScript() packages/sql-semantics/src/Core/Ast/DialectParser.php:69
public function parse(string $sql): NodeReads a concrete syntax tree that preserves every byte of the input.
Parameters
$sql | string |
Returns
Throws
SourceException When the text is not accepted by the grammarTest cases 1
Called from 5
- method-call SqlFormatter\Core\Compact\Renderer::render() packages/sql-formatter/src/Core/Compact/Renderer.php:46
- method-call SqlFormatter\Core\Compact\Renderer::render() packages/sql-formatter/src/Core/Compact/Renderer.php:57
- method-call SqlFormatter\Core\Formatter::format() packages/sql-formatter/src/Core/Formatter.php:36
- method-call SqlFormatter\Core\Formatter::format() packages/sql-formatter/src/Core/Formatter.php:42
- method-call SqlSemantics\Core\Ast\DialectParser::parse() packages/sql-semantics/src/Core/Ast/DialectParser.php:36
Test cases 8§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 3
Other tests reaching this symbol 5
SettingsTest::testInjectedSeparatorPrecedesLexerProbingcallsDialectTest::testCompactRulesCanProvideAnIndependentGrammarcallsDialectTest::testSyntaxRulesCanProvideAnIndependentGrammarcallsFormatterTest::testFormatUsesInjectedParserAndGrammarRolescallsPlatformTest::testParserAcceptsAnApplicationImplementationcalls
Relations§
Implemented by 3
Method calls 9
- method-call SqlFormatter\Core\Compact\Renderer::render() packages/sql-formatter/src/Core/Compact/Renderer.php:46
- method-call SqlFormatter\Core\Compact\Renderer::render() packages/sql-formatter/src/Core/Compact/Renderer.php:57
- method-call SqlFormatter\Core\Compact\Spacing::signature() packages/sql-formatter/src/Core/Compact/Spacing.php:56
- method-call SqlFormatter\Core\Formatter::format() packages/sql-formatter/src/Core/Formatter.php:36
- method-call SqlFormatter\Core\Formatter::format() packages/sql-formatter/src/Core/Formatter.php:42
- method-call SqlSemantics\Core\Ast\DialectParser::parse() packages/sql-semantics/src/Core/Ast/DialectParser.php:36
- method-call SqlSemantics\Core\Ast\DialectParser::parseScript() packages/sql-semantics/src/Core/Ast/DialectParser.php:53
- method-call SqlSemantics\Core\Ast\DialectParser::parseScript() packages/sql-semantics/src/Core/Ast/DialectParser.php:69
- method-call SqlSemantics\Core\Ast\DialectParser::version() packages/sql-semantics/src/Core/Ast/DialectParser.php:82
Type declarations 10
- type SqlFormatter\Core\Compact\Renderer packages/sql-formatter/src/Core/Compact/Renderer.php:29
- type SqlFormatter\Core\Compact\Spacing packages/sql-formatter/src/Core/Compact/Spacing.php:21
- type SqlFormatter\Core\Formatter packages/sql-formatter/src/Core/Formatter.php:24
- type SqlFormatter\Facade\DialectFactory packages/sql-formatter/src/Facade/DialectFactory.php:26
- type SqlFormatter\Facade\Formatter packages/sql-formatter/src/Facade/Formatter.php:29
- type SqlSemantics\Platform\MySql\Platform packages/sql-semantics-mysql/src/Platform.php:32
- type SqlSemantics\Platform\PostgreSql\Platform packages/sql-semantics-postgres/src/Platform.php:31
- type SqlSemantics\Platform\Sqlite\Platform packages/sql-semantics-sqlite/src/Platform.php:31
- type SqlSemantics\Core\Ast\DialectParser packages/sql-semantics/src/Core/Ast/DialectParser.php:18
- type SqlSemantics\Core\Platform packages/sql-semantics/src/Core/Platform.php:23