Class AssignmentStatement

java.lang.Object
gw.internal.gosu.parser.ParsedElement
gw.internal.gosu.parser.Statement
gw.internal.gosu.parser.statements.AssignmentStatement
All Implemented Interfaces:
IParsedElement, IStatement, IAssignmentStatement

public final class AssignmentStatement extends Statement implements IAssignmentStatement
Represents an assignment statement in the Gosu grammar:
 assignment-statement
   <identifier> = <expression>
 

See Also:
  • Field Details

  • Constructor Details

    • AssignmentStatement

      public AssignmentStatement()
  • Method Details

    • getIdentifier

      public Identifier getIdentifier()
      Specified by:
      getIdentifier in interface IAssignmentStatement
      Returns:
      The left-hand-side identifier of the expression.
    • setIdentifier

      public void setIdentifier(Identifier identifier)
      Parameters:
      identifier - The left-hand-side identifier of the expression.
    • getExpression

      public Expression getExpression()
      Specified by:
      getExpression in interface IAssignmentStatement
      Returns:
      The right-hand-side expression of the assignment.
    • setExpression

      public void setExpression(Expression expression)
      Parameters:
      expression - The right-hand-side expression of the assignment.
    • execute

      public Object execute()
      Execute the expression. Evaluates the RHS and assigns the resulting value to the symbol referenced by the LHS identifier.
      Specified by:
      execute in interface IStatement
      Overrides:
      execute in class Statement
    • getLeastSignificantTerminalStatement_internal

      protected ITerminalStatement getLeastSignificantTerminalStatement_internal(boolean[] bAbsolute)
      Specified by:
      getLeastSignificantTerminalStatement_internal in class Statement
    • toString

      public String toString()
      Description copied from class: Statement
      Subclasses should return a String representing the parsed statement.
      Specified by:
      toString in class Statement
    • resetIdentifierType

      private void resetIdentifierType()
      If the identifier was initialized without a type specification and a null value, the identifier's type becomes that of it's first assignment. TODO cgross: I don't think this is necessary any more. Remove it.