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}