Select Git revision
GenCompiler.java
-
Anders Nilsson authored
Moved x3d directory to below examples/. May now create more examples without cluttering the project root.
Anders Nilsson authoredMoved x3d directory to below examples/. May now create more examples without cluttering the project root.
GenCompiler.java 1.83 KiB
// package programs;
/*
* Copyright (C) 2007 Anders Nilsson <anders.nilsson@cs.lth.se>
*
* This file is part of XmlSchemaCompiler.
*/
import AST.Start;
import java.io.File;
import java.io.PrintStream;
public class GenCompiler extends Parser {
public static void main(String args[]) {
String dir = "examples/x3d";
String outName = "x3d";
String[] schema = new String[1];
boolean first = true;
for (int i=0; i<args.length; i++) {
if (args[i].equals("-d")) {
dir = args[++i];
} else if (args[i].equals("-o")) {
outName = args[++i];
} else {
// OK, we suppose the remaing arg to be parsed.
schema[0] = args[i++];
}
}
Start ast = parse(schema);
File siarasDir = new File(dir);
if (!siarasDir.isDirectory()) {
siarasDir.mkdir();
}
String fileName = null;
String common = dir+File.separator+outName;
try {
// Generate JastAdd abstract grammar
fileName = common+".ast";
PrintStream pStream = new PrintStream(new File(fileName));
ast.genAbsGrammar(pStream);
// Generate JavaCC input
fileName = common+".jjt";
pStream = new PrintStream(new File(fileName));
ast.genJavaCC(pStream);
// Generate Parser.java
fileName = dir+"/Parser.java";
pStream = new PrintStream(new File(fileName));
ast.genParser(pStream);
// Generate PrettyPrint.java
fileName = dir+"/PrettyPrint.java";
pStream = new PrintStream(new File(fileName));
ast.genPrettyPrint(pStream);
// Generate aspects
fileName = dir+"/GeneratedAspects.jrag";
pStream = new PrintStream(new File(fileName));
ast.genAspects(pStream);
} catch (java.io.FileNotFoundException e) {
System.out.println("Could not create file: "+fileName);
e.printStackTrace();
}
}
}