Libraries.Language.Compile.Translate.UnaryOpcode Documentation

Inherits from: Libraries.Language.Object, Libraries.Language.Compile.Translate.QuorumOpcode

Actions Documentation

CalculateBytecodeOffset(Libraries.Language.Compile.Symbol.Variable variable)

Compare(Libraries.Language.Object object)

This action compares two object hash codes and returns an integer. The result is larger if this hash code is larger than the object passed as a parameter, smaller, or equal. In this case, -1 means smaller, 0 means equal, and 1 means larger. This action was changed in Quorum 7 to return an integer, instead of a CompareResult object, because the previous implementation was causing efficiency issues.

Parameters

Return

integer: The Compare result, Smaller, Equal, or Larger.

Example

Object o
Object t
integer result = o:Compare(t) //1 (larger), 0 (equal), or -1 (smaller)

Equals(Libraries.Language.Object object)

This action determines if two objects are equal based on their hash code values.

Parameters

Return

boolean: True if the hash codes are equal and false if they are not equal.

Example

use Libraries.Language.Object
use Libraries.Language.Types.Text
Object o
Text t
boolean result = o:Equals(t)

Evaluate(Libraries.Language.Compile.Interpreter.Runtime runtime)

Some opcodes can be evaluated in the context of a runtime environment

Parameters

GetBytecodeOffset()

Return

integer

GetHashCode()

This action gets the hash code for an object.

Return

integer: The integer hash code of the object.

Example

Object o
integer hash = o:GetHashCode()

GetIsIfExpression()

Return

boolean

GetTemplateCopy()

This action copies only that information provided by the type checker. It guarantees that the object is of the same type, but opcode lists are not copied, nor is any class particular information. For example, a plus opcode would be copied, as this is static information, but what it is adding would not.

Return

Libraries.Language.Compile.Translate.QuorumOpcode:

SetBytecodeWriteOffset(integer offset)

Parameters

  • integer offset

SetBytecodeWriteOffsetToAllChildren(integer offset)

Parameters

  • integer offset

SetIsIfExpression(boolean isInIf)

Parameters

  • boolean isInIf

SetLocation(Libraries.Language.Compile.Location loc)

SetMethodWriter(Libraries.Language.Compile.Translate.JavaBytecodeMethodWriter writer)

SetMethodWriterToAllChildren(Libraries.Language.Compile.Translate.JavaBytecodeMethodWriter writer)

SetOpcode(Libraries.Language.Compile.Translate.QuorumOpcode op)

SetType(Libraries.Language.Compile.Symbol.Type type)

VisitLineNumber()

Write()

Some opcodes can be evaluated in the context of a runtime environment

WriteBlockOrPassIfEmpty(text value)

Parameters

  • text value

Return

text

WriteJavaScript()

Return

text

WritePython()

Return

text