Class ChangeUnitsOperation

java.lang.Object
org.kigalisim.lang.operation.ChangeUnitsOperation
All Implemented Interfaces:
Operation

public class ChangeUnitsOperation extends Object implements Operation
Description of a calculation which changes the units of an EngineNumber.

Description of a calculation which changes the units of an EngineNumber at the top of the stack, requiring that it either is empty (no units assigned) or is the same as the desired units.

  • Constructor Details

    • ChangeUnitsOperation

      public ChangeUnitsOperation(Operation operand, String units)
      Create a new ChangeUnitsOperation.
      Parameters:
      operand - The operand of the calculation.
      units - The units to change to.
  • Method Details

    • execute

      public void execute(PushDownMachine machine)
      Execute the calculation and leave the result at the top of the stack.
      Specified by:
      execute in interface Operation
      Parameters:
      machine - The machine in which to execute the calculation if needed.
    • getStaticSemantics

      public OperationStaticSemantics getStaticSemantics()
      Get a record describing this operation's semantics.

      Get a record describing this operation's semantics that are inferrable from its static expression in code. In other words, properties and effects which do not require inspection at time of executing the operation.

      Specified by:
      getStaticSemantics in interface Operation
      Returns:
      Inference of common static properties found for this operation.