亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? log.java

?? javac是sun公司開發(fā)人員使用java語言編寫的優(yōu)秀的工業(yè)級java編譯器
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/** * @(#)Log.java	1.26 03/01/23 * * Copyright 2003 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package com.sun.tools.javac.v8.util;import java.io.*;import java.util.ResourceBundle;import java.util.MissingResourceException;import java.text.MessageFormat;/** * A class for error logs. Reports errors and warnings, and *  keeps track of error numbers and positions. */public class Log implements LayoutCharacters {    /**     * The context key for the log.     */    private static final Context.Key logKey = new Context.Key();    /**     * The context key for the output PrintWriter.     */    public static final Context.Key outKey = new Context.Key();    public final PrintWriter errWriter;    public final PrintWriter warnWriter;    public final PrintWriter noticeWriter;    /**     * The maximum number of errors/warnings that are reported,     *  can be reassigned from outside.     */    private final int MaxErrors;    private final int MaxWarnings;    /**     * Switch: prompt user on each error.     */    public boolean promptOnError;    /**     * Switch: emit warning messages.     */    public boolean emitWarnings;    /**     * Construct a log with given I/O redirections.     */    protected Log(Context context, PrintWriter errWriter, PrintWriter warnWriter,            PrintWriter noticeWriter) {        super();        context.put(logKey, this);        this.errWriter = errWriter;        this.warnWriter = warnWriter;        this.noticeWriter = noticeWriter;        Options options = Options.instance(context);        this.promptOnError = options.get("-prompt") != null;        this.emitWarnings = options.get("-nowarn") == null;        this.sourcename = Name.Table.instance(context).__input;        this.MaxErrors = getIntOption(options, "-Xmaxerrs", 100);        this.MaxWarnings = getIntOption(options, "-Xmaxwarns", 100);    }    private int getIntOption(Options options, String optionName, int defaultValue) {        String s = (String) options.get(optionName);        try {            if (s != null)                return Integer.parseInt(s);        } catch (NumberFormatException e) {        }        return defaultValue;    }    /**      * The default writer for diagnostics      */    static final PrintWriter defaultWriter(Context context) {        PrintWriter result = (PrintWriter) context.get(outKey);        if (result == null)            context.put(outKey, result = new PrintWriter(System.err));        return result;    }    /**      * Construct a with default settings.      */    protected Log(Context context) {        this(context, defaultWriter(context));    }    /**      * Construct a with all output redirected.      */    protected Log(Context context, PrintWriter defaultWriter) {        this(context, defaultWriter, defaultWriter, defaultWriter);    }    /**      * Get the Log instance for this context.      */    public static Log instance(Context context) {        Log instance = (Log) context.get(logKey);        if (instance == null)            instance = new Log(context);        return instance;    }    /**      * The name of the file that's currently translated.      */    private Name sourcename;    /**     * The number of errors encountered so far.     */    public int nerrors = 0;    /**     * The number of warnings encountered so far.     */    public int nwarnings = 0;    /**     * A set of all errors generated so far. This is used to avoid printing an     *  error message more than once. For each error, a pair consisting of the     *  source file name and source code position of the errir is added to the set.     */    private Set recorded = Set.make();    /**     * The buffer containing the file that's currently translated.     */    private byte[] buf = null;    /**     * The position in the buffer at which last error was reported     */    private int bp;    /**     * the source line at which last error was reported.     */    private int lastLine;    /**     * Re-assign source name, returning previous setting.     */    public Name useSource(Name name) {        Name prev = sourcename;        sourcename = name;        if (prev != sourcename)            buf = null;        return prev;    }    /**      * Return current source name.      */    public Name currentSource() {        return sourcename;    }    /**      * Flush the logs      */    public void flush() {        errWriter.flush();        warnWriter.flush();        noticeWriter.flush();    }    /**      * Prompt user after an error.      */    public void prompt() {        if (promptOnError) {            System.err.println(getLocalizedString("resume.abort"));            char ch;            try {                while (true) {                    switch (System.in.read()) {                    case 'a':                    case 'A':                        System.exit(-1);                        return;                    case 'r':                    case 'R':                        return;                    case 'x':                    case 'X':                        throw new AssertionError("user abort");                    default:                    }                }            } catch (IOException e) {            }        }    }    /**      * Print a faulty source code line and point to the error.      *  @param line    The line number of the printed line in the current buffer.      *  @param col     The number of the column to be highlighted as error position.      */    private void printErrLine(int line, int col, PrintWriter writer) {        try {            if (buf == null) {                FileInputStream in = new FileInputStream(sourcename.toString());                buf = new byte[in.available()];                in.read(buf);                in.close();                bp = 0;                lastLine = 1;            } else if (lastLine > line) {                bp = 0;                lastLine = 1;            }            while (bp < buf.length && lastLine < line) {                switch (buf[bp]) {                case CR:                    bp++;                    if (bp < buf.length && buf[bp] == LF)                        bp++;                    lastLine++;                    break;                case LF:                    bp++;                    lastLine++;                    break;                default:                    bp++;                }            }            int lineEnd = bp;            while (lineEnd < buf.length && buf[lineEnd] != CR && buf[lineEnd] != LF)                lineEnd++;            printLines(writer, new String(buf, bp, lineEnd - bp));            if (col == 0)                col = 1;            byte[] ptr = new byte[col];            for (int i = 0; i < col - 1; i++)                ptr[i] = (byte)' ';            ptr[col - 1] = (byte)'^';            printLines(writer, new String(ptr, 0, col));        } catch (IOException e) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产真实乱子伦精品视频| 欧美国产欧美综合| 91蝌蚪国产九色| 国产一区二区三区日韩| 另类小说视频一区二区| 日日夜夜精品视频免费| 青青草精品视频| 免费在线观看日韩欧美| 黄页视频在线91| 国产美女娇喘av呻吟久久| 国产精品1区二区.| 99精品在线免费| 91网站最新地址| 欧美日韩视频在线观看一区二区三区 | 精品在线观看视频| 国产在线精品视频| 成人免费视频视频| 91国内精品野花午夜精品 | 国产午夜精品一区二区三区嫩草 | 久久久精品综合| 亚洲私人黄色宅男| 日本亚洲最大的色成网站www| 免费亚洲电影在线| 97久久久精品综合88久久| 在线观看国产91| 精品人伦一区二区色婷婷| 夜夜精品浪潮av一区二区三区| 精品国偷自产国产一区| 国产精品久久久久久久久搜平片| 亚洲中国最大av网站| 日韩国产欧美在线视频| 91免费观看国产| 日韩精品一区二区三区视频在线观看| 国产精品美女久久久久久久网站| 亚洲国产aⅴ成人精品无吗| 不卡高清视频专区| 精品999在线播放| 欧美aⅴ一区二区三区视频| 99国产精品久久久久久久久久| 欧美一区午夜精品| 亚洲不卡av一区二区三区| 91看片淫黄大片一级在线观看| 欧美成人一区二区三区在线观看| 最新日韩av在线| 波多野结衣91| 国产精品久久久久9999吃药| 国产精品1024久久| 国产日本亚洲高清| 国产精品一卡二卡| 国产亚洲精品免费| 国产精品123区| 久久精品人人爽人人爽| 国产亚洲成年网址在线观看| 久久久蜜臀国产一区二区| 亚洲丝袜另类动漫二区| 色婷婷久久久亚洲一区二区三区| 久久久久国产精品麻豆ai换脸| 狠狠狠色丁香婷婷综合激情| 久久久国产综合精品女国产盗摄| 国产露脸91国语对白| 国产欧美日韩麻豆91| 色偷偷成人一区二区三区91| 亚洲天堂免费看| 日韩你懂的电影在线观看| 国产精品一区二区三区乱码| 中文字幕不卡在线播放| 91久久精品一区二区三| 日本成人中文字幕在线视频| 亚洲国产精品精华液ab| 在线观看一区二区精品视频| 天天综合网 天天综合色| 亚洲欧美日韩中文播放| 欧美日韩久久久久久| 日本一不卡视频| 一区二区三区四区在线免费观看| 精品日产卡一卡二卡麻豆| 色老头久久综合| 国产成人av电影在线播放| 一区二区三区在线影院| 2021国产精品久久精品| 欧美日韩一区中文字幕| 色狠狠一区二区| 成人蜜臀av电影| 国产美女主播视频一区| 免费亚洲电影在线| 五月激情六月综合| 亚洲成av人片在线| 亚洲一区二区中文在线| 综合久久一区二区三区| 国产日韩欧美高清在线| 亚洲精品一区二区三区香蕉 | 91搞黄在线观看| 成人av动漫网站| 91视频一区二区三区| 成人动漫精品一区二区| 福利91精品一区二区三区| 日本不卡一区二区| 久久精品国产成人一区二区三区| 天天色天天操综合| 日韩电影在线一区二区| 激情偷乱视频一区二区三区| 久久国产夜色精品鲁鲁99| 精品一区免费av| 国产主播一区二区| 99riav久久精品riav| 91福利视频在线| 欧美四级电影网| 欧美大片一区二区三区| 国产精品欧美一级免费| 亚洲自拍与偷拍| 精彩视频一区二区三区| 成人精品亚洲人成在线| 欧美伊人久久久久久午夜久久久久| 欧洲一区在线电影| wwwwww.欧美系列| 一区二区三区电影在线播| 亚洲va国产天堂va久久en| 国产69精品一区二区亚洲孕妇| 99re66热这里只有精品3直播| 色综合久久久网| www成人在线观看| 天天影视涩香欲综合网| 99热这里都是精品| 欧美xxxxx牲另类人与| 综合久久久久久| 国产精品自产自拍| 欧美电影免费观看高清完整版| 亚洲免费高清视频在线| 成人免费va视频| 精品99一区二区| 午夜av一区二区三区| 色香蕉成人二区免费| 亚洲视频在线一区观看| av在线不卡免费看| 国产精品久久夜| www.在线成人| 中日韩av电影| 91在线国产观看| 亚洲美女偷拍久久| 精品毛片乱码1区2区3区| 性做久久久久久久久| 欧美福利一区二区| 另类小说视频一区二区| 精品国产一区二区三区忘忧草| 亚洲国产美女搞黄色| 欧美男人的天堂一二区| 午夜成人免费视频| wwwwww.欧美系列| 不卡一卡二卡三乱码免费网站 | 污片在线观看一区二区| 91精品在线一区二区| 国产盗摄精品一区二区三区在线| 日本亚洲最大的色成网站www| 琪琪一区二区三区| 日韩一区二区三区在线观看| 日韩在线观看一区二区| 国产三级三级三级精品8ⅰ区| 国产91精品久久久久久久网曝门| 亚洲人成在线播放网站岛国| 欧美日韩免费观看一区三区| 日本怡春院一区二区| 欧美高清在线一区| 日韩午夜在线观看视频| 99久久伊人精品| 国内不卡的二区三区中文字幕| 亚洲私人影院在线观看| 精品国精品自拍自在线| 色婷婷av久久久久久久| 国产不卡视频在线观看| 午夜不卡av免费| 亚洲私人影院在线观看| 国产亚洲婷婷免费| 日韩欧美卡一卡二| 欧美挠脚心视频网站| 色婷婷av一区| 97se亚洲国产综合自在线不卡| 老司机精品视频在线| 日本在线不卡视频| 亚洲一区在线观看视频| 中文字幕亚洲区| 国产精品激情偷乱一区二区∴| 欧美va亚洲va| 久久人人爽爽爽人久久久| 欧美人伦禁忌dvd放荡欲情| 欧美日韩五月天| 欧美乱妇23p| 欧美一区二区黄色| 欧美一区二区三区电影| 欧美一区二区精品| 欧美tickling网站挠脚心| 精品黑人一区二区三区久久| 精品欧美一区二区在线观看| 精品精品国产高清a毛片牛牛| 精品久久免费看| 一区二区在线观看不卡| 亚洲网友自拍偷拍| 免费高清在线一区| 国产精品69毛片高清亚洲| 99久久伊人久久99| 在线电影院国产精品|