是否可以使用不区分大小写的方式解析非符号运算符(例如 , AND
)?OR
OperatorPrecedenceParser
问问题
188 次
2 回答
3
OperatorPrecedenceParser 没有对非符号运算符的不区分大小写匹配的内置支持。
但是,如果您的非符号运算符很短,或者您只需要支持几个拼写变体(例如全部小写、全部大写、只有第一个字符大写,...),那么您可以简单地添加您需要的运算符的所有变体支持。(当然,您可以使用一些辅助函数添加变体,而不是手动添加。)
于 2012-02-10T00:23:10.753 回答
2
看起来PeekOp
是处理确定是否存在运算符的方法。它没有提及或处理不区分大小写的方法,因为它依赖于字符(和CharStream.Match
)的直接相等。
您始终可以手动添加各种可能的运算符版本。例如
Add("or");
Add("oR");
Add("Or");
Add("OR");
最后另一种选择是创建一个辅助方法来执行此操作。
于 2012-02-09T23:58:34.220 回答