手把手带你写一门编程语言¶
目录
开篇¶
示例:
// 一个函数的声明,这个函数很简单,只打印 "Hello World!"
function sayHello(){
println("Hello World!");
}
// 调用刚才声明的函数
sayHello();
词法分析¶
备注
做词法分析的一个最佳实践,就是先把标识符和关键字统一提取出来,然后再从里面把关键字单独提取出来就行了。
语法分析¶
语法分析的思路(递归下降算法):
首先,写出语法规则,比如说用 EBNF 格式。
第二,根据语法规则,分别匹配每个子元素。
递归下降(Recursive Descent)
第三,如果一条语法规则可能有多个展开方式
要依次尝试去匹配
语义分析¶
引用消解(Refrence Resolving)