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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? tokens.c

?? cg編譯器
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
        lAddByte(pTok, (unsigned char)(yylval.sc_int ? 1 : 0));
    default:
        break;
    }
} // RecordToken

/*
 * RewindTokenStream() - Reset a token stream in preperation for reading.
 *
 */

void RewindTokenStream(TokenStream *pTok)
{
    if (pTok->head) {
        pTok->current = pTok->head;
        pTok->current->current = 0;
    }
} // RewindTokenStream

/*
 * ReadToken() - Read the next token from a stream.
 *
 */

int ReadToken(TokenStream *pTok)
{
    char symbol_name[MAX_SYMBOL_NAME_LEN + 1];
    char string_val[MAX_STRING_LEN + 1];
    int ltoken, len;
    char ch;

    ltoken = lReadByte(pTok);
    if (ltoken >= 0) {
        if (ltoken > 127)
            ltoken += 128;
        //ltoken = lExpandToken(ltoken);
        switch (ltoken) {
        case IDENT_SY:
        case TYPEIDENT_SY:
            len = 0;
            ch = lReadByte(pTok);
            while ((ch >= 'a' && ch <= 'z') ||
                     (ch >= 'A' && ch <= 'Z') ||
                     (ch >= '0' && ch <= '9') ||
                     ch == '_')
            {
                if (len < MAX_SYMBOL_NAME_LEN) {
                    symbol_name[len] = ch;
                    len++;
                    ch = lReadByte(pTok);
                }
            }
            symbol_name[len] = '\0';
            assert(ch == '\0');
            yylval.sc_ident = LookUpAddString(atable, symbol_name);
            return IDENT_SY;
            break;
        case STRCONST_SY:
            len = 0;
            while ((ch = lReadByte(pTok)) != 0)
                if (len < MAX_STRING_LEN)
                    string_val[len++] = ch;
            string_val[len] = 0;
            yylval.sc_ident = LookUpAddString(atable, string_val);
            break;
        case CFLOATCONST_SY:
        case FLOATCONST_SY:
        case FLOATHCONST_SY:
        case FLOATXCONST_SY:
            lRead4Bytes(pTok, (unsigned char *) &yylval.sc_fval);
            break;
        case INTCONST_SY:
            lRead4Bytes(pTok, (unsigned char *) &yylval.sc_int);
            break;
        case '(':
            yylval.sc_int = lReadByte(pTok);
            break;
        }
        return ltoken;
    }
    return EOF_SY;
} // ReadToken

typedef struct TokenInputSrc {
    InputSrc            base;
    TokenStream         *tokens;
    int                (*final)(CgStruct *);
} TokenInputSrc;

static int scan_token(TokenInputSrc *in)
{
    int token = ReadToken(in->tokens);
    int (*final)(CgStruct *);
    Cg->tokenLoc->file = Cg->currentInput->name;
    Cg->tokenLoc->line = Cg->currentInput->line;
    if (token == '\n') {
        in->base.line++;
        //printf("    end of line %d\n", tokenloc->line);
        return token;
    }
    if (token > 0) return token;
    Cg->currentInput = in->base.prev;
    final = in->final;
    free(in);
    if (final && !final(Cg)) return -1;
    return Cg->currentInput->scan(Cg->currentInput);
}

int ReadFromTokenStream(TokenStream *ts, int name, int (*final)(CgStruct *))
{
    TokenInputSrc *in = malloc(sizeof(TokenInputSrc));
    memset(in, 0, sizeof(TokenInputSrc));
    in->base.name = name;
    in->base.prev = Cg->currentInput;
    in->base.scan = (int (*)(InputSrc *))scan_token;
    in->base.line = 1;
    in->tokens = ts;
    in->final = final;
    RewindTokenStream(ts);
    Cg->currentInput = &in->base;
    return 1;
}

typedef struct UngotToken {
    InputSrc    base;
    int         token;
    YYSTYPE     lval;
} UngotToken;

