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

📄 parsegen.java

📁 java 编译器java复杂编译器,可以编译java文件的类库
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
	    ostr.println("    jj_ntk = -1;");	  }          if (jjtreeGenerated) {            ostr.println("    jjtree.reset();");          }          if (Options.B("ERROR_REPORTING")) {            ostr.println("    jj_gen = 0;");            ostr.println("    for (int i = 0; i < " + maskindex + "; i++) jj_la1[i] = -1;");            if (jj2index != 0) {              ostr.println("    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();");            }          }          ostr.println("  }");	  ostr.println("");          ostr.println("  public " + cu_name + "(java.io.Reader stream) {");          if (Options.B("STATIC")) {            ostr.println("    if (jj_initialized_once) {");            ostr.println("      System.out.println(\"ERROR: Second call to constructor of static parser.  You must\");");            ostr.println("      System.out.println(\"       either use ReInit() or set the JavaCC option STATIC to false\");");            ostr.println("      System.out.println(\"       during parser generation.\");");            ostr.println("      throw new Error();");            ostr.println("    }");            ostr.println("    jj_initialized_once = true;");          }          if (Options.B("JAVA_UNICODE_ESCAPE")) {            ostr.println("    jj_input_stream = new JavaCharStream(stream, 1, 1);");          } else {            ostr.println("    jj_input_stream = new SimpleCharStream(stream, 1, 1);");          }          ostr.println("    token_source = new " + cu_name + "TokenManager(jj_input_stream);");          ostr.println("    token = new Token();");	  if (Options.B("CACHE_TOKENS")) {	    ostr.println("    token.next = jj_nt = token_source.getNextToken();");	  } else {	    ostr.println("    jj_ntk = -1;");	  }          if (Options.B("ERROR_REPORTING")) {            ostr.println("    jj_gen = 0;");            ostr.println("    for (int i = 0; i < " + maskindex + "; i++) jj_la1[i] = -1;");            if (jj2index != 0) {              ostr.println("    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();");            }          }          ostr.println("  }");          ostr.println("");          ostr.println("  " + staticOpt() + "public void ReInit(java.io.Reader stream) {");          if (Options.B("JAVA_UNICODE_ESCAPE")) {            ostr.println("    jj_input_stream.ReInit(stream, 1, 1);");          } else {            ostr.println("    jj_input_stream.ReInit(stream, 1, 1);");          }          ostr.println("    token_source.ReInit(jj_input_stream);");          ostr.println("    token = new Token();");	  if (Options.B("CACHE_TOKENS")) {	    ostr.println("    token.next = jj_nt = token_source.getNextToken();");	  } else {	    ostr.println("    jj_ntk = -1;");	  }          if (jjtreeGenerated) {            ostr.println("    jjtree.reset();");          }          if (Options.B("ERROR_REPORTING")) {            ostr.println("    jj_gen = 0;");            ostr.println("    for (int i = 0; i < " + maskindex + "; i++) jj_la1[i] = -1;");            if (jj2index != 0) {              ostr.println("    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();");            }          }          ostr.println("  }");        }      }      ostr.println("");      if (Options.B("USER_TOKEN_MANAGER")) {        ostr.println("  public " + cu_name + "(TokenManager tm) {");      } else {        ostr.println("  public " + cu_name + "(" + cu_name + "TokenManager tm) {");      }      if (Options.B("STATIC")) {        ostr.println("    if (jj_initialized_once) {");        ostr.println("      System.out.println(\"ERROR: Second call to constructor of static parser.  You must\");");        ostr.println("      System.out.println(\"       either use ReInit() or set the JavaCC option STATIC to false\");");        ostr.println("      System.out.println(\"       during parser generation.\");");        ostr.println("      throw new Error();");        ostr.println("    }");        ostr.println("    jj_initialized_once = true;");      }      ostr.println("    token_source = tm;");      ostr.println("    token = new Token();");      if (Options.B("CACHE_TOKENS")) {	ostr.println("    token.next = jj_nt = token_source.getNextToken();");      } else {	ostr.println("    jj_ntk = -1;");      }      if (Options.B("ERROR_REPORTING")) {        ostr.println("    jj_gen = 0;");        ostr.println("    for (int i = 0; i < " + maskindex + "; i++) jj_la1[i] = -1;");        if (jj2index != 0) {          ostr.println("    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();");        }      }      ostr.println("  }");      ostr.println("");      if (Options.B("USER_TOKEN_MANAGER")) {        ostr.println("  public void ReInit(TokenManager tm) {");      } else {        ostr.println("  public void ReInit(" + cu_name + "TokenManager tm) {");      }      ostr.println("    token_source = tm;");      ostr.println("    token = new Token();");      if (Options.B("CACHE_TOKENS")) {	ostr.println("    token.next = jj_nt = token_source.getNextToken();");      } else {	ostr.println("    jj_ntk = -1;");      }      if (jjtreeGenerated) {        ostr.println("    jjtree.reset();");      }      if (Options.B("ERROR_REPORTING")) {        ostr.println("    jj_gen = 0;");        ostr.println("    for (int i = 0; i < " + maskindex + "; i++) jj_la1[i] = -1;");        if (jj2index != 0) {          ostr.println("    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();");        }      }      ostr.println("  }");      ostr.println("");      ostr.println("  " + staticOpt() + "final private Token jj_consume_token(int kind) throws ParseException {");      if (Options.B("CACHE_TOKENS")) {	ostr.println("    Token oldToken = token;");	ostr.println("    if ((token = jj_nt).next != null) jj_nt = jj_nt.next;");	ostr.println("    else jj_nt = jj_nt.next = token_source.getNextToken();");      } else {	ostr.println("    Token oldToken;");	ostr.println("    if ((oldToken = token).next != null) token = token.next;");	ostr.println("    else token = token.next = token_source.getNextToken();");	ostr.println("    jj_ntk = -1;");      }      ostr.println("    if (token.kind == kind) {");      if (Options.B("ERROR_REPORTING")) {        ostr.println("      jj_gen++;");	if (jj2index != 0) {	  ostr.println("      if (++jj_gc > 100) {");	  ostr.println("        jj_gc = 0;");	  ostr.println("        for (int i = 0; i < jj_2_rtns.length; i++) {");	  ostr.println("          JJCalls c = jj_2_rtns[i];");	  ostr.println("          while (c != null) {");	  ostr.println("            if (c.gen < jj_gen) c.first = null;");	  ostr.println("            c = c.next;");	  ostr.println("          }");	  ostr.println("        }");	  ostr.println("      }");	}      }      if (Options.B("DEBUG_PARSER")) {        ostr.println("      trace_token(token, \"\");");      }      ostr.println("      return token;");      ostr.println("    }");      if (Options.B("CACHE_TOKENS")) {	ostr.println("    jj_nt = token;");      }      ostr.println("    token = oldToken;");      if (Options.B("ERROR_REPORTING")) {        ostr.println("    jj_kind = kind;");      }      ostr.println("    throw generateParseException();");      ostr.println("  }");      ostr.println("");      if (jj2index != 0) {        ostr.println("  static private final class LookaheadSuccess extends java.lang.Error { }");        ostr.println("  " + staticOpt() + "final private LookaheadSuccess jj_ls = new LookaheadSuccess();");        ostr.println("  " + staticOpt() + "final private boolean jj_scan_token(int kind) {");        ostr.println("    if (jj_scanpos == jj_lastpos) {");        ostr.println("      jj_la--;");        ostr.println("      if (jj_scanpos.next == null) {");        ostr.println("        jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();");        ostr.println("      } else {");        ostr.println("        jj_lastpos = jj_scanpos = jj_scanpos.next;");        ostr.println("      }");        ostr.println("    } else {");        ostr.println("      jj_scanpos = jj_scanpos.next;");        ostr.println("    }");        if (Options.B("ERROR_REPORTING")) {          ostr.println("    if (jj_rescan) {");          ostr.println("      int i = 0; Token tok = token;");          ostr.println("      while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }");          ostr.println("      if (tok != null) jj_add_error_token(kind, i);");          if (Options.B("DEBUG_LOOKAHEAD")) {            ostr.println("    } else {");            ostr.println("      trace_scan(jj_scanpos, kind);");          }          ostr.println("    }");        } else if (Options.B("DEBUG_LOOKAHEAD")) {          ostr.println("    trace_scan(jj_scanpos, kind);");        }        ostr.println("    if (jj_scanpos.kind != kind) return true;");        ostr.println("    if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls;");        ostr.println("    return false;");        ostr.println("  }");        ostr.println("");      }      ostr.println("  " + staticOpt() + "final public Token getNextToken() {");      if (Options.B("CACHE_TOKENS")) {	ostr.println("    if ((token = jj_nt).next != null) jj_nt = jj_nt.next;");	ostr.println("    else jj_nt = jj_nt.next = token_source.getNextToken();");      } else {	ostr.println("    if (token.next != null) token = token.next;");	ostr.println("    else token = token.next = token_source.getNextToken();");	ostr.println("    jj_ntk = -1;");      }      if (Options.B("ERROR_REPORTING")) {        ostr.println("    jj_gen++;");      }      if (Options.B("DEBUG_PARSER")) {        ostr.println("      trace_token(token, \" (in getNextToken)\");");      }      ostr.println("    return token;");      ostr.println("  }");      ostr.println("");      ostr.println("  " + staticOpt() + "final public Token getToken(int index) {");      if (jj2index != 0) {        ostr.println("    Token t = lookingAhead ? jj_scanpos : token;");      } else {        ostr.println("    Token t = token;");      }      ostr.println("    for (int i = 0; i < index; i++) {");      ostr.println("      if (t.next != null) t = t.next;");      ostr.println("      else t = t.next = token_source.getNextToken();");      ostr.println("    }");      ostr.println("    return t;");      ostr.println("  }");

⌨️ 快捷键说明

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