要做一个脚本解析器,请教各位(300分)

  • 主题发起人 snowrain2k
  • 开始时间
S

snowrain2k

Unregistered / Unconfirmed
GUEST, unregistred user!
要做一个脚本解析器,要求对for/while/if,以及简单变量int,string能进行处理,并能
调用外部函数以及处理四则混合运算。
请问,应该怎么入手,有没有现成的例子可以参考。
1)four = (2 + 2)*2/2;
2)num=GetFromDB();//外部函数
3)string str='123';
4)for (i=0;
i<5;
i++)
5) num=num+i;
6)if strcmp(str,'111) num=num*num;
6)result:=num;
要求能解析上面的脚本,最后返回result的值。
其中GetFromDB是外部现成的函数。
 
你可以参考一下别人事先的脚本语言
比如Lua
http://www.lua.org
它是用纯标准C实现的,有源代码
 
把編譯原理搞清楚再寫程序。
 
可以看看BASIC之类解释器的源码,看对你的程序有没有帮助。
 
找现成的脚本解析器,www.torry.net上面有不少,用关键字script来搜索。
 
其实类似程序解释器,程序自动形成脚本并送入解释器执行。
比如c=x+y*2就先送入x=2,y=3
 
微软的ScriptControl
 
接受答案了.
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部