use rust_rule_engine::parser::grl::GRLParser;
fn main() {
let test_cases = vec![
r#"rule "Test1" {
when
User.Age > 18
then
User.setStatus("adult");
}"#,
r#"rule "Test2" {
when
User.Country == "US" && User.SpendingTotal >= 1000
then
User.setIsVIP(true);
}"#,
r#"rule "Test3" {
when
User.Age >= 18
then
User.IsAdult = true;
}"#,
r#"rule "Test4" {
when
User.Country == "US"
then
User.setVIPLevel("Gold");
}"#,
];
for (i, grl) in test_cases.iter().enumerate() {
println!("\n�� Test case {}: ", i + 1);
println!("{}", grl);
match GRLParser::parse_rules(grl) {
Ok(rules) => {
println!("✅ Parsed successfully: {} rules", rules.len());
if !rules.is_empty() {
println!(" Rule name: {}", rules[0].name);
}
}
Err(e) => {
println!("❌ Parse failed: {:?}", e);
}
}
}
}