diff --git a/tools/pdl/src/main.rs b/tools/pdl/src/main.rs
index 7309f982d3989a470366d4c7a5a18831054b6284..ff5c585143accb2e60ebbf94c94f158c204e2723 100644
--- a/tools/pdl/src/main.rs
+++ b/tools/pdl/src/main.rs
@@ -1,15 +1,6 @@
 //! PDL parser and linter.
 
-extern crate codespan_reporting;
-extern crate pest;
-#[macro_use]
-extern crate pest_derive;
-extern crate serde;
-extern crate serde_json;
-extern crate structopt;
-
-use codespan_reporting::term;
-use codespan_reporting::term::termcolor;
+use codespan_reporting::term::{self, termcolor};
 use structopt::StructOpt;
 
 mod ast;
diff --git a/tools/pdl/src/parser.rs b/tools/pdl/src/parser.rs
index bea80e003095b814f964d3d929dd4b484fd84a16..f204e6f5d0fbe1525706dd505dae8633d14e2f5b 100644
--- a/tools/pdl/src/parser.rs
+++ b/tools/pdl/src/parser.rs
@@ -9,7 +9,7 @@ use std::iter::{Filter, Peekable};
 // TODO: use #[grammar = "pdl.pest"]
 // currently not possible because CARGO_MANIFEST_DIR is not set
 // in soong environment.
-#[derive(Parser)]
+#[derive(pest_derive::Parser)]
 #[grammar_inline = r#"
 WHITESPACE = _{ " " | "\n" }
 COMMENT = { block_comment | line_comment }