重拾《 两周自制脚本语言 》- 中文关键字与原生函数

简介: 为《 两周自制脚本语言 》添加中文关键字与原生函数

续前文重拾《 两周自制脚本语言 》- 支持中文标识符, 将当前的关键字改为中文. 基本是将语法分析器中的原本英文关键字改为中文. 如改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

相关文章
|
4月前
|
JavaScript 前端开发
【Javascript保姆级教程】if判断语句的三种形式
【Javascript保姆级教程】if判断语句的三种形式
123 0
|
6月前
|
存储 自然语言处理 前端开发
被难倒了! 针对高级前端的八个级JavaScript面试问题
被难倒了! 针对高级前端的八个级JavaScript面试问题
|
10月前
|
小程序 BI
有奖答题小程序开发程式编写规则解析
有奖答题小程序开发程式编写规则解析
|
UED 开发者
无障碍开发案例是什么意思?
无障碍开发案例是指在软件开发过程中,设计、开发、测试和部署应用程序的过程中,将用户的可访问性需求纳入考虑并充分实现的一种开发方式。这种开发方式旨在让所有用户,包括那些具有视觉、听觉、运动、认知和语言等不同能力的用户,都能够使用和访问软件应用程序。
142 0
|
JavaScript 前端开发 安全
每种编程语言都是干嘛的!!!(初学者须知)
每种编程语言都是干嘛的!!!(初学者须知)
|
存储 Java 编译器
C 语言避坑指南
C 语言避坑指南
C 语言避坑指南
|
JSON JavaScript 前端开发
JavaScript入门保姆级教程 ——— 重难点详细解析(万字长文,建议收藏)
基本语法、事件 🍅 Java学习路线:搬砖工的Java学习路线 🍅 作者:程序员小王 🍅 程序员小王的博客:https://www.wolai.com/wnaghengjie/ahNwvAUPG2Hb1Sy7Z8waaF 🍅 扫描主页左侧二维码,加我微信 一起学习、一起进步 🍅 欢迎点赞 👍 收藏 ⭐留言 📝
109 0
JavaScript入门保姆级教程 ——— 重难点详细解析(万字长文,建议收藏)
|
存储 前端开发 算法
1024程序节|完全开源、编程原生体验、轻量化,不来试试吗
1024程序节|完全开源、编程原生体验、轻量化,不来试试吗
149 0
1024程序节|完全开源、编程原生体验、轻量化,不来试试吗
|
移动开发 JavaScript 前端开发
JavaScript高级第四天(笔记总结)
JavaScript高级第四天(笔记总结)
107 0
|
机器学习/深度学习 JavaScript 前端开发
2022年编程语言排名,官方数据来了,让人大开眼界。(中)
2022年编程语言排名,官方数据来了,让人大开眼界。(中)
837 0