⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 using_sample.java

📁 编译器mips版后端
💻 JAVA
字号:
package edu.ustc.cs.compile.generator.mips;//改成你的包名

import java.io.File;

import org.eclipse.jdt.core.dom.ASTNode;

import edu.ustc.cs.compile.parser.skipoominijool.Parser;
import edu.ustc.cs.compile.platform.interfaces.ParserException;
import edu.ustc.cs.compile.platform.interfaces.ParserInterface;
import edu.ustc.cs.compile.platform.interfaces.GeneratorInterface;
import edu.ustc.cs.compile.platform.interfaces.GeneratorException;
import edu.ustc.cs.compile.platform.util.ASTView.core.ASTViewer;
import edu.ustc.cs.compile.platform.util.ASTView.plugin.GenericPropertyDump;
import edu.ustc.cs.compile.platform.util.ir.HIR;
import edu.ustc.cs.compile.parser.HSParser;//换成你的库

import edu.ustc.cs.compile.arch.*;//这个记得加
import edu.ustc.cs.compile.arch.mips.*;//这个记得加(我的库)

class main{
    public static void main(String[] args) {
        String srcFile = "testcase/correct/quicksort.mj";  // 换成你的测试程序
        File src = new File(srcFile);    	
        HIR hir = null;
        
        // 调用我们提供的SkipOOMiniJOOL的语法分析器获得中间表示。
        // 你可以将它替换成自己的语法分析器。
        ParserInterface Parser = new HSParser();//如果你的语法分析器叫HSParser
        try {
            hir = (HIR)Parser.doParse(src);
        } catch (ParserException e) {
            System.err.println("Fatal error:Some exceptions happened in parser.");
            e.printStackTrace();
            System.exit(-1);
        }
        
        // 调用ASTView
        ASTViewer astviewer = new ASTViewer((ASTNode)hir.getIR(), new GenericPropertyDump());
        astviewer.show();
                
        // 调用汇编代码生成器。
        MMGenerator gen = new MMGenerator();
        File outFile = new File("a.s");  // 如果要输出到其它文件,请修改outFile的值
        try{
            gen.generateAsm(outFile, hir);
        }catch(Exception e){
            System.err.println("Fatal error:Some exceptions happened in generator.");
            e.printStackTrace();
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -