ICFP 2007 Contest: https://web.archive.org/web/20090301164728/https://save-endo.cs.uu.nl/

Use the same syntax for groups in assembler

+1 -1
asm/gene_list_1.asm
···
-
(?{IFPCFFP})n{0,24} ; "0"n{42,24} ;
+
(?{IFPCFFP})n{0,24} ; {0}n{42,24} ;
+2 -2
asm/gene_list_10.asm
···
-
(?{IFPCFFP})n{0,24} ; "0"n{42,24} ;
-
(?{IFPICFPPCFFPP}!{0x503})n{0,24} ; "0"n{9,24} ;
+
(?{IFPCFFP})n{0,24} ; {0}n{42,24} ;
+
(?{IFPICFPPCFFPP}!{0x503})n{0,24} ; {0}n{9,24} ;
+2 -2
asm/gene_list_11.asm
···
-
(?{IFPCFFP})n{0,24} ; "0"n{42,24} ;
-
(?{IFPICFPPCFFPP}!{0x503})n{0,24} ; "0"n{10,24} ;
+
(?{IFPCFFP})n{0,24} ; {0}n{42,24} ;
+
(?{IFPICFPPCFFPP}!{0x503})n{0,24} ; {0}n{10,24} ;
+2 -2
asm/gene_list_12.asm
···
-
(?{IFPCFFP})n{0,24} ; "0"n{42,24} ;
-
(?{IFPICFPPCFFPP}!{0x503})n{0,24} ; "0"n{11,24} ;
+
(?{IFPCFFP})n{0,24} ; {0}n{42,24} ;
+
(?{IFPICFPPCFFPP}!{0x503})n{0,24} ; {0}n{11,24} ;
+2 -2
asm/gene_list_13.asm
···
-
(?{IFPCFFP})n{0,24} ; "0"n{42,24} ;
-
(?{IFPICFPPCFFPP}!{0x503})n{0,24} ; "0"n{12,24} ;
+
(?{IFPCFFP})n{0,24} ; {0}n{42,24} ;
+
(?{IFPICFPPCFFPP}!{0x503})n{0,24} ; {0}n{12,24} ;
+2 -2
asm/gene_list_14.asm
···
-
(?{IFPCFFP})n{0,24} ; "0"n{42,24} ;
-
(?{IFPICFPPCFFPP}!{0x503})n{0,24} ; "0"n{13,24} ;
+
(?{IFPCFFP})n{0,24} ; {0}n{42,24} ;
+
(?{IFPICFPPCFFPP}!{0x503})n{0,24} ; {0}n{13,24} ;
+2 -2
asm/gene_list_2.asm
···
-
(?{IFPCFFP})n{0,24} ; "0"n{42,24} ;
-
(?{IFPICFPPCFFPP}!{0x503})n{0,24} ; "0"n{1,24} ;
+
(?{IFPCFFP})n{0,24} ; {0}n{42,24} ;
+
(?{IFPICFPPCFFPP}!{0x503})n{0,24} ; {0}n{1,24} ;
+2 -2
asm/gene_list_3.asm
···
-
(?{IFPCFFP})n{0,24} ; "0"n{42,24} ;
-
(?{IFPICFPPCFFPP}!{0x503})n{0,24} ; "0"n{2,24} ;
+
(?{IFPCFFP})n{0,24} ; {0}n{42,24} ;
+
(?{IFPICFPPCFFPP}!{0x503})n{0,24} ; {0}n{2,24} ;
+2 -2
asm/gene_list_4.asm
···
-
(?{IFPCFFP})n{0,24} ; "0"n{42,24} ;
-
(?{IFPICFPPCFFPP}!{0x503})n{0,24} ; "0"n{3,24} ;
+
(?{IFPCFFP})n{0,24} ; {0}n{42,24} ;
+
(?{IFPICFPPCFFPP}!{0x503})n{0,24} ; {0}n{3,24} ;
+2 -2
asm/gene_list_5.asm
···
-
(?{IFPCFFP})n{0,24} ; "0"n{42,24} ;
-
(?{IFPICFPPCFFPP}!{0x503})n{0,24} ; "0"n{4,24} ;
+
(?{IFPCFFP})n{0,24} ; {0}n{42,24} ;
+
(?{IFPICFPPCFFPP}!{0x503})n{0,24} ; {0}n{4,24} ;
+2 -2
asm/gene_list_6.asm
···
-
(?{IFPCFFP})n{0,24} ; "0"n{42,24} ;
-
(?{IFPICFPPCFFPP}!{0x503})n{0,24} ; "0"n{5,24} ;
+
(?{IFPCFFP})n{0,24} ; {0}n{42,24} ;
+
(?{IFPICFPPCFFPP}!{0x503})n{0,24} ; {0}n{5,24} ;
+2 -2
asm/gene_list_7.asm
···
-
(?{IFPCFFP})n{0,24} ; "0"n{42,24} ;
-
(?{IFPICFPPCFFPP}!{0x503})n{0,24} ; "0"n{6,24} ;
+
(?{IFPCFFP})n{0,24} ; {0}n{42,24} ;
+
(?{IFPICFPPCFFPP}!{0x503})n{0,24} ; {0}n{6,24} ;
+2 -2
asm/gene_list_8.asm
···
-
(?{IFPCFFP})n{0,24} ; "0"n{42,24} ;
-
(?{IFPICFPPCFFPP}!{0x503})n{0,24} ; "0"n{7,24} ;
+
(?{IFPCFFP})n{0,24} ; {0}n{42,24} ;
+
(?{IFPICFPPCFFPP}!{0x503})n{0,24} ; {0}n{7,24} ;
+2 -2
asm/gene_list_9.asm
···
-
(?{IFPCFFP})n{0,24} ; "0"n{42,24} ;
-
(?{IFPICFPPCFFPP}!{0x503})n{0,24} ; "0"n{8,24} ;
+
(?{IFPCFFP})n{0,24} ; {0}n{42,24} ;
+
(?{IFPICFPPCFFPP}!{0x503})n{0,24} ; {0}n{8,24} ;
+1 -1
asm/repair_guide.asm
···
-
(?{IFPCFFP})II ; "0"IC ;
+
(?{IFPCFFP})II ; {0}IC ;
+1 -1
asm/repair_guide_catalog.asm
···
-
(?{IFPCFFP})n{0,24} ; "0"n{1337,24} ;
+
(?{IFPCFFP})n{0,24} ; {0}n{1337,24} ;
+1 -1
asm/repair_guide_charset.asm
···
-
(?{IFPCFFP})n{0,24} ; "0"n{10646,24} ;
+
(?{IFPCFFP})n{0,24} ; {0}n{10646,24} ;
+1 -1
asm/repair_guide_field_repair.asm
···
-
(?{IFPCFFP})n{0,24} ; "0"n{85,24} ;
+
(?{IFPCFFP})n{0,24} ; {0}n{85,24} ;
+1 -1
asm/repair_guide_genome_structure.asm
···
-
(?{IFPCFFP})n{0,24} ; "0"n{1729,24} ;
+
(?{IFPCFFP})n{0,24} ; {0}n{1729,24} ;
+1 -1
asm/repair_guide_l_systems.asm
···
-
(?{IFPCFFP})n{0,24} ; "0"n{5,24} ;
+
(?{IFPCFFP})n{0,24} ; {0}n{5,24} ;
+1 -1
asm/repair_guide_more_genome_structure.asm
···
-
(?{IFPCFFP})n{0,24} ; "0"n{8,24} ;
+
(?{IFPCFFP})n{0,24} ; {0}n{8,24} ;
+1 -1
asm/repair_guide_rna_compression.asm
···
-
(?{IFPCFFP})n{0,24} ; "0"n{123456,24} ;
+
(?{IFPCFFP})n{0,24} ; {0}n{123456,24} ;
+1 -1
asm/repair_guide_security.asm
···
-
(?{IFPCFFP})n{0,24} ; "0"n{4405829,24} ;
+
(?{IFPCFFP})n{0,24} ; {0}n{4405829,24} ;
+1 -1
asm/repair_guide_wanted.asm
···
-
(?{IFPCFFP})n{0,24} ; "0"n{112,24} ;
+
(?{IFPCFFP})n{0,24} ; {0}n{112,24} ;
+1 -1
asm/repair_guide_weird_rna.asm
···
-
(?{IFPCFFP})n{0,24} ; "0"n{2181889,24} ;
+
(?{IFPCFFP})n{0,24} ; {0}n{2181889,24} ;
+1 -1
asm/startup.asm
···
-
(?{IFPCFFP})I ; "0"C ;
+
(?{IFPCFFP})I ; {0}C ;
+1 -1
asm/sun.asm
···
-
(?{IFPFI})P ; "0"F ;
+
(?{IFPFI})P ; {0}F ;
+1 -1
asm/task.asm
···
-
(?{IFPP})F ; "0"P ;
+
(?{IFPP})F ; {0}P ;
+7 -7
asm2dna/src/assembler.rs
···
Some('(') => self.emit("IIP"),
Some(')') => self.emit("IIC"),
Some(';') => self.emit("IIC"),
-
Some('"') => {
-
let n = self.read_to("\",").ok_or("Reference failed terminate")?;
+
Some('{') => {
+
let n = self.read_to("},").ok_or("Reference failed terminate")?;
let n = Self::parse_int(&n).ok_or("Reference group index invalid")?;
let l = match self.iter.next() {
-
Some('"') => String::from("0"),
+
Some('}') => String::from("0"),
Some(',') => {
-
let l = self.read_to("\"").ok_or("Reference failed to terminate")?;
-
self.expect('"');
+
let l = self.read_to("}").ok_or("Reference failed to terminate")?;
+
self.expect('}');
l
}
_ => return Err("Reference failed to terminate"),
···
#[test]
fn test_assemble_pattern_quote() {
-
let asm = assemble(&"\"2\"").unwrap();
+
let asm = assemble(&"{2}").unwrap();
assert_eq!(b"IPPICP", &asm[..]);
-
let asm = assemble(&"\"2,3\"").unwrap();
+
let asm = assemble(&"{2,3}").unwrap();
assert_eq!(b"IPCCPICP", &asm[..]);
}