Package org.qdl_lang.expressions
Class Dyad
- java.lang.Object
- 
- org.qdl_lang.expressions.ExpressionImpl
- 
- org.qdl_lang.expressions.Dyad
 
 
- 
- All Implemented Interfaces:
- Serializable,- ExpressionNode,- ExpressionInterface,- HasResultInterface,- Statement
 - Direct Known Subclasses:
- ComparisonDyad
 
 public class Dyad extends ExpressionImpl Created by Jeff Gaynor 
 on 1/13/20 at 3:47 PM- 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 Dyad(int operatorType)Dyad(int operatorType, ExpressionNode leftNode, ExpressionNode rightNode)Dyad(int operatorType, TokenPosition tokenPosition)
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description QDLValueevaluate(State state)ExpressionInterfacegetLeftArgument()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.ExpressionInterfacegetRightArgument()booleanisUnary()Demotes that this is actually a unary operator that is converted to dyadic by the interpreter.ExpressionNodemakeCopy()voidsetLeftArgument(ExpressionInterface node)voidsetRightArgument(ExpressionInterface node)voidsetUnary(boolean unary)- 
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- 
Dyadpublic Dyad(int operatorType, TokenPosition tokenPosition)
 - 
Dyadpublic Dyad(int operatorType) 
 - 
Dyadpublic Dyad(int operatorType, ExpressionNode leftNode, ExpressionNode rightNode)
 
- 
 - 
Method Detail- 
isUnarypublic boolean isUnary() Demotes that this is actually a unary operator that is converted to dyadic by the interpreter.- Returns:
 
 - 
setUnarypublic void setUnary(boolean unary) 
 - 
getLeftArgumentpublic ExpressionInterface getLeftArgument() 
 - 
getRightArgumentpublic ExpressionInterface getRightArgument() 
 - 
setLeftArgumentpublic void setLeftArgument(ExpressionInterface node) 
 - 
setRightArgumentpublic void setRightArgument(ExpressionInterface node) 
 - 
makeCopypublic ExpressionNode makeCopy() 
 - 
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).- Returns:
 
 
- 
 
-