Boolean literals
diff --git a/src/lit.rs b/src/lit.rs
index c7a647f..b3d2954 100644
--- a/src/lit.rs
+++ b/src/lit.rs
@@ -67,7 +67,10 @@
         |
         int => { |(value, ty)| Lit::Int(value, ty) }
         // TODO: Float
-        // TODO: Bool
+        |
+        keyword!("true") => { |_| Lit::Bool(true) }
+        |
+        keyword!("false") => { |_| Lit::Bool(false) }
     ));
 
     named!(string -> Lit, alt!(
@@ -180,6 +183,8 @@
                     tokens.append(&escaped);
                 }
                 Lit::Int(value, ty) => tokens.append(&format!("{}{}", value, ty)),
+                Lit::Bool(true) => tokens.append("true"),
+                Lit::Bool(false) => tokens.append("false"),
                 _ => unimplemented!(),
             }
         }
diff --git a/tests/cases/attr.rs b/tests/cases/attr.rs
index b8a1fb7..5e21ddc 100644
--- a/tests/cases/attr.rs
+++ b/tests/cases/attr.rs
@@ -3,7 +3,12 @@
 #[string = "a"]
 #[raw_string = r"a"]
 #[more_raw_string = r##"#"#"##]
+
 #[byte_string = b"a"]
 #[raw_byte_string = br"a"]
 #[more_raw_byte_string = br##"#"#"##]
+
+#[boolean = true]
+#[boolean = false]
+
 struct Success;