classLexeme
final class Lexeme
Concrete text and its lexical use, without a decision about surrounding spaces.
Properties§
public string $textpublic string $kindpublic TerminalOccurrence $originpublic string $definitionpublic ?string $phrase = nullMethods§
public function __construct(
public string $text,
public string $kind,
public TerminalOccurrence $origin,
public string $definition,
public ?string $phrase = null,
)Keeps spelling, lexical category and occurrence provenance together as immutable output.
Parameters
$text | string | |
$kind | string | |
$origin | TerminalOccurrence | |
$definition | string | |
$phrase | ?string |
Test cases 1
Test cases 71§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 1
LexemeTest::testRetainsCompoundAndOccurrenceProvenancecovers and calls
Other tests reaching this symbol 70
ChoiceLexemeGeneratorTestcallsFixedLexemeGeneratorTestcallsIntegerLexemeGeneratorTestcallsMatchingLexemeGeneratorTestcallsRegisteredLexemeGeneratorTestcallsSequenceLexemeGeneratorTestcallsValueLexemeGeneratorTestcallsVersionCaseTestcallsVersionedLexemeGeneratorTestcallsBytePlanCompilerTestcallsPlanBuilderTestcallsGrammarCoverageTestcallsLexicalObservationTest::testFeaturesKeepsValueTextOutOfFiniteDefinitionSetscallsDerivationTraceTestcallsTokenGeneratorTestcallsLexicalExceptionTestcallsLexemeBoundaryTest::testPreservesDirectionAcrossACompoundBoundarycallsLexemeCandidatesTestcallsLexemeGeneratorTestcallsLexemeInputTestcallsLexemeSequenceTest::testKeyDistinguishesOutputAndBoundarySemanticsButNotDefinitionIdscallsLexemeSequenceTest::testKeyTreatsAnExplicitUnrestrictedBoundaryAsEquivalentToAnOmittedOnecallsOutputPartTest::testKeepsTheResolvedSeparatorAndItsRuleSourcescallsResolvedOutputTest::testPiecesPreservesChosenJoinsAndSpacesWithoutFormattingcallsSpacingRuleTest::testApplyContractPermitsUnconstrainedBoundariescallsBoundaryCompletionTest::testAcceptsOnlyCandidatesWhosePendingLeftBoundaryHasACompletioncallsBoundaryCompletionTest::testAcceptsUsesTheSampledLeftValueInsteadOfAnUnrelatedDefaultWitnesscallsCandidateResolverTest::testResolveIntersectsInternalAndExternalConstraintsWithoutChangingTheRightStatecallsCandidateResolverTest::testResolvePropagatesConditionsAcrossAnEmptyMarkerWithoutWritingSpacescallsCandidateResolverTest::testResolveRejectsAnOwedNeighborAtEitherEndOfTheInputcallsCandidateResolverTest::testResolveReportsContradictionsWithBothRuleSourcescallsCombinedSpacingRuleTest::testApplyPreservesContradictionsAcrossOrderAndDuplicateRulescallsReverseLexemeGeneratorTest::testMatchesRequestComparesTheWholeCompoundSpellingcallsSqlGeneratorTestcallsTerminalSequenceTestcallsGenerationContextTestcallsBoundedIntegerLexemeGeneratorTestcallsCharsetLexemeGeneratorTest::testGenerateKeepsOnlyCharsetsCompatibleWithTheResolvedLiteralcallsCharsetValueLexemeGeneratorTestcallsDefinitionFactoryTestcallsFactorLexemeGeneratorTest::testGenerateKeepsFactorPairsDistinctWithinTheirUsercallsKeywordLexemeGeneratorTest::testGenerateSeparatesFunctionUseFromIdentifierUsecallsLexicalDefinitionTestcallsPrecisionLexemeGeneratorTest::testGenerateEnforcesPrecisionAndScaleTogethercallsPrecisionLexemeGeneratorTest::testGenerateUsesOnlyTheScaleInTheSameOccurrencecallsReplicationTablePatternLexemeGeneratorTestcallsSizeNumberLexemeGeneratorTestcallsLexicalGrammarTestcallsCloneAddressSpacingRuleTest::testApplyConstrainsOnlyItsSourceDefinedBoundarycallsCloneAddressSpacingRuleTest::testApplyRecognizesAFlatStatementAndBothSidesOfTheAddressColoncallsFunctionSpacingRuleTest::testApplyConstrainsOnlyItsSourceDefinedBoundarycallsKeywordPhraseSpacingRuleTest::testApplySeparatesOnlyPartsOfTheSameCompoundOccurrencecallsQualifiedNameSpacingRuleTest::testApplyConstrainsOnlyItsSourceDefinedBoundarycallsVariableSpacingRuleTest::testApplyConstrainsOnlyItsSourceDefinedBoundarycallsMySqlProviderTestcallsGenerationContextTestcallsDefinitionFactoryTestcallsHashBoundLexemeGeneratorTest::testGenerateMakesBothOrdersReachableAndRejectsRepeatedNamescallsKeywordLexemeGeneratorTest::testGenerateChecksTheLookaheadFollowerBeforeOfferingAnAliascallsLexicalDefinitionTestcallsLexicalGrammarTestcallsPostgreSqlProviderTestcallsSqlGeneratorFactoryTestcallsGenerationContextTestcallsDefinitionFactoryTestcallsJoinLexemeGeneratorTest::testGenerateKeepsOnlyModifiersCompatibleWithTheSelectedSuffixcallsLexicalDefinitionTestcallsWindowNameLexemeGeneratorTestcallsLexicalGrammarTestcallsSqliteProviderTestcalls
Relations§
Instantiated in 12
- new SqlFaker\Generation\Candidate\FixedLexemeGenerator::generate() packages/sql-faker/src/Generation/Candidate/FixedLexemeGenerator.php:37
- new SqlFaker\Generation\Candidate\IntegerLexemeGenerator::generate() packages/sql-faker/src/Generation/Candidate/IntegerLexemeGenerator.php:51
- new SqlFaker\Generation\Candidate\RegisteredLexemeGenerator::generate() packages/sql-faker/src/Generation/Candidate/RegisteredLexemeGenerator.php:47
- new SqlFaker\Generation\Candidate\ValueLexemeGenerator::generate() packages/sql-faker/src/Generation/Candidate/ValueLexemeGenerator.php:54
- new SqlFaker\MySql\Generation\Lexeme\BoundedIntegerLexemeGenerator::generate() packages/sql-faker/src/MySql/Generation/Lexeme/BoundedIntegerLexemeGenerator.php:56
- new SqlFaker\MySql\Generation\Lexeme\KeywordLexemeGenerator::generate() packages/sql-faker/src/MySql/Generation/Lexeme/KeywordLexemeGenerator.php:49
- new SqlFaker\MySql\Generation\Lexeme\KeywordLexemeGenerator::generate() packages/sql-faker/src/MySql/Generation/Lexeme/KeywordLexemeGenerator.php:58
- new SqlFaker\MySql\Generation\Lexeme\ReplicationTablePatternLexemeGenerator::generate() packages/sql-faker/src/MySql/Generation/Lexeme/ReplicationTablePatternLexemeGenerator.php:34
- new SqlFaker\MySql\Generation\Lexeme\SizeNumberLexemeGenerator::generate() packages/sql-faker/src/MySql/Generation/Lexeme/SizeNumberLexemeGenerator.php:40
- new SqlFaker\PostgreSql\Generation\Lexeme\HashBoundLexemeGenerator::generate() packages/sql-faker/src/PostgreSql/Generation/Lexeme/HashBoundLexemeGenerator.php:42
- new SqlFaker\Sqlite\Generation\Lexeme\JoinLexemeGenerator::generate() packages/sql-faker/src/Sqlite/Generation/Lexeme/JoinLexemeGenerator.php:59
- new SqlFaker\Sqlite\Generation\Lexeme\WindowNameLexemeGenerator::generate() packages/sql-faker/src/Sqlite/Generation/Lexeme/WindowNameLexemeGenerator.php:42
Type declarations 6
- type SqlFaker\Generation\Choice\PlanBuilder::build() packages/sql-faker/src/Generation/Choice/PlanBuilder.php:88
- type SqlFaker\Generation\Coverage\LexicalObservation::features() packages/sql-faker/src/Generation/Coverage/LexicalObservation.php:28
- type SqlFaker\Generation\Lexeme\LexemeBoundary packages/sql-faker/src/Generation/Lexeme/LexemeBoundary.php:15
- type SqlFaker\Generation\Lexeme\LexemeSequence::key() packages/sql-faker/src/Generation/Lexeme/LexemeSequence.php:42
- type SqlFaker\Generation\Lexeme\OutputPart packages/sql-faker/src/Generation/Lexeme/OutputPart.php:16
- type SqlFaker\Sqlite\Generation\Lexeme\WindowNameLexemeGenerator::generate() packages/sql-faker/src/Sqlite/Generation/Lexeme/WindowNameLexemeGenerator.php:42