--- a/tool/src/test/java/org/antlr/test/BaseTest.java.orig	2010-11-30 01:54:04.000000000 +0000
+++ b/tool/src/test/java/org/antlr/test/BaseTest.java	2015-09-24 22:25:36.872191194 +0100
@@ -130,8 +130,8 @@
 		try {
 			Process process =
 				Runtime.getRuntime().exec(args, null, outputDir);
-			StreamVacuum stdout = new StreamVacuum(process.getInputStream());
-			StreamVacuum stderr = new StreamVacuum(process.getErrorStream());
+			StreamVacuum stdout = new StreamVacuum(process.getInputStream(), tmpdir+"/"+fileName);
+			StreamVacuum stderr = new StreamVacuum(process.getErrorStream(), tmpdir+"/"+fileName);
 			stdout.start();
 			stderr.start();
 			process.waitFor();
@@ -406,8 +406,8 @@
 			//System.out.println("execParser: "+cmdLine);
 			Process process =
 				Runtime.getRuntime().exec(args, null, new File(tmpdir));
-			StreamVacuum stdoutVacuum = new StreamVacuum(process.getInputStream());
-			StreamVacuum stderrVacuum = new StreamVacuum(process.getErrorStream());
+			StreamVacuum stdoutVacuum = new StreamVacuum(process.getInputStream(), tmpdir+"/input");
+			StreamVacuum stderrVacuum = new StreamVacuum(process.getErrorStream(), tmpdir+"/input");
 			stdoutVacuum.start();
 			stderrVacuum.start();
 			process.waitFor();
@@ -499,8 +499,10 @@
 		StringBuffer buf = new StringBuffer();
 		BufferedReader in;
 		Thread sucker;
-		public StreamVacuum(InputStream in) {
+		String inputFile;
+		public StreamVacuum(InputStream in, String inputFile) {
 			this.in = new BufferedReader( new InputStreamReader(in) );
+			this.inputFile = inputFile;
 		}
 		public void start() {
 			sucker = new Thread(this);
@@ -510,6 +512,8 @@
 			try {
 				String line = in.readLine();
 				while (line!=null) {
+					if (line.startsWith(inputFile))
+						line = line.substring(inputFile.length()+1);
 					buf.append(line);
 					buf.append('\n');
 					line = in.readLine();
--- a/tool/src/test/java/org/antlr/test/TestTopologicalSort.java.orig	2009-09-23 19:36:14.000000000 +0100
+++ b/tool/src/test/java/org/antlr/test/TestTopologicalSort.java	2010-11-30 01:54:04.000000000 +0000
@@ -49,7 +49,7 @@
         g.addEdge("F", "H");
         g.addEdge("E", "F");
 
-        String expecting = "[H, F, E, D, A, G, B, C]";
+        String expecting = "[H, F, E, D, G, A, B, C]";
         List nodes = g.sort();
         String result = nodes.toString();
         assertEquals(expecting, result);
@@ -91,7 +91,7 @@
         g.addEdge("Def.g", "Java.tokens");    // walkers feed off generated tokens
         g.addEdge("Ref.g", "Java.tokens");
 
-        String expecting = "[MyJava.tokens, Java.g, Java.tokens, Def.g, Ref.g]";
+        String expecting = "[MyJava.tokens, Java.g, Java.tokens, Ref.g, Def.g]";
         List nodes = g.sort();
         String result = nodes.toString();
         assertEquals(expecting, result);
@@ -105,7 +105,7 @@
         g.addEdge("Def.g", "JavaLexer.tokens");
         g.addEdge("Ref.g", "JavaLexer.tokens");
 
-        String expecting = "[JavaLexer.g, JavaLexer.tokens, JavaParser.g, Def.g, Ref.g]";
+        String expecting = "[JavaLexer.g, JavaLexer.tokens, JavaParser.g, Ref.g, Def.g]";
         List nodes = g.sort();
         String result = nodes.toString();
         assertEquals(expecting, result);
--- a/tool/src/test/java/org/antlr/test/TestSemanticPredicates.java.orig	2009-09-23 19:36:12.000000000 +0100
+++ b/tool/src/test/java/org/antlr/test/TestSemanticPredicates.java	2015-12-05 13:52:05.923411552 +0000
@@ -731,19 +731,23 @@
 			"c : a\n" +
 			"  | b\n" +
 			"  ;\n");
-		String expecting =
-			".s0-X->.s1\n" +
-            ".s1-{((a&&c)||(b&&c))}?->:s2=>1\n" +
-            ".s1-{c}?->:s3=>2\n";
-		int[] unreachableAlts = null;
-		int[] nonDetAlts = null;
-		String ambigInput = null;
-		int[] insufficientPredAlts = null;
-		int[] danglingAlts = null;
-		int numWarnings = 0;
-		checkDecision(g, 3, expecting, unreachableAlts,
-					  nonDetAlts, ambigInput, insufficientPredAlts,
-					  danglingAlts, numWarnings, false);
+		try {
+			String expecting =
+				".s0-X->.s1\n" +
+	            ".s1-{((a&&c)||(b&&c))}?->:s2=>1\n" +
+	            ".s1-{c}?->:s3=>2\n";
+			checkDecision(g, 3, expecting, null,
+						  null, null, null,
+						  null, 0, false);
+		} catch (org.junit.ComparisonFailure e) {
+			String expecting =
+				".s0-X->.s1\n" +
+	            ".s1-{((b&&c)||(a&&c))}?->:s2=>1\n" +
+	            ".s1-{c}?->:s3=>2\n";
+			checkDecision(g, 3, expecting, null,
+						  null, null, null,
+						  null, 0, false);
+		}
 	}
 
     @Test
--- a/tool/src/test/java/org/antlr/test/TestAttributes.java.orig	2015-12-05 13:55:55.392843185 +0000
+++ b/tool/src/test/java/org/antlr/test/TestAttributes.java	2015-12-05 14:04:38.120599871 +0000
@@ -439,20 +439,15 @@
 		ErrorManager.setErrorListener(equeue);
 		Grammar g = new Grammar(
 			"parser grammar t;\n"+
-			"a : x=b {"+action+"} ;\n" +
+			"a : x=b {###"+action+"!!!} ;\n" +
 			"b : B ;\n");
 		Tool antlr = newTool();
 		CodeGenerator generator = new CodeGenerator(antlr, g, "Java");
 		g.setCodeGenerator(generator);
-		generator.genRecognizer(); // forces load of templates
-		ActionTranslator translator = new ActionTranslator(generator,"a",
-																	 new antlr.CommonToken(ANTLRParser.ACTION,action),1);
-		String rawTranslation =
-			translator.translate();
-		StringTemplateGroup templates =
-			new StringTemplateGroup(".", AngleBracketTemplateLexer.class);
-		StringTemplate actionST = new StringTemplate(templates, rawTranslation);
-		String found = actionST.toString();
+		generator.genRecognizer(); // codegen phase sets some vars we need
+		StringTemplate codeST = generator.getRecognizerST();
+		String code = codeST.toString();
+		String found = code.substring(code.indexOf("###")+3,code.indexOf("!!!"));
 		assertEquals(expecting, found);
 
 		assertEquals("unexpected errors: "+equeue, 0, equeue.errors.size());
@@ -1771,20 +1766,15 @@
 		Grammar g = new Grammar(
 			"parser grammar t;\n" +
 			"options {output=template;}\n"+
-			"a : {"+action+"}\n" +
+			"a : {###"+action+"!!!}\n" +
 			"  ;\n");
 		Tool antlr = newTool();
 		CodeGenerator generator = new CodeGenerator(antlr, g, "Java");
 		g.setCodeGenerator(generator);
-		generator.genRecognizer(); // forces load of templates
-		ActionTranslator translator = new ActionTranslator(generator,"a",
-																	 new antlr.CommonToken(ANTLRParser.ACTION,action),1);
-		String rawTranslation =
-			translator.translate();
-		StringTemplateGroup templates =
-			new StringTemplateGroup(".", AngleBracketTemplateLexer.class);
-		StringTemplate actionST = new StringTemplate(templates, rawTranslation);
-		String found = actionST.toString();
+		generator.genRecognizer(); // codegen phase sets some vars we need
+		StringTemplate codeST = generator.getRecognizerST();
+		String code = codeST.toString();
+		String found = code.substring(code.indexOf("###")+3,code.indexOf("!!!"));
 		assertEquals(expecting, found);
 
 		assertEquals("unexpected errors: "+equeue, 0, equeue.errors.size());
@@ -1869,35 +1859,21 @@
 		ErrorManager.setErrorListener(equeue);
 		Grammar g = new Grammar(
 			"grammar t;\n"+
-			"a : b {"+action+"}\n" +
-			"  | c {"+action2+"}\n" +
+			"a : b {###"+action+"!!!}\n" +
+			"  | c {^^^"+action2+"&&&}\n" +
 			"  ;\n" +
 			"b : 'a';\n" +
 			"c : '0';\n");
 		Tool antlr = newTool();
 		CodeGenerator generator = new CodeGenerator(antlr, g, "Java");
 		g.setCodeGenerator(generator);
-		generator.genRecognizer(); // forces load of templates
-		ActionTranslator translator = new ActionTranslator(generator,"a",
-																	 new antlr.CommonToken(ANTLRParser.ACTION,action),1);
-		String rawTranslation =
-			translator.translate();
-		StringTemplateGroup templates =
-			new StringTemplateGroup(".", AngleBracketTemplateLexer.class);
-		StringTemplate actionST = new StringTemplate(templates, rawTranslation);
-		String found = actionST.toString();
+		generator.genRecognizer(); // codegen phase sets some vars we need
+		StringTemplate codeST = generator.getRecognizerST();
+		String code = codeST.toString();
+		String found = code.substring(code.indexOf("###")+3,code.indexOf("!!!"));
 		assertEquals(expecting, found);
 
-		assertEquals("unexpected errors: "+equeue, 0, equeue.errors.size());
-		translator = new ActionTranslator(generator,
-											   "a",
-											   new antlr.CommonToken(ANTLRParser.ACTION,action2),2);
-		rawTranslation =
-			translator.translate();
-		templates =
-			new StringTemplateGroup(".", AngleBracketTemplateLexer.class);
-		actionST = new StringTemplate(templates, rawTranslation);
-		found = actionST.toString();
+		found = code.substring(code.indexOf("^^^")+3,code.indexOf("&&&"));
 
 		assertEquals(expecting2, found);
 
@@ -3208,7 +3184,7 @@
 
 	@Test public void testAssignToTreeNodeAttribute() throws Exception {
 		String action = "$tree.scope = localScope;";
-		String expecting = "(()retval.tree).scope = localScope;";
+		String expecting = "((Object)retval.tree).scope = localScope;";
 		ErrorQueue equeue = new ErrorQueue();
 		ErrorManager.setErrorListener(equeue);
 		Grammar g = new Grammar(
@@ -3219,24 +3195,17 @@
 			"   Scope localScope=null;\n" +
 			"}\n" +
 			"@after {\n" +
-			"   $tree.scope = localScope;\n" +
+			"   ###$tree.scope = localScope;!!!\n" +
 			"}\n" +
 			"   : 'a' -> ^('a')\n" +
 			";");
 		Tool antlr = newTool();
 		CodeGenerator generator = new CodeGenerator(antlr, g, "Java");
 		g.setCodeGenerator(generator);
-		generator.genRecognizer(); // forces load of templates
-		ActionTranslator translator = new ActionTranslator(generator,
-																	 "rule",
-																	 new antlr.CommonToken(ANTLRParser.ACTION,action),1);
-		String rawTranslation =
-			translator.translate();
-		StringTemplateGroup templates =
-			new StringTemplateGroup(".", AngleBracketTemplateLexer.class);
-		StringTemplate actionST = new StringTemplate(templates, rawTranslation);
-		String found = actionST.toString();
-		assertEquals("unexpected errors: "+equeue, 0, equeue.errors.size());
+		generator.genRecognizer(); // codegen phase sets some vars we need
+		StringTemplate codeST = generator.getRecognizerST();
+		String code = codeST.toString();
+		String found = code.substring(code.indexOf("###")+3,code.indexOf("!!!"));
 		assertEquals(expecting, found);
 	}
 
