ICFP 2007 Contest: https://web.archive.org/web/20090301164728/https://save-endo.cs.uu.nl/
1mod dna; 2mod match_replace; 3mod parser; 4mod pattern; 5mod rna; 6mod template; 7 8use std::env; 9use std::fs; 10 11fn main() { 12 let args: Vec<String> = env::args().collect(); 13 if args.len() < 2 { 14 println!("Usage: {} <dna file>", args[0]); 15 return; 16 } 17 18 let contents = fs::read_to_string(&args[1]); 19 if let Ok(dna) = contents { 20 let mut dna = dna::DnaRef::from_string(&dna); 21 let mut rna = Vec::new(); 22 loop { 23 if let Some(new_dna) = match_replace::match_replace(dna, &mut rna) { 24 dna = new_dna; 25 } else { 26 break; 27 } 28 29 for r in rna.iter() { 30 for b in r { 31 print!("{}", b.to_char()); 32 } 33 println!(); 34 } 35 36 rna.clear(); 37 } 38 } else { 39 println!("Could not open {}", args[1]); 40 return; 41 } 42}