classProduction
final class Production
Restricted visibility: declared "@visibility root". Code outside that scope must not name this declaration.
Represents a single production (right-hand side) in a grammar rule.
A production is a sequence of symbols that a non-terminal can expand to.
Properties§
public list<Symbol> $symbolspublic ?int $ordinal = nullpublic ?string $origin = nullMethods§
public function __construct(
public list<Symbol> $symbols,
public ?int $ordinal = null,
public ?string $origin = null,
)Parameters
$symbols | list<Symbol> | Sequence of terminal and non-terminal symbols |
$ordinal | ?int | |
$origin | ?string |
public function hasTerminal(string $value): boolReports whether one of the symbols is a given terminal.
Parameters
$value | string | Terminal to look for |
Returns
bool True when the production writes that terminalpublic function hasNonTerminal(string $value): boolReports whether one of the symbols expands to a given rule.
Parameters
$value | string | Non-terminal to look for |
Returns
bool True when the production expands to that rulepublic function hasAnyTerminal(): boolReports whether the production writes anything at all by itself.
A production made only of non-terminals writes nothing until those are expanded, which is what tells a rule apart from one that anchors on a keyword.
Returns
bool True when at least one symbol is a terminalpublic function terminalAt(int $index): Terminal|nullAnswers the symbol at one position when it is a terminal.
Parameters
$index | int | Position in the production |
Returns
Terminal|null Terminal at that position, or null when it is absent or a non-terminalpublic function nonTerminalAt(int $index): NonTerminal|nullAnswers the symbol at one position when it is a non-terminal.
Parameters
$index | int | Position in the production |
Returns
NonTerminal|null Non-terminal at that position, or null when it is absent or a terminalpublic function nonTerminalNames(): list<string>Answers the rules the production expands to, in order.
Returns
list<string> Non-terminal names in the order they are writtenTest cases 362§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 14
ProductionTest::testExposesAnEmptySymbolListForAnEmptyProductioncallsProductionTest::testExposesTheSymbolsItWasBuiltFromcallsProductionTest::testHasAnyTerminalRejectsAProductionMadeOnlyOfRulescallsProductionTest::testHasAnyTerminalReportsAProductionThatWritesSomethingOfItsOwncallsProductionTest::testHasNonTerminalFindsARuleTheProductionExpandsTocallsProductionTest::testHasNonTerminalRejectsARuleTheProductionDoesNotExpandTocallsProductionTest::testHasTerminalFindsATerminalTheProductionWritescallsProductionTest::testHasTerminalRejectsATerminalTheProductionDoesNotWritecallsProductionTest::testNonTerminalAtAnswersNothingForATerminalOrAPositionPastTheEndcallsProductionTest::testNonTerminalAtAnswersTheRuleAtThatPositioncallsProductionTest::testNonTerminalNamesListsTheRulesInTheOrderTheyAreWrittencallsProductionTest::testSymbolsAreAccessiblecallsProductionTest::testTerminalAtAnswersNothingForANonTerminalOrAPositionPastTheEndcallsProductionTest::testTerminalAtAnswersTheTerminalAtThatPositioncalls
Other tests reaching this symbol 348
BisonGrammarCompilerTest::testCompilecallsLemonGrammarCompilerTest::testCompilecallsByteChoicesTestcallsBytePlanCompilerTest::testCompileMapsTheHeaderIntoTheAllowedExpansionRangecallsBytePlanCompilerTest::testCompileResolvesChoicesIntoInspectableReusableInstructionscallsBytePlanCompilerTest::testCompileSeparatesProductionChoicesFromLexemesAndCompletesAnOddInputcallsBytePlanEncoderTest::testEncodeMakesOpenLexicalChoicesTheWayTheCompilerReadsThePaddingcallsBytePlanEncoderTest::testEncodeStopsRecordingLexicalChoicesAtTheFirstNullAnswercallsBytePlanEncoderTest::testEncodeWritesBytesTheCompilerDecodesToTheRecordedChoicescallsBytePlanEncoderTest::testEncodeWritesTheHeaderRelativeToTheConstraintsMinimumAndDefaultMaximumcallsPlanBuilderTest::testBuildFreezesScopedValuesAndDefaultsWhenChoiceBytesRunOutcallsPlanBuilderTest::testBuildPreservesEmptyMarkerCandidatesWithoutLosingNonEmptyCompletioncallsPlanBuilderTest::testBuildPreservesRepeatedProductionAndLexemeConstraintscallsPlanBuilderTest::testBuildPropagatesMissingCandidateFailuresWithoutRetryingcallsPlanBuilderTest::testBuildReportsAnUnknownRequestedRulecallsPlanBuilderTest::testBuildReservesAllPendingSiblingsAndRetainsTheOriginalOrdinalcallsPlanBuilderTest::testBuildUsesTheSameContextualRewriteAndPinsItsCompleteCandidatecallsPlanBuilderTest::testMinimumExpansionsIncludesTheConstrainedDescendantBeforeDrawingTheBudgetcallsPlanBuilderTest::testMinimumExpansionsIncludesTheSelectedRootAlternativeBeforeAllocatingInputBudgetcallsPlanBuilderTest::testMinimumExpansionsKeepsTheNonEmptyRequirementSeparateFromNullabilitycallsPlanBuilderTest::testMinimumExpansionsRetainsNonEmptyCostsAndTheUnreachableSentinelForRootPatternscallsPlanBuilderTest::testRootResolvesOnlyAnExplicitReleaseAliascallsCoverageSnapshotStoreTestcallsGrammarCoverageInventoryTest::testDifferencesRecordsBothRemovedAndTransformedOriginalProductionscallsGrammarCoverageInventoryTest::testIdKeepsOriginalOrdinalAfterFilteringAndChangesForRewrittenRhscallsGrammarCoverageInventoryTest::testInventoryEntriesRetainOriginalIdentityAndExcludeUnreachableRulesFromTheDenominatorcallsGrammarCoverageInventoryTest::testProductionIdsDistinguishRulesOrdinalsAndGrammarProfilescallsGrammarCoverageInventoryTest::testReachableRulesCanInspectAPlanRootWithoutChangingTheInventorycallsGrammarCoverageInventoryTest::testReachableRulesIncludesRecursionAndEmptyAlternativesButSeparatesUnrelatedRulescallsGrammarCoverageInventoryTest::testRhsDistinguishesTheSymbolKindAndIncludesEmptyProductioncallsGrammarCoverageTest::testBeginAttemptRetainsAnEmptyAttemptBeforeAnyProductionIsSelectedcallsGrammarCoverageTest::testBeginGenerationReplacesThePreviousSuccessfulTracecallsGrammarCoverageTest::testCommitAttemptAndEndGenerationCommitOnlySuccessfulPathscallsGrammarCoverageTest::testDiscardAttemptPreservesFailedReachabilitycallsGrammarCoverageTest::testEndGenerationPreservesFailureBeforeAnyAttemptWasOpenedcallsGrammarCoverageTest::testEndGenerationSavesUnsavedDiscoveriesEveryHundredGenerationscallsGrammarCoverageTest::testFailedReachabilityAndLaterEmissionAreSavedAsSeparateDiscoveriescallsGrammarCoverageTest::testFlushRestoresOnlyCumulativeHistoryAndPreservesCurrentObservationscallsGrammarCoverageTest::testHooksWithoutAGenerationKeepTheTraceEmptycallsGrammarCoverageTest::testLastGenerationStartsEmptyWithoutStoragecallsGrammarCoverageTest::testMergeIsIdempotentAndDoesNotCopyHistoricalCounterscallsGrammarCoverageTest::testMergePreservesDisjointHistoryAndDoesNotResaveIdenticalHistorycallsGrammarCoverageTest::testMergeRejectsChangedImplementationRevisionscallsGrammarCoverageTest::testReadingAMemorySnapshotDoesNotSaveUnflushedObservationscallsGrammarCoverageTest::testRecordIncludesOccurrenceParentsAndOriginalPositionscallsGrammarCoverageTest::testRecordOutputExposesCandidateAndBoundaryDecisionscallsGrammarCoverageTest::testRecordSequenceKeepsTransformedSelectionsOutOfPreservedOutputCoveragecallsGrammarCoverageTest::testRegisterLeavesOldHistoryWhenTheImplementationChangescallsGrammarCoverageTest::testResetKeepsFlushedHistoryAndClearsTraceAndCurrentCounterscallsGrammarCoverageTest::testRestoreRejectsCorruptHistoryOnEveryRegistrationAttemptWithoutOverwritingItcallsGrammarCoverageTest::testSnapshotPublishesTheRegisteredInventoryAndCurrentRunIdentitycallsGrammarCoverageTest::testSnapshotSeparatesReachedFromEmittedAndKeepsTheFullDenominatorcallsSnapshotValidationTest::providerMalformedHistoriescallsSnapshotValidationTest::testCompatibleRejectsAnUntrustedInventoryDigestcallsSnapshotValidationTest::testCompatibleRejectsEmittedProductionsThatWereNeverReachedcallsSnapshotValidationTest::testCompatibleRejectsUnknownProductionIdscallsSnapshotValidationTest::testCompatibleRequiresEveryIdentityComponentcallsSnapshotValidationTest::testDecodeRestoresOnlyWellFormedSnapshotDatacallsCompletionWitnessTest::testChoicesCachesBothOutputPossibilitiesUnderEachDistinctPatterncallsCompletionWitnessTest::testCompleteBoundsTheOptionalProbeWithoutClaimingImpossibilitycallsCompletionWitnessTest::testCompleteWalksOccurrencePatternsAndPreservesPendingOutputcallsCompletionWitnessTest::testCompleteYieldsToTheSolverWhenAGreedyPathNeedsAnotherChoicecallsCompletionWitnessTest::testRememberCachesOnlyTheSuccessfulSuffixAndPreservesExactMinimumIndependencecallsPatternProductionsTest::testMatchingSeparatesPatternsAndRuleScopesWhenReusingItsCachecallsPatternProductionsTest::testMatchingUsesSourceSymbolNamesInSpecializedProductionscallsPatternProductionsTest::testSourceRuleAndMatchingUseOriginalNamesAndOrdinalscallsCompletionCostsTest::testAffordableRetainsExactlyTheAlternativesThatCanFinishWithinBudgetcallsCompletionCostsTest::testCompletionAllowsAnEmptyProductionWhenItsSiblingEmitsOutputcallsCompletionCostsTest::testHasTerminalOutputDistinguishesEmittedTerminalsFromMarkersAndPendingRulescallsCompletionCostsTest::testRuleFindsFiniteCompletionsThroughNullableRecursioncallsCompletionCostsTest::testSequenceCountsMarkersAsEmptyAndReservesAllSiblingscallsCompletionFrontierTest::testOfferPrunesOverBudgetAndEquivalentMoreExpensiveStatescallsCompletionFrontierTest::testOfferRemembersAlreadyEmittedOutputBeforeErasingTerminalscallsCompletionFrontierTest::testTakeOrdersAffordableCompletionsByEstimatedCostcallsCompletionMemoTestcallsCompletionReductionTest::testReduceKeepsBothIndependentOutputPossibilitiesAndTheirExactCostscallsConstrainedCompletionTest::testCompleteCachesNormalizedPendingFormsWithoutLosingAlreadyEmittedOutputcallsConstrainedCompletionTest::testMinimumCountsOnlyTheUnconsumedPatternSuffixcallsConstrainedCompletionTest::testMinimumIncludesDescendantsSiblingsAndRecursiveOccurrenceConstraintscallsConstrainedCompletionTest::testSearchRetainsAFirstWitnessAsFeasibilityInsteadOfAMinimumProofcallsConstrainedCompletionTest::testWithinRejectsARequiredOutputThatIndependentEmptySubtreesCannotSupplycallsConstrainedCompletionTest::testWitnessCachesOnlyTheChosenSuffixAndKeepsMinimumQueriesIndependentcallsConstraintDependenciesTest::testAffectedFindsRecursiveAncestorsAndDropsConsumedConstraintscallsConstraintDependenciesTest::testAffectedPropagatesSourceConstraintsToEverySpecializationAndItsParentscallsDerivationNodeTestcallsDerivationTest::testAffordableAcceptsAnAlternativeThatExactlyUsesTheBudgetcallsDerivationTest::testAffordableAllowsATerminalOnlyProductionWithNoExpansionBudgetLeftcallsDerivationTest::testAffordableCompletionRetainsOnlyProductionsWithAnAffordableNonEmptyContinuationcallsDerivationTest::testAffordableKeepsAnAlternativeThatStillLeavesRoomToFinishcallsDerivationTest::testAffordableRejectsAnAlternativeThatCannotFitAfterTheRemaindercallsDerivationTest::testAffordableRejectsARemainderThatExceedsTheWholeBudgetcallsDerivationTest::testAffordableReturnsAListAfterDiscardingAnOverBudgetAlternativecallsDerivationTest::testAlternativesRespectsTheOccurrenceAndRejectsUnrealizableProductionscallsDerivationTest::testCompletableKeepsAnEmptyAlternativeWhenTheRemainingSiblingSatisfiesNonEmptycallsDerivationTest::testFirstNonTerminalAnswersNothingWhenOnlyTerminalsAreLeftcallsDerivationTest::testFirstNonTerminalAnswersTheLeftmostPositionTheWalkActsOncallsDerivationTest::testOfCountsOccurrencesAcrossSpecializedCopiesOfTheSameRulecallsDerivationTest::testOfOffersTheCandidatesToTheChoicePolicycallsDerivationTest::testOfReportsAPlanNoAlternativeCanSatisfycallsDerivationTest::testOfReportsASymbolTheGrammarDeclaresNoRuleForcallsDerivationTest::testOfRewritesTheStartSymbolUntilOnlyTerminalsAreLeftcallsDerivationTest::testOfSelectsTerminationPolicyFromThePlancallsDerivationTest::testOfStillRejectsAnEntirelyForcedPlanWhoseDescendantCannotSatisfyNonEmptycallsDerivationTest::testSelectProductionChoosesFreelyWhileThePlanStillAllowsDepthcallsDerivationTest::testSelectProductionDrawsUniformlyAmongTheEligibleAlternativesBeforeTheThresholdcallsDerivationTest::testSelectProductionTakesTheShortestAlternativeOncePastThePlanDepthcallsDerivationTraceTest::testExpandPreservesRuleAncestorsAndProductionOrdinalscallsDerivationTraceTest::testTerminalsRetainsASelectedEmptyProductioncallsTerminationAnalyzerTest::testComputesAViewThatExcludesUnsupportedTerminalscallsTerminationAnalyzerTest::testEstimateProductionLengthEmptycallsTerminationAnalyzerTest::testEstimateProductionLengthMixedcallsTerminationAnalyzerTest::testEstimateProductionLengthNonTerminalscallsTerminationAnalyzerTest::testEstimateProductionLengthTerminalscallsTerminationAnalyzerTest::testEstimateProductionStepsBreaksARecursiveLengthTiecallsTerminationAnalyzerTest::testEstimateProductionStepsRejectsUnsupportedTerminalcallsTerminationAnalyzerTest::testGetMinLengthChoosesShortestAlternativecallsTerminationAnalyzerTest::testGetMinLengthEmptyProductioncallsTerminationAnalyzerTest::testGetMinLengthNestedRulescallsTerminationAnalyzerTest::testGetMinLengthTerminalOnlycallsTerminationAnalyzerTest::testIsProductionViableAcceptsAProductionSomeDerivationFinishescallsTerminationAnalyzerTest::testIsProductionViableRejectsAProductionThatCanNeverBeFinishedcallsTerminationAnalyzerTest::testPropagatesLexicalImpossibilityThroughNonTerminalscallsTerminationAnalyzerTest::testTreatsUnknownSupportedNonTerminalAsOneTokencallsTerminationCostTest::testOfCountsARuleThatCanOnlyExpandIntoItselfAsUnfinishablecallsTerminationCostTest::testOfCountsTheTokensOfTheCheapestAlternativecallsTerminationCostTest::testOfProductionAddsUpWhatEachSymbolCostscallsTerminationCostTest::testOfProductionCountsExpansionsWhenThatIsWhatAStepIscallsTerminationCostTest::testOfRefusesATokenNothingCanWritecallsTerminationCostTest::testOfTreatsASymbolWithNoRuleAsATokencallsTerminationCostTest::testSettledAnswersTheLeastEveryRuleCanCostcallsTerminationCostTest::testSumRefusesASequenceCarryingATokenNothingCanWritecallsTokenGeneratorTest::testDeriveRetainsOriginalRuleIdentityForRepeatedChoicescallsTokenGeneratorTest::testGenerateCanChooseNullableChildrenWhenAnotherSiblingProvidesOutputcallsTokenGeneratorTest::testGenerateReservesVisibleOutputWithoutConsultingLexicalHandlerAvailabilitycallsTokenGeneratorTest::testMinimumExpansionsIncludesEveryPlannedListItemcallsTokenGeneratorTest::testMinimumExpansionsUsesTheCurrentRootPlanAndExplicitBudgetcallsTokenGeneratorTest::testPrepareKeepsPlansAndUnconstrainedCallsIndependentcallsLexemeSequenceTestcallsCandidateResolverTestcallsGrammarCompilerTest::testCompileAppliesProductionConditionsToEachListItemcallsGrammarCompilerTest::testCompileContradictoryProductionConditionsAreRejectedcallsGrammarCompilerTest::testCompileListItemsPreserveOutputOrderForBothRecursionDirectionscallsGrammarCompilerTest::testHasChildrenConditionsPruneIncompatibleProductionscallsGrammarCompilerTest::testHasChildrenRejectsARequiredRoleAbsentFromTheProductioncallsGrammarCompilerTest::testItemRejectsNullableAndBranchingRecursionForOrderedListscallsGrammarCompilerTest::testItemSupportsUnseparatedListsButRejectsRecursionBetweenFieldscallsGrammarCompilerTest::testRuleDoesNotShareACompiledSubtreeBetweenDifferentLexicalScopescallsGrammarCompilerTest::testRuleMemoizesRecursiveScopesBeforeWalkingTheirChildrencallsGrammarCompilerTest::testSymbolsApplyChildConditionsToARecursiveListTailcallsGrammarCompilerTest::testSymbolsKeepInfeasibleBranchesFromInvalidatingOtherAlternativescallsGrammarCompilerTest::testSymbolsPreserveInheritedRulesWhenSelectingAnOperandcallsGrammarCompilerTest::testValidateAcceptsNestedChildAndListDeclarationscallsPreparedGrammarTest::testRestoreKeepsOriginalOrdinalsAndAncestorIdentitycallsPreparedGrammarTest::testRestoreRetainsTheLexicalScopeOfEachSelectedProductioncallsSqlGeneratorTest::testGenerateAllowsEmptyOutputWhenThePlanAllowsItcallsSqlGeneratorTest::testGenerateClearsPreviousGrammarTraceBeforeALexicalPlancallsSqlGeneratorTest::testGenerateClosesCoverageAfterARejectedEmptyLexicalResultcallsSqlGeneratorTest::testGenerateKeepsRewrittenSourcesReachedWithoutCreditingTheirOutputcallsSqlGeneratorTest::testGeneratePreservesTheFirstLexicalFailureWithoutRetryingcallsSqlGeneratorTest::testGenerateRecordsACompleteCoverageObservationcallsSqlGeneratorTest::testGenerateRejectsUnexpectedEmptyOutputWithoutRetryingcallsSqlGeneratorTest::testGenerateReplacesGrammarCoverageWithTheLatestLexicalTracecallsSqlGeneratorTest::testGenerateReportsOnlyTheLatestRewrittenDerivationcallsSqlGeneratorTest::testGenerateReusesCompletionAnalysisAcrossDifferentPlanscallsSqlGeneratorTest::testGenerateUsesExplicitRulesAndSuppliedParserSemanticscallsSqlGeneratorTest::testGenerateUsesTheGrammarEntryPointWithoutDialectKnowledgecallsSqlGeneratorTest::testGenerateUsesTheSuppliedVersionSpecificRuleResolvercallsSqlGeneratorTest::testPlannerBindsTheSameGrammarEntryAndFreezesEveryChoicecallsSqlGeneratorTest::testRealizeOffersTheWholeZeroBasedCandidateRangecallsSqlGeneratorTest::testRealizeRetainsTheActualTerminalAndLexicalTracecallsTerminalSequenceTest::testOccurrencesAfterRewritingStillDescribeTheOriginalSelectioncallsTerminalSequenceTest::testRangeAndOccurrencesRetainEmptyAndNestedProductionscallsGrammarTest::testExposesTheStartSymbolAndRuleMapcallsGrammarTest::testIdentifiedAssignsOriginalOrdinalsBeforeFilteringcallsGrammarTest::testIdentifiedPreservesTheSourceAndEveryExistingProductionIdentitycallsGrammarTest::testSourceOrdinalUsesAdaptedIndicesUntilAGrammarIsSpecializedcallsGrammarTest::testSourceRuleSurvivesSerializationAndIdentificationcallsProductionRuleTest::testAlternativescallsProductionRuleTest::testExposesItsLeftHandSideAndAlternativescallsTerminalInventoryTest::testDeduplicatesAndSortsWithoutIncludingDefinedRulescallsTerminalInventoryTest::testFromGrammarNamesEveryTerminalTheRulesReachcallsTerminalInventoryTest::testIncludesDeclaredTerminalsAndUnknownLexerSymbolscallsGenerationContextTest::testBindsTheRequestedReleaseAndPreservesTheGrammarStartcallsGenerationContextTest::testLeavesThePlanInControlOfNullableProductionChoicescallsGenerationContextTest::testReportsAnUnknownNonterminalWithoutTreatingItAsSqlTextcallsGenerationContextTest::testReportsMissingLexicalImplementationWhenTheTerminalIsActuallyGeneratedcallsGenerationContextTest::testUsesTheGrammarStartWhenThePlanDoesNotSpecifyOnecallsAlterDatabaseRuleTest::testRewriteAddsTheOptionIntroducerOnlyForAnOmittedDatabasecallsAlterDatabaseRuleTest::testRewriteKeepsAnExplicitDatabaseNamedEncryptioncallsAlterDatabaseRuleTest::testRewriteKeepsOtherLegacyAlterCommandscallsAlterDatabaseRuleTest::testRewriteRepairsTheLegacyAlterProductioncallsAlterDatabaseRuleTest::testRewriteUsesTheConfiguredDefaultTokencallsConcatenationRuleTest::providerOtherProductionscallsConcatenationRuleTest::testRewritePreservesNestedOperandsAndPrecedencecallsExpressionGroupingRuleTest::testRewriteGroupsARestrictedOperandInsideTheGeneralExpressionFamilycallsExpressionGroupingRuleTest::testRewritePreservesBothNestedOperandsOfANonAssociativeComparisoncallsExpressionGroupingRuleTest::testRewritePreservesTopLevelExpressionsAndUnrelatedNestedRulescallsExpressionGroupingRuleTest::testRewriteUsesTheConfiguredDialectTerminalNamescallsQuantifiedComparisonRuleTest::testRewriteRestrictsNullSafeEqualityToScalarComparisonscallsTableValueConstructorRuleTest::providerRowscallsTableValueConstructorRuleTest::testRewriteCompletesBothRowsOfAnInsertSetOperationcallsTableValueConstructorRuleTest::testRewritePreservesAbsentRowsAndMissingValueProductionscallsTableValueConstructorRuleTest::testRewriteRecordsEmptyProductionAndReplacementProvenancecallsFlushExportRuleTest::testRewriteAddsATableToAnEmptyExportListAndPreservesItsProvenancecallsFlushExportRuleTest::testRewriteLeavesGlobalReadLocksValidWithoutTablescallsGeneratedColumnRuleTest::testRewriteConvertsSerialOnlyOnGeneratedFieldscallsGeneratedColumnRuleTest::testRewritePreservesOrdinarySerialFieldsAndTheirDefaultscallsGeneratedColumnRuleTest::testRewriteRemovesOnlyAttributesForbiddenOnGeneratedFieldscallsInstanceActionRuleTest::testRewriteRecognizesTheTwoCheckedRedoNamesButLeavesReloadChannelsAlonecallsInstanceActionRuleTest::testRewriteResolvesTheMasterKeyEngineAsAContextualDomaincallsIntegerContextRuleTest::testMappedKeepsCompatiblePlanOccurrenceIdentitycallsIntegerContextRuleTest::testOptionsBoundsKeyBlockSizeInOldAndModernGrammarscallsIntegerContextRuleTest::testOptionsKeepsNumericLimitsWithinTheirGrammarScopecallsIntegerContextRuleTest::testOptionsLimitsOnlyTheDeclaredNumericOptioncallsIntegerContextRuleTest::testRewriteConstrainsEachBooleanReplicationOptioncallsIntegerContextRuleTest::testRewriteConstrainsOnlyIdentifierFormSizesAndResetIndicescallsIntegerContextRuleTest::testRewriteConstrainsTheCheckedReplicationFlagcallsIntegerContextRuleTest::testRewriteKeepsTheDefaultStatisticsOptioncallsIntegerContextRuleTest::testRewritePreservesDefaultAndRestrictsOnlyTheNumericTernaryOptioncallsIntegerContextRuleTest::testRewritePreservesEmptyResetOptionscallsIntegerContextRuleTest::testRewriteReplacesOnlyDiagnosticDecimalAlternativescallsIntegerContextRuleTest::testWeightStringLengthRestrictsOnlyTheDeclaredLengthcallsIntegerContextRuleTest::testYearWidthConstrainsOnlyExplicitYearWidthscallsLoadSourceCountRuleTest::testRewriteConstrainsOnlyTheCountClausecallsUniqueOptionRuleTest::testRewriteRemovesTheDuplicateSeparatorAndRetainsOtherCategoriescallsFieldListRuleTest::providerListscallsWindowFrameRuleTest::testRankClassifiesEndpointsWithoutTreatingOffsetExpressionsAsSeparateBoundscallsWindowFrameRuleTest::testRankRetainsTheFiveSourceBoundaryCategoriescallsWindowFrameRuleTest::testRewriteChangesOnlyRowsFramesWithAnIntervalBoundarycallsWindowFrameRuleTest::testRewriteDoesNotUseIntervalsFromNestedFramesOrOffsetExpressionscallsWindowFrameRuleTest::testRewriteKeepsAnAbsentFrameAndUnboundedKeepsAnAbsentBoundarycallsWindowFrameRuleTest::testRewriteLeavesAnEmptyFrameUnchangedcallsWindowFrameRuleTest::testRewritePreservesValidBoundariesAndRepairsInvalidOrderingcallsWindowFrameRuleTest::testRewriteReplacesAnEarlierEndAndRetainsAValidFramecallsWindowFrameRuleTest::testUnboundedReplacesTheEntireEndpointAndKeepsItsScopecallsStartRuleTest::testRewriteEnablesTheIoThreadOnlyWhenAuthenticationRequiresItcallsRequiredAliasRuleTest::testRewriteInsertsAnAliasBeforeTheDerivedColumnListcallsRequiredAliasRuleTest::testRewriteKeepsTheCallerSelectedAliascallsRewriteDefinitionsTest::testCreateBindsTheReleaseSpecificDefaultTokencallsRewriteDefinitionsTest::testCreateComposesTheDeclaredSourceRulescallsRoleGrantRuleTest::testRewriteChangesPrivilegesToRolesOnlyWithoutAnOnTargetcallsRoleGrantRuleTest::testRewriteKeepsAPrivilegeGrantWithAnExplicitTargetcallsRoleGrantRuleTest::testRewritePreservesARoleNameButRemovesItsInvalidColumnListcallsRoleGrantRuleTest::testRewriteRemovesAHostOnlyWhenTheRoleIsUsedAsAPrivilegecallsRoleGrantRuleTest::testRewriteRemovesColumnListsFromRoutinePrivilegescallsSetNamesRuleTest::testRewriteRepairsColonEqualsWithoutChangingOtherAssignmentscallsSetNamesRuleTest::testRewriteReplacesTheEntireErrorProductionWithoutTouchingAdjacentOptionscallsSetNamesRuleTest::testRewriteUsesTheConfiguredDefaultTokencallsTransactionCompletionRuleTest::testRewritePreservesRollbackToSavepointcallsTransactionCompletionRuleTest::testRewritePreservesValidCompletionsAndSeparatesChainFromReleasecallsSqlGeneratorFactoryTest::testCreatePreservesTheGrammarEntryPointAndBindsLexicalDefinitionscallsSqlGeneratorFactoryTest::testCreateRealizesTheDocumentedSelectExamplecallsStartRuleResolverTest::testStartSymbolForFallsBackToTheEntryPointOfTheReleaseItWasAskedOfcallsStartRuleResolverTest::testStartSymbolForHandsBackARequestNothingMatchescallsMySqlGrammarTestcallsMySqlProviderTestcallsGenerationContextTest::testBindsTheRequestedReleaseAndPreservesTheGrammarStartcallsGenerationContextTest::testLeavesThePlanInControlOfNullableProductionChoicescallsGenerationContextTest::testReportsAnUnknownNonterminalWithoutTreatingItAsSqlTextcallsGenerationContextTest::testReportsMissingLexicalImplementationWhenTheTerminalIsActuallyGeneratedcallsGenerationContextTest::testUsesTheGrammarStartWhenThePlanDoesNotSpecifyOnecallsIdentityOptionRuleTest::testRewriteKeepsSequenceOptionsWithinTheirOwningContextcallsIdentityOptionRuleTest::testRewriteLeavesTheDedicatedRestartAlternativeUntouchedcallsCopySourceRuleTest::testRewritePreservesCopyFromStdinWithoutProgramcallsCopySourceRuleTest::testRewriteReplacesProgramStdinAndRemovesOnlyDirectCopyToWherecallsExpressionGroupingRuleTest::testRewriteGroupsARestrictedOperandInsideTheGeneralExpressionFamilycallsExpressionGroupingRuleTest::testRewritePreservesBothNestedOperandsOfANonAssociativeComparisoncallsExpressionGroupingRuleTest::testRewritePreservesTopLevelExpressionsAndUnrelatedNestedRulescallsExpressionGroupingRuleTest::testRewriteUsesTheConfiguredDialectTerminalNamescallsFetchWithTiesRuleTest::testOrderedPlacesOrderingBeforeOffsetAndFetchcallsFetchWithTiesRuleTest::testOrderedPlacesTheNewSortClauseBeforeAnExistingLockingClausecallsFetchWithTiesRuleTest::testPlpgsqlFetchDoesNotBorrowOrderingFromANestedSelectcallsFetchWithTiesRuleTest::testPlpgsqlOrderingDoesNotSatisfyANestedSelectcallsFetchWithTiesRuleTest::testRewriteAddsOrderingForTheSameQuerycallsGeneratedColumnRuleTest::testRewritePreservesOtherColumnConstraintscallsGeneratedColumnRuleTest::testRewriteRequiresAlwaysForExpressionsAndPreservesIdentityModescallsHashPartitionBoundRuleTest::testRewriteCompletesBothBoundsAndPreservesTheOriginalValuecallsHashPartitionBoundRuleTest::testRewritePreservesTheFirstTwoValuesAndSurroundingStatementscallsLimitOffsetRuleTest::testRewriteChangesOnlyTheDiagnosticCommacallsLimitOffsetRuleTest::testRewriteRetainsAnExistingSeparateOffsetcallsAliasRuleTest::testRewriteMakesAliasesExplicitAndRetainsOriginalSubtreescallsAliasRuleTest::testRewritePreservesRelationsWithoutAnAliasAndUnrelatedNamescallsOperatorArgumentsRuleTest::testRewriteCompletesOnlyAUnaryOperatorSignaturecallsUniqueOptionRuleTest::testRewriteRemovesTheDuplicateSeparatorAndRetainsOtherCategoriescallsOverlapsArgumentsRuleTest::testPairPreservesTwoChosenExpressionsWithoutRewritingcallsOverlapsArgumentsRuleTest::testRewriteCompletesOnlyRowsBelongingToOverlapscallsPublicationObjectRuleTest::testKindRecognizesCurrentSchemaAndInheritsAnUnqualifiedNamecallsPublicationObjectRuleTest::testRewriteCompletesTheFirstImplicitObjectAndPreservesContinuationcallsTableFunctionRuleTest::testRewriteRestrictsOnlyInputArgumentsOfTableFunctionscallsTypeModifierRuleTest::providerModifierscallsTypeModifierRuleTest::testArgumentsPreservesEmptyOrIncompleteArgumentscallsTypeModifierRuleTest::testRewritePreservesConstantsWithoutModifierArgumentscallsTimeZoneIntervalRuleTest::testRewriteAppliesOnlyToTimeZoneIntervalscallsWindowFrameRuleTest::testRankClassifiesEndpointsWithoutTreatingOffsetExpressionsAsSeparateBoundscallsWindowFrameRuleTest::testRankRetainsTheFiveSourceBoundaryCategoriescallsWindowFrameRuleTest::testRewriteCompletesAShortFollowingFrameAndKeepsTheChosenOffsetcallsWindowFrameRuleTest::testRewriteLeavesAnEmptyFrameUnchangedcallsWindowFrameRuleTest::testRewritePreservesValidBoundariesAndRepairsInvalidOrderingcallsWindowFrameRuleTest::testRewriteReplacesAnEarlierEndAndRetainsAValidFramecallsWindowFrameRuleTest::testUnboundedReplacesTheEntireEndpointAndKeepsItsScopecallsSqlGeneratorFactoryTest::testCreatePreservesTheGrammarEntryPointAndBindsLexicalDefinitionscallsPgGrammarTestcallsPostgreSqlProviderTestcallsGenerationContextTest::testBindsTheRequestedReleaseAndPreservesTheGrammarStartcallsGenerationContextTest::testLeavesThePlanInControlOfNullableProductionChoicescallsGenerationContextTest::testReportsAnUnknownNonterminalWithoutTreatingItAsSqlTextcallsGenerationContextTest::testReportsMissingLexicalImplementationWhenTheTerminalIsActuallyGeneratedcallsGenerationContextTest::testUsesTheGrammarStartWhenThePlanDoesNotSpecifyOnecallsGrammarAdaptationTest::testAdaptedGivesEachStatementKindARuleOfItsOwncallsGrammarAdaptationTest::testAdaptedLeavesAGrammarWithoutACmdRuleAlonecallsGrammarAdaptationTest::testStatementAlternativesKeepsAlterAndDropOnlyWhenTheyActOnATablecallsGrammarAdaptationTest::testStatementAlternativesSortsAnAlternativeByTheKeywordItLeadsWithcallsGrammarAdaptationTest::testStatementAlternativesSortsAnAlternativeThatBeginsWithAnOptionalWithClausecallsGrammarAdaptationTest::testWithStatementRulesPreservesEveryImportedAlternativecallsCompoundSelectRuleTest::testRewriteKeepsNestedAndFinalClausesForEveryCompoundOperatorcallsCompoundSelectRuleTest::testRewriteLeavesASingleSelectAndEmptyPriorClausesUnchangedcallsExpressionGroupingRuleTest::testRewriteGroupsARestrictedOperandInsideTheGeneralExpressionFamilycallsExpressionGroupingRuleTest::testRewritePreservesBothNestedOperandsOfANonAssociativeComparisoncallsExpressionGroupingRuleTest::testRewritePreservesTopLevelExpressionsAndUnrelatedNestedRulescallsExpressionGroupingRuleTest::testRewriteUsesTheConfiguredDialectTerminalNamescallsFunctionArgumentRuleTest::providerArgumentListscallsFunctionArgumentRuleTest::testRewritePreservesEmptyArgumentsAndStandaloneListscallsGeneratedColumnRuleTest::providerConstraintscallsGeneratedColumnRuleTest::testRewriteKeepsGeneratedExpressionsOnSeparateColumnscallsIdentifierListRuleTest::testRewriteRemovesLegacyIdentifierSuffixesAndKeepsOrderBycallsJoinRuleTest::testRewriteKeepsConditionsOfAJoinedTablecallsJoinRuleTest::testRewriteMarksOnlyDirectModifierNamescallsJoinRuleTest::testRewriteRemovesConditionsOnlyWhenTheCorrespondingPrefixIsEmptycallsRewriteDefinitionsTest::testCreateComposesTheDeclaredSourceRulescallsStrictTableRuleTest::testRewriteFillsAnEmptyTypeOnlyInTheSameStrictTablecallsStrictTableRuleTest::testRewriteReplacesTheWholeTypeIncludingItsSizeModifierscallsTableOptionRuleTest::testRewriteConstrainsOnlyTheTwoTableOptionPositionscallsUpsertSourceRuleTest::providerSourcescallsUpsertSourceRuleTest::testRewriteAddsTheClauseToTheOuterSourceAndPreservesItsNestedSelectcallsUpsertSourceRuleTest::testRewriteOnlyCompletesTheLastCompoundOperandcallsUpsertSourceRuleTest::testRewritePreservesAnEarlierFromWhenTheFinalOperandIsValuescallsUpsertSourceRuleTest::testRewritePreservesEmptyAndNonSelectCommandscallsWindowFrameRuleTest::testRankClassifiesEndpointsWithoutTreatingOffsetExpressionsAsSeparateBoundscallsWindowFrameRuleTest::testRankRetainsTheFiveSourceBoundaryCategoriescallsWindowFrameRuleTest::testRewriteCompletesAShortFollowingFrameAndKeepsTheChosenOffsetcallsWindowFrameRuleTest::testRewriteLeavesAnEmptyFrameUnchangedcallsWindowFrameRuleTest::testRewritePreservesValidBoundariesAndRepairsInvalidOrderingcallsWindowFrameRuleTest::testRewriteReplacesAnEarlierEndAndRetainsAValidFramecallsWithoutRowidRuleTest::testRewriteCompletesAKeyOnlyForWithoutRowidAndRetainsTheOriginalTracecallsWithoutRowidRuleTest::testRewriteRemovesAutoincrementAndPreservesAnExistingPrimaryKeycallsSqlGeneratorFactoryTest::testCreatePreservesTheGrammarEntryPointAndBindsLexicalDefinitionscallsSqliteGrammarTestcallsSqliteProviderTestcalls
Relations§
Instantiated in 8
- new SqlFaker\Compiler\Bison\BisonGrammarCompiler::compile() packages/sql-faker/src/Compiler/Bison/BisonGrammarCompiler.php:72
- new SqlFaker\Compiler\Lemon\LemonGrammarCompiler::compile() packages/sql-faker/src/Compiler/Lemon/LemonGrammarCompiler.php:75
- new SqlFaker\Compiler\Lemon\LemonGrammarCompiler::compile() packages/sql-faker/src/Compiler/Lemon/LemonGrammarCompiler.php:81
- new SqlFaker\Generation\Derivation\CompletionFrontier::offer() packages/sql-faker/src/Generation/Derivation/CompletionFrontier.php:59
- new SqlFaker\Generation\Derivation\ConstrainedCompletion::search() packages/sql-faker/src/Generation/Derivation/ConstrainedCompletion.php:86
- new SqlFaker\Generation\Derivation\ConstrainedCompletion::search() packages/sql-faker/src/Generation/Derivation/ConstrainedCompletion.php:95
- new SqlFaker\Generation\Plan\Compilation\GrammarCompiler::rule() packages/sql-faker/src/Generation/Plan/Compilation/GrammarCompiler.php:112
- new SqlFaker\Grammar\Model\Grammar::identified() packages/sql-faker/src/Grammar/Model/Grammar.php:105
Type declarations 16
- type SqlFaker\Generation\Coverage\GrammarCoverageInventory packages/sql-faker/src/Generation/Coverage/GrammarCoverageInventory.php:71
- type SqlFaker\Generation\Coverage\GrammarCoverageInventory packages/sql-faker/src/Generation/Coverage/GrammarCoverageInventory.php:82
- type SqlFaker\Generation\Derivation\CompletionCosts packages/sql-faker/src/Generation/Derivation/CompletionCosts.php:94
- type SqlFaker\Generation\Derivation\Derivation packages/sql-faker/src/Generation/Derivation/Derivation.php:140
- type SqlFaker\Generation\Derivation\Derivation::affordable() packages/sql-faker/src/Generation/Derivation/Derivation.php:149
- type SqlFaker\Generation\Derivation\Derivation packages/sql-faker/src/Generation/Derivation/Derivation.php:170
- type SqlFaker\Generation\Derivation\Derivation::alternatives() packages/sql-faker/src/Generation/Derivation/Derivation.php:220
- type SqlFaker\Generation\Derivation\Derivation::completable() packages/sql-faker/src/Generation/Derivation/Derivation.php:249
- type SqlFaker\Generation\Derivation\DerivationTrace packages/sql-faker/src/Generation/Derivation/DerivationTrace.php:40
- type SqlFaker\Generation\Derivation\TerminationAnalyzer packages/sql-faker/src/Generation/Derivation/TerminationAnalyzer.php:60
- type SqlFaker\Generation\Derivation\TerminationAnalyzer packages/sql-faker/src/Generation/Derivation/TerminationAnalyzer.php:72
- type SqlFaker\Generation\Derivation\TerminationAnalyzer packages/sql-faker/src/Generation/Derivation/TerminationAnalyzer.php:88
- type SqlFaker\Generation\Derivation\TerminationCost packages/sql-faker/src/Generation/Derivation/TerminationCost.php:73
- type SqlFaker\Generation\Plan\Compilation\GrammarCompiler packages/sql-faker/src/Generation/Plan/Compilation/GrammarCompiler.php:122
- type SqlFaker\Generation\Plan\Compilation\GrammarCompiler packages/sql-faker/src/Generation/Plan/Compilation/GrammarCompiler.php:150
- type SqlFaker\Generation\Plan\Compilation\GrammarCompiler packages/sql-faker/src/Generation/Plan/Compilation/GrammarCompiler.php:175