classWindowNameLexemeGenerator
final class WindowNameLexemeGenerator
implements LexemeGenerator
tokenize.c getToken excludes INDEXED although parse.y idj allows it as a name. Quoting that spelling keeps WINDOW/OVER recognized by their scanner lookahead.
Methods§
public function __construct(private LexemeGenerator $keywords)Keeps spellings in the exact release's keyword registrations.
Parameters
$keywords | LexemeGenerator |
Test cases 7
WindowNameLexemeGeneratorTest::testGeneratePropagatesMissingRegistrationDatacoversWindowNameLexemeGeneratorTest::testGenerateQuotesIndexedOnlyWhereWindowLookaheadRequiresAnIdentifier#ordinary indexedcoversWindowNameLexemeGeneratorTest::testGenerateQuotesIndexedOnlyWhereWindowLookaheadRequiresAnIdentifier#other namecoversWindowNameLexemeGeneratorTest::testGenerateQuotesIndexedOnlyWhereWindowLookaheadRequiresAnIdentifier#overcoversWindowNameLexemeGeneratorTest::testGenerateQuotesIndexedOnlyWhereWindowLookaheadRequiresAnIdentifier#standalonecoversWindowNameLexemeGeneratorTest::testGenerateQuotesIndexedOnlyWhereWindowLookaheadRequiresAnIdentifier#windowcoversWindowNameLexemeGeneratorTest::testGenerateRetainsNonApplicabilitycovers
public function generate(LexemeInput $input): ?LexemeCandidatesQuotes only an INDEXED name immediately following WINDOW or OVER.
Parameters
$input | LexemeInput |
Returns
Test cases 8
WindowNameLexemeGeneratorTest::testGeneratePropagatesMissingRegistrationDatacovers and callsWindowNameLexemeGeneratorTest::testGenerateQuotesIndexedOnlyWhereWindowLookaheadRequiresAnIdentifiercallsWindowNameLexemeGeneratorTest::testGenerateQuotesIndexedOnlyWhereWindowLookaheadRequiresAnIdentifier#ordinary indexedcoversWindowNameLexemeGeneratorTest::testGenerateQuotesIndexedOnlyWhereWindowLookaheadRequiresAnIdentifier#other namecoversWindowNameLexemeGeneratorTest::testGenerateQuotesIndexedOnlyWhereWindowLookaheadRequiresAnIdentifier#overcoversWindowNameLexemeGeneratorTest::testGenerateQuotesIndexedOnlyWhereWindowLookaheadRequiresAnIdentifier#standalonecoversWindowNameLexemeGeneratorTest::testGenerateQuotesIndexedOnlyWhereWindowLookaheadRequiresAnIdentifier#windowcoversWindowNameLexemeGeneratorTest::testGenerateRetainsNonApplicabilitycovers and calls
Calls 8
- method-call LexemeGenerator::generate() line 35
- method-call LexemeInput::terminal() line 36
- function-call
in_arrayline 37 - new LexemeCandidates line 40
- new LexemeSequence line 42
- function-call
array_mapline 42 - new Lexeme line 42
- function-call
str_replaceline 43
Private surface 1§
Implementation details, listed for orientation only.
private LexemeGenerator $keywordsTest cases 15§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 8
WindowNameLexemeGeneratorTest::testGeneratePropagatesMissingRegistrationDatacovers and callsWindowNameLexemeGeneratorTest::testGenerateQuotesIndexedOnlyWhereWindowLookaheadRequiresAnIdentifiercallsWindowNameLexemeGeneratorTest::testGenerateQuotesIndexedOnlyWhereWindowLookaheadRequiresAnIdentifier#ordinary indexedcoversWindowNameLexemeGeneratorTest::testGenerateQuotesIndexedOnlyWhereWindowLookaheadRequiresAnIdentifier#other namecoversWindowNameLexemeGeneratorTest::testGenerateQuotesIndexedOnlyWhereWindowLookaheadRequiresAnIdentifier#overcoversWindowNameLexemeGeneratorTest::testGenerateQuotesIndexedOnlyWhereWindowLookaheadRequiresAnIdentifier#standalonecoversWindowNameLexemeGeneratorTest::testGenerateQuotesIndexedOnlyWhereWindowLookaheadRequiresAnIdentifier#windowcoversWindowNameLexemeGeneratorTest::testGenerateRetainsNonApplicabilitycovers and calls
Other tests reaching this symbol 7
MySqlProviderTestcallsPostgreSqlProviderTestcallsSqlGeneratorFactoryTestcallsGenerationContextTestcallsDefinitionFactoryTestcallsLexicalGrammarTestcallsSqliteProviderTestcalls