JavaCCは、文法定義ファイルを入力するとJavaによって記述された構文解析器を作成してくれるツールであります。探せばどこかに落ちてると思います。
JavaCCで使う文法定義ファイルのサンプルを置いておきます。これは数式の文法定義で、プログラム言語Javaの文法定義から削り取ってきたものです。
よって入力できる数式はJavaで使える数式と同じ文法で書けばよいことになります。
使える関数は以下のとおり
sin(t), cos(t), tan(t), ln(t), exp(t), pow(t), abs(t), max(t1, t2), min(t1, t2), sqrt(t)
Javaで書かれた構文解析器を得るにはまず上のjjtファイルをJTreeにかけます。
#> JJTree ExpressionParser.jjt
するといくつかのファイルとともにExpressionParser.jjファイルが手に入ります。
#> JavaCC ExpressionParser.jj
するとExpressionParser.javaが手に入ります。これとほかに出てきたファイルをすべてコンパイルするとJavaで記述された構文解析器が手に入ります。グラフ描画アプリケーションはこの構文解析器を使用して数式を解析しグラフを描いています。