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();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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();
|
|
|
|
|
|
|
|
|
|
let process1 = rsprocess::structure::RSreaction::from(reactants, inihibitors, products);
|
|
|
|
|
|
|
|
|
|
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();
|
|
|
|
|
|
|
|
|
|
let process2 = rsprocess::structure::RSreaction::from(reactants, inihibitors, products);
|
|
|
|
|
|
|
|
|
|
let current_state = grammar::SetParser::new().parse("{b}").unwrap();
|
|
|
|
|
|
|
|
|
|
println!("{:?}", rsprocess::classical::compute_all(¤t_state, vec![&process1, &process2]));
|
2025-05-14 11:42:19 +02:00
|
|
|
|
|
|
|
|
Ok(())
|
|
|
|
|
}
|