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

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

?? scanner.c

?? nVidia開發(fā)的圖形語言 Cg
?? C
?? 第 1 頁 / 共 3 頁
字號:
        fprintf(Cg->options.listfd, "(%d) : error C%04d: ", loc->line, num);
    }
    va_start(args, mess);
    vfprintf(Cg->options.listfd, mess, args);
    va_end(args);
    fprintf(Cg->options.listfd, "\n");
    bumpErrorCount();
} // InternalError

/*
 * FatalError() - Fatal internal compiler error.
 *
 */

void FatalError(const char *mess, ...)
{
    va_list args;

    fprintf(Cg->options.listfd, "(%d) : fatal error C9999: ", Cg->lineCount);
    va_start(args, mess);
    vfprintf(Cg->options.listfd, mess, args);
    va_end(args);
    fprintf(Cg->options.listfd, "\n");
    bumpErrorCount();
    CloseOutputFiles("Compilation terminated due to fatal error");
    exit(9999);
} // InternalError

/*
 * SemanticWarning() - Compiler generated semantic warning.
 *
 */

void SemanticWarning(SourceLoc *loc, int num, const char *mess, ...)
{
    va_list args;

    if (!Cg->options.NoWarnings) {
        if (!Cg->options.ErrorMode) {
            if (loc->file) {
                fprintf(Cg->options.listfd, "%s(%d) : warning C%04d: ",
                        GetAtomString(atable, loc->file), loc->line, num);
            } else {
                fprintf(Cg->options.listfd, "(%d) : warning C%04d: ", loc->line, num);
            }
            va_start(args, mess);
            vfprintf(Cg->options.listfd, mess, args);
            va_end(args);
            fprintf(Cg->options.listfd, "\n");
        }
        bumpWarningCount();
    }
} // SemanticWarning

/*
 * InformationalNotice() - Print a message from the compiler.
 *
 */

void InformationalNotice(SourceLoc *loc, int num, const char *mess, ...)
{
    va_list args;

    if (!Cg->options.NoWarnings) {
        if (!Cg->options.ErrorMode) {
            if (loc->file) {
                fprintf(Cg->options.listfd, "%s(%d) : notice C%04d: ",
                        GetAtomString(atable, loc->file), loc->line, num);
            } else {
                fprintf(Cg->options.listfd, "(%d) : notice C%04d: ", loc->line, num);
            }
            va_start(args, mess);
            vfprintf(Cg->options.listfd, mess, args);
            va_end(args);
            fprintf(Cg->options.listfd, "\n");
        }
    }
} // InformationalNotice

// The scanner:

static int nextchar(FileInputSrc *in)
{
    int ch;

    if (in->save_cnt) {
        ch = in->save[--in->save_cnt];
    } else {
        ch = getc(in->fd);
        if (ch == EOF) {
            Cg->currentInput = in->base.prev;
            fclose(in->fd);
            free(in);
            return '\n';
        }
    }
    if (ch == '\n') {
        Cg->lineCount++;
        in->base.line++;
    }

    return ch;
} // nextchar

static void ungetchar(FileInputSrc *in, int ch)
{
    if (&in->base == Cg->currentInput) {
        if (in->save_cnt < sizeof(in->save))
            in->save[in->save_cnt++] = ch;
        if (ch == '\n') {
            in->base.line--;
            Cg->lineCount--;
        }
    }

} // ungetchar

///////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////// Floating point constants: /////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////

/*
 * lBuildFloatValue() - Quick and dirty conversion to floating point.  Since all
 *         we need is single precision this should be quite precise.
 */

static float lBuildFloatValue(const char *str, int len, int exp)
{
    double val, expval, ten;
    int ii, llen, absexp;
    float rv;

    val = 0.0;
    llen = len;
    for (ii = 0; ii < len; ii++)
        val = val*10.0 + (str[ii] - '0');
    if (exp != 0) {
        absexp = exp > 0 ? exp : -exp;
        expval = 1.0f;
        ten = 10.0;
        while (absexp) {
            if (absexp & 1)
                expval *= ten;
            ten *= ten;
            absexp >>= 1;
        }
        if (exp >= 0) {
            val *= expval;
        } else {
            val /= expval;
        }
    }
    rv = (float)val;
    if (isinff(rv)) {
        SemanticError(Cg->tokenLoc, ERROR___FP_CONST_OVERFLOW);
    }
    return rv;
} // lBuildFloatValue

