Package iota
Class ILogicalOrOp
The AST node for a logical-or (||) expression.
-
Field Summary
Fields inherited from class iota.IBinaryExpression
lhs, operator, rhs
Fields inherited from class iota.IExpression
isStatementExpression, type
Fields inherited from class iota.IAST
compilationUnit, line
-
Constructor Summary
ConstructorsConstructorDescriptionILogicalOrOp
(int line, IExpression lhs, IExpression rhs) Constructs an AST node for a logical-or expression. -
Method Summary
Modifier and TypeMethodDescriptionAnalyzes and returns an IExpression.void
Performs short-circuit code generation for a boolean expression, given the code emitter, a target label, and whether we branch to that label on true or on false.Methods inherited from class iota.IBooleanBinaryExpression
codegen
Methods inherited from class iota.IBinaryExpression
toJSON
Methods inherited from class iota.IExpression
type
Methods inherited from class iota.IAST
line, preAnalyze
-
Constructor Details
-
ILogicalOrOp
Constructs an AST node for a logical-or expression.- Parameters:
line
- line in which the logical-or expression occurs in the source file.lhs
- lhs operand.rhs
- rhs operand.
-
-
Method Details
-
analyze
Analyzes and returns an IExpression.- Specified by:
analyze
in classIExpression
- Parameters:
context
- context in which names are resolved.- Returns:
- the analyzed (and possibly rewritten) AST subtree.
-
codegen
Performs short-circuit code generation for a boolean expression, given the code emitter, a target label, and whether we branch to that label on true or on false.- Overrides:
codegen
in classIExpression
- Parameters:
output
- the code emitter.targetLabel
- the label to which we should branch.onTrue
- do we branch on true?
-