blob: 911948dfdb2ccbb04c662f56b9fdaef9442af881 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
use difx::sexpr::Parser;
use difx::match_rules::{self, Bindings};
fn main() {
let input = include_str!("../test_rule");
let rules = difx::def_rules::parse_def_rules(input.to_string());
// println!("{:#?}", rules);
let pat = rules[0].clone().lhs;
println!("{:?}", pat);
loop {
let mut input = String::new();
std::io::stdin()
.read_line(&mut input)
.unwrap();
let mut parser = Parser::new(&input);
let parsed = parser.parse_one();
let mut bindings = Bindings::default();
if match_rules::matches(&pat, &parsed, &mut bindings) {
println!("{:?}", &bindings);
println!("MATCH");
}
}
}
|