/*
 * lFloatConst() - Scan a floating point constant.  Assumes that the scanner
 *         has seen at least one digit, followed by either a decimal '.' or the
 *         letter 'e'.
 */

static int lFloatConst(char *str, int len, int ch)
{
    int HasDecimal, declen, exp, ExpSign;
    float lval;

    HasDecimal = 0;
    declen = 0;
    exp = 0;
    if (ch == '.') {
        HasDecimal = 1;
        ch = Cg->currentInput->getch(Cg->currentInput);
        while (ch >= '0' && ch <= '9') {
            if (len < MAX_SYMBOL_NAME_LEN) {
                declen++;
                if (len > 0 || ch != '0') {
                    str[len] = ch;
                    len++;
                }
                ch = Cg->currentInput->getch(Cg->currentInput);
            } else {
                SemanticError(Cg->tokenLoc, ERROR___FP_CONST_TOO_LONG);
                len = 1;
            }
        }
    }

    // Exponent:

    if (ch == 'e' || ch == 'E') {
        ExpSign = 1;
        ch = Cg->currentInput->getch(Cg->currentInput);
        if (ch == '+') {
            ch = Cg->currentInput->getch(Cg->currentInput);
        } else if (ch == '-') {
            ExpSign = -1;
            ch = Cg->currentInput->getch(Cg->currentInput);
        }
        if (ch >= '0' && ch <= '9') {
            while (ch >= '0' && ch <= '9') {
                exp = exp*10 + ch - '0';
                ch = Cg->currentInput->getch(Cg->currentInput);
            }
        } else {
            SemanticError(Cg->tokenLoc, ERROR___ERROR_IN_EXPONENT);
        }
        exp *= ExpSign;
    }

    if (len == 0) {
        lval = 0.0f;
    } else {
        lval = lBuildFloatValue(str, len, exp - declen);
    }

    // Suffix:

    yylval.sc_fval = lval;
    if (ch == 'h') {
        return FLOATHCONST_SY;
    } else {
        if (ch == 'x') {
            return FLOATXCONST_SY;
        } else {
            if (ch == 'f') {
                return FLOATCONST_SY;
            } else {
                Cg->currentInput->ungetch(Cg->currentInput, ch);
                return CFLOATCONST_SY;
            }
        }
    }
} // lFloatConst

///////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////// Normal Scanner //////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////

