}
public static void main(String[] args) throws Exception {
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
-
- // process stdin to stdout
- Preprocessor cc = new Preprocessor(br, bw);
- Vector err = cc.process();
- bw.flush();
-
- // handle errors
- boolean errors = false;
- for (int i=0; i < err.size(); i++) { if (err.get(i) instanceof Error) errors = true; System.err.println(err.get(i)); }
- if (errors) throw new Exception();
+ if (args.length == 0) {
+ BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
+ BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
+
+ // process stdin to stdout
+ Preprocessor cc = new Preprocessor(br, bw);
+ Vector err = cc.process();
+ bw.flush();
+
+ // handle errors
+ boolean errors = false;
+ for (int i=0; i < err.size(); i++) {
+ if (err.get(i) instanceof Error) errors = true; System.err.println(err.get(i)); }
+ if (errors) throw new Exception();
+ } else {
+ for(int i=0; i<args.length; i++) {
+ if (!args[i].endsWith(".java")) continue;
+ File source = new File(args[i]);
+ File target = new File(replaceAll(args[i], "src/", "build/java/"));
+ if (target.exists() && target.lastModified() > source.lastModified()) continue;
+ System.err.println("preprocessing " + args[i]);
+ new File(target.getParent()).mkdirs();
+ BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(source)));
+ BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(target)));
+ Preprocessor cc = new Preprocessor(br, bw);
+ Vector err = cc.process();
+ bw.flush();
+ boolean errors = false;
+ for (int j=0; j < err.size(); j++) {
+ if (err.get(j) instanceof Error) errors = true; System.err.println(err.get(j)); }
+ if (errors) System.exit(-1);
+ }
+ }
}
private Reader r;