使用Classes单元中的TParser来解析过滤器字符串

时间:2009-05-25 21:20:02

标签: delphi parsing

我想解析类似于以下内容的过滤字符串:

((Field1 = 'red') and (field2 = 2)) or (Field3 between 1 and 5) or (field4 in ['up', 'down'])

我想在Classes单元中使用TParser,但似乎没有太多文档或示例。

1 个答案:

答案 0 :(得分:8)

IDE使用TParser将DFM文件解析为二进制格式(ObjectTextToBinary)。据我所知,它只识别5个令牌:( EOF,符号,字符串,整数,浮点数)。它不够通用,但是为了特殊目的而建造。您必须将其子类化并根据需要更改其实现。我的观点是,为自己的特定目的编写自己的类/自动机更好。 (它甚至不是解析器而是词法标记器。)