classValueShape
final class ValueShape
Models the scalar and row value lists of sql_yacc.yy:part_values_in and part_func_max.
Methods§
public function split(list<TerminalOccurrence> $tokens): list<list<TerminalOccurrence>>Splits only top-level commas, keeping nested expressions intact.
Parameters
$tokens | list<TerminalOccurrence> |
Returns
list<list<TerminalOccurrence>>Test cases 9
ValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#2coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#3coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#4coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#5coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#6coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#7coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#8coversValueShapeTest::testRowsDistinguishesScalarListsAndTuplescoversValueShapeTest::testSplitAndJoinHandleEmptyListsAndNestedCommascovers and calls
Called from 3
- method-call SqlFaker\MySql\Generation\Rewrite\Partition\ValueArityRule::declaredWidth() packages/sql-faker/src/MySql/Generation/Rewrite/Partition/ValueArityRule.php:75
- method-call SqlFaker\MySql\Generation\Rewrite\Partition\ValueShape::rows() packages/sql-faker/src/MySql/Generation/Rewrite/Partition/ValueShape.php:52
- method-call SqlFaker\MySql\Generation\Rewrite\Partition\ValueShape::rows() packages/sql-faker/src/MySql/Generation/Rewrite/Partition/ValueShape.php:54
public function rows(
list<TerminalOccurrence> $tokens,
bool $list,
): list<list<list<TerminalOccurrence>>>Reads row syntax after ListValueRule has prefixed parenthesized scalar expressions with plus.
Parameters
$tokens | list<TerminalOccurrence> | |
$list | bool |
Returns
list<list<list<TerminalOccurrence>>>Test cases 9
ValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#1coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#2coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#3coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#4coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#5coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#6coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#7coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#8coversValueShapeTest::testRowsDistinguishesScalarListsAndTuplescovers and calls
Called from 2
- method-call SqlFaker\MySql\Generation\Rewrite\Partition\ValueArityRule::rewrite() packages/sql-faker/src/MySql/Generation/Rewrite/Partition/ValueArityRule.php:42
- method-call SqlFaker\MySql\Generation\Rewrite\Partition\ValueShape::resize() packages/sql-faker/src/MySql/Generation/Rewrite/Partition/ValueShape.php:69
Calls 3
- method-call ValueShape::split() line 52
- function-call
array_sliceline 52 - function-call
array_mapline 54
public function resize(
list<TerminalOccurrence> $tokens,
bool $list,
int $width,
): list<TerminalOccurrence>Retains existing expressions and supplies missing fields; row syntax requires at least two columns.
Parameters
$tokens | list<TerminalOccurrence> | |
$list | bool | |
$width | int |
Returns
list<TerminalOccurrence>Test cases 10
ValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidthcallsValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#0coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#1coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#2coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#3coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#4coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#5coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#6coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#7coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#8covers
Called from 1
Calls 6
- method-call ValueShape::rows() line 69
- method-call ValueShape::join() line 71
- function-call
array_mergeline 71 - function-call
array_sliceline 75 - function-call
countline 76 - method-call ValueShape::token() line 77
public function join(
list<list<TerminalOccurrence>> $items,
bool $parenthesized,
): list<TerminalOccurrence>New punctuation is assigned real occurrence IDs when ValueArityRule installs the replacement.
Parameters
$items | list<list<TerminalOccurrence>> | |
$parenthesized | bool |
Returns
list<TerminalOccurrence>Test cases 10
ValueShapeTest::testJoinUsesNewPunctuationAndRetainsValueIdentitycovers and callsValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#1coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#2coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#3coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#4coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#5coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#6coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#7coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#8coversValueShapeTest::testSplitAndJoinHandleEmptyListsAndNestedCommascovers and calls
Called from 3
- method-call SqlFaker\MySql\Generation\Rewrite\Partition\ValueShape::resize() packages/sql-faker/src/MySql/Generation/Rewrite/Partition/ValueShape.php:71
- method-call SqlFaker\MySql\Generation\Rewrite\Partition\ValueShape::resize() packages/sql-faker/src/MySql/Generation/Rewrite/Partition/ValueShape.php:79
- method-call SqlFaker\MySql\Generation\Rewrite\Partition\ValueShape::resize() packages/sql-faker/src/MySql/Generation/Rewrite/Partition/ValueShape.php:81
Calls 2
- method-call ValueShape::token() line 91
- function-call
array_pushline 96
public function token(string $name): TerminalOccurrenceMarks temporary punctuation without borrowing an original derivation's identity.
Parameters
$name | string |
Returns
Test cases 10
ValueShapeTest::testJoinUsesNewPunctuationAndRetainsValueIdentitycoversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#1coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#2coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#3coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#4coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#5coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#6coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#7coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#8coversValueShapeTest::testTokenReservesAnIdentityOutsideTheDerivationcovers and calls
Called from 4
- method-call SqlFaker\MySql\Generation\Rewrite\Partition\ValueShape::resize() packages/sql-faker/src/MySql/Generation/Rewrite/Partition/ValueShape.php:77
- method-call SqlFaker\MySql\Generation\Rewrite\Partition\ValueShape::join() packages/sql-faker/src/MySql/Generation/Rewrite/Partition/ValueShape.php:91
- method-call SqlFaker\MySql\Generation\Rewrite\Partition\ValueShape::join() packages/sql-faker/src/MySql/Generation/Rewrite/Partition/ValueShape.php:94
- method-call SqlFaker\MySql\Generation\Rewrite\Partition\ValueShape::join() packages/sql-faker/src/MySql/Generation/Rewrite/Partition/ValueShape.php:99
Calls 1
Test cases 21§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 14
ValueShapeTest::testJoinUsesNewPunctuationAndRetainsValueIdentitycovers and callsValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidthcallsValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#0coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#1coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#2coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#3coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#4coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#5coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#6coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#7coversValueShapeTest::testResizePreservesExpressionsWhileMatchingTheRequiredWidth#8coversValueShapeTest::testRowsDistinguishesScalarListsAndTuplescovers and callsValueShapeTest::testSplitAndJoinHandleEmptyListsAndNestedCommascovers and callsValueShapeTest::testTokenReservesAnIdentityOutsideTheDerivationcovers and calls
Other tests reaching this symbol 7
GenerationContextTestcallsValueArityRuleTestcallsRewriteDefinitionsTestcallsMySqlProviderTestcallsPostgreSqlProviderTestcallsSqlGeneratorFactoryTestcallsSqliteProviderTestcalls
Relations§
Instantiated in 2
- new SqlFaker\MySql\Generation\Rewrite\Partition\ValueArityRule::rewrite() packages/sql-faker/src/MySql/Generation/Rewrite/Partition/ValueArityRule.php:26
- new SqlFaker\MySql\Generation\Rewrite\Partition\ValueArityRule::declaredWidth() packages/sql-faker/src/MySql/Generation/Rewrite/Partition/ValueArityRule.php:75
Method calls 3
- method-call SqlFaker\MySql\Generation\Rewrite\Partition\ValueArityRule::rewrite() packages/sql-faker/src/MySql/Generation/Rewrite/Partition/ValueArityRule.php:42
- method-call SqlFaker\MySql\Generation\Rewrite\Partition\ValueArityRule::rewrite() packages/sql-faker/src/MySql/Generation/Rewrite/Partition/ValueArityRule.php:48
- method-call SqlFaker\MySql\Generation\Rewrite\Partition\ValueArityRule::declaredWidth() packages/sql-faker/src/MySql/Generation/Rewrite/Partition/ValueArityRule.php:75