compiler.java

来自「java语言开发的基于tiny语言的编译器」· Java 代码 · 共 46 行

JAVA
46
字号

package jeex.tiny;

import java.io.*;
/**
 * Main class.
 */
class Compiler {
	public static void main(String[] args) {
		if (args.length <= 0) {
			System.err.println("Usage: Compiler filename");
			System.exit(1);
		}
		//create scanner
		Scanner s = null;
		try {
			FileInputStream in = new FileInputStream(args[0]);
			s = new Scanner(in);
		} catch(FileNotFoundException e) {
			System.err.println(args[0] + " not found,exit...");
			System.exit(1);
		} catch(IOException e2) {
			System.err.println("read " + args[0] + " error,exit...");
			System.exit(1);
		}
		//parsing: build abstract syntax tree
		Parser parser = new Parser(s);		
		Tree prog = parser.Program();
		if (Log.count()>0) {
			System.err.println("compile " + args[0] + "failed");
			System.exit(1);
		}
		//generate code
		Code code = new Code();		
		Gen gen = new Gen(code);
		gen.main(prog);
		if (Log.count()>0) {
			System.err.println("compile " + args[0] + "failed");
			System.exit(1);
		}
		//write to file
		code.write("a.txt");
		
		System.exit(0);
	}
}

⌨️ 快捷键说明

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