# Package edu.wisc.game.parser

# Tools for parsing rule set descriptions

Software Copyright University Wisconsin-Madison, under Apache License, Version 2.0

- Interface Summary
  Interface | Description
  --- | ---
  Expression |
  Expression.ArithmeticExpression | An arithmetic expression is composed of variables, constants, and arithmetic operations; parentheses can be used for ordering operations.
  Expression.Mapper | A Mapper is something that can take a variable (Expression.Id) and produce another Expression (e.g.

- Class Summary
  Class | Description
  --- | ---
  Expression.AdditiveExpression |
  Expression.BracketList |
  Expression.ColonExpression | Id:ArithmeticExpression; used in GS 3
  Expression.ComparisonExpression | Has exactly two operands, and the operator is one of '==', '!=', '<=', '>', etc
  Expression.ExList | Can be overridden as needed
  Expression.Id | A variable.
  Expression.MapTo<T> | A HashMap storing a set of values of a given type T for each key
  Expression.MultiplicativeExpression |
  Expression.NegationExpression | !E evaluates to [1] if E is an empty set, or to [] otherwise
  Expression.Num | A numeric constant
  Expression.ParenList |
  Expression.PropMap | Values are String or Integer
  Expression.QualifiedId | A.B
  Expression.RangeExpression | [Num..Num]
  Expression.SerialExpression | Additive or multiplicative
  Expression.Star | A Star expression is simply "*".
  Expression.VarMap |
  Expression.VarMap2 | Objects in question may be Integer, String, or PropMap (ImageObject or equivalent)
  Token | A token represents an element of the input text.

- Enum Summary
  Enum | Description
  --- | ---
  Token.Type |

- Exception Summary
  Exception | Description
  --- | ---
  RuleParseException |