* Move to ANTLR 4 with Java 11 lang features and localization.
Introduces ANTLR4 and Java 8 language feature support within IDE while also adding additional hooks for localization of syntax error messages, addressing https://github.com/processing/processing/issues/3054 and https://github.com/processing/processing/issues/3055.
The PR is broadly a continuation of https://github.com/processing/processing/issues/3055, bringing it up to speed with the latest Processing master plus the changes introduced at https://github.com/processing/processing/pull/5753. **Requires https://github.com/processing/processing/pull/5753 as pre-requisite.** This introduces a number of edits beyond https://github.com/processing/processing/issues/3055 beyond compatibility with current Processing master and https://github.com/processing/processing/pull/5753 including:
- Update to the grammar itself
- Change ANTLR listeners to emit `TextTransform.Edit` to unify JDT-based `PreprocessingService` and `JavaBuild`, removing code with duplicate purpose.
- Introduction of syntax error rewriting with support for localization.
- Addition of complete localized strings set for English and Spanish.
- Addition of partial localized strings set for other languages.
- Refactor of ANTLR-related code for testability and readability
- Expansion of tests including full parse tests for new Java features (type inference, lambdas).
* Ask travis for ant upgrade prior to run.
* Ask Travis for java11 update.
* Add openjdk ppa
* Travis no confirmation on add ppa.
* Force newer ant on travis.
* Swtich ant download to www-us mirror.
* Switch ant to 1.10.7
* Start x for unit tests in travis.
* More complete start x in travis.
* Revert x in travis.
* Try x in services.
Moves to Java11 and OpenJDK via AdoptOpenJDK within the processing4 train using a squash of sampottinger processing fork's java11 branch.
**Primary required changes:**
Some changes directly support OpenJFX / OpenJDK 11:
- Response to image loading changes caused by [JEP 320](https://openjdk.java.net/jeps/320)
- Use of jmodules as necessitated by [JEP 261](https://openjdk.java.net/jeps/261)
- Reponse to largely changed file paths caused by [JEP 220](https://openjdk.java.net/jeps/220).
- Modifications in build system related to AdoptOpenJDK and Java 11 which have a different naming structure for downloads.
- Allowing use of non-Oracle Java within internal Processing checks.
**Secondary required changes:**
There were some secondary required changes that impacted the usability of Processing after having moved to OpenJFX / OpenJDK 11:
- Removal of com.apple.eawt calls related to [JEP 272](http://openjdk.java.net/jeps/272)
- Response to HiDPI support on Windows and Linux in [JEP 263](https://openjdk.java.net/jeps/263)
- Removal of `java.ext.dirs`. Would be forced by [JEP 220](http://openjdk.java.net/jeps/220).
- Due to bugs on Windows, updated the JNA jars.
- Changes in downloader build tasks to support AdoptOpenJDK and OpenJFX.
- Updated org.eclipse.* / equinox jars.
- Some optimization around size of distribution.
- Update of AppBundler.
- Some changes in formulation of classpath and modifications in PreprocessingService given [JEP 261](https://openjdk.java.net/jeps/261).
**Incidental changes:**
This was (ahem) a bit of a larger PR with the above modifications. So, I wanted to introduce automated tests when possible and convenient along with a few changes for platform sustainability in order to support development:
- Addition of cross-building capability (!) made possible by AdoptOpenJDK.
- Addition of mockito for testing.
- Upgrade of junit.
- Addition of ant-contrib.
- Standardized nomenclature around JRE / JDK in `build/build.xml`
- Deduplication of code in `jre/build.xml`.
- Addition of JavaDoc in a few places.
- Some refactoring of PImage / Shape to support increased testing and readability in image manipulation code.