1fn main() {
4 for arg in std::env::args().skip(1) {
5 if let Some(rest) = arg.strip_prefix("tokens:") {
6 let mut interner = logicaffeine_language::Interner::new();
7 let mut lexer = logicaffeine_language::Lexer::new(rest, &mut interner);
8 let toks = lexer.tokenize();
9 for t in &toks {
10 println!(" {:?}", t.kind);
11 }
12 continue;
13 }
14 if let Some(rest) = arg.strip_prefix("session:") {
15 let mut session = logicaffeine_language::Session::new();
16 for turn in rest.split('|') {
17 match session.eval(turn) {
18 Ok(fol) => println!("SOK {turn}\n => {fol}"),
19 Err(e) => println!("SERR {turn}\n => {e:?}"),
20 }
21 }
22 continue;
23 }
24 match logicaffeine_language::compile::compile(&arg) {
25 Ok(fol) => println!("OK {arg}\n => {fol}"),
26 Err(e) => println!("ERR {arg}\n => {e:?}"),
27 }
28 let forest = logicaffeine_language::compile::compile_forest(&arg);
29 println!("FOREST({}) {:?}", forest.len(), forest);
30 }
31}