Update Scala version

Revert `ABCParser` to correct version
Implement macros code generation behind `~>` operator
Implement `test` and `EMPTY` rules, and tests behind
Implement `nTimes` rule and corresponding tests