comby/lib/language
Rijnard van Tonder 92d5988005
Library MLI (#257)
2021-03-18 03:24:40 -07:00
..
alpha_parser.ml add flag for omega matcher engine (#179) 2020-04-28 15:22:18 -07:00
alpha_rule.ml Library MLI (#257) 2021-03-18 03:24:40 -07:00
ast.ml add nested matching (#236) 2021-02-06 22:04:45 -07:00
dune Remove unused dependency (#252) 2021-03-05 10:49:30 -07:00
omega_parser.ml add flag for omega matcher engine (#179) 2020-04-28 15:22:18 -07:00
omega_rule.ml Library MLI (#257) 2021-03-18 03:24:40 -07:00
options.ml add nested matching (#236) 2021-02-06 22:04:45 -07:00
options.mli add nested matching (#236) 2021-02-06 22:04:45 -07:00
README.md add rule language grammar 2020-11-21 19:32:30 -07:00
rule.ml add flag for omega matcher engine (#179) 2020-04-28 15:22:18 -07:00
rule.mli add flag for omega matcher engine (#179) 2020-04-28 15:22:18 -07:00
syntax.ml add nested matching (#236) 2021-02-06 22:04:45 -07:00
types.ml Library MLI (#257) 2021-03-18 03:24:40 -07:00

Rule language grammar

grammar ::= "where" sequence

sequence ::= expression ("," expression)*

expression ::= 
| bool
| atom "==" atom 
| atom "!=" atom
| "rewrite" atom "{" qstring "->" atom "}"
| "match" atom "{" ("|" branch )+ "}"

bool ::= "true" | "false"
atom ::= hole | qstring
qstring ::= '"' quoted-string '"'
hole ::= ":[" hole-identifier "]"
branch ::= qstring "->" sequence

See the page for hole-identifier syntax if it matters.