classDefinitionFactory
final class DefinitionFactory
Declares scanner values, fixed spellings, contextual domains and spacing for PostgreSQL 16.6 and 17.2. Source tag REL_17_2 matches pg-17.2 in resources/version.php; REL_16_6 (pg-16.6) declares a strict subset of its keywords with the same scanner rules, so both releases share these declarations.
Methods§
public function create(string $version): LexicalDefinitionComposes the selected release directly from the declarations in this file.
Parameters
$version | string |
Returns
Throws
RuntimeException When the exact release is unsupportedTest cases 18
DefinitionFactoryTest::testContextualNamesRestrictsTheDomaincallsDefinitionFactoryTest::testContextualWordPreservesExplicitCasecallsDefinitionFactoryTest::testCreateCombinesLexicalOutputAndBoundaryDecisionscallsDefinitionFactoryTest::testCreateConstructsScannerBoundaryValuesValuecallsDefinitionFactoryTest::testCreateIncludesEveryGrammarEncodingAndPartitionStrategyContextualNamecallsDefinitionFactoryTest::testCreateOffersACompleteCandidateForEverySourceValueTokenValuecallsDefinitionFactoryTest::testCreateRetainsValidSourceSpellingsAndRejectsMalformedOnesValuecallsDefinitionFactoryTest::testKeywordLexemesLeavesUnclaimedNamesAvailableToOtherDomainscallsDefinitionFactoryTest::testKeywordsKeepsSourceSpellingsBesideTheirTerminalscallsDefinitionFactoryTest::testKeywordsRejectsUnsupportedReleasescallsDefinitionFactoryTest::testLexemesRejectsAnUnreviewedVersioncallsDefinitionFactoryTest::testNamesChecksSourceDelimiterOrValueBoundariesValuecallsDefinitionFactoryTest::testNonOutputContainsParserSelectorsOnlycallsDefinitionFactoryTest::testNumbersChecksSourceDelimiterOrValueBoundariesValuecallsDefinitionFactoryTest::testStringsChecksSourceDelimiterOrValueBoundariesValuecallsDefinitionFactoryTest::testStringsRecognizesDollarDelimitersLiterallyValuecallsDefinitionFactoryTest::testSymbolsKeepMultiCharacterOperatorsIndivisiblecallsDefinitionFactoryTest::testValuesLeavesUnknownTerminalsUnclaimedcalls
Called from 1
Calls 22
- static-call SqlVersion::resolve() line 44
- new LexicalDefinition line 538
- new ChoiceLexemeGenerator line 541
- new VersionedLexemeGenerator line 542
- new VersionCase line 544
- new MatchingLexemeGenerator line 546
- method-call LexemeInput::terminal() line 547
- function-call
in_arrayline 547 - new KeywordLexemeGenerator line 548
- new ValueLexemeGenerator line 562
- new ChoiceDomain line 564
- new IdentifierDomain line 565
- new QuotedDomain line 571
- new SequenceDomain line 596
- new WordDomain line 597
- new CharacterDomain line 598
- new DollarQuotedDomain line 655
- new IntegerLexemeGenerator line 745
- new OperatorDomain line 851
- new HashBoundLexemeGenerator line 893
- new FixedLexemeGenerator line 897
- new CombinedSpacingRule line 1017
Test cases 24§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 18
DefinitionFactoryTest::testContextualNamesRestrictsTheDomaincallsDefinitionFactoryTest::testContextualWordPreservesExplicitCasecallsDefinitionFactoryTest::testCreateCombinesLexicalOutputAndBoundaryDecisionscallsDefinitionFactoryTest::testCreateConstructsScannerBoundaryValuesValuecallsDefinitionFactoryTest::testCreateIncludesEveryGrammarEncodingAndPartitionStrategyContextualNamecallsDefinitionFactoryTest::testCreateOffersACompleteCandidateForEverySourceValueTokenValuecallsDefinitionFactoryTest::testCreateRetainsValidSourceSpellingsAndRejectsMalformedOnesValuecallsDefinitionFactoryTest::testKeywordLexemesLeavesUnclaimedNamesAvailableToOtherDomainscallsDefinitionFactoryTest::testKeywordsKeepsSourceSpellingsBesideTheirTerminalscallsDefinitionFactoryTest::testKeywordsRejectsUnsupportedReleasescallsDefinitionFactoryTest::testLexemesRejectsAnUnreviewedVersioncallsDefinitionFactoryTest::testNamesChecksSourceDelimiterOrValueBoundariesValuecallsDefinitionFactoryTest::testNonOutputContainsParserSelectorsOnlycallsDefinitionFactoryTest::testNumbersChecksSourceDelimiterOrValueBoundariesValuecallsDefinitionFactoryTest::testStringsChecksSourceDelimiterOrValueBoundariesValuecallsDefinitionFactoryTest::testStringsRecognizesDollarDelimitersLiterallyValuecallsDefinitionFactoryTest::testSymbolsKeepMultiCharacterOperatorsIndivisiblecallsDefinitionFactoryTest::testValuesLeavesUnknownTerminalsUnclaimedcalls
Other tests reaching this symbol 6
MySqlProviderTestcallsGenerationContextTestcallsLexicalGrammarTestcallsSqlGeneratorFactoryTestcallsPostgreSqlProviderTestcallsSqliteProviderTestcalls