首页 > 其他 > 详细

一个简单的parser

时间:2015-01-20 15:01:16      阅读:216      评论:0      收藏:0      [点我收藏+]

所有的内容基于《两周自制脚本语言》。

原文中使用Java编写。鉴于本人不怎么会写Java(书里面有好奇怪的语法,不懂(逃)),便用C#写了一个简单的parser。

 

代码输入格式:

1:
i=2+3*3/(4-2)
2:
i=1;
if(i)
{
i=2;
}

3:
i=4;
sum=0;
while(i)
{
i--;
sum = sum +i;
}
sum;

4:
fun name(i,j){ i+j;}
name(2,3);
name(3,6);

5:
kk = fun name(i,j,k){i+j+k;}
kk(1,2,3);
kk(1,2,6);

6:[call c# static function]
invoke("System.Console","WriteLine","helloworld");

or[some shortcuts in this parser]
invoke("print","helloworld");

invoke("time");

截图如下:

1:
技术分享

2:

技术分享

 

不能使用递归,这是我留的一个bug,只是有点不想改而已,感觉添加递归会很慢。

毕竟是java,╮(╯▽╰)╭,都不知道为何看作者写的代码这么别扭(好吧,我只是觉得 类似【@XXX】 很费解,)。虽然是按照书上来的,但鉴于java不熟悉,里面很多细节全都是我自己乱想的,可以说没什么优化。权当学习编译原理了。

有兴趣的可以去https://github.com/kalluwa/HelloWorld 自己研究。

一个简单的parser

原文:http://www.cnblogs.com/kalluwa/p/4235896.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!