是否可以使用OperatorPrecedenceParser
不区分大小写地解析非符号运算符(例如AND
,OR
)?
OperatorPrecedenceParser没有内置支持不区分大小写的非符号运算符匹配。
但是,如果您的非符号运算符很短或者只需要支持几个拼写变体(例如全部小写、全部大写、仅首字母大写等),那么您可以简单地添加所有需要支持的运算符变体。 (当然,您会使用一个小助手函数来添加这些变体,而不是手动添加。)
看起来 PeekOp
是处理确定是否存在运算符的方法。它没有提及或处理大小写不敏感的方法,因为它依赖于字符的直接相等性(和 CharStream.Match
)。
您可以手动添加各种可能的运算符版本。例如:
Add("or");
Add("oR");
Add("Or");
Add("OR");
Reserved
只是用来保持运算符的唯一性的。>< - Guvante