一个简单的parser

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

原文中使用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 自己研究。

转载于:https://www.cnblogs.com/kalluwa/p/4235896.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/492616.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

向机器理解人类行为迈出一小步

一名被试人员正在键盘上打字来源:《中国科学报》摘要:近日,《中国科学报》采访了CCF优秀博士学位论文奖获奖者、清华大学博士易鑫及其导师史元春教授,深入报道了他们对人机自然交互研究的最新进展。随着信息技术的发展&#xff0c…

LPCTSTR类型介绍

参考:https://www.xuebuyuan.com/1182742.html

Centos环境下删除Oracle11g客户端文档

将安装目录删除 [rootOracle /root]# rm -rf /opt/oracle/ 将/usr/bin下的文件删除[rootOracle /root]# rm /usr/local/bin/dbhome[rootOracle /root]# rm /usr/local/bin/oraenv [rootOracle /root]# rm /usr/local/bin/coraenv 将/etc/oratab删除[rootOracle /root]# rm /etc…

邬贺铨院士:工业互联网ICT的新挑战来(附PPT照片)

来源:走向智能论坛摘要:2月21日,由中国信息通信研究院、工业互联网产业联盟、中国通信学会联合主办的2019工业互联网峰会在北京召开。中国工程院院士邬贺铨做题为“工业互联网ICT的新挑战”的主旨演讲。尊敬的苗部长、赵院长、张总&#xff0…

QT中border-image的解释

参考:https://blog.csdn.net/foreverling_ling/article/details/52247649

预定义的类型“System.Object”未定义或未导入

生成网站或项目时,VS 2010 出现如下错误: 预定义的类型“System.Object”未定义或未导入 无效的引用选项 无法引用目录 解决方法: 关掉 VS 2010 重新打开即可。 转载于:https://www.cnblogs.com/Keteven/p/4237566.html

计算机视觉及智能影像报告:未来规模超200亿美元

来源:网易智能近日,Forrester咨询公司对中国计算机视觉及智能影像市场进行了调查,访问了包括研究机构、科研院校、投资机构以及部分互联网企业,视频行业企业,针对以视频行业为代表的文娱产业中人工智能的应用趋势、面临…

虚析构函数的作用

虚析构函数 namespace space3 {/*析构函数 和 虚析构函数在父类指针指向子类对象时&#xff0c; ~Animal()函数前&#xff0c;如果没加virtual&#xff0c;子类的析构函数~Cat()不会被调用*/class Animal{public:Animal(){}virtual ~Animal(){cout << "~Animal &q…

权威报告丨2018-2019 新型互联网生态研究报告摘要

来源&#xff1a;商业伙伴摘要&#xff1a;核心观点&#xff1a;1、传统ICT企业与互联网企业&#xff0c;正在相互进入对方业务领地&#xff1b;2、新型互联网企业既有互联网的基因&#xff0c;又专注于B端企业级市场&#xff1b;3、政府、金融与制造是新型互联网市场规模最大的…

winform TreeView树节点上下移动

/// <summary>/// 上移/// </summary>/// <param name"sender"></param>/// <param name"e"></param>private void tsbMoveUp_Click(object sender, EventArgs e){if (Tv_tree.SelectedNode null){MessageBox.Show(&…

【杂】如何修复视频--> Wondershare Repairit

近日换宿舍&#xff0c;从一个校区搬到另一个校区&#xff0c;突发奇想决定用相机录一点视频~ 浅浅尝试一下录vlog才发现做短视频也并非想象中那般容易&#xff0c;尤其是构思内容和文案&#xff0c;并且实施起来也会有很多问题&#xff0c;比如手拿着相机录真的很抖o((⊙﹏⊙)…

C++虚函数表和多态

这个视频上解释的很好&#xff0c;C在调用可重写的虚函数时&#xff0c;通过访问虚函数表来进行&#xff0c;这个UP主通过解释编译后的代码把多态分析的很清楚。 https://www.bilibili.com/video/BV15g4y1a7F3?p1

中国独角兽企业总榜发布:百亿超级独角兽达13家(附榜单)

来源&#xff1a;悟空智能科技摘要&#xff1a;这份榜单中的独角兽企业均为2018年有外部融资且估值超10亿美元的优秀企业&#xff0c;中国共有203家企业上榜。这203家独角兽企业涉及金融、文化娱乐、汽车交通、企业服务、物流、硬件、本地生活、医疗健康、电子商务、房产服务、…

唯一索引与主键索引的比较

唯一索引唯一索引不允许两行具有相同的索引值。如果现有数据中存在重复的键值&#xff0c;则大多数数据库都不允许将新创建的唯一索引与表一起保存。当新数据将使表中的键值重复时&#xff0c;数据库也拒绝接受此数据。例如&#xff0c;如果在 employee 表中的职员姓氏(lname) …

一文读懂图像传感器

来源&#xff1a;传感器技术图像传感器是各种工业及监控用相机、便携式录放机、数码相机&#xff0c;扫描仪等的核心部件。目前&#xff0c;这个快速增长的市场现在已经延伸到了玩具、手机、PDA、汽车和生物等领域。图像传感器图像传感器定义及种类图像传感器应用成像物镜将外界…

MyEclipse配置Tomcat 6

打开首选项 禁用MyEclipse自带的Tomcat 6 下载apache-tomcat-6.0.29.tar.gz 地址&#xff1a;http://yunpan.cn/cKg6kq2RmjdUB 提取码 986a 地址&#xff1a;http://pan.baidu.com/s/1kTDqZiv 下载后只需要解压即可使用。 配置下载的Tomcat 6地址 转载于:https://www.cnblogs.…

一文读懂5G:颠覆生活资费天价?

来源&#xff1a;网易手机当我们还在习惯于用非智能机慢速浏览web网页的时候&#xff0c;3G网络悄然而至&#xff0c;当我们认为3G已经能够满足日常所需的时候&#xff0c;4G已经走入了我们的生活&#xff0c;而当我们直到今天&#xff0c;依然感叹于4G的快速时&#xff0c;更加…

6分钟完成ImageNet训练,NVIDIA创下六项AI性能新记录!

来源&#xff1a;智东西自AlphaGo引爆人工智能大潮以来&#xff0c;其中的大热门——机器学习&#xff0c;不仅在计算机视觉、语音处理等领域不断突破技术的瓶颈&#xff0c;而且开始快速普及到安防、金融、医疗等多个传统行业。从刷脸支付到个性化推荐&#xff0c;机器学习已经…

在POM 4中,dependency中还引入了scope可以使用5个值

在POM 4中&#xff0c;<dependency>中还引入了<scope>&#xff0c;它主要管理依赖的部署。目前<scope>可以使用5个值&#xff1a; * compile&#xff0c;缺省值&#xff0c;适用于所有阶段&#xff0c;会随着项目一起发布。 * provided&#xff0c;类似compi…

一文看尽2019 MWC十大新机

来源&#xff1a;网易智能、网易手机一年一度的世界移动通信大会&#xff08;MWC 2019&#xff09;在巴塞罗那正式拉开了帷幕&#xff0c;今年的MWC因为有了折叠屏的加入&#xff0c;看点更足&#xff0c;同时随着5G技术与5G设备的推进&#xff0c;整场大会逛下来&#xff0c;相…