Class ConditionalExpression
java.lang.Object
simula.compiler.syntaxClass.SyntaxClass
simula.compiler.syntaxClass.expression.Expression
simula.compiler.syntaxClass.expression.ConditionalExpression
Conditional Expression.
Syntax: conditional-expression = IF Boolean-expression THEN simple-expression ELSE expression
Link to GitHub: Source File.
- Author:
- Øystein Myhre Andersen
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) Expression
The condition.(package private) Expression
The else branch expression(package private) Expression
The then branch expressionFields inherited from class simula.compiler.syntaxClass.expression.Expression
backLink, type
Fields inherited from class simula.compiler.syntaxClass.SyntaxClass
CHECKED, lineNumber, OBJECT_SEQU
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprivate
Default constructor used by Attribute File I/O(package private)
ConditionalExpression
(Type type, Expression condition, Expression thenExpression, Expression elseExpression) Create a new ConditionalExpression. -
Method Summary
Modifier and TypeMethodDescriptionvoid
buildEvaluation
(Expression rightPart, CodeBuilder codeBuilder) ClassFile coding utility: Build Evaluation Code.void
Perform semantic checking.boolean
Returns true if this expression may be used as a statement.static ConditionalExpression
Read and return a ConditionalExpression.Generate Java code for this Syntax Class.toString()
void
Write a SyntaxClass object to a AttributeOutputStream.Methods inherited from class simula.compiler.syntaxClass.expression.Expression
acceptExpression, checkCompatibility, evaluate, expectExpression, get, getInt, getNumber, getQualification, getWriteableVariable, printTree, put
Methods inherited from class simula.compiler.syntaxClass.SyntaxClass
ASSERT_SEMANTICS_CHECKED, buildByteCode, doDeclarationCoding, doJavaCoding, edIndent, edTreeIndent, IS_SEMANTICS_CHECKED, print, SET_SEMANTICS_CHECKED, setLineNumber
-
Field Details
-
condition
Expression conditionThe condition. -
thenExpression
Expression thenExpressionThe then branch expression -
elseExpression
Expression elseExpressionThe else branch expression
-
-
Constructor Details
-
ConditionalExpression
ConditionalExpression(Type type, Expression condition, Expression thenExpression, Expression elseExpression) Create a new ConditionalExpression.- Parameters:
type
- expression's typecondition
- the conditionthenExpression
- then branch expressionelseExpression
- else branch expression
-
ConditionalExpression
private ConditionalExpression()Default constructor used by Attribute File I/O
-
-
Method Details
-
doChecking
public void doChecking()Description copied from class:SyntaxClass
Perform semantic checking.
This must be redefined in every subclass.
- Overrides:
doChecking
in classSyntaxClass
-
maybeStatement
public boolean maybeStatement()Description copied from class:Expression
Returns true if this expression may be used as a statement.- Specified by:
maybeStatement
in classExpression
- Returns:
- true if this expression may be used as a statement
-
toJavaCode
Description copied from class:SyntaxClass
Generate Java code for this Syntax Class.- Overrides:
toJavaCode
in classSyntaxClass
- Returns:
- Java code
-
buildEvaluation
Description copied from class:Expression
ClassFile coding utility: Build Evaluation Code.- Specified by:
buildEvaluation
in classExpression
- Parameters:
rightPart
- expressioncodeBuilder
- the codeBuilder used.
-
toString
- Overrides:
toString
in classExpression
-
writeObject
Description copied from class:SyntaxClass
Write a SyntaxClass object to a AttributeOutputStream.- Overrides:
writeObject
in classSyntaxClass
- Parameters:
oupt
- the AttributeOutputStream to write to.- Throws:
IOException
- if something went wrong.
-
readObject
Read and return a ConditionalExpression.- Parameters:
inpt
- the AttributeInputStream to read from- Returns:
- the ConditionalExpression read from the stream.
- Throws:
IOException
- if something went wrong.
-