以前は ocaml でプログラミングし、ocalmyacc を使用してパーサーを生成していました。ocaml の非常に便利なフェザーの 1 つは、次のようなバリアント型です。
type exp = Number of int
| Addexp of exp*exp
このような型を使用すると、パーサーで AST データ構造を非常にエレガントに構築して、次のような exp を表すことができます。
exp :
number {Number($1)}
| exp1 + exp2 {Addexp($1,$3)}
では、C++ と bison に同様のメカニズムが存在する場合は?