Package org.qdl_lang.functions
Class LambdaDefinitionNode
- java.lang.Object
- 
- org.qdl_lang.expressions.ExpressionImpl
- 
- org.qdl_lang.functions.LambdaDefinitionNode
 
 
- 
- All Implemented Interfaces:
- Serializable,- ExpressionNode,- FunctionNodeInterface,- ExpressionInterface,- HasResultInterface,- Statement
 
 public class LambdaDefinitionNode extends ExpressionImpl implements FunctionNodeInterface To treat defined lambda expressions they must beExpressionNodes This wraps aFunctionDefinitionStatement, which cannot be replaced. The strategy is to swap out FDS for these at very specific places to allow for passing lambdas as arguments.Created by Jeff Gaynor 
 on 6/3/21 at 8:45 AM- See Also:
- Serialized Form
 
- 
- 
Field Summary- 
Fields inherited from class org.qdl_lang.expressions.ExpressionImplarguments, result, valence
 - 
Fields inherited from interface org.qdl_lang.statements.ExpressionInterfaceALL_INDICES_NODE, ALT_IF_NODE, ASSIGNMENT_NODE, AXIS_RESTRICTION_NODE, CLOSED_SLICE_NODE, COMPARISON_DYAD_NODE, CONSTANT_NODE, DYAD_NODE, DYADIC_FUNCTION_REFERENCE_NODE, EXPRESSION_STEM_NODE, EXPRESSION_STEM2_NODE, FUNCTION_REFERENCE_NODE, LAMBDA_DEFINITION_NODE, LIST_NODE, MODULE_NODE, MONAD_NODE, NILAD_NODE, OPEN_SLICE_NODE, PARENTHESIZED_NODE, PARSE_EXPRESSION_BLOCK_NODE, PARSE_STATEMENT_BLOCK_NODE, POLYAD_NODE, QDL_NULL_NODE, SELECT_NODE, SET_NODE, STEM_ENTRY_NODE, STEM_EXTRACTION_NODE, STEM_NODE, UNKNOWN_NODE, VARIABLE_NODE
 
- 
 - 
Constructor SummaryConstructors Constructor Description LambdaDefinitionNode(int operatorType)LambdaDefinitionNode(FunctionDefinitionStatement fds)
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description QDLValueevaluate(State state)FunctionRecordgetFunctionRecord()intgetNodeType()QDL is not strongly typed but Java is, so each node type should have a unique integer and conditionals should use that, not the instanceof operator.booleanhasName()booleanisLambda()ExpressionInterfacemakeCopy()voidsetFunctionRecord(FunctionRecord functionRecord)voidsetLambda(boolean lambda)- 
Methods inherited from class org.qdl_lang.expressions.ExpressionImpladdArgument, evalArg, evalLastArg, evaluatedArgs, getAlias, getArgAt, getArgCount, getArguments, getEvaluatedArgs, getLastArg, getOperatorType, getResult, getResultType, getSourceCode, getTokenPosition, hasAlias, hasEvaluatedArgs, hasTokenPosition, isEvaluated, isSizeQuery, setAlias, setArguments, setEvaluated, setEvaluatedArgs, setOperatorType, setResult, setResult, setSizeQuery, setSourceCode, setTokenPosition, toString
 
- 
 
- 
- 
- 
Constructor Detail- 
LambdaDefinitionNodepublic LambdaDefinitionNode(FunctionDefinitionStatement fds) 
 - 
LambdaDefinitionNodepublic LambdaDefinitionNode(int operatorType) 
 
- 
 - 
Method Detail- 
hasNamepublic boolean hasName() 
 - 
makeCopypublic ExpressionInterface makeCopy() - Specified by:
- makeCopyin interface- ExpressionInterface
 
 - 
isLambdapublic boolean isLambda() 
 - 
setLambdapublic void setLambda(boolean lambda) 
 - 
getFunctionRecordpublic FunctionRecord getFunctionRecord() 
 - 
setFunctionRecordpublic void setFunctionRecord(FunctionRecord functionRecord) 
 - 
getNodeTypepublic int getNodeType() Description copied from interface:ExpressionInterfaceQDL is not strongly typed but Java is, so each node type should have a unique integer and conditionals should use that, not the instanceof operator. This allows for efficient programming with switch statements rather than a bevy of conditionals (potentially each of which gets done even if the correct case has been handled).- Specified by:
- getNodeTypein interface- ExpressionInterface
- Specified by:
- getNodeTypein interface- FunctionNodeInterface
- Returns:
 
 
- 
 
-