Class UnaryComparison
java.lang.Object
org.jfuncmachine.compiler.model.SourceElement
org.jfuncmachine.compiler.model.expr.bool.BooleanExpr
org.jfuncmachine.compiler.model.expr.bool.UnaryComparison
Represents a comparison for a single expression, usually either a binary expression (represented by 0 or 1),
or the result of a compare function or instruction.
-
Field Summary
FieldsModifier and TypeFieldDescriptionThe expression to testThe expression that should be executed if the test is falseThe test to performThe expression that should be executed if the test is trueFields inherited from class org.jfuncmachine.compiler.model.expr.bool.BooleanExpr
labelFields inherited from class org.jfuncmachine.compiler.model.SourceElement
filename, lineNumber -
Constructor Summary
ConstructorsConstructorDescriptionUnaryComparison(Test test, Expression expr) Create a new UnaryExpression for a test and expressionUnaryComparison(Test test, Expression expr, String filename, int lineNumber) Create a new UnaryExpression for a test and expression -
Method Summary
Modifier and TypeMethodDescriptioncomputeSequence(BooleanExpr trueNext, BooleanExpr falseNext, List<BooleanExpr> tests) Compute a sequence of tests to determine if this expression is true or falsevoidfindCaptured(Environment env) Identify any variables captured by the expressionvoidgenerate(ClassGenerator generator, Environment env, BooleanExpr next) Generate Java bytecode for this comparisoninvert()Invert this expression, which may involve reversing comparisons or changing and to or with inverted tests, etc.Remove any not expressions from a tree of boolean expressions by inverting the expression under the notvoidreset()Resets any values modified during code generationMethods inherited from class org.jfuncmachine.compiler.model.SourceElement
generateException
-
Field Details
-
test
The test to perform -
expr
The expression to test -
truePath
The expression that should be executed if the test is true -
falsePath
The expression that should be executed if the test is false
-
-
Constructor Details
-
UnaryComparison
Create a new UnaryExpression for a test and expression- Parameters:
test- The test to performexpr- The expression to be tested
-
UnaryComparison
Create a new UnaryExpression for a test and expression- Parameters:
test- The test to performexpr- The expression to be testedfilename- The source filename this expression is associated withlineNumber- The source line number this expression is associated with
-
-
Method Details
-
invert
Description copied from class:BooleanExprInvert this expression, which may involve reversing comparisons or changing and to or with inverted tests, etc.- Specified by:
invertin classBooleanExpr- Returns:
- An inverted boolean expression
-
removeNot
Description copied from class:BooleanExprRemove any not expressions from a tree of boolean expressions by inverting the expression under the not- Specified by:
removeNotin classBooleanExpr- Returns:
- a BooleanExpr with any nested Not constructions removed
-
reset
public void reset()Description copied from class:BooleanExprResets any values modified during code generation- Overrides:
resetin classBooleanExpr
-
computeSequence
public BooleanExpr computeSequence(BooleanExpr trueNext, BooleanExpr falseNext, List<BooleanExpr> tests) Description copied from class:BooleanExprCompute a sequence of tests to determine if this expression is true or false- Specified by:
computeSequencein classBooleanExpr- Parameters:
trueNext- The next expression to evaluate if this expression is truefalseNext- The next expression to evaluate if this expression is falsetests- An accumulator for the tests to be executed- Returns:
- The beginning of the sequence
-
findCaptured
Identify any variables captured by the expression- Parameters:
env- The environment chain to be searched
-
generate
Generate Java bytecode for this comparison- Parameters:
generator- The class generator that is generating the current classenv- The environment containing all visible variablesnext- The next boolean expr in the chain
-