diff --git a/src/enums.rs b/src/enums.rs
index 6b9e2f7..30487df 100644
--- a/src/enums.rs
+++ b/src/enums.rs
@@ -6,8 +6,9 @@ pub enum Address {
     Last,
     Line(usize),
     FromStartTo(usize),
-    FromToEnd(usize),
+    FromToEnd(usize), // pas sur ?
     FromTo(usize, usize),
+    All,
     Null,
 }
 
@@ -27,6 +28,8 @@ pub fn parse_address(addr: &str) -> Address {
 
     if addr.is_empty() {
         Address::Actual
+    } else if addr.contains(',') {
+        parse_multi_addr(addr)
     } else if let Ok(l) = usize::from_str(addr) {
         Address::Line(l)
     } else {
@@ -38,6 +41,29 @@ pub fn parse_address(addr: &str) -> Address {
     }
 }
 
+fn parse_multi_addr(addr: &str) -> Address {
+    // garde con ou pas ?
+    let tmp: Vec<&str> = addr.split(",").collect();
+    if tmp.len() != 2 {
+        Address::Null
+    } else {
+        let start = usize::from_str(tmp[0]);
+        let end = usize::from_str(tmp[1]);
+
+        if let Ok(a) = start {
+            if let Ok(b) = end {
+                Address::FromTo(a, b)
+            } else {
+                Address::Line(a)
+            }
+        } else if let Ok(a) = end {
+            Address::FromStartTo(a)
+        } else {
+            Address::All
+        }
+    }
+}
+
 #[derive(Debug)]
 pub enum Command {
     Append(Address),
diff --git a/src/main.rs b/src/main.rs
index 88311dd..8d434a4 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -17,18 +17,6 @@ use nom::Err::Error;
 
 const FILE : &'static str = "test";
 
-/*
- * .
- * $
- * [:digit:]
- * '[:alpha:]
- * /BRE/
- * +[:digit:]
- * -[:digit:]
- * [:digit:],[:digit:]
- * [:digit:];[:digit:]
- */
-
 // TODO juste $ pour l'instant dans l'adresse
 // TODO faire les commandes mais juste p pour l'instant
 // TODO faire un système de retour d'erreur pour afficher ? et l'erreur si l'utilisateur le demande