[Java]如何从0开发自己的语言(一 准备工作)
声明:你需要有部分Java基础(只需要知道怎么使用IDEA编译器以及常见的字符串操作)
本教程借鉴了BlocklyNukkit项目的部分代码
本教程针对把你自己的语言翻译为JavaScript
材料
IDEA开发工具、JDK1.8、FastJson(Github地址)
注意事项
请先事先将FastJson导入到依赖库中。导入教程
FastJson介绍
JSON格式
[
{
"Author" : "wellwhz",
"版权所有" : "侵权必究"
},
{
"作者" : "wellwhz",
"版权所有" : "侵权必究"
}
]
上面是一个JSON字符串的实例
一般地,在JSON中每一个键值或键名一定要用双引号扩起来
特别地,键值如果为数字或布尔值的话,则无需双引号
JSON大致有以下四个语法
- 数据在名称/值对中
- 数据由逗号分隔
- 大括号{}保存对象
- 中括号[]保存数组,数组可以包含多个对象
FastJson使用
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public class Main {
public static void main(String[] args) {
String wellwhz = "[{\"author\" : \"wellwhz\"},{\"作者\" : \"wellwhz\"}]";//赋值JSON字符串
JSONArray testJsonArr = JSON.parseArray(wellwhz);//解析JSON数组
JSONObject testJsonObj = JSON.parseObject(testJsonArr.get(0).toString());//解析JSON字符串
System.out.println(testJsonObj.get("author"));//输出
}
}
运行该程序,会输出
wellwhz
整理开发文档
我们学习了JSON的基本用法以后,我们还需要整理一个自己的开发文档。这样方便以后编写。在上一章中,笔者已经介绍了如何列出自己的函数列表。接下来你要为你的语言定义一个标准以及规范。
这样不仅有利于你的编写,而且有利于别人帮你修复BUG。
而且你在整理开发文档的过程中,你可以将自己的语言的AST语法树整理好
AST语法树设计
HoogLang语法树设计
[
"line1" : {
"type" : "你的类型,比如说空格",
"附加信息,可自定义,比如变量" : "你要存贮的对象"
}
]
大家可以参照这个去设计自己的AST语法树