私は Flex/Bison を初めて使用するので、非常に素朴な質問です。
もしそうなら、私を許してください。宿題の質問のように見えるかもしれませんが、以下のコンセプトに基づいてプロジェクトを実装する必要があります。
私の質問は 2 つの部分に関連しています。
質問 1
Bison パーサーでは、オプションの入力にルールを提供するにはどうすればよいですか。
同様に、ステートメントの例 を解析する必要があります:
-country='USA' -state='INDIANA' -population='100' -ratio='0.5' -comment='Census study for Indiana'
ここで比率トークンはオプションにすることができます。同様に、オプションのトークンが多数ある場合、同じものに対してパーサーで文法を提供するにはどうすればよいですか?
私のコードは次のようになります
%start program
program : TK_COUNTRY TK_IDENTIFIER TK_STATE TK_IDENTIFIER TK_POPULATION TK_IDENTIFIER ...
すべてのトークンはレクサーで定義されています。オプションのトークンが多いので、「|」を使うと その場合、可能な入力の組み合わせにはさまざまな方法があります。
質問 2
コメントには入力の一部として引用符が含まれている可能性が高いため、ユーザーが同じものを解釈するために提供できる token タグを追加しました。
例 :
-country='USA' -state='INDIANA' -population='100' -ratio='0.5' -comment='Census study for Indiana$'s population' -tag=$
ここで、Indiana$'s を、Indiana's since として再解釈する必要があります-tag=$
。
これらのトピックを理解するために、入力または関連資料を提供してください。