📄 main.java
字号:
package edu.ustc.cs.minijool.checker;
/**
* main函数用来完成codegenerator的测试
* 此函数接受一个文件名作为参数,利用CodeGenerator类生成一个
* 与接收文件同名,后缀为.s的汇编文件
*/
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.util.List;
import org.eclipse.jdt.core.dom.ASTNode;
import edu.ustc.cs.minijool.parser.Lexer;
import edu.ustc.cs.minijool.parser.Parser;
public class Main {
/**
* @param args mj文件的文件名(注:不带后缀)
*/
public static void main(String[] args) {
// Auto-generated method stub
Lexer lexer = new Lexer(args[0]+".mj");
Parser p = new Parser(lexer);
p.parse();
List l = (List)p.peek(0);
PrintStream outfile = null;
try {
outfile = new PrintStream(new FileOutputStream(args[0]+".s"));
} catch(IOException e) {
System.out.println(e);
System.exit(-1);
}
CodeGenerator CGen=new CodeGenerator(outfile);
((ASTNode)l.get(0)).accept(CGen);
System.out.println("parse successful");
CGen.emitCode();
System.out.println("Code successfully generated");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -