Package ghidra.app.plugin.assembler.sleigh.expr.match

# Class BinaryExpressionMatcher<T extends BinaryExpression>

java.lang.Object
ghidra.app.plugin.assembler.sleigh.expr.match.AbstractExpressionMatcher<T>
ghidra.app.plugin.assembler.sleigh.expr.match.BinaryExpressionMatcher<T>

Type Parameters:
  `T` - the type of expression matched

All Implemented Interfaces:
  `ExpressionMatcher<T>`

Direct Known Subclasses:
  `BinaryExpressionMatcher.Commutative`

public class BinaryExpressionMatcher<T extends BinaryExpression> extends AbstractExpressionMatcher<T>
A matcher for a binary expression

If the required type matches, the matching descends to the left then right operands.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `BinaryExpressionMatcher.Commutative<T extends BinaryExpression>`
  A matcher for binary expression allowing commutativity

  ## Nested classes/interfaces inherited from interface ghidra.app.plugin.assembler.sleigh.expr.match.ExpressionMatcher

  `ExpressionMatcher.Context`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected final ExpressionMatcher<?>`
  `leftMatcher`
  `protected final ExpressionMatcher<?>`
  `rightMatcher`

  ### Fields inherited from class ghidra.app.plugin.assembler.sleigh.expr.match.AbstractExpressionMatcher

  `ops`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `BinaryExpressionMatcher(Class<T> cls, ExpressionMatcher<?> leftMatcher, ExpressionMatcher<?> rightMatcher)`
  `BinaryExpressionMatcher(Set<Class<? extends T>> ops, ExpressionMatcher<?> leftMatcher, ExpressionMatcher<?> rightMatcher)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected boolean`
  `matchDetails(T expression, Map<ExpressionMatcher<?>,PatternExpression> result)`

  ### Methods inherited from class ghidra.app.plugin.assembler.sleigh.expr.match.AbstractExpressionMatcher

  `expressionsIdenticallyDefined, match, opMatches, recordResult`

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

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

  ### Methods inherited from interface ghidra.app.plugin.assembler.sleigh.expr.match.ExpressionMatcher

  `get, match`

- ## Field Details

  - ### leftMatcher

    protected final ExpressionMatcher<?> leftMatcher

  - ### rightMatcher

    protected final ExpressionMatcher<?> rightMatcher

- ## Constructor Details

  - ### BinaryExpressionMatcher

    public BinaryExpressionMatcher(Set<Class<? extends T>> ops, ExpressionMatcher<?> leftMatcher, ExpressionMatcher<?> rightMatcher)

  - ### BinaryExpressionMatcher

    public BinaryExpressionMatcher(Class<T> cls, ExpressionMatcher<?> leftMatcher, ExpressionMatcher<?> rightMatcher)

- ## Method Details

  - ### matchDetails

    protected boolean matchDetails(T expression, Map<ExpressionMatcher<?>,PatternExpression> result)
    Specified by:
      `matchDetails` in class `AbstractExpressionMatcher<T extends BinaryExpression>`