diff options
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..911948d --- /dev/null +++ b/src/main.rs @@ -0,0 +1,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"); + } + } +} + |
