diff options
author | paltherr <paltherr@epfl.ch> | 2003-04-14 15:00:52 +0000 |
---|---|---|
committer | paltherr <paltherr@epfl.ch> | 2003-04-14 15:00:52 +0000 |
commit | dd65ae6e7386e42ec5812f71e5733e578aed1514 (patch) | |
tree | 1187dd358f33d8051aafb519cd632ab5bb8fc610 /sources/meta/GenerateAll.java | |
parent | 793f61a0a24f24eb710adfa40396b3ee9eec6433 (diff) | |
download | scala-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.java | 69 |
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(); + } + + //######################################################################## +} |