Package ghidra.app.plugin.assembler.sleigh.sem

# Class AbstractAssemblyStateGenerator<N extends AssemblyParseTreeNode>

java.lang.Object
ghidra.app.plugin.assembler.sleigh.sem.AbstractAssemblyStateGenerator<N>

Type Parameters:
  `N` - the type of parse tree node to process

Direct Known Subclasses:
  `AssemblyConstructStateGenerator`, `AssemblyNopStateGenerator`, `AssemblyOperandStateGenerator`, `AssemblyStringStateGenerator`

public abstract class AbstractAssemblyStateGenerator<N extends AssemblyParseTreeNode> extends Object
Base class for generating prototype nodes ("states") from a parse tree node

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `protected static class`
  `AbstractAssemblyStateGenerator.GeneratorContext`
  Context to pass along as states are generated

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected final AssemblyResolvedPatterns`
  `fromLeft`
  `protected final N`
  `node`
  `protected final AbstractAssemblyTreeResolver<?>`
  `resolver`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AbstractAssemblyStateGenerator(AbstractAssemblyTreeResolver<?> resolver, N node, AssemblyResolvedPatterns fromLeft)`
  Construct a generator

- ## Method Summary

  Modifier and Type
  Method
  Description
  `abstract Stream<AssemblyGeneratedPrototype>`
  `generate(AbstractAssemblyStateGenerator.GeneratorContext gc)`
  Generate states

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

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

- ## Field Details

  - ### resolver

    protected final AbstractAssemblyTreeResolver<?> resolver

  - ### node

    protected final N extends AssemblyParseTreeNode node

  - ### fromLeft

    protected final AssemblyResolvedPatterns fromLeft

- ## Constructor Details

  - ### AbstractAssemblyStateGenerator

    public AbstractAssemblyStateGenerator(AbstractAssemblyTreeResolver<?> resolver, N node, AssemblyResolvedPatterns fromLeft)
    Construct a generator
    Parameters:
      `resolver` - the resolver
      `node` - the node from which to generate states
      `fromLeft` - the accumulated patterns from the left sibling or the parent

- ## Method Details

  - ### generate

    public abstract Stream<AssemblyGeneratedPrototype> generate(AbstractAssemblyStateGenerator.GeneratorContext gc)
    Generate states
    Parameters:
      `gc` - the generator context for this node
    Returns:
      the stream of prototypes, each including accumulated patterns