classSpacingConstraint
final class SpacingConstraint
Allowed boundary spellings with every contributing rule retained for diagnostics.
Constants§
public const JOIN = 1Allows adjacent lexemes with no separator.
public const SPACE = 2Allows a single space between lexemes.
public const EITHER = 3Allows either supported separator form.
Properties§
public int $allowed = self::EITHERpublic list<string> $rules = []Methods§
public function __construct(public int $allowed = self::EITHER, public list<string> $rules = [])Parameters
$allowed | int | |
$rules | list<string> |
Test cases 2
Calls 1
- class-const SpacingConstraint::EITHER() line 28
public function intersect(self $other): selfKeeps only separators allowed by both constraints and retains both sources.
Parameters
$other | self |
Returns
selfTest cases 1
public function separator(): ?stringSelects the default single space when permitted, a join otherwise, or null on contradiction.
Returns
?stringTest cases 2
Calls 2
- class-const SpacingConstraint::SPACE() line 45
- class-const SpacingConstraint::JOIN() line 48
Test cases 71§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 2
Other tests reaching this symbol 69
ChoiceLexemeGeneratorTestcallsFixedLexemeGeneratorTestcallsIntegerLexemeGeneratorTestcallsMatchingLexemeGeneratorTestcallsRegisteredLexemeGeneratorTestcallsSequenceLexemeGeneratorTestcallsValueLexemeGeneratorTestcallsVersionCaseTestcallsVersionedLexemeGeneratorTestcallsBytePlanCompilerTestcallsPlanBuilderTestcallsGrammarCoverageTestcallsLexicalObservationTest::testConditionsRetainsTheInputMasksAndAllContributingRulescallsDerivationTraceTestcallsTokenGeneratorTestcallsLexicalExceptionTestcallsLexemeCandidatesTestcallsLexemeGeneratorTestcallsLexemeInputTestcallsLexemeSequenceTest::testKeyDistinguishesOutputAndBoundarySemanticsButNotDefinitionIdscallsLexemeSequenceTest::testKeyTreatsAnExplicitUnrestrictedBoundaryAsEquivalentToAnOmittedOnecallsResolvedOutputTestcallsSpacingRuleTest::testApplyContractPermitsUnconstrainedBoundariescallsBoundaryCompletionTest::testAcceptsOnlyCandidatesWhosePendingLeftBoundaryHasACompletioncallsBoundaryCompletionTest::testAcceptsRejectsMissingOrPlannedAwayWitnessescallsBoundaryCompletionTest::testAcceptsUsesTheSampledLeftValueInsteadOfAnUnrelatedDefaultWitnesscallsCandidateResolverTest::testResolveIntersectsInternalAndExternalConstraintsWithoutChangingTheRightStatecallsCandidateResolverTest::testResolvePropagatesConditionsAcrossAnEmptyMarkerWithoutWritingSpacescallsCandidateResolverTest::testResolveRejectsAnOwedNeighborAtEitherEndOfTheInputcallsCandidateResolverTest::testResolveReportsContradictionsWithBothRuleSourcescallsCombinedSpacingRuleTest::testApplyPreservesContradictionsAcrossOrderAndDuplicateRulescallsReverseLexemeGeneratorTest::testConflictingCandidateIsNotSelectedOrAllowedToAlterAnotherCandidatecallsReverseLexemeGeneratorTest::testSelectReportsCandidateAndBoundarySourcesWhenAllCandidatesConflictcallsSqlGeneratorTestcallsTerminalSequenceTestcallsGenerationContextTestcallsBoundedIntegerLexemeGeneratorTestcallsCharsetLexemeGeneratorTestcallsCharsetValueLexemeGeneratorTestcallsDefinitionFactoryTestcallsFactorLexemeGeneratorTestcallsKeywordLexemeGeneratorTestcallsLexicalDefinitionTestcallsPrecisionLexemeGeneratorTestcallsReplicationTablePatternLexemeGeneratorTestcallsSizeNumberLexemeGeneratorTestcallsLexicalGrammarTestcallsCloneAddressSpacingRuleTest::testApplyConstrainsOnlyItsSourceDefinedBoundarycallsCloneAddressSpacingRuleTest::testApplyRecognizesAFlatStatementAndBothSidesOfTheAddressColoncallsFunctionSpacingRuleTest::testApplyConstrainsOnlyItsSourceDefinedBoundarycallsKeywordPhraseSpacingRuleTest::testApplySeparatesOnlyPartsOfTheSameCompoundOccurrencecallsQualifiedNameSpacingRuleTest::testApplyConstrainsOnlyItsSourceDefinedBoundarycallsVariableSpacingRuleTest::testApplyConstrainsOnlyItsSourceDefinedBoundarycallsMySqlProviderTestcallsGenerationContextTestcallsDefinitionFactoryTestcallsHashBoundLexemeGeneratorTestcallsKeywordLexemeGeneratorTestcallsLexicalDefinitionTestcallsLexicalGrammarTestcallsPostgreSqlProviderTestcallsSqlGeneratorFactoryTestcallsGenerationContextTestcallsDefinitionFactoryTestcallsJoinLexemeGeneratorTestcallsLexicalDefinitionTestcallsWindowNameLexemeGeneratorTestcallsLexicalGrammarTestcallsSqliteProviderTestcalls
Relations§
Instantiated in 15
- new SqlFaker\Generation\Candidate\SequenceLexemeGenerator::product() packages/sql-faker/src/Generation/Candidate/SequenceLexemeGenerator.php:63
- new SqlFaker\Generation\Candidate\SequenceLexemeGenerator::product() packages/sql-faker/src/Generation/Candidate/SequenceLexemeGenerator.php:66
- new SqlFaker\Generation\Output\CandidateResolver::resolve() packages/sql-faker/src/Generation/Output/CandidateResolver.php:37
- new SqlFaker\Generation\Output\CandidateResolver::resolve() packages/sql-faker/src/Generation/Output/CandidateResolver.php:39
- new SqlFaker\Generation\Output\CandidateResolver::resolve() packages/sql-faker/src/Generation/Output/CandidateResolver.php:43
- new SqlFaker\Generation\Output\CandidateResolver::resolve() packages/sql-faker/src/Generation/Output/CandidateResolver.php:47
- new SqlFaker\Generation\Output\CandidateResolver::resolve() packages/sql-faker/src/Generation/Output/CandidateResolver.php:57
- new SqlFaker\Generation\Output\CandidateResolver::resolve() packages/sql-faker/src/Generation/Output/CandidateResolver.php:60
- new SqlFaker\Generation\Output\CombinedSpacingRule::apply() packages/sql-faker/src/Generation/Output/CombinedSpacingRule.php:37
- new SqlFaker\MySql\Generation\Spacing\CloneAddressSpacingRule::apply() packages/sql-faker/src/MySql/Generation/Spacing/CloneAddressSpacingRule.php:30
- new SqlFaker\MySql\Generation\Spacing\FunctionSpacingRule::apply() packages/sql-faker/src/MySql/Generation/Spacing/FunctionSpacingRule.php:29
- new SqlFaker\MySql\Generation\Spacing\FunctionSpacingRule::apply() packages/sql-faker/src/MySql/Generation/Spacing/FunctionSpacingRule.php:32
- new SqlFaker\MySql\Generation\Spacing\KeywordPhraseSpacingRule::apply() packages/sql-faker/src/MySql/Generation/Spacing/KeywordPhraseSpacingRule.php:27
- new SqlFaker\MySql\Generation\Spacing\QualifiedNameSpacingRule::apply() packages/sql-faker/src/MySql/Generation/Spacing/QualifiedNameSpacingRule.php:26
- new SqlFaker\MySql\Generation\Spacing\VariableSpacingRule::apply() packages/sql-faker/src/MySql/Generation/Spacing/VariableSpacingRule.php:26
Constant reads 14
- class-const SqlFaker\Generation\Lexeme\LexemeSequence::key() packages/sql-faker/src/Generation/Lexeme/LexemeSequence.php:34
- class-const SqlFaker\Generation\Lexeme\LexemeSequence::key() packages/sql-faker/src/Generation/Lexeme/LexemeSequence.php:36
- class-const SqlFaker\Generation\Lexeme\LexemeSequence::key() packages/sql-faker/src/Generation/Lexeme/LexemeSequence.php:39
- class-const SqlFaker\Generation\Lexeme\OutputPart::__construct() packages/sql-faker/src/Generation/Lexeme/OutputPart.php:20
- class-const SqlFaker\Generation\Output\BoundaryCompletion::accepts() packages/sql-faker/src/Generation/Output/BoundaryCompletion.php:38
- class-const SqlFaker\Generation\Output\CandidateResolver::resolve() packages/sql-faker/src/Generation/Output/CandidateResolver.php:36
- class-const SqlFaker\Generation\Output\CandidateResolver::resolve() packages/sql-faker/src/Generation/Output/CandidateResolver.php:59
- class-const SqlFaker\Generation\Output\ReverseLexemeGenerator::generate() packages/sql-faker/src/Generation/Output/ReverseLexemeGenerator.php:69
- class-const SqlFaker\MySql\Generation\Spacing\CloneAddressSpacingRule::apply() packages/sql-faker/src/MySql/Generation/Spacing/CloneAddressSpacingRule.php:30
- class-const SqlFaker\MySql\Generation\Spacing\FunctionSpacingRule::apply() packages/sql-faker/src/MySql/Generation/Spacing/FunctionSpacingRule.php:29
- class-const SqlFaker\MySql\Generation\Spacing\FunctionSpacingRule::apply() packages/sql-faker/src/MySql/Generation/Spacing/FunctionSpacingRule.php:32
- class-const SqlFaker\MySql\Generation\Spacing\KeywordPhraseSpacingRule::apply() packages/sql-faker/src/MySql/Generation/Spacing/KeywordPhraseSpacingRule.php:27
- class-const SqlFaker\MySql\Generation\Spacing\QualifiedNameSpacingRule::apply() packages/sql-faker/src/MySql/Generation/Spacing/QualifiedNameSpacingRule.php:26
- class-const SqlFaker\MySql\Generation\Spacing\VariableSpacingRule::apply() packages/sql-faker/src/MySql/Generation/Spacing/VariableSpacingRule.php:26
Type checks 1
Type declarations 12
- type SqlFaker\Generation\Coverage\LexicalObservation::conditions() packages/sql-faker/src/Generation/Coverage/LexicalObservation.php:69
- type SqlFaker\Generation\Lexeme\LexemeSequence packages/sql-faker/src/Generation/Lexeme/LexemeSequence.php:22
- type SqlFaker\Generation\Lexeme\LexemeSequence::key() packages/sql-faker/src/Generation/Lexeme/LexemeSequence.php:33
- type SqlFaker\Generation\Lexeme\ResolvedOutput packages/sql-faker/src/Generation/Lexeme/ResolvedOutput.php:19
- type SqlFaker\Generation\Lexeme\SpacingRule packages/sql-faker/src/Generation/Lexeme/SpacingRule.php:15
- type SqlFaker\Generation\Output\CandidateResolver packages/sql-faker/src/Generation/Output/CandidateResolver.php:30
- type SqlFaker\Generation\Output\CombinedSpacingRule packages/sql-faker/src/Generation/Output/CombinedSpacingRule.php:34
- type SqlFaker\MySql\Generation\Spacing\CloneAddressSpacingRule packages/sql-faker/src/MySql/Generation/Spacing/CloneAddressSpacingRule.php:22
- type SqlFaker\MySql\Generation\Spacing\FunctionSpacingRule packages/sql-faker/src/MySql/Generation/Spacing/FunctionSpacingRule.php:22
- type SqlFaker\MySql\Generation\Spacing\KeywordPhraseSpacingRule packages/sql-faker/src/MySql/Generation/Spacing/KeywordPhraseSpacingRule.php:21
- type SqlFaker\MySql\Generation\Spacing\QualifiedNameSpacingRule packages/sql-faker/src/MySql/Generation/Spacing/QualifiedNameSpacingRule.php:22
- type SqlFaker\MySql\Generation\Spacing\VariableSpacingRule packages/sql-faker/src/MySql/Generation/Spacing/VariableSpacingRule.php:22