2025-05-14 11:42:19 +02:00
|
|
|
mod rsprocess;
|
|
|
|
|
use lalrpop_util::lalrpop_mod;
|
2025-05-19 00:10:23 +02:00
|
|
|
// use std::io;
|
2025-05-14 11:42:19 +02:00
|
|
|
|
|
|
|
|
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|
|
|
|
lalrpop_mod!(grammar, "/rsprocess/grammar.rs");
|
|
|
|
|
|
2025-05-19 00:10:23 +02:00
|
|
|
// let mut buffer = String::new();
|
|
|
|
|
// let i = io::stdin();
|
|
|
|
|
// i.read_line(&mut buffer).expect("Can't read stdin");
|
2025-05-14 11:42:19 +02:00
|
|
|
|
2025-05-19 00:10:23 +02:00
|
|
|
// let result = grammar::SetParser::new().parse(&buffer).unwrap();
|
|
|
|
|
|
|
|
|
|
|
2025-05-21 00:03:36 +02:00
|
|
|
// -------------------------------------------------------------------------
|
|
|
|
|
// let reactants = grammar::SetParser::new().parse("{a}").unwrap();
|
|
|
|
|
// let inihibitors = grammar::SetParser::new().parse("{c}").unwrap();
|
|
|
|
|
// let products = grammar::SetParser::new().parse("{a,c}").unwrap();
|
2025-05-19 00:10:23 +02:00
|
|
|
|
2025-05-21 00:03:36 +02:00
|
|
|
// let process1 = rsprocess::structure::RSreaction::from(reactants, inihibitors, products);
|
2025-05-19 00:10:23 +02:00
|
|
|
|
2025-05-21 00:03:36 +02:00
|
|
|
// let reactants = grammar::SetParser::new().parse("{b}").unwrap();
|
|
|
|
|
// let inihibitors = grammar::SetParser::new().parse("{c}").unwrap();
|
|
|
|
|
// let products = grammar::SetParser::new().parse("{b,c}").unwrap();
|
2025-05-19 00:10:23 +02:00
|
|
|
|
2025-05-21 00:03:36 +02:00
|
|
|
// let process2 = rsprocess::structure::RSreaction::from(reactants, inihibitors, products);
|
2025-05-19 00:10:23 +02:00
|
|
|
|
2025-05-21 00:03:36 +02:00
|
|
|
// let current_state = grammar::SetParser::new().parse("{b}").unwrap();
|
2025-05-19 00:10:23 +02:00
|
|
|
|
2025-05-21 00:03:36 +02:00
|
|
|
// println!("{:?}", rsprocess::classical::compute_all(¤t_state, vec![&process1, &process2]));
|
2025-05-14 11:42:19 +02:00
|
|
|
|
2025-05-21 00:03:36 +02:00
|
|
|
|
|
|
|
|
// -------------------------------------------------------------------------
|
|
|
|
|
let env = grammar::EnvironmentParser::new().parse("[x = {a}.{b}.x , y = ({a,c}.y + {b,c}.y)]").unwrap();
|
|
|
|
|
let process = grammar::ContextParser::new().parse("[({a}.nil + x + y)]").unwrap();
|
|
|
|
|
|
|
|
|
|
println!("{:?}", rsprocess::transitions::unfold(&env, &process));
|
2025-05-14 11:42:19 +02:00
|
|
|
Ok(())
|
|
|
|
|
}
|