Stability | experimental |
---|---|
Safe Haskell | None |
Language | Haskell2010 |
This module defines an AST (Abstract Syntax Tree) for Egison pattern expression.
Documentation
Egison pattern expressions.
n
is a type for name references in patterns, such as them in pattern constructors.
v
is a type for name bindings in patterns, such as them in pattern variables.
e
is a type for expressions in patterns, such as them in value patterns.
Wildcard | Wildcard pattern. Match with everything. |
Variable v | Pattern variable. The matched term is bound to the name. |
Value e | Value pattern. Match with equal terms. |
Predicate e | Predicate pattern. Match with terms that satisfy the given predicate. |
And (Expr n v e) (Expr n v e) | And pattern. Match when both patterns matches. |
Or (Expr n v e) (Expr n v e) | Or pattern. Match when one of given patterns matches. |
Not (Expr n v e) | Not pattern. Match when the given pattern does not match. |
Tuple [Expr n v e] | Tuple pattern. Match with tuples whose elements match with respective patterns. |
Collection [Expr n v e] | Collection pattern. Match with collections whose elements match with respective patterns. |
Infix n (Expr n v e) (Expr n v e) | User-defined infix pattern. |
Pattern n [Expr n v e] | User-defined normal pattern. |