static int reget_token(UngotToken *t)
{
    int token = t->token;
    yylval = t->lval;
    Cg->currentInput = t->base.prev;
    free(t);
    return token;
}

void UngetToken(int token) {
    UngotToken *t = malloc(sizeof(UngotToken));
    memset(t, 0, sizeof(UngotToken));
    t->token = token;
    t->lval = yylval;
    t->base.scan = (void *)reget_token;
    t->base.prev = Cg->currentInput;
    t->base.name = Cg->currentInput->name;
    t->base.line = Cg->currentInput->line;
    Cg->currentInput = &t->base;
}

///////////////////////////////////// Tokenize Input File: ////////////////////////////////////

#if defined(CGC_ENABLE_TOOLS)

void TokenizeInput(void)
{
    int ltoken, index, count;

    TokenStream *RecordedTokens = NewTokenStream(Cg->options.sourceFileName);
    while ((ltoken = Cg->currentInput->scan(Cg->currentInput)) > 0 &&
           ltoken != ERROR_SY
    ) {
        RecordToken(RecordedTokens, ltoken);
    }

    // Debug print stuff to screen:

#if 0
    RewindTokenStream(RecordedTokens);
    ltoken = ReadToken(RecordedTokens);
    while (ltoken != EOF_SY && ltoken != ERROR_SY) {
        if (ltoken >= 127)
            printf("token = %s", GetAtomString(atable, ltoken));
        else if (ltoken >= 32) 
            printf("token = <%c>", ltoken);
        else if (ltoken == '\n')
            printf("token = <\\n>");
        else if (ltoken > 0)
            printf("token = <\\0%o>", ltoken);
        else
            printf("token = <EOF>");
        switch (ltoken) {
        case IDENT_SY:
        case TYPEIDENT_SY:
        case STRCONST_SY:
            printf(" = \"%s\"", GetAtomString(atable, yylval.sc_ident));
            break;
        case CFLOATCONST_SY:
        case FLOATCONST_SY:
        case FLOATHCONST_SY:
        case FLOATXCONST_SY:
            printf(" = %g9.6", yylval.sc_fval);
            break;
        case INTCONST_SY:
            printf(" = %d", yylval.sc_int);
            break;
        }
        printf("\n");
        ltoken = ReadToken(RecordedTokens);
    }
#endif

    // Dump file to screen as a C initialization statement:

    printf("// automatically generated from %s -- do no edit\n\n",
           Cg->options.sourceFileName);
    printf("#include <stdio.h>\n");
    printf("#include \"slglobals.h\"\n\n");
    printf("unsigned char %s_tokendata[] = {\n", RecordedTokens->name);
    RewindTokenStream(RecordedTokens);
    ltoken = lReadByte(RecordedTokens);
    index = count = 0;
    while (ltoken != EOF_SY && ltoken != ERROR_SY) {
        if (index == 0)
            printf("    ");
        printf("0x%02x,", ltoken);
        count++;
        index++;
        if (index >= 16) {
            printf("\n");
            index = 0;
        }
        ltoken = lReadByte(RecordedTokens);
    }
    if (index > 0)
        printf("\n");
    printf("};");
    printf("\n");
    printf("TokenBlock %s_blockdata = {\n", RecordedTokens->name);
    printf("    NULL, // next\n");
    printf("    0,    // current\n");
    printf("    %d, // count\n", count);
    printf("    %d, // max\n", count);
    printf("    %s_tokendata // data\n", RecordedTokens->name);
    printf("};\n");

    printf("TokenStream %s_stream = { \n", RecordedTokens->name);
    printf("    NULL, // next\n"
           "    \"%s\", // name\n", Cg->options.sourceFileName);
    printf("    &%s_blockdata, // head\n", RecordedTokens->name);
    printf("    &%s_blockdata // current\n", RecordedTokens->name);
    printf("};\n");

} // TokenizeInput

