summaryrefslogtreecommitdiff
path: root/sources/meta/GenerateAll.java
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2003-04-14 15:00:52 +0000
committerpaltherr <paltherr@epfl.ch>2003-04-14 15:00:52 +0000
commitdd65ae6e7386e42ec5812f71e5733e578aed1514 (patch)
tree1187dd358f33d8051aafb519cd632ab5bb8fc610 /sources/meta/GenerateAll.java
parent793f61a0a24f24eb710adfa40396b3ee9eec6433 (diff)
downloadscala-dd65ae6e7386e42ec5812f71e5733e578aed1514.tar.gz
scala-dd65ae6e7386e42ec5812f71e5733e578aed1514.tar.bz2
scala-dd65ae6e7386e42ec5812f71e5733e578aed1514.zip
- Added GenerateAll.java
- Added AbstractMain.java
Diffstat (limited to 'sources/meta/GenerateAll.java')
-rw-r--r--sources/meta/GenerateAll.java69
1 files changed, 69 insertions, 0 deletions
diff --git a/sources/meta/GenerateAll.java b/sources/meta/GenerateAll.java
new file mode 100644
index 0000000000..841eb5c5d3
--- /dev/null
+++ b/sources/meta/GenerateAll.java
@@ -0,0 +1,69 @@
+/* ____ ____ ____ ____ ______ *\
+** / __// __ \/ __// __ \/ ____/ SOcos COmpiles Scala **
+** __\_ \/ /_/ / /__/ /_/ /\_ \ (c) 2002, LAMP/EPFL **
+** /_____/\____/\___/\____/____/ **
+\* */
+
+// $Id$
+
+package meta;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.BufferedWriter;
+import java.io.PrintWriter;
+import java.io.PrintStream;
+import java.io.IOException;
+
+import meta.util.AbstractMain;
+import meta.util.AbstractFileExpander;
+import meta.util.TextExpander;
+import meta.util.TextWriter;
+
+/** A program that invokes all file generators. */
+public class GenerateAll extends AbstractMain {
+
+ //########################################################################
+ // Public Constants
+
+ public static final AbstractFileExpander[] expanders = {
+ };
+
+ //########################################################################
+ // Public Functions
+
+ public static void usage(PrintStream out) {
+ out.println("usage: " + script() + " <outputdir> [<logfile>]");
+ }
+
+ public static void main(String[] args) throws Exception {
+ if (args.length < 1 || 2 < args.length) {
+ usage(System.err);
+ throw abort();
+ }
+ int errors = 0;
+ File root = new File(args[0]);
+ PrintWriter filelist = args.length <= 1 ? null :
+ new PrintWriter(new BufferedWriter(new FileWriter(args[1])));
+ for (int i = 0; i < expanders.length; i++) {
+ File source = expanders[i].getSourceFile(root);
+ File target = expanders[i].getTargetFile(root);
+ System.out.println("Generating file " + target);
+ if (filelist != null) {filelist.println(target);filelist.flush();}
+ try {
+ TextWriter writer = expanders[i].getTextWriter();
+ TextExpander expander = new TextExpander(writer, expanders[i]);
+ expander.expandText(source);
+ errors += expander.getErrorCount();
+ FileWriter output = new FileWriter(target);
+ output.write(writer.toString());
+ output.close();
+ } catch (IOException exception) {
+ throw abort(exception);
+ }
+ }
+ if (errors > 0) throw abort();
+ }
+
+ //########################################################################
+}