比如我要把(a[i1][nnn] mod 2=1)and(a[i1][nnn+1] mod 2=0) 这个字符串 变为表达式?用户输入这个字符串(当然里面的数组我已经定义了)我怎么就转为为编程代码(a[i1][nnn] mod 2=1)and(a[i1][nnn+1] mod 2=0) 呢?

解决方案 »

  1.   

    先看看编译原理,自己做可能困难,利用一些现成的代码改进比较好,
    delphi在这方面的东西我了解不多,
    用C的话,可参考的有 bison,flex,cint,pcc,tcc(tiny cc, not borland turbo c)等等
      

  2.   

    晕,RTTI的东西,怎么可能在编译时用呢
      

  3.   

    晕,RTTI的东西,怎么可能在编译时用呢
      

  4.   

    参考代码function TForm1.Eval(expStr:   string):   string;
    var
      js:OleVariant;
    begin
      js:=CreateOleObject('ScriptControl');
      js.Language:='JavaScript';
      Result:=js.Eval(expStr);
      js:=Unassigned;
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    var
      s:string;
    begin
      s:=self.Eval('123+234+50');
      self.Label1.Caption:=s;
    end;