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

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

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

相关文章
|
定位技术 开发工具 图形学
|
分布式计算 Serverless 调度
EMR Serverless Spark:结合实时计算 Flink 基于 Paimon 实现流批一体
本文演示了使用实时计算 Flink 版和 Serverless Spark 产品快速构建 Paimon 数据湖分析的流程,包括数据入湖 OSS、交互式查询,以及离线Compact。Serverless Spark完全兼容Paimon,通过内置的DLF的元数据实现了和其余云产品如实时计算Flink版的元数据互通,形成了完整的流批一体的解决方案。同时支持灵活的作业运行方式和参数配置,能够满足实时分析、生产调度等多项需求。
61075 107
|
12月前
|
Ubuntu Linux 网络安全
从头安装Arch Linux系统
本文记录了作者安装Arch Linux系统的过程,包括安装成果展示和遇到的疑难点及其解决方法,如硬盘不足、下载失败、设置时区、安装微码和配置无密码登录等。
344 1
从头安装Arch Linux系统
|
11月前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
Python Web框架比较:Django vs Flask vs Pyramid
188 4
|
PHP
PHP中的面向对象编程:理解类与对象
本文将深入探讨PHP中面向对象编程的核心概念——类与对象。通过实例讲解,帮助读者更好地理解如何在PHP中运用OOP编写更高效、可维护的代码。
134 9
|
Oracle 关系型数据库 数据库
关系型数据库Oracle执行RMAN脚本
【7月更文挑战第22天】
314 2
|
数据可视化 前端开发 JavaScript
【Echarts大屏】智慧图书馆可视化大屏(附源码一键复制)
【Echarts大屏】智慧图书馆可视化大屏(附源码一键复制)
|
XML 数据可视化 数据格式
【数据集显示标注】VOC文件结构+数据集标注可视化+代码实现
【数据集显示标注】VOC文件结构+数据集标注可视化+代码实现
683 0
|
安全 数据可视化 关系型数据库
测试N次,阿里云centos7安装mysql5.7,看完这篇一次过!
最近闲来无事,买了一个阿里云的服务器,想部署一下自己的项目,于是就开始了艰难的阿里云部署之旅,最开始尝试了很多的CSDN和博客园的文章,很多都以失败告终,最终在不断的试错和热心网友的解释,终于装成功了,特发一篇博客记录一下。这里选择的是在线安装,5.7版本的。
770 2
|
前端开发 JavaScript 搜索推荐
select2,利用ajax高效查询大数据列表 1(可搜索、可分页)
select2,利用ajax高效查询大数据列表(可搜索、可分页)
572 0
select2,利用ajax高效查询大数据列表 1(可搜索、可分页)