Package ghidra.app.plugin.assembler.sleigh.symbol

# Class AssemblySymbol

java.lang.Object
ghidra.app.plugin.assembler.sleigh.symbol.AssemblySymbol

All Implemented Interfaces:
  `Comparable<AssemblySymbol>`

Direct Known Subclasses:
  `AssemblyNonTerminal`, `AssemblyTerminal`

public abstract class AssemblySymbol extends Object implements Comparable<AssemblySymbol>
A symbol in a context-free grammar

Symbols can be either terminals or non-terminals. Non-terminals must have a defining production, i.e., it must appear as the left-hand side of some production in the grammar.

Traditionally, when displayed, non-terminals should be immediately distinguishable from terminals. In classic CS literature, this usually means non-terminals are in CAPS, and terminals are in lower-case. Because the assembler doesn't control the names provided by SLEIGH, we surround non-terminals in [brackets].

See Also:
  - `AbstractAssemblyGrammar`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected final String`
  `name`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AssemblySymbol(String name)`
  Construct a new symbol with the given name

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `compareTo(AssemblySymbol that)`
  `boolean`
  `equals(Object that)`
  `String`
  `getName()`
  Get the name of this symbol
  `int`
  `hashCode()`
  `boolean`
  `takesOperandIndex()`
  Check if this symbol consumes an operand index of its constructor
  `abstract String`
  `toString()`

  ### Methods inherited from class java.lang.Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Field Details

  - ### name

    protected final String name

- ## Constructor Details

  - ### AssemblySymbol

    public AssemblySymbol(String name)
    Construct a new symbol with the given name
    Parameters:
      `name` - the name

- ## Method Details

  - ### toString

    public abstract String toString()
    Overrides:
      `toString` in class `Object`

  - ### getName

    public String getName()
    Get the name of this symbol
    Returns:
      the name

  - ### compareTo

    public int compareTo(AssemblySymbol that)
    Specified by:
      `compareTo` in interface `Comparable<AssemblySymbol>`

  - ### equals

    public boolean equals(Object that)
    Overrides:
      `equals` in class `Object`

  - ### hashCode

    public int hashCode()
    Overrides:
      `hashCode` in class `Object`

  - ### takesOperandIndex

    public boolean takesOperandIndex()
    Check if this symbol consumes an operand index of its constructor
    Returns:
      true if the symbol represents an operand