Libraries.Language.Compile.Symbol.Class Documentation

Inherits from: Libraries.Language.Compile.Location, Libraries.Language.Object, Libraries.Language.Compile.Symbol.Symbol

Actions Documentation

Add(Libraries.Language.Compile.Symbol.Action method)

get the index of the generic from the parent

Parameters

Return

Libraries.Language.Compile.CompilerError:

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

This returns all classes that have valid use statements in the class.

Parameters

Return

Libraries.Language.Compile.CompilerError:

AddGeneric(text name)

Parameters

  • text name

AddParentClass(Libraries.Language.Compile.Symbol.Class clazz)

AddUnresolvedParent(Libraries.Language.Compile.QualifiedName name)

AddUnresolvedUseStatement(Libraries.Language.Compile.QualifiedName name)

Returns the file on disk that contains the implementation of this class.

Parameters

AddUseLocation(Libraries.Language.Compile.Location location)

AddValidUse(Libraries.Language.Compile.Symbol.Class clazz)

This action returns those parents that are directly specified in the class. Object is also always included in this list.

Parameters

Return

Libraries.Language.Compile.CompilerError:

CalculateFieldHints(Libraries.Language.Compile.CompilerErrorManager errors)

This action returns a class from a name, like Object, for Libraries.Language.Object. It assumes that the name passed in is not resolved. Fully resolvable names (Libraries.Language.Object) will not be resolved by this action, and as such, need to be resolved from the symbol table.

Parameters

Compare(Libraries.Language.Object object)

Variable classInstance = call:variable

Parameters

Return

integer:

ComputeGenericsTables(Libraries.Language.Compile.CompilerErrorManager compilerErrorManager)

ComputeVirtualActionTable(Libraries.Language.Compile.CompilerErrorManager errors)

This action looks at all actions listed in this class's declared action table, in addition to those actions declared in parents, and fills up a new virtual action table with all actions combined. If this action has an error, it is created and sent to the compiler error manager passed in.

Parameters

ConvertStaticKeyToBytecodeInterfacePath()

This action returns the static key formatted as a class name in Java bytecode.

Return

text:

ConvertStaticKeyToBytecodePath()

This action returns the static key formatted as a class name in Java bytecode.

Return

text:

ConvertStaticKeyToBytecodePathTypeName()

This action returns the static key formatted as a type name in Java bytecode.

Return

text:

ConvertStaticKeyToBytecodePathTypeNameInterface()

This action returns the static key formatted as a type name in Java bytecode. This version acts as an interface type.

Return

text:

ConvertStaticKeyToFieldPath()

This action returns the static key formatted as a class name in the style of a field.

Return

text:

ConvertStaticKeyToJavaScriptName()

This action returns the static key formatted as a class name in Java bytecode.

Return

text:

ConvertStaticKeyToParentActionName()

This action digs through the generics and, if it finds one by this name, returns its index. If no generic by this name is found, then this returns -1.

Return

text:

ConvertStaticKeyToParentFieldInterfaceName()

This action converts the static key of this class to a name that can be used by the compiler as a class field name. An example would be that Libraries.Language.Object becomes Libraries_Language_Object__.

Return

text:

ConvertStaticKeyToParentFieldName()

This action converts the static key of this class to a name that can be used by the compiler as a class field name. An example would be that Libraries.Language.Object becomes Libraries_Language_Object__.

Return

text:

ConvertStaticKeyToPluginPath()

This action returns the static key formatted as a plugin class name in Java bytecode.

Return

text:

ConvertStaticKeyToPluginPathTypeName()

This action returns the static key formatted as a plugin class type name in Java bytecode.

Return

text:

ConvertStaticKeyToUnderScore()

This action returns the static key formatted as a class name in Java bytecode.

Return

text:

ConvertToActionNameFromField(Libraries.Language.Compile.Symbol.Variable variable, boolean isGetter)

This action returns whether or not this particular class represents Libraries.Language.Object.

Parameters

Return

text:

CreateLocationCopy()

This action is a helper action to get copies of the location.

Return

Libraries.Language.Compile.Location:

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)

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

This action returns true if this class is either Libraries.Language.Errors.Error or is a subclass.

Parameters

Return

text:

GetAction(text key)

generate a hint for the getter

Parameters

  • text key

Return

Libraries.Language.Compile.Symbol.Action:

GetActions()

the parent is now resolved.

Return

Libraries.Containers.Iterator:

GetColumnNumber()

Return

integer

GetColumnNumberEnd()

Return

integer

GetConstructor()

This action returns whether or not the class has an explicity constructor defined. If it returns true, the user has defined a constructor. If it returns false, they have not.

Return

Libraries.Language.Compile.Symbol.Action:

GetDirectParentClasses()

This action returns those parents that are directly specified in the class. Object is also always included in this list.

Return

Libraries.Containers.Iterator:

