main_lexical.java

来自「编译原理大作业---tiger编译器 包括semant,translate,m」· Java 代码 · 共 83 行

JAVA
83
字号
package Parse;import ErrorMsg.ErrorMsg;public class Main {  public static void main(String argv[]) throws java.io.IOException {      String infilename = argv[0];      String outfilename = "output_test_lessicale";      ErrorMsg errorMsg = new ErrorMsg(infilename);      java.io.InputStream infile = new java.io.FileInputStream(infilename);      //Lexer lexer = new Yylex(infile,errorMsg);      Yylex lexer = new Yylex(infile, errorMsg);      java_cup.runtime.Symbol tok;      java.io.PrintStream outfile =          new java.io.PrintStream(                new java.io.FileOutputStream(outfilename));      outfile.println("----------------");      outfile.println("TOKEN (POSITION)");      outfile.println("----------------");      do {         tok=lexer.nextToken();         outfile.println(symnames[tok.sym] + " (" + tok.left + ")");      } while (tok.sym != sym.EOF);      infile.close(); outfile.close();  }  static String symnames[] = new String[100];  static {     symnames[sym.AND] = "AND";     symnames[sym.ARRAY] = "ARRAY";     symnames[sym.ASSIGN] = "ASSIGN";     symnames[sym.BREAK] = "BREAK";     symnames[sym.COLON] = "COLON";     symnames[sym.COMMA] = "COMMA";     symnames[sym.DIVIDE] = "DIVIDE";     symnames[sym.DO] = "DO";     symnames[sym.DOT] = "DOT";     symnames[sym.ELSE] = "ELSE";     symnames[sym.END] = "END";     symnames[sym.EOF] = "EOF";     symnames[sym.EQ] = "EQ";     symnames[sym.FOR] = "FOR";     symnames[sym.FUNCTION] = "FUNCTION";     symnames[sym.GE] = "GE";     symnames[sym.GT] = "GT";     symnames[sym.ID] = "ID";     symnames[sym.IF] = "IF";     symnames[sym.IN] = "IN";     symnames[sym.INT] = "INT";     symnames[sym.LBRACE] = "LBRACE";     symnames[sym.LBRACK] = "LBRACK";     symnames[sym.LE] = "LE";     symnames[sym.LET] = "LET";     symnames[sym.LPAREN] = "LPAREN";     symnames[sym.LT] = "LT";     symnames[sym.MINUS] = "MINUS";     symnames[sym.NEQ] = "NEQ";     symnames[sym.NIL] = "NIL";     symnames[sym.OF] = "OF";     symnames[sym.OR] = "OR";     symnames[sym.PLUS] = "PLUS";     symnames[sym.RBRACE] = "RBRACE";     symnames[sym.RBRACK] = "RBRACK";     symnames[sym.RPAREN] = "RPAREN";     symnames[sym.SEMICOLON] = "SEMICOLON";     symnames[sym.STRING] = "STRING";     symnames[sym.THEN] = "THEN";     symnames[sym.TIMES] = "TIMES";     symnames[sym.TO] = "TO";     symnames[sym.TYPE] = "TYPE";     symnames[sym.UMINUS] = "UMINUS";     symnames[sym.VAR] = "VAR";     symnames[sym.WHILE] = "WHILE";     symnames[sym.error] = "error";  }}

⌨️ 快捷键说明

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