在JCL TEvaluator类中预定义了哪些函数

时间:2012-11-27 20:04:40

标签: delphi delphi-7

有没有人知道哪些预定义函数(例如ABS函数)包含在Delphi 7的TEvaluator JCL类中?

2 个答案:

答案 0 :(得分:4)

Math.pas中没有标准功能。默认评估解析器中实现的所有操作都是运算符orxorandnotmod+,{{ 1}},-/*<><=>=,{{1} },=divcmpborbxorbandbnot。 (根据@ David的评论,我在快速查看来源时发现了很多,还有一些我错过了。)

您可以非常轻松地向评估者添加函数(包括属于Delphi RTL的函数)。它甚至在演示中显示,它添加了一个JCL单元的功能。

默认情况下,shl文件夹中找到的JCL评估程序示例(ExprEvalExample.dpr)将shr传递给JCL\examples\common\expreval中的TComboBox.Items函数作为Init参数,由ExprEvalExampleLogic.pas的函数填充此代码(FuncList在同一例程中赋予函数):

TEasyEvaluator

这些将是演示应用程序支持的功能。您可以以类似的方式添加自己的。

答案 1 :(得分:3)

不包含预定义的功能。有标准算术运算符:+, - ,*,div和mod。并且有所有标准的逻辑和按位运算符。但是没有像abs,sin,exp,log等等。你必须把它们放在自己身上。添加函数非常简单,我认为这是一个很好的设计,让您可以准确选择评估者支持的内容。