Package jminusminus

Class JMessageExpression


class JMessageExpression extends JExpression
The AST node for a message expression that has a target, optionally an ambiguous part, a message name, and zero or more actual arguments.
  • 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

      public JExpression analyze(Context context)
      Analyzes and returns a JExpression.
      Specified by:
      analyze in class JExpression
      Parameters:
      context - context in which names are resolved.
      Returns:
      the analyzed (and possibly rewritten) AST subtree.
    • codegen

      public void codegen(CLEmitter output)
      Performs code generation for this AST.
      Specified by:
      codegen in class JAST
      Parameters:
      output - the code emitter.
    • codegen

      public void codegen(CLEmitter output, String targetLabel, boolean onTrue)
      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 class JExpression
      Parameters:
      output - the code emitter.
      targetLabel - the label to which we should branch.
      onTrue - do we branch on true?
    • toJSON

      public void toJSON(JSONElement json)
      Stores information about this AST in JSON format.
      Overrides:
      toJSON in class JAST
      Parameters:
      json - the JSON emitter.