BRANCH_FORWARD

16*N+0 - Branch to instruction N, which must be after the current instruction. Attempt to continue parsing at both the next instruction and instruction N.

Properties

Link copied to clipboard

Whether this operation can run successfully if there is a pre-parsed first argument that has not yet been consumed.

Link copied to clipboard

Whether this instance commutes with PARSE_PART instructions.

Link copied to clipboard

The instruction coding of the receiver.

Link copied to clipboard

A Statistic that records the number of nanoseconds spent while expanding occurrences of this ParsingOperation.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

A Statistic that records the number of nanoseconds spent while executing occurrences of this ParsingOperation.

Functions

Link copied to clipboard
open fun checkArgumentIndex(instruction: Int): Int

Assume that the instruction encodes an operand that represents the index of an argument to be checked (for grammatical restrictions): answer the operand.

Link copied to clipboard
open fun describe(operand: Int): String

Describe the operation for the debugger, using the supplied operand.

Link copied to clipboard
fun encoding(operand: Int): Int

Answer the instruction coding of the receiver for the given operand. The receiver must be arity one (1), which is equivalent to its ordinal being greater than or equal to distinctInstructions.

Link copied to clipboard
open fun keywordIndex(instruction: Int): Int

Assume that the instruction encodes an operand that represents a message part index: answer the operand. Answer 0 if the operand does not represent a message part.

Link copied to clipboard
open override fun successorPcs(instruction: Int, currentPc: Int): List<Int>

Given an instruction and program counter, answer the list of successor program counters that should be explored. For example, a BRANCH_FORWARD instruction will need to visit both the next program counter and the branch target.

Link copied to clipboard
open fun typeCheckArgumentIndex(instruction: Int): Int

Extract the index of the type check argument for a TYPE_CHECK_ARGUMENT parsing instruction. This indexes the static MessageSplitter.constantForIndex.