Package ghidra.app.plugin.assembler.sleigh.grammars

# Class AssemblyExtendedGrammar

java.lang.Object
ghidra.app.plugin.assembler.sleigh.grammars.AbstractAssemblyGrammar<AssemblyExtendedNonTerminal,AssemblyExtendedProduction>
ghidra.app.plugin.assembler.sleigh.grammars.AssemblyExtendedGrammar

All Implemented Interfaces:
  `Iterable<AssemblyExtendedProduction>`

public class AssemblyExtendedGrammar extends AbstractAssemblyGrammar<AssemblyExtendedNonTerminal,AssemblyExtendedProduction>
Defines an "extended" grammar

"Extended grammar" as in a grammar extended with state numbers from an LR0 parser. See LALR(1) Parsing from Stephen Jackson of Dalhousie University, Halifax, Nova Scotia, Canada.

- ## Field Summary

  ### Fields inherited from class ghidra.app.plugin.assembler.sleigh.grammars.AbstractAssemblyGrammar

  `nonterminals, prodList, productions, startName, symbols, terminals`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AssemblyExtendedGrammar()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected AssemblyExtendedProduction`
  `newProduction(AssemblyExtendedNonTerminal lhs, AssemblySentential<AssemblyExtendedNonTerminal> rhs)`
  Because a subclass may have a different type of production, it must provide a mechanism for constructing an appropriate production given just the LHS and RHS.

  ### Methods inherited from class ghidra.app.plugin.assembler.sleigh.grammars.AbstractAssemblyGrammar

  `addProduction, addProduction, combine, contains, getNonTerminal, getStart, getStartName, getTerminal, isPureRecursive, iterator, nonTerminals, print, productionsOf, productionsOf, setStart, setStartName, terminals, verify`

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

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface java.lang.Iterable

  `forEach, spliterator`

- ## Constructor Details

  - ### AssemblyExtendedGrammar

    public AssemblyExtendedGrammar()

- ## Method Details

  - ### newProduction

    protected AssemblyExtendedProduction newProduction(AssemblyExtendedNonTerminal lhs, AssemblySentential<AssemblyExtendedNonTerminal> rhs)
    Description copied from class: `AbstractAssemblyGrammar`
    Because a subclass may have a different type of production, it must provide a mechanism for constructing an appropriate production given just the LHS and RHS.
    Specified by:
      `newProduction` in class `AbstractAssemblyGrammar<AssemblyExtendedNonTerminal,AssemblyExtendedProduction>`
    Parameters:
      `lhs` - the left-hand side of the production
      `rhs` - the right-hand side of the production
    Returns:
      the constructed production