## Uses of Interface
edu.wisc.game.parser.Expression

- Packages that use Expression
  Package | Description
  --- | ---
  edu.wisc.game.parser | Tools for parsing rule set descriptions

- - ### Uses of Expression in edu.wisc.game.parser

    Subinterfaces of Expression in edu.wisc.game.parser
    Modifier and Type | Interface | Description
    --- | --- | ---
    `static interface` | `Expression.ArithmeticExpression` | An arithmetic expression is composed of variables, constants, and arithmetic operations; parentheses can be used for ordering operations.

    Classes in edu.wisc.game.parser that implement Expression
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `Expression.AdditiveExpression` |
    `static class` | `Expression.BracketList` |
    `static class` | `Expression.ColonExpression` | Id:ArithmeticExpression; used in GS 3
    `static class` | `Expression.ComparisonExpression` | Has exactly two operands, and the operator is one of '==', '!=', '<=', '>', etc
    `static class` | `Expression.ExList` | Can be overridden as needed
    `static class` | `Expression.Id` | A variable.
    `static class` | `Expression.MultiplicativeExpression` |
    `static class` | `Expression.NegationExpression` | !E evaluates to [1] if E is an empty set, or to [] otherwise
    `static class` | `Expression.Num` | A numeric constant
    `static class` | `Expression.ParenList` |
    `static class` | `Expression.QualifiedId` | A.B
    `static class` | `Expression.RangeExpression` | [Num..Num]
    `static class` | `Expression.SerialExpression` | Additive or multiplicative
    `static class` | `Expression.Star` | A Star expression is simply "*".

    Fields in edu.wisc.game.parser declared as Expression
    Modifier and Type | Field | Description
    --- | --- | ---
    `Expression` | Expression.ColonExpression.`arex` |

    Methods in edu.wisc.game.parser that return Expression
    Modifier and Type | Method | Description
    --- | --- | ---
    `Expression` | Expression.Mapper.`apply​(Expression ex)` |
    `Expression` | Expression.AdditiveExpression.`map​(Expression.Mapper mapper)` | Applies the mapper to each component
    `Expression` | Expression.ColonExpression.`map​(Expression.Mapper mapper)` |
    `Expression` | Expression.ComparisonExpression.`map​(Expression.Mapper mapper)` | Applies the mapper to each component
    `Expression` | Expression.Id.`map​(Expression.Mapper mapper)` |
    `Expression` | Expression.`map​(Expression.Mapper mapper)` |
    `Expression` | Expression.MultiplicativeExpression.`map​(Expression.Mapper mapper)` | Applies the mapper to each component
    `Expression` | Expression.NegationExpression.`map​(Expression.Mapper mapper)` | Applies the mapper to each component
    `Expression` | Expression.Num.`map​(Expression.Mapper mapper)` |
    `Expression` | Expression.RangeExpression.`map​(Expression.Mapper mapper)` |
    `Expression` | Expression.Star.`map​(Expression.Mapper mapper)` |
    `static Expression` | Expression.`mkCounterOrAtom​(Vector<Token> tokens)` | Extracts one of the sections of a rule line: either the leading counter (int or star), or one of the atoms (paren lists that may include arithmetic expressions or stars)

    Methods in edu.wisc.game.parser with parameters of type Expression
    Modifier and Type | Method | Description
    --- | --- | ---
    `Expression` | Expression.Mapper.`apply​(Expression ex)` |