0

C で式を解析するための YACC 文法があります。これらはそのフラグメントの一部です。

Expr: Expr COMMA Expr 
     | Assignment


Assignment: IDENTIFIER
            | Assignment COMMA Assignment

Function Call: IDENTIFIER PARENOPEN Expr PARENOPEN

私が基本的にできるようにしたいのは、フォーム a(p,q,r) の関数呼び出しを解析し、渡された引数の数と型が関数定義で指定されたものと一致するかどうかを確認してExpr、識別子自体のレベル。

最終的に起こるのは、の代わりに にp,q,r還元されることです。を使用してのみ実行できるいくつかのセマンティック ルールを実行する必要があるため、これは問題です。また、特定の削減にとって重要であるため、ルールを削除することはできません。そのような場合に何をする必要があるかを YACC にハードコードする方法はありますか?AssignmentExpr COMMA ExprExpr COMMA ExprAssignment COMMA Assignment

4

1 に答える 1