package xsbt.api import java.io.File /** Generates a datatype hierarchy from a definition file.*/ object GenerateDatatypes { /** Arguments: +*/ def main(args: Array[String]) { if(args.length < 3) { System.err.println("Invalid number of arguments, expected package, base directory, and files to process") System.exit(1) } else { val packageName = args(0).trim require(!packageName.isEmpty) val baseDirectory = new File(args(1)) baseDirectory.mkdirs val files = args.drop(2).map(new File(_)) // parse the files, getting all interface and enums val parser = new DatatypeParser val definitions = files.flatMap(parser.parseFile) // create the interfaces, enums, and class implementations val generator = new Generator(packageName, baseDirectory) generator.writeDefinitions(definitions) } } }