Manipulating Egison patterns: abstract syntax, parser, and pretty-printer.
egison-pattern-src
provides a standalone syntax definition for patterns in the Egison programming language. This package enables you to embed Egison's patterns in your parser (pretty-printer) by supplying expression and name parsers (printers) externally.
Egison Pattern Source
The egison-pattern-src provides a standalone syntax definition for patterns in the Egison programming language. This package enables you to embed Egison's patterns in your parser (pretty-printer) by supplying expression and name parsers (printers) externally.
Syntax
The following is a simplified syntax of pattern expressions where v
, c
, op
and e
are meta-variables for variable names, constructor names, user-defined infix operators, and expressions in host language, respectively.
p ::= _ (wildcard pattern)
| $v (pattern variable)
| #e (value pattern)
| ?e (predicate pattern)
| (p_1, p_2, ..., p_n) (tuple pattern)
| [p_1, p_2, ..., p_n] (collection pattern)
| p & p (and-pattern)
| p | p (or-pattern)
| !p (not-pattern)
| p op p (user-defined infix pattern)
| c p_1 p_2 ... p_n (constructor pattern)
License
egison-pattern-src is distributed as open source software under the terms of the 3 clause BSD License. See LICENSE
for details.