クライアントとサーバーの間でメッセージの要求応答シーケンスを作成しようとしていました。メッセージを解析するために、flex と bison の文法を使用していました。異なる文法でのルールの再利用について質問があります。たとえば、リクエストを処理するための文法がある場合
req_message:
request_message
|response_message
|error
;
リクエストメッセージの場所
request_message:
|request_header_list request_hdr
request_hdr は
request_hdr:
accept
|accept_language
|bandwidth
|user_agent
|session
|cseq
|cache_control
..
;
同様に、応答のために私は文法を持っています
response_header:
cseq
|session
|range
|public
|server
|content_type
..
;
を解析するためcseq
に、ルールを 1 つだけ定義しました。リクエストの解析中、そのルールは正常に機能しています。しかし、応答を解析している間、ルールは表示されません。同じルールを異なる文法に使用することはできません のようなものはありますか? request に対しては機能し、 response に対しては機能しないのはなぜですか? cseq token
lex 側では、語彙の解析に問題はありませんでした。yaccに戻ることができます。