【javac添加python 列表特性3】Javac编译器的抽象语法树的结构

没有学过编译原理,讲到语法树,总是觉得很抽象,网上又找不到这方面的资料,于是把它的真实结构画了出来。

树里面的节点都继承了JCTree这个类。而在一个文件的java程序中,节点起源于JCCompilationUnit,里面包含了包定义,import定义,类定义。

类定义里面又包含了父类,接口,类变量,类方法等。

例如源代码:

package kk;
import java.io.*;


public class demo extends Object implements Serializable
{
	int a=0;
	public static void main(String args[])
	{
		System.out.println("hello, world");
		int a=1+2;
	}
}
生成的AST如下:

【javac添加python 列表特性3】Javac编译器的抽象语法树的结构_第1张图片

转载于:https://my.oschina.net/superpdm/blog/89590

你可能感兴趣的:(【javac添加python 列表特性3】Javac编译器的抽象语法树的结构)