Go语法树入门——开启自制编程语言和编译器之旅!
- Go语言QQ群: 102319854, 1055927514
- 光谷码农课堂: https://study.163.com/provider/480000001914454/index.htm
- 凹语言(凹读音“Wa”)(The Wa Programming Language): https://github.com/wa-lang/wa
Go语法树是Go语言源文件的另一种语义等价的表现形式。而Go语言自带的go fmt
和go doc
等命令都是在Go语法树的基础之上分析工具。因此将Go语言程序作为输入数据,让我们语法树这个维度重新审视Go语言程序,我们将得到创建Go语言本身的技术。Go语法树由标准库的go/ast
包定义,它是在go/token
包定义的词法基础只是抽象的语法树结构。本书简单介绍语法树相关包的使用。
- 作者:柴树杉,Github @chai2010,Twitter @chaishushan
- 作者:史斌,Github @benshi001
- 作者:丁尔男,Github @3dgen
- 主页:https://github.com/chai2010/go-ast-book
在线阅读
- 第1章 记号
- 第2章 基础面值
- 第3章 基础表达式
- 第4章 代码结构
- 第5章 通用声明
- 第6章 函数声明
- 第7章 复合类型
- 第8章 复合面值
- 第9章 复合表达式
- 第10章 语句块和语句
- 第11章 类型检查
- 第12章 语义信息
- 第13章 SSA形式
- 第14章 LLVM后端
- 第15章 凹语言(TODO)
- 附录A goyacc
版权
版权 柴树杉、史斌和丁尔男,保留相关权力。为了保护读者的权益,我们和出版社沟通为读者争取到以下权利:
禁止非 Github 平台转载,作者保留相关法律权力。