Yacc を使用してコンパイラを作成していますが、関数に一致するプロダクションを作成する方法がわかりません。私の言語では、関数は次のように定義されています。
function foo(a, b, c);
function という単語を FUNC に、C スタイルの名前を NAME に一致させる lex パターンを作成しました。
理想的には、次のようなものが必要です。
FUNC NAME OBRACKET NAME (COMMA NAME)* CBRACKET
これにより、NAME と CBRACKET の間に不明な数の COMMA NAME のペアが許可されます。
さらに、見つかった数をどのように知ることができますか?