如何解释字符串的逻辑关系式?(100分)

  • 主题发起人 主题发起人 lbmjy
  • 开始时间 开始时间
L

lbmjy

Unregistered / Unconfirmed
GUEST, unregistred user!
exp:='X>1 OR X<3';
//如果X=2,怎样动态解释exp的逻辑运算结果?
 
大虾们,提提建议。多谢!
 
看一看《编译原理》,模仿着写一个表达式解析树就行了。
或者,看一看 rxlib 中的 rxparse.pas。
 
能否告知RxLib的下载地址及rxparse.pas的用法,谢谢!
 
请问还有其他控件解决此问题吗?
 
你随便找三个有 delphi 控件的地方,其中至少两个有这个东东。
rxparse.pas 很容易使用,其中只有一个类。成员函数也很少。
 
好像RxLib提供的是数学运算表达式的解释,而非逻辑表达式的解释。
 
如果是判断简单的式子,用老土的方法,自己写函数。
 
谁能解决,我也要一份。
 
[:)]既然是表达式是未知,就无法断定是简单还是复杂。再次希望各位大虾提提建议 ...
 
有人能解决此问题吗!!!?
 
同数学表达式差不多,>,<,or也都是运算么!
可建立树形表达式:
|
> <
x 1 x 3
先替换其中变量:令x为2
针对每个运算符写处理函数,
将树从底向上运算,根据节点转入不同的处理函数,返回值则为运算结果,然后用运算结果取代本节点并删除本节点下的子树
到顶以后的运算结果就是本逻辑运算的结果
处理函数也很好写,比如对>
function biger(ex1,ex2:integer):boolean;
begin
result:=0;
if ex1>ex2 then result:=1;
end;

对or
function or1(ex1,ex2:boolean):boolean;
begin
result:=ex1 or ex2;
end;

 
感谢大家!!![:)]
 
后退
顶部