void DumpTokenStream(FILE *fp, TokenStream *s) {
    int token;

    if (fp == 0) fp = stdout;
    RewindTokenStream(s);
    while ((token = ReadToken(s)) > 0) {
        switch (token) {
        case IDENT_SY:
        case TYPEIDENT_SY:
            printf("%s ", GetAtomString(atable, yylval.sc_ident));
            break;
        case STRCONST_SY:
            printf("\"%s\"", GetAtomString(atable, yylval.sc_ident));
            break;
        case CFLOATCONST_SY:
        case FLOATCONST_SY:
        case FLOATHCONST_SY:
        case FLOATXCONST_SY:
            printf("%g9.6 ", yylval.sc_fval);
            break;
        case INTCONST_SY:
            printf("%d ", yylval.sc_int);
            break;
        default:
            if (token >= 127)
                printf("%s ", GetAtomString(atable, token));
            else
                printf("%c", token);
            break;
        }
    }
}
#endif // defined(CGC_ENABLE_TOOLS)

///////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////// End of tokens.c ///////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲不卡一区二区三区| 欧美激情在线免费观看| 日韩欧美一区二区视频| 久久久久久**毛片大全| 中文字幕亚洲欧美在线不卡| 亚洲bt欧美bt精品| 国产精品白丝av| 91久久精品日日躁夜夜躁欧美| 国产精品久久久久久妇女6080| 亚洲三级电影网站| 久久精品免费看| 96av麻豆蜜桃一区二区| 91精品国产高清一区二区三区| 国产亚洲欧美色| 水蜜桃久久夜色精品一区的特点| 国产一区二区女| 欧美三级视频在线观看| 26uuu久久天堂性欧美| 亚洲另类一区二区| 国产一区二区三区日韩| 色一情一乱一乱一91av| 欧美大片在线观看| 一区二区三区四区在线播放 | av在线不卡电影| 欧美精品1区2区| 国产精品久久久久婷婷| 美女在线观看视频一区二区| 91年精品国产| 国产亚洲精品超碰| 天天色天天操综合| 91丝袜呻吟高潮美腿白嫩在线观看| 日韩视频免费观看高清完整版在线观看 | 精品久久久网站| 亚洲制服丝袜av| 成人看片黄a免费看在线| 欧美一区二区免费观在线| 亚洲九九爱视频| 国产一区二区精品久久91| 欧美电影一区二区三区| 亚洲天堂免费在线观看视频| 精品一区二区日韩| 欧美日韩国产乱码电影| 国产精品三级在线观看| 久久91精品国产91久久小草 | 亚洲高清在线精品| 成人黄色a**站在线观看| 亚洲精品一线二线三线| 日韩av在线发布| 欧美少妇一区二区| 亚洲女同女同女同女同女同69| 国产精品69久久久久水密桃| 欧美成人vps| 日本va欧美va瓶| 日本韩国一区二区三区视频| 一区在线观看视频| 成人一区在线看| 久久久久久久免费视频了| 卡一卡二国产精品| 日韩一区二区精品在线观看| 日韩精品每日更新| 欧美日本韩国一区| 亚洲线精品一区二区三区 | 一区二区不卡在线播放| av激情综合网| 国产精品久久久久影院| 国产成人av一区二区三区在线观看| 日韩视频中午一区| 日本不卡视频在线| 日韩欧美国产精品一区| 免费美女久久99| 欧美成人一区二区| 久久99精品网久久| 精品国产乱码久久久久久浪潮| 久久精品国产久精国产| 中文无字幕一区二区三区| 国产在线播放一区| 国产色婷婷亚洲99精品小说| 国产乱色国产精品免费视频| 久久久久久久久97黄色工厂| 国产激情91久久精品导航| 国产视频不卡一区| 99re视频这里只有精品| 亚洲激情五月婷婷| 欧美性感一类影片在线播放| 亚洲高清中文字幕| 欧美一卡在线观看| 日本v片在线高清不卡在线观看| 日韩欧美国产系列| 国产精品一区二区三区网站| 日本一二三四高清不卡| 99re热这里只有精品视频| 亚洲精品视频在线观看网站| 欧美三级中文字幕在线观看| 三级欧美在线一区| 精品三级在线观看| 丁香天五香天堂综合| 中文字幕综合网| 欧美性猛交xxxx乱大交退制版| 石原莉奈一区二区三区在线观看 | 国产曰批免费观看久久久| 国产精品污网站| 色天天综合色天天久久| 视频一区欧美精品| 欧美videos中文字幕| 成人免费毛片嘿嘿连载视频| 亚洲在线观看免费视频| 日韩免费观看高清完整版| 国产精品1024| 亚洲私人黄色宅男| 91精品国产综合久久久久久漫画 | 国产精品久久久久影院色老大| 色www精品视频在线观看| 日韩av一区二区三区四区| 国产欧美日韩三区| 欧美色男人天堂| 国产一区二区三区不卡在线观看| 最新日韩av在线| 欧美一区二区日韩| 成人涩涩免费视频| 亚洲v精品v日韩v欧美v专区| 久久精品无码一区二区三区| 91成人国产精品| 国产欧美综合在线| 欧美在线高清视频| 国产成人日日夜夜| 亚洲成人久久影院| 亚洲国产精品ⅴa在线观看| 欧美日韩在线免费视频| 国产成人av一区二区三区在线| 亚洲已满18点击进入久久| 精品国产乱码久久久久久浪潮| 在线精品视频一区二区三四| 国产精品一区二区三区网站| 亚洲成人久久影院| 欧美激情一区二区在线| 4438亚洲最大| 色老汉av一区二区三区| 韩国精品在线观看| 亚洲一区二区在线视频| 国产精品天干天干在观线| 在线播放91灌醉迷j高跟美女 | 26uuu欧美| 欧美日韩一区久久| 91偷拍与自偷拍精品| 国内国产精品久久| 天堂影院一区二区| 亚洲三级小视频| 久久精品一区二区三区不卡牛牛| 欧美高清视频一二三区 | 亚洲日本韩国一区| 国产欧美日韩卡一| 精品伦理精品一区| 欧美日韩国产一级二级| 91网站在线观看视频| 国产成人午夜99999| 久久国产三级精品| 日韩电影免费在线看| 亚洲国产一区视频| 亚洲日本免费电影| 18成人在线观看| 亚洲国产精品ⅴa在线观看| 精品国产制服丝袜高跟| 欧美一区永久视频免费观看| 在线观看精品一区| 91视频一区二区| a美女胸又www黄视频久久| 国产精品1区二区.| 国产一区高清在线| 精品一区二区三区在线视频| 美女爽到高潮91| 免费国产亚洲视频| 免费成人av资源网| 日韩va欧美va亚洲va久久| 午夜电影一区二区| 午夜精品久久久久久| 亚洲电影第三页| 性久久久久久久久久久久| 亚洲国产视频在线| 亚洲成av人片一区二区三区| 亚洲影视在线播放| 亚洲午夜影视影院在线观看| 洋洋成人永久网站入口| 亚洲精品成人少妇| 一区二区欧美视频| 亚洲综合清纯丝袜自拍| 亚洲另类中文字| 亚洲国产精品久久久男人的天堂 | 日韩欧美久久久| 欧美成人女星排名| 精品国产伦一区二区三区观看体验 | 亚洲综合丁香婷婷六月香| 亚洲精品亚洲人成人网在线播放| 亚洲欧美电影院| 亚洲一区二区影院| 五月天欧美精品| 蜜臀a∨国产成人精品| 国产一区二区在线看| 成人高清伦理免费影院在线观看| 97久久超碰国产精品| 欧美私模裸体表演在线观看|