Campbell wrote:you should not be thinking about that sort of thing now. Those are mostly implementation details, which will simply cause you confusion.
I suggest you start by writing a grammar for it.
In my opinion, when it comes to compiler development, those two suggestions are contradictory.
To write a grammar, you'll typically want to settle on a parser generator before you start, because otherwise you'll be spending a lot of time and effort rewriting your grammar later.
I don't have experience with JavaCC, but it appears to be a sensible choice. I can also vouch for ANTLR. Honestly, unless you're developing a production-ready compiler, the exact choice of parser generator doesn't matter
that much. I do strongly recommend a parser generator that generates LL(k) or recursive descent parsers, as those are typically easier to use if you don't have a lot of experience with compiler development. Again,
you should be fine with both JavaCC and ANTLR.
I discourage the use of yacc if this is your first compiler. It generates LALR parsers, and those are difficut to understand if you don't have experience wih them.