static int byte_scan(InputSrc *in)
{
    char symbol_name[MAX_SYMBOL_NAME_LEN + 1];
    char string_val[MAX_STRING_LEN + 1];
    int AlreadyComplained;
    int len, ch, ii, ival;

    for (;;) {
        yylval.sc_int = 0;
        ch = Cg->currentInput->getch(Cg->currentInput);
        while (ch == ' ' || ch == '\t' || ch == '\r') {
            yylval.sc_int = 1;
            ch = Cg->currentInput->getch(Cg->currentInput);
        }
        Cg->ltokenLoc.file = Cg->currentInput->name;
        Cg->ltokenLoc.line = Cg->currentInput->line;
        switch (ch) {
        default:
            return ch; // Single character token
        case EOF:
            return 0;
        case 'A': case 'B': case 'C': case 'D': case 'E':
        case 'F': case 'G': case 'H': case 'I': case 'J':
        case 'K': case 'L': case 'M': case 'N': case 'O':
        case 'P': case 'Q': case 'R': case 'S': case 'T':
        case 'U': case 'V': case 'W': case 'X': case 'Y':
        case 'Z': case '_':
        case 'a': case 'b': case 'c': case 'd': case 'e':
        case 'f': case 'g': case 'h': case 'i': case 'j':
        case 'k': case 'l': case 'm': case 'n': case 'o':
        case 'p': case 'q': case 'r': case 's': case 't':
        case 'u': case 'v': case 'w': case 'x': case 'y':
        case 'z':
            len = 0;
            do {
                if (len < MAX_SYMBOL_NAME_LEN) {
                    symbol_name[len] = ch;
                    len++;
                    ch = Cg->currentInput->getch(Cg->currentInput);
                }
            } while ((ch >= 'a' && ch <= 'z') ||
                     (ch >= 'A' && ch <= 'Z') ||
                     (ch >= '0' && ch <= '9') ||
                     ch == '_');
            symbol_name[len] = '\0';
            Cg->currentInput->ungetch(Cg->currentInput, ch);
            yylval.sc_ident = LookUpAddString(atable, symbol_name);
            return IDENT_SY;
            break;
        case '0':
            ch = Cg->currentInput->getch(Cg->currentInput);
            if (ch == 'x' || ch == 'X') {
                ch = Cg->currentInput->getch(Cg->currentInput);
                if ((ch >= '0' && ch <= '9') ||
                    (ch >= 'A' && ch <= 'F') ||
                    (ch >= 'a' && ch <= 'f'))
                {
                    AlreadyComplained = 0;
                    ival = 0;
                    do {
                        if (ival <= 0x0fffffff) {
                            if (ch >= '0' && ch <= '9') {
                                ii = ch - '0';
                            } else if (ch >= 'A' && ch <= 'F') {
                                ii = ch - 'A' + 10;
                            } else {
                                ii = ch - 'a' + 10;
                            }
                            ival = (ival << 4) | ii;
                        } else {
                            if (!AlreadyComplained)
                                SemanticError(Cg->tokenLoc, ERROR___HEX_CONST_OVERFLOW);
                            AlreadyComplained = 1;
                        }
                        ch = Cg->currentInput->getch(Cg->currentInput);
                    } while ((ch >= '0' && ch <= '9') ||
                             (ch >= 'A' && ch <= 'F') ||
                             (ch >= 'a' && ch <= 'f'));
                } else {
                    SemanticError(Cg->tokenLoc, ERROR___ERROR_IN_HEX_CONSTANT);
                }
                Cg->currentInput->ungetch(Cg->currentInput, ch);
                yylval.sc_int = ival;
                return INTCONST_SY;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日产欧产精品推荐色 | ...xxx性欧美| 亚洲成人tv网| 91社区在线播放| 欧美精品一区二区在线播放| 亚洲成在线观看| jizzjizzjizz欧美| 国产色产综合产在线视频| 理论片日本一区| 欧美日韩一本到| 亚洲在线免费播放| 99久久er热在这里只有精品66| 日韩欧美美女一区二区三区| 亚洲专区一二三| 色综合天天综合色综合av| 中文字幕在线观看一区二区| 国产精品一卡二卡| 久久综合色8888| 精久久久久久久久久久| 欧美大度的电影原声| 日本不卡的三区四区五区| 欧美日本一道本| 亚洲成人在线网站| 欧美日韩一区在线观看| 亚洲二区视频在线| 欧美精品高清视频| 秋霞成人午夜伦在线观看| 制服丝袜亚洲色图| 日韩精品成人一区二区三区 | 日韩一区二区三区电影在线观看| 亚洲午夜视频在线观看| 色天天综合色天天久久| 亚洲最色的网站| 欧美高清视频不卡网| 日本中文字幕一区二区视频| 91麻豆精品国产91久久久更新时间 | 一区二区视频免费在线观看| 午夜不卡av在线| 5566中文字幕一区二区电影| 欧美卡1卡2卡| 久久69国产一区二区蜜臀| 亚洲精品国产视频| 欧美国产精品v| 日韩美女在线视频| 欧美性淫爽ww久久久久无| 成人黄色av电影| 激情欧美一区二区三区在线观看| 亚洲自拍欧美精品| 亚洲欧洲精品一区二区精品久久久 | 国产另类ts人妖一区二区| 亚洲综合免费观看高清完整版在线 | 九九久久精品视频| 五月婷婷综合在线| 亚洲欧美另类在线| 亚洲欧美一区二区在线观看| 国产亚洲欧美日韩俺去了| 欧美一级精品大片| 精品视频在线免费| 欧美伊人久久久久久久久影院| 成人美女视频在线看| 国产精品一品二品| 激情欧美日韩一区二区| 日本视频一区二区| 日日夜夜精品视频天天综合网| 日韩毛片高清在线播放| 国产拍欧美日韩视频二区| 久久久久久**毛片大全| 精品免费一区二区三区| 日韩亚洲电影在线| 日韩欧美国产一二三区| 欧美成人激情免费网| 欧美电影免费观看高清完整版| 在线看不卡av| 欧美午夜精品免费| 欧美视频在线观看一区| 欧美日韩大陆在线| 欧美一区二区大片| 精品久久久久久久久久久久包黑料| 777欧美精品| 精品国产一区二区精华| 国产亚洲人成网站| 欧美激情一区二区三区全黄| 中文字幕永久在线不卡| 亚洲一线二线三线视频| 久久成人免费日本黄色| 日本美女一区二区| 国产综合成人久久大片91| 粉嫩在线一区二区三区视频| 99久久精品国产精品久久| 色噜噜狠狠成人网p站| 欧美日韩一区二区三区在线| 91精品国产综合久久久久久久久久 | 99久久夜色精品国产网站| 97久久人人超碰| 欧美系列日韩一区| 日韩精品在线一区二区| 国产日产欧美一区| 亚洲一区视频在线观看视频| 日日夜夜免费精品| 国产高清在线观看免费不卡| 91在线精品秘密一区二区| 欧美日韩亚洲综合| 久久免费视频一区| 综合欧美亚洲日本| 奇米精品一区二区三区在线观看一| 国产麻豆精品一区二区| 色屁屁一区二区| 欧美电影免费观看高清完整版在线| 国产三区在线成人av| 亚洲综合网站在线观看| 美女一区二区三区在线观看| 成人成人成人在线视频| 7777精品伊人久久久大香线蕉| 久久久精品天堂| 亚洲国产成人porn| 日本丶国产丶欧美色综合| 91精品久久久久久久久99蜜臂| 国产女主播一区| 性久久久久久久久| www.亚洲色图.com| 日韩一级片在线播放| 中文字幕中文字幕在线一区 | 久久久亚洲精品一区二区三区| 一区二区三区欧美在线观看| 精品午夜久久福利影院| 欧美午夜电影网| 国产精品三级av| 狠狠狠色丁香婷婷综合激情| 日本精品一区二区三区四区的功能| 精品国产乱码久久久久久牛牛| 亚洲最新在线观看| 不卡的av在线播放| 久久综合狠狠综合久久综合88| 亚洲国产成人tv| 一本一道久久a久久精品 | 久久99精品国产麻豆不卡| 91成人免费在线视频| 国产欧美一区二区精品性色| 美女高潮久久久| 欧美日韩高清一区| 亚洲在线视频一区| 色悠久久久久综合欧美99| 国产欧美日韩精品a在线观看| 麻豆91免费看| 欧美日韩日日骚| 亚洲综合色婷婷| 色综合久久久久综合99| 国产亚洲精品bt天堂精选| 麻豆国产欧美日韩综合精品二区 | 欧美日韩在线精品一区二区三区激情| 国产精品视频在线看| 狠狠色丁香婷婷综合| 日韩欧美激情一区| 蜜桃视频在线观看一区二区| 欧美日韩一区二区三区视频| 亚洲精品中文在线观看| 91亚洲国产成人精品一区二区三| 国产女人aaa级久久久级| 国产一区二区不卡在线| 2024国产精品| 国产精品亚洲综合一区在线观看| 久久一区二区三区四区| 国产在线一区观看| 国产午夜亚洲精品午夜鲁丝片| 黄色精品一二区| 国产日产欧美一区| 成年人午夜久久久| 亚洲免费在线观看| 在线一区二区观看| 亚洲国产aⅴ成人精品无吗| 欧美群妇大交群中文字幕| 午夜一区二区三区视频| 在线成人免费视频| 美女视频黄a大片欧美| 欧美电影免费观看高清完整版| 精品一区二区免费| 久久九九99视频| 99久久精品久久久久久清纯| 亚洲尤物视频在线| 欧美一区二区私人影院日本| 久久99热狠狠色一区二区| 久久久久免费观看| 99久久伊人久久99| 亚洲午夜久久久久久久久久久| 欧美日韩你懂的| 国产综合久久久久影院| 国产精品不卡在线| 欧美日韩另类国产亚洲欧美一级| 日韩1区2区日韩1区2区| 久久免费电影网| 日本道免费精品一区二区三区| 视频一区视频二区中文字幕| 欧美大片免费久久精品三p| 成人av免费在线| 亚洲成人1区2区| 国产亚洲精品7777| 91成人看片片| 精品一区二区三区蜜桃| 亚洲人成网站在线| 欧美电影免费观看高清完整版在线观看 |