我试图在客户端和服务器之间创建一个请求-响应消息序列。为了解析消息,我使用了 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
,我只定义了一个规则。该规则在解析请求时工作正常。但是在解析响应时,规则没有出现。有没有类似的规则不能用于不同的语法?为什么它适用于请求而不适用于响应?在 lex 方面,我发现 lexims 解析没有问题,可以返回cseq token
到 yacc