* Not all Java 8 features are supported
* Those features that are supported, are not supported in full
* There are currently some limitations around nesting of features (e.g. Lambdas inside lambdas)
+* There are some limitations resolving imports of nested classes
* Error handling is minimal - if your code is not valid, then you may receive abstruse error messages
-* The tool to call the converter is
+* The tool to call the converter is es
The _conversion_ tool is in `org.adjective.syntactic.convert.j8to7.Main`.
-The arguments are a list of filenames to convert.
+It takes the following command line arguments
+* `--source` is a file to be converted, or a directory to be recursively converted
+* `--output` is the file or directory where the conversion output should be saved
+* `--classpath` is a standard java classpath for the loading of references classes (in particular the [functional interfaces](http://www.lambdafaq.org/what-is-a-functional-interface/) used in the code being converted)
+* `--flatten` prevents the tool from recreating the `source` directory structure under `output`
-It requires two jar files on the classpath `syntactic-parser.jar` and `syntactic-convert.jar`
-_(See [the download page](Download) for more info)_
+It requires three jar files on the classpath:
+* `syntactic-parser.jar` and `syntactic-convert.jar` from this project _(See [the download page](Download) for more info)_
+* `args4j` from [http://args4j.kohsuke.org/](http://args4j.kohsuke.org/)
- java -cp syntactic-parser.jar:syntactic-convert.jar org.adjective.syntactic.convert.j8to7.Main src/com/example/MyClass.java
-The converted source is printed to standard output _(System.out)_
+ java -cp syntactic-parser.jar:syntactic-convert.jar:args4j.jar org.adjective.syntactic.convert.j8to7.Main --source src/com/example/MyClass.java --output .
-The tool currently has these limitations.
-We intend to fix these in time.
+The tool can load references classes from the provided classpath or from within the same compilation unit. It is not currently capable of loading references classes from the sourcepath (i.e. the list of files to be converted)
-* All files are printed to standard out, which isn't very helpful if you're trying to convert multiple files at once
-* All dependant classes (including the [functional interfaces](http://www.lambdafaq.org/what-is-a-functional-interface/)) must be either
-1. Available on the classpath
-2. Included in the same compilation unit (file)