GetDisplayName()

This returns a key related to the package a class is contained in. For example, if a class's fully qualified name is Libraries.Language.Object, then this would return Libraries.Langauge. If the class's fully qualified name is Bob, then this would return the empty string, which indicates the default package.

Return

text:

GetFile()

Returns the file on disk that contains the implementation of this class.

Return

Libraries.System.File:

GetGeneric(integer location)

Parameters

  • integer location

Return

text

GetGenericList()

This action returns a list of of all generic names. For example, if the class is declared as A, then this action will return "Type, Value" without double quotes.

Return

text:

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()

GetHiddenVariableName()

This action returns the static key formatted as a type name in Java bytecode. This version acts as an interface type.

Return

text:

GetIndex()

Return

integer

GetIndexEnd()

Return

integer

GetIndexOfGeneric(text name)

This action digs through the generics and, if it finds one by this name, returns its index. If no generic by this name is found, then this returns -1.

Parameters

  • text name

Return

integer:

GetInterfaceName()

Return

text

GetLineNumber()

Return

integer

GetLineNumberEnd()

Return

integer

GetName()

Return

text

GetNumberGenerics()

Return

integer

GetPackage()

This action converts the static key of this class to a name that can be used by the compiler as a class field name. An example would be that Libraries.Language.Object becomes Libraries_Language_Object__.

Return

Libraries.Language.Compile.QualifiedName:

GetPackageKey()

This returns a key related to the package a class is contained in. For example, if a class's fully qualified name is Libraries.Language.Object, then this would return Libraries.Langauge. If the class's fully qualified name is Bob, then this would return the empty string, which indicates the default package.

Return

text:

GetParentActions()

this is an error

Return

Libraries.Containers.Iterator:

GetParentClass(text key)

This action returns the order in which parents should be instantiated. It provides an optimal ordering to ensure children do not get created before their parents.

Parameters

  • text key

Return

Libraries.Language.Compile.Symbol.Class:

GetParentClasses()

Obtains a list of all parents reachable from this class. This includes parents and the parents of parents as a flattened list.

Return

Libraries.Containers.Iterator:

GetParentCreationOrder()

This action returns the order in which parents should be instantiated. It provides an optimal ordering to ensure children do not get created before their parents.

Return

Libraries.Containers.Iterator:

GetParentGenerics(text key)

Parameters

  • text key

Return

Libraries.Containers.Array

GetParentSize()

get the parent corresponding to this key

Return

integer:

GetPluginName()

Returns the name of the plugin for this class.

Return

text:

GetStaticKey()

use that.

Return

text:

GetUnresolvedParents()

the parents have been resolved.

Return

Libraries.Containers.Iterator:

GetUnresolvedUseStatement(text key)

it's fine to return undefined, because we just ignored the request

Parameters

  • text key

Return

Libraries.Language.Compile.QualifiedName:

GetUnresolvedUseStatements()

if it's the same name, but a different class, then throw an error

Return

Libraries.Containers.Iterator:

GetUseLocationIterator(Libraries.System.File file)

GetValidUseName(text name)

This action returns a class from a name, like Object, for Libraries.Language.Object. It assumes that the name passed in is not resolved. Fully resolvable names (Libraries.Language.Object) will not be resolved by this action, and as such, need to be resolved from the symbol table.

Parameters

  • text name

Return

Libraries.Language.Compile.Symbol.Class:

GetValidUses()

This returns all classes that have valid use statements in the class.

Return

Libraries.Containers.Iterator:

GetVariable(text key)

generate a hint for the getter

Parameters

  • text key

Return

Libraries.Language.Compile.Symbol.Variable:

GetVariables()

now check if there's a setter

Return

Libraries.Containers.Iterator:

GetVirtualAction(text key)

first check if there's a getter

Parameters

  • text key

Return

Libraries.Language.Compile.Symbol.Action:

GetVirtualTable()

GuessBestUsage(Libraries.Language.Compile.Symbol.SymbolTable table, text key)

This action calculates the most likely class that might be meant from a key and returns undefined if it considers its guess to be non-exact. For example, if a name could mean multiple uses, it does this. This action should not be used except in the circumstances that type resolution is not complete and we need a stochastic best guess for the probable type, which is useful in code completion or potentially other applications.

Parameters

Return

Libraries.Language.Compile.Symbol.Class:

HasAction(text key)

TODO: Add in compiler error line and location.

Parameters

  • text key

Return

boolean:

HasBlueprints()

Return

boolean

HasConstructor()

This action returns whether or not the class has an explicity constructor defined. If it returns true, the user has defined a constructor. If it returns false, they have not.

Return

boolean:

HasGeneric(text name)

This action determines whether a generic of a particular name exists in this class.

Parameters

  • text name

Return

boolean:

HasGenericMapToParent(text key)

Parameters

  • text key

Return

boolean

HasGenerics()

Return

boolean

HasMainAction()

Sets a pointer to the file on disk that contains this class.

Return

boolean:

HasParentClass(text key)

This action returns true only if the action ResolveParents is currently executing for this class. It is useful in detecting circular inheritance, which is not allowed in Quorum.

Parameters

  • text key

Return

boolean:

HasParentGenerics(text key)

Parameters

  • text key

Return

boolean

HasSystemAction()

check to see if the action is overriden

Return

boolean:

IsError()

This action returns true if this class is either Libraries.Language.Errors.Error or is a subclass.

Return

boolean:

IsImplicitClass()

now resolve the constructor, if one exists

Return

boolean:

IsObject()

This action returns whether or not this particular class represents Libraries.Language.Object.

Return

boolean:

IsProgramStartingClass()

Return

boolean

IsResolved()

This action checks to see if all types have been resolved for this class.

Return

boolean:

IsResolvingParents()

This action returns true only if the action ResolveParents is currently executing for this class. It is useful in detecting circular inheritance, which is not allowed in Quorum.

Return

boolean:

IsStatic()

Return

boolean

IsUserCode()

end

Return

boolean:

MapParentGenericToMe(text parentKey, integer index)

Parameters

  • text parentKey
  • integer index

Return

integer

RemoveCallLocationsFromActions(Libraries.System.File file)

This action removes all of the call locations from a particular file to a particular set of actions in this class's available actions. As such, it removes them both from these actions and those defined and used by the parent.

Parameters

RemoveCallLocationsFromDependencies(Libraries.System.File file)

now get all of the parents and do those

Parameters

RemoveUseLocations(Libraries.System.File file)

This action removes all of the call locations from a particular file to a particular set of actions in this class's available actions. As such, it removes them both from these actions and those defined and used by the parent.

Parameters

ResolveAction(Libraries.Language.Compile.Symbol.ActionCall call)

Now remove them from all of the actions in this class

Parameters

Return

Libraries.Language.Compile.Symbol.ActionCallResolution:

ResolveActionKey(text name, Libraries.Containers.Iterator<Libraries.Language.Compile.Symbol.Variable> parameters, Libraries.Language.Compile.Symbol.SymbolTable table, Libraries.Language.Compile.CompilerErrorManager errors)

ResolveAllTypes(Libraries.Language.Compile.Symbol.SymbolTable table, Libraries.Language.Compile.CompilerErrorManager errors)

ResolveFrames()

now with resolved type names and keys

ResolveParentLevels(Libraries.Language.Compile.Symbol.SymbolTable table)

TODO: Add in compiler error line and location.

Parameters

ResolveParents(Libraries.Language.Compile.Symbol.SymbolTable table, Libraries.Language.Compile.CompilerErrorManager errors)

ResolveType(Libraries.Language.Compile.Location location, Libraries.Language.Compile.Symbol.Type type, Libraries.Language.Compile.Symbol.SymbolTable table, Libraries.Language.Compile.CompilerErrorManager errors)

ResolveUseStatements(Libraries.Language.Compile.Symbol.SymbolTable table, Libraries.Language.Compile.CompilerErrorManager errors)

This action checks to see if all types have been resolved for this class.

Parameters

SetColumnNumber(integer column)

Parameters

  • integer column

SetColumnNumberEnd(integer column)

Parameters

  • integer column

SetConstructor(Libraries.Language.Compile.Symbol.Action method)

is there a name in the use list?

Parameters

SetDocumentation(Libraries.Language.Compile.Symbol.Documentation documentation)

SetFile(Libraries.System.File container)

Sets a pointer to the file on disk that contains this class.

Parameters

SetIndex(integer index)

Parameters

  • integer index

SetIndexEnd(integer index)

Parameters

  • integer index

SetIsProgramStartingClass(boolean main)

Parameters

  • boolean main

SetLineNumber(integer line)

Parameters

  • integer line

SetLineNumberEnd(integer line)

Parameters

  • integer line

SetLocation(Libraries.Language.Compile.Location location)

This action uses the location and resets the current error's data.

Parameters

SetName(text name)

necessary

Parameters

  • text name

SetNameLocation(Libraries.Language.Compile.Location location)

SetPackage(Libraries.Language.Compile.QualifiedName pack)

SetParentGenerics(text key, Libraries.Containers.Array<Libraries.Language.Compile.Symbol.Type> types)

Parameters

SetStatic(boolean value)

Parameters

  • boolean value

SetUserCode(boolean isUserCode)

end

Parameters

  • boolean isUserCode

ToText()

This action is a helper action to get copies of the location.

Return

text:

WeaveActionFromDirectParent(Libraries.Language.Compile.Symbol.Class mom, Libraries.Language.Compile.Symbol.Action act, Libraries.Language.Compile.CompilerErrorManager errors)