Package jminusminus
Class JMessageExpression
java.lang.Object
jminusminus.JAST
jminusminus.JStatement
jminusminus.JExpression
jminusminus.JMessageExpression
The AST node for a message expression that has a target, optionally an ambiguous part, a
message name, and zero or more actual arguments.
-
Field Summary
Fields inherited from class jminusminus.JExpression
isStatementExpression, type
Fields inherited from class jminusminus.JAST
compilationUnit, line
-
Constructor Summary
ConstructorDescriptionJMessageExpression
(int line, JExpression target, String messageName, ArrayList<JExpression> arguments) Constructs an AST node for a message expression without an ambiguous part.JMessageExpression
(int line, JExpression target, AmbiguousName ambiguousPart, String messageName, ArrayList<JExpression> arguments) Constructs an AST node for a message expression having an ambiguous part. -
Method Summary
Modifier and TypeMethodDescriptionAnalyzes and returns a JExpression.void
Performs code generation for this AST.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.void
toJSON
(JSONElement json) Stores information about this AST in JSON format.Methods inherited from class jminusminus.JExpression
isStatementExpression, type
Methods inherited from class jminusminus.JAST
line, partialCodegen, unescape
-
Constructor Details
-
JMessageExpression
public JMessageExpression(int line, JExpression target, String messageName, ArrayList<JExpression> arguments) Constructs an AST node for a message expression without an ambiguous part.- Parameters:
line
- line in which the expression occurs in the source file.target
- the target expression.messageName
- the message name.arguments
- the arguments.
-
JMessageExpression
public JMessageExpression(int line, JExpression target, AmbiguousName ambiguousPart, String messageName, ArrayList<JExpression> arguments) Constructs an AST node for a message expression having an ambiguous part.- Parameters:
line
- line in which the expression occurs in the source file.target
- the target expression.ambiguousPart
- the ambiguous part.messageName
- the message name.arguments
- the arguments.
-
-
Method Details
-
analyze
Analyzes and returns a JExpression.- Specified by:
analyze
in classJExpression
- Parameters:
context
- context in which names are resolved.- Returns:
- the analyzed (and possibly rewritten) AST subtree.
-
codegen
Performs code generation for this AST. -
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 classJExpression
- Parameters:
output
- the code emitter.targetLabel
- the label to which we should branch.onTrue
- do we branch on true?
-
toJSON
Stores information about this AST in JSON format.
-