extern crate tango;
extern crate lalrpop;

use std::env;

fn main() {
    // I do not want lalrpop and tango to step on each others toes.
    // So we will segregate the two source trees.

    let cwd = env::current_dir().unwrap();
    let grammar = {
        let mut g = cwd.clone(); g.push("src/grammar"); g
    };
    let lit = {
        let mut l = cwd.clone(); l.push("src/lit"); l
    };
    println!("grammar: {:?} lit: {:?}", grammar, lit);
    env::set_current_dir(&grammar).unwrap();
    env::set_current_dir(&lit).unwrap();

    env::set_current_dir(grammar).unwrap();
    lalrpop::process_root().unwrap();

    env::set_current_dir(lit).unwrap();
    tango::process_root().unwrap();
}

extern crate tango;
extern crate lalrpop;

fn main() {
    // I do not want lalrpop and tango to step on each others toes.
    // So we will segregate the two source trees.

    // lalrpop::process_root().unwrap();
    tango::process_root().unwrap();
}

--- 
+++ 
@@ -1,10 +1,26 @@
 extern crate tango;
 extern crate lalrpop;
+
+use std::env;
 
 fn main() {
     // I do not want lalrpop and tango to step on each others toes.
     // So we will segregate the two source trees.
 
-    // lalrpop::process_root().unwrap();
+    let cwd = env::current_dir().unwrap();
+    let grammar = {
+        let mut g = cwd.clone(); g.push("src/grammar"); g
+    };
+    let lit = {
+        let mut l = cwd.clone(); l.push("src/lit"); l
+    };
+    println!("grammar: {:?} lit: {:?}", grammar, lit);
+    env::set_current_dir(&grammar).unwrap();
+    env::set_current_dir(&lit).unwrap();
+
+    env::set_current_dir(grammar).unwrap();
+    lalrpop::process_root().unwrap();
+
+    env::set_current_dir(lit).unwrap();
     tango::process_root().unwrap();
 }
Revise build script to only run tango on source files in `src/lit/src`.
