Moduloの付け足しで右再帰構文バグ

Moduloの付け足しでサボってバグが発生。
発生箇所は、HTMLファイルの属性を動的にしたいときに

<TD bgcolor="{$COLORS[$COL % 2]}">

としたときに、コンパイルエラーが起きてしまうこと。
Moduloは、さすがに

$COLORS % 5 % 2

のような記法はしないだろうと、サボっていたら、よくよく見ると文法生成規則で右回帰が発生し、LOOKAHEADが暴走してました。
やっぱり、文法生成規則とかその辺の基礎知識がないと、いくらJavaCCが便利だからといって「だれでもコンパイラが作れる」というわけではないんだなあと、非常に実感。