重拾《 两周自制脚本语言 》- 中文关键字与原生函数
续前文重拾《 两周自制脚本语言 》- 支持中文标识符, 将当前的关键字改为中文. 基本是将语法分析器中的原本英文关键字改为中文. 如改while->每当 · program-in-chinese/stone@32c79b4:
Parser statement = statement0.or(
rule(IfStmnt.class).sep(IfStmnt.关键字_如果).ast(expr).ast(block)
.option(rule().sep(IfStmnt.关键字_不然).ast(block)),
rule(While声明类.class).sep(While声明类.关键字).ast(expr).ast(block),
simple);
下面是关键字对应表:
while,每当
if,如果
else,否则
class,类别
extends,扩展
def,定义
fun,函数
new,新建
this,本体
原生函数就是Java本身核心库函数. 比如System.out.println, 原本被封装为了print方法, System.currentTimeMillis被封装为了currentTime方法等. 将原环境类中的键值, 就是原英文方法名, 改为中文. 如print->打印 · program-in-chinese/stone@165d99e:
append(env, 方法名_打印, 原生类.class, "print", Object.class);
为验证可行性, 仅汉化了两个API. 最好今后能够做到无需封装直接调用Java的静态方法.
达成例程效果如下:
类别 斐波那契类 {
值0 = 0
值1 = 1
定义 斐波那契 (n) {
如果 n == 0 {
值0
} 否则 {
如果 n == 1 {
本体.值1
} 否则 {
本体.斐波那契(n-1) + 本体.斐波那契(n-2)
}
}
}
}
时刻 = 当前时刻()
斐 = 斐波那契类.新建
斐.斐波那契 20
耗时 = 当前时刻() - 时刻
下面打算先参考为新语言编写Visual Studio Code语法高亮插件, 为它编写类似插件.
2019-03-17
关注公众号
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
重拾《 两周自制脚本语言 》- 支持中文标识符
续前文将《 两周自制脚本语言 》测试中使用的接口中文化. 在将此脚本语言改为中文关键字之前, 需要先让它支持中文标识符. 首先添加一个词法分析器测试: @Test public void test读中文() throws 分析例外 { 词法分析器类 词法分析器 = 词法分析功用.新建词法分析器("中文变量1名 = 中文ok值"); 词类 词1 = 词法分析器.读(); 词类 词2 = 词法分析器.读(); 词类 词3 = 词法分析器.读(); 词法分析功用.词为标识符("中文变量1名", 词1); 词法分析功用.词为标识符("=", 词2); 词法分析功用.词为标识符("中文ok值", 词3); } 预期的应该不能通过测试, 结果的确不成功, 但是"卡"住了而非报错. 调试后看到问题出在这段: int lineNo = reader.getLineNumber(); Matcher matcher = pattern.matcher(line); matcher.useTransparentBounds(true).useAnchoringBounds(false); int pos ...
-
下一篇
Python爬虫入门教程 27-100 微医挂号网专家团队数据抓取pyspider
1. 微医挂号网专家团队数据----写在前面 今天尝试使用一个新的爬虫库进行数据的爬取,这个库叫做pyspider,国人开发的,当然支持一下。 github地址: https://github.com/binux/pyspider官方文档地址:http://docs.pyspider.org/en/latest/ 安装起来是非常简单的 pip install pyspider 安装之后,启动 在CMD控制台里面敲入命令 pyspider 出现如下界面,代表运行成功,一般情况下,你的电脑如果没有安装 phantomjs 他会先给你安装一下。 接下来打开浏览器,访问地址输入 127.0.0.1:5000, 应该显示如下界面,就可以愉快的进行编码了~ 3步创建一个项目 2. 微医挂号网专家团队数据----库基本使用入门 这款工具的详细使用,给你提供一个
相关文章
文章评论
共有0条评论来说两句吧...

微信收款码
支付宝收款码