CPP grammar ported to Java (must resolve ambiguities)

Signed-off-by: robin-jarry <robin.jarry@gmail.com>