classExpressionBinder
final class ExpressionBinder
Restricted visibility: declared "@visibility SqlSemantics". Code outside that scope must not name this declaration.
Lowers scalar grammar nodes by their tree structure, preserving expression boundaries.
Methods§
public function bind(Node|Token $node, Scope $scope): ExpressionBinds one expression using the namespace at its evaluation stage.
Returns
Called from 12
- method-call SqlSemantics\Core\Binding\ExpressionBinder::bind() packages/sql-semantics/src/Core/Binding/ExpressionBinder.php:32
- method-call SqlSemantics\Core\Binding\ExpressionBinder::bind() packages/sql-semantics/src/Core/Binding/ExpressionBinder.php:35
- method-call SqlSemantics\Core\Binding\ExpressionBinder::call() packages/sql-semantics/src/Core/Binding/ExpressionBinder.php:100
- method-call SqlSemantics\Core\Binding\ExpressionBinder::operation() packages/sql-semantics/src/Core/Binding/ExpressionBinder.php:115
- method-call SqlSemantics\Core\Binding\ExpressionBinder::operation() packages/sql-semantics/src/Core/Binding/ExpressionBinder.php:120
- method-call SqlSemantics\Core\Binding\ExpressionBinder::operation() packages/sql-semantics/src/Core/Binding/ExpressionBinder.php:124
- method-call SqlSemantics\Core\Binding\FromBinder::join() packages/sql-semantics/src/Core/Binding/FromBinder.php:99
- method-call SqlSemantics\Core\Binding\ProjectionBinder::item() packages/sql-semantics/src/Core/Binding/ProjectionBinder.php:60
- method-call SqlSemantics\Core\Binding\SelectBinder::bind() packages/sql-semantics/src/Core/Binding/SelectBinder.php:50
- method-call SqlSemantics\Core\Binding\SelectModifiersBinder::sortExpression() packages/sql-semantics/src/Core/Binding/SelectModifiersBinder.php:70
- method-call SqlSemantics\Core\Binding\SelectModifiersBinder::pagination() packages/sql-semantics/src/Core/Binding/SelectModifiersBinder.php:84
- method-call SqlSemantics\Core\Binding\SelectModifiersBinder::pagination() packages/sql-semantics/src/Core/Binding/SelectModifiersBinder.php:96
Calls 11
- method-call ExpressionBinder::token() line 25
- function-call
in_arrayline 27 - method-call Scope::column() line 28
- static-call Tree::significant() line 30
- function-call
countline 31 - method-call ExpressionBinder::bind() line 32
- static-call Tree::text() line 34
- method-call ExpressionBinder::qualified() line 37
- method-call ExpressionBinder::call() line 41
- method-call ExpressionBinder::operation() line 43
- static-call Tree::unsupported() line 48
public function token(Token $token, Scope $scope): ExpressionResolves a scalar terminal as a literal, parameter, or column.
Returns
Test cases 1
Called from 1
Calls 5
- method-call LiteralBinder::bind() line 56
- new LiteralBinder line 56
- function-call
in_arrayline 60 - method-call Scope::column() line 61
- static-call Tree::unsupported() line 64
public function qualified(list<Node|Token> $children, SyntaxRules $syntax): boolParameters
$children | list<Node|Token> | |
$syntax | SyntaxRules |
Returns
boolTest cases 1
Called from 1
Calls 4
- function-call
in_arrayline 72 - function-call
countline 72 - static-call Tree::text() line 76
- method-call SyntaxRules::nodes() line 79
public function call(Node $node, list<Node|Token> $children, Scope $scope): ExpressionReturns
Called from 1
Calls 9
- function-call
strtoupperline 92 - static-call Tree::text() line 92
- function-call
in_arrayline 93 - static-call Tree::unsupported() line 94
- function-call
array_sliceline 97 - static-call Tree::outer() line 99
- method-call ExpressionBinder::bind() line 100
- method-call ExpressionRules::call() line 105
- new ExpressionRules line 105
public function operation(Node $node, list<Node|Token> $children, Scope $scope): ?ExpressionReturns
Called from 1
Calls 10
- new ExpressionRules line 113
- function-call
countline 114 - function-call
in_arrayline 114 - function-call
strtoupperline 114 - static-call Tree::text() line 114
- method-call ExpressionRules::operator() line 115
- method-call ExpressionBinder::bind() line 115
- function-call
implodeline 118 - function-call
array_mapline 118 - function-call
array_sliceline 118
Test cases 61§
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 59
SchemaAnalyzerTestcallsColumnPropertiesTestcallsColumnReaderTestcallsConstraintReaderTestcallsIdentifiersTestcallsSchemaChangesTestcallsSchemaReaderTestcallsStatementListTestcallsTokenGroupsTestcallsTreeTestcallsTypeReaderTestcallsBinderTestcallsBoundRelationTestcallsExpressionRulesTestcallsFromBinderTestcallsIdentitySequenceTestcallsLiteralBinderTestcallsNullFactsTestcallsProjectionBinderTestcallsScopeTestcallsSelectBinderTestcallsSelectModifiersBinderTestcallsSyntaxGuardTestcallsTableResolverTestcallsTypeResolutionTestcallsDialectTestcallsBoundSelectTestcallsColumnBindingTestcallsExpressionKindTestcallsExpressionTestcallsJoinKindTestcallsJoinTestcallsOrderingTestcallsOutputColumnTestcallsTableUseTestcallsPlatformTestcallsNameRulesTestcallsQueryRulesTestcallsSchemaRulesTestcallsSyntaxRulesTestcallsTypeRulesTestcallsColumnDefinitionTestcallsColumnGenerationTestcallsConstraintKindTestcallsGenerationKindTestcallsInvariantTestcallsTableConstraintTestcallsTableDefinitionTestcallsSchemaBuilderTestcallsSchemaTestcallsSemanticExceptionTestcallsNullabilityTestcallsTypeDescriptorTestcallsSchemaTestcallsNameRulesTestcallsPlatformTestcallsQueryRulesTestcallsSchemaRulesTestcallsTypeRulesTestcalls
Relations§
Instantiated in 6
- new SqlSemantics\Core\Binding\FromBinder::join() packages/sql-semantics/src/Core/Binding/FromBinder.php:99
- new SqlSemantics\Core\Binding\ProjectionBinder::item() packages/sql-semantics/src/Core/Binding/ProjectionBinder.php:60
- new SqlSemantics\Core\Binding\SelectBinder::bind() packages/sql-semantics/src/Core/Binding/SelectBinder.php:50
- new SqlSemantics\Core\Binding\SelectModifiersBinder::sortExpression() packages/sql-semantics/src/Core/Binding/SelectModifiersBinder.php:70
- new SqlSemantics\Core\Binding\SelectModifiersBinder::pagination() packages/sql-semantics/src/Core/Binding/SelectModifiersBinder.php:84
- new SqlSemantics\Core\Binding\SelectModifiersBinder::pagination() packages/sql-semantics/src/Core/Binding/SelectModifiersBinder.php:96
Method calls 6
- method-call SqlSemantics\Core\Binding\FromBinder::join() packages/sql-semantics/src/Core/Binding/FromBinder.php:99
- method-call SqlSemantics\Core\Binding\ProjectionBinder::item() packages/sql-semantics/src/Core/Binding/ProjectionBinder.php:60
- method-call SqlSemantics\Core\Binding\SelectBinder::bind() packages/sql-semantics/src/Core/Binding/SelectBinder.php:50
- method-call SqlSemantics\Core\Binding\SelectModifiersBinder::sortExpression() packages/sql-semantics/src/Core/Binding/SelectModifiersBinder.php:70
- method-call SqlSemantics\Core\Binding\SelectModifiersBinder::pagination() packages/sql-semantics/src/Core/Binding/SelectModifiersBinder.php:84
- method-call SqlSemantics\Core\Binding\SelectModifiersBinder::pagination() packages/sql-semantics/src/Core/Binding/SelectModifiersBinder.php:96