Class Tuple

java.lang.Object
io.jawk.intermediate.Tuple
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
Tuple.AddressTuple, Tuple.BooleanTuple, Tuple.ClassTuple, Tuple.CountTuple, Tuple.DereferenceTuple, Tuple.ExtensionTuple, Tuple.FunctionTuple, Tuple.LongTuple, Tuple.NoOperandTuple, Tuple.PushDoubleTuple, Tuple.PushLongTuple, Tuple.PushStringTuple, Tuple.RegexTuple, Tuple.VariableTuple

public abstract class Tuple extends Object implements Serializable
Represents one instruction in the tuple stream produced by AwkTuples. Concrete subclasses carry only the operands required by their opcode or opcode group.
Author:
Danny Daglas
See Also:
  • Method Details

    • getOpcode

      public final Opcode getOpcode()
      Returns this tuple's opcode.
      Returns:
      opcode executed by the AVM
    • getAddress

      public Address getAddress()
      Returns this tuple's jump/call address, if it has one.
      Returns:
      tuple address, or null
    • touch

      public void touch(List<Tuple> queue)
      Resolves deferred operands and validates resolved addresses.
      Parameters:
      queue - tuple queue used to validate address targets
    • getLineNumber

      public int getLineNumber()
      Returns the source line number associated with this tuple.
      Returns:
      source line number, or -1 when unknown