📄 main.java
字号:
package edu.ustc.cs.minijool.lexer;
import java.io.*;
import org.eclipse.jdt.core.dom.*;
import edu.ustc.cs.minijool.lab2parser.*;
public class Main {
/**
* 主函数,主要作用是检查您所完成的代码的正确性,检查分别由part0-2,请在
* 实验完成的不同阶段使用对应的检查runPart方法
*/
//minijool源语言测试例子所在的文件
public final static String file = "test/test.mj";
public static void main(String args[]) {
runPart2();
//runPart3();
//runPart4();
}
public static void runPart2() {
ExpressionLexer l = new ExpressionLexer("test/expr.txt");
Symbol s = l.nextToken();
while (s.getType() != Symbol.EOF) {
System.out.println(s);
s = l.nextToken();
}
}
public static void runPart3() {
ASTNode spec = SpecParser.parse("MJLex/MiniJOOL.mlex");
NFAGenerator nfaGen = new NFAGenerator();
spec.accept(nfaGen);
PushbackReader reader = null;
try {
reader = new PushbackReader(new FileReader(file));
} catch(IOException e) {
e.printStackTrace();
System.exit(-1);
}
NFASimulator sim = new NFASimulator(reader, nfaGen.getNFA());
Symbol s = sim.nextToken();
while (s.getType() != Symbol.EOF) {
System.out.println(s);
s = sim.nextToken();
}
}
public static void runPart4() {
PushbackReader reader = null;
try {
reader = new PushbackReader(new FileReader(file));
} catch(IOException e) {
System.out.println(e);
System.exit(-1);
}
NFASimulator lexer = new NFASimulator(reader, (new LexerCode()).getNFA());
Symbol s = lexer.nextToken();
while(s.getType() != Symbol.EOF) {
System.out.println(s);
s = lexer.nextToken();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -