Package org.rumbledb.compiler
Class BuiltinPartialApplicationRewriteVisitor
java.lang.Object
org.rumbledb.expressions.AbstractNodeVisitor<Node>
org.rumbledb.compiler.CloneVisitor
org.rumbledb.compiler.BuiltinPartialApplicationRewriteVisitor
Rewrites direct partial application of builtins, e.g.
fn:max(0, ?),
into
an equivalent inline function, e.g. function($x) { fn:max(0, $x) }.
This keeps builtin partial application on the same code path as ordinary inline functions.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvisitDynamicFunctionCallExpression(DynamicFunctionCallExpression expression, Node argument) visitFunctionCall(FunctionCallExpression expression, Node argument) visitLibraryModule(LibraryModule module, Node argument) visitMainModule(MainModule module, Node argument) Methods inherited from class org.rumbledb.compiler.CloneVisitor
defaultAction, visitAdditiveExpr, visitAndExpr, visitApplyStatement, visitArrayConstructor, visitArrayLookupExpression, visitArrayUnboxingExpression, visitAssignStatement, visitAttributeNode, visitAttributeNodeContent, visitBlockStatement, visitBoolean, visitCastableExpression, visitCastExpression, visitCommaExpression, visitCommaVariableDeclStatement, visitCommentNodeConstructor, visitComparisonExpr, visitComputedAttributeConstructor, visitComputedElementConstructor, visitComputedNamespaceConstructor, visitComputedPIConstructor, visitConditionalExpression, visitContextExpr, visitCountClause, visitDecimal, visitDirectCommentConstructor, visitDirElemConstructor, visitDirPIConstructor, visitDocumentNodeConstructor, visitDouble, visitExitStatement, visitFilterExpression, visitFlowrExpression, visitFlowrStatement, visitForClause, visitFunctionDeclaration, visitGroupByClause, visitInlineFunctionExpr, visitInstanceOfExpression, visitInteger, visitIsStaticallyExpr, visitLetClause, visitMapConstructor, visitMultiplicativeExpr, visitNamedFunctionRef, visitNodeComparisonExpr, visitNodeSetExpr, visitNotExpr, visitNull, visitObjectConstructor, visitObjectLookupExpression, visitOrderByClause, visitOrExpr, visitPathRootExpr, visitPostfixLookupExpression, visitProgram, visitProlog, visitRangeExpr, visitReturnClause, visitReturnStatementClause, visitSchemaImport, visitSimpleMapExpr, visitStatementsAndExpr, visitStatementsAndOptionalExpr, visitString, visitStringConcatExpr, visitStringConstructor, visitSwitchExpression, visitSwitchStatement, visitTextNode, visitTextNodeConstructor, visitTreatExpression, visitTryCatchExpression, visitTryCatchStatement, visitTypeDeclaration, visitTypeSwitchExpression, visitTypeSwitchStatement, visitUnaryExpr, visitUnaryLookupExpression, visitValidateExpression, visitValidateTypeExpression, visitVariableDeclaration, visitVariableDeclStatement, visitVariableReference, visitWhereClause, visitWhileStatement, visitWindowClauseMethods inherited from class org.rumbledb.expressions.AbstractNodeVisitor
visit, visitAppendExpression, visitBlockExpr, visitBreakStatement, visitConditionalStatement, visitContinueStatement, visitCreateCollectionExpression, visitDeleteExpression, visitDeleteIndexFromCollectionExpression, visitDeleteSearchFromCollectionExpression, visitDescendants, visitEditCollectionExpression, visitInsertExpression, visitInsertIndexIntoCollectionExpression, visitInsertSearchIntoCollectionExpression, visitOptionDeclaration, visitRenameExpression, visitReplaceExpression, visitSlashExpr, visitStepExpr, visitTransformExpression, visitTruncateCollectionExpression
-
Constructor Details
-
BuiltinPartialApplicationRewriteVisitor
public BuiltinPartialApplicationRewriteVisitor()
-
-
Method Details
-
visitMainModule
- Overrides:
visitMainModulein classCloneVisitor
-
visitLibraryModule
- Overrides:
visitLibraryModulein classCloneVisitor
-
visitFunctionCall
- Overrides:
visitFunctionCallin classCloneVisitor
-
visitDynamicFunctionCallExpression
public Node visitDynamicFunctionCallExpression(DynamicFunctionCallExpression expression, Node argument) - Overrides:
visitDynamicFunctionCallExpressionin classCloneVisitor
-