本人博客内编译原理文章的配套资源jar包,包括词法分析,语法分析,中间代码生成,静态语义检查,代码解释执行以及抽象语法树的手动生成:https://download.csdn.net/download/as1072966956/10448935
转载请注明出处。
ManualAST.java
package sch.cauc.edu.token;
import org.eclipse.jdt.core.dom.AST;
import org.eclipse.jdt.core.dom.Assignment;
import org.eclipse.jdt.core.dom.Block;
import org.eclipse.jdt.core.dom.ExpressionStatement;
import org.eclipse.jdt.core.dom.IfStatement;
import org.eclipse.jdt.core.dom.InfixExpression;
import org.eclipse.jdt.core.dom.MethodInvocation;
import org.eclipse.jdt.core.dom.WhileStatement;
import edu.ustc.cs.compile.util.ir.HIRPack;
//import org.eclipse.jdt.core.dom.*;
//import edu.ustc.cs.compile.util.ir.HIRPack;
/**
* ManualAST
* 创建人:xrzhang
* 时间:2018年5月19日-下午3:54:50
* @version 1.0.0
*
*/
public class ManualAST{
public static void main(String [] args) {
HIRPack ir = new HIRPack();
ManualAST testcase=new ManualAST();
ir.setIR(testcase.createSampleAST());
ir.showIR();
}
/**
*
*
* 产生一个如下程序的AST。<br>
* <pre><code>
*{
* m=12;
* n=21;
* if(m<n)
* {t=