码迷,mamicode.com
首页 > 其他好文 > 详细

一个简单的parser

时间:2015-01-20 15:04:03      阅读:86      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!