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

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

?? printutils.c

?? nVidia開發(fā)的圖形語言 Cg
?? C
?? 第 1 頁 / 共 3 頁
字號:
        case MEMBER_SELECTOR_OP:
            printf(".");
            break;
        case ARRAY_INDEX_OP:
            printf("[");
            break;
        case FUN_CALL_OP:
        case FUN_BUILTIN_OP:
            printf("(");
            break;
        case FUN_ARG_OP:
        case EXPR_LIST_OP:
            if (fexpr->bin.right)
                printf(", ");
            break;
        case MUL_OP:
        case MUL_SV_OP:
        case MUL_VS_OP:
        case MUL_V_OP:
            printf("*");
            break;
        case DIV_OP:
        case DIV_SV_OP:
        case DIV_VS_OP:
        case DIV_V_OP:
            printf("/");
            break;
        case MOD_OP:
        case MOD_SV_OP:
        case MOD_VS_OP:
        case MOD_V_OP:
            printf("%");
            break;
        case ADD_OP:
        case ADD_SV_OP:
        case ADD_VS_OP:
        case ADD_V_OP:
            printf(" + ");
            break;
        case SUB_OP:
        case SUB_SV_OP:
        case SUB_VS_OP:
        case SUB_V_OP:
            printf(" - ");
            break;
        case SHL_OP:
        case SHL_V_OP:
            printf(" << ");
            break;
        case SHR_OP:
        case SHR_V_OP:
            printf(" >> ");
            break;
        case LT_OP:
        case LT_SV_OP:
        case LT_VS_OP:
        case LT_V_OP:
            printf(" < ");
            break;
        case GT_OP:
        case GT_SV_OP:
        case GT_VS_OP:
        case GT_V_OP:
            printf(" > ");
            break;
        case LE_OP:
        case LE_SV_OP:
        case LE_VS_OP:
        case LE_V_OP:
            printf(" <= ");
            break;
        case GE_OP:
        case GE_SV_OP:
        case GE_VS_OP:
        case GE_V_OP:
            printf(" >= ");
            break;
        case EQ_OP:
        case EQ_SV_OP:
        case EQ_VS_OP:
        case EQ_V_OP:
            printf(" == ");
            break;
        case NE_OP:
        case NE_SV_OP:
        case NE_VS_OP:
        case NE_V_OP:
            printf(" != ");
            break;
        case AND_OP:
        case AND_SV_OP:
        case AND_VS_OP:
        case AND_V_OP:
            printf(" & ");
            break;
        case XOR_OP:
        case XOR_SV_OP:
        case XOR_VS_OP:
        case XOR_V_OP:
            printf(" ^ ");
            break;
        case OR_OP:
        case OR_SV_OP:
        case OR_VS_OP:
        case OR_V_OP:
            printf(" | ");
            break;
        case BAND_OP:
        case BAND_SV_OP:
        case BAND_VS_OP:
        case BAND_V_OP:
            printf(" && ");
            break;
        case BOR_OP:
        case BOR_SV_OP:
        case BOR_VS_OP:
        case BOR_V_OP:
            printf(" || ");
            break;
        case ASSIGN_OP:
        case ASSIGN_V_OP:
        case ASSIGN_GEN_OP:
            printf(" = ");
            break;
        case ASSIGNMINUS_OP:
            printf(" -= ");
            break;
        case ASSIGNMOD_OP:
            printf(" %= ");
            break;
        case ASSIGNPLUS_OP:
            printf(" += ");
            break;
        case ASSIGNSLASH_OP:
            printf(" /= ");
            break;
        case ASSIGNSTAR_OP:
            printf(" *= ");
            break;
        case ASSIGN_MASKED_KV_OP:
            printf("@@");
            mask = SUBOP_GET_MASK(fexpr->bin.subop);
            for (ii = 3; ii >= 0; ii--) {
                if (mask & 1)
                    printf("%c", "wzyx"[ii]);
                mask >>= 1;
            }
            printf(" = ");
            break;
        case COMMA_OP:
            printf(" , ");
            break;
        default:
            printf("<!BINOP=%d>", fexpr->bin.op);
            break;
        }
        if (fexpr->bin.right)
            lPrintExpr(fexpr->bin.right);
        switch (fexpr->bin.op) {
        case ARRAY_INDEX_OP:
            printf("]");
            break;
        case FUN_CALL_OP:
        case FUN_BUILTIN_OP:
            printf(")");
            break;
        default:
            break;
        }
        break;
    case TRINARY_N:
        lPrintExpr(fexpr->tri.arg1);
        switch (fexpr->tri.op) {
        case COND_OP:
        case COND_V_OP:
        case COND_SV_OP:
        case COND_GEN_OP:
            printf(" ? ");
            if (fexpr->tri.arg2)
                lPrintExpr(fexpr->tri.arg2);
            printf(" : ");
            if (fexpr->tri.arg3)
                lPrintExpr(fexpr->tri.arg3);
            break;
        case ASSIGN_COND_OP:
        case ASSIGN_COND_V_OP:
        case ASSIGN_COND_SV_OP:
        case ASSIGN_COND_GEN_OP:
            printf("@@(");
            if (fexpr->tri.arg2)
                lPrintExpr(fexpr->tri.arg2);
            printf(") = ");
            if (fexpr->tri.arg3)
                lPrintExpr(fexpr->tri.arg3);
            break;
        default:
            printf("<!TRIOP=%d>", fexpr->tri.op);
            break;
        }
        break;
    default:
        printf("<!NODEKIND=%d>", fexpr->common.kind);
        break;
    }
} // lPrintExpr

/*
 * PrintExpression()
 *
 */

void PrintExpression(expr *fexpr)
{
    printf("expr: ");
    lPrintExpr(fexpr);
    printf("\n");
} // PrintExpression

static void lPrintStmt(stmt *fstmt, int level, const char *fcomment);

/*
 * lPrintStmtList()
 *
 */

static void lPrintStmtList(stmt *fstmt, int level, const char *fcomment)
{
    while (fstmt) {
        lPrintStmt(fstmt, level, fcomment);
        fstmt = fstmt->commonst.next;
    }
}

/*
 * lPrintStmt()
 *
 */

static void lPrintStmt(stmt *fstmt, int level, const char *fcomment)
{
    stmt *lstmt;

    switch (fstmt->exprst.kind) {
    case EXPR_STMT:
        lIndent(level);
        if (fstmt->exprst.exp) {
            lPrintExpr(fstmt->exprst.exp);
        } else {
            printf("/* empty statement */");
        }
        printf(";\n");
        break;
    case IF_STMT:
        lIndent(level);
        printf("if (");
        lPrintExpr(fstmt->ifst.cond);
        printf(")\n");
        lPrintStmtList(fstmt->ifst.thenstmt, level + 1, NULL);
        if (fstmt->ifst.elsestmt) {
            lIndent(level);
            printf("else\n");
            lPrintStmtList(fstmt->ifst.elsestmt, level + 1, NULL);
        }
        break;
    case WHILE_STMT:
        lIndent(level);
        printf("while (");
        lPrintExpr(fstmt->whilest.cond);
        printf(")\n");
        lPrintStmtList(fstmt->whilest.body, level + 1, NULL);
        break;
    case DO_STMT:
        lIndent(level);
        printf("do\n");
        lPrintStmtList(fstmt->whilest.body, level + 1, NULL);
        lIndent(level);
        printf("while (");
        lPrintExpr(fstmt->whilest.cond);
        printf(");\n");
        break;
    case FOR_STMT:
        lIndent(level);
        printf("for (");
        lstmt = fstmt->forst.init;
        if (lstmt) {
            while (lstmt) {
                if (lstmt->exprst.kind == EXPR_STMT) {
                    lPrintExpr(lstmt->exprst.exp);
                } else {
                    printf("*** BAD STMT KIND ***");
                }
                if (lstmt->exprst.next)
                    printf(", ");
                lstmt = lstmt->exprst.next;
            }
        }
        printf(";");
        if (fstmt->forst.cond) {
            printf(" ");
            lPrintExpr(fstmt->forst.cond);
        }
        printf(";");
        lstmt = fstmt->forst.step;
        if (lstmt) {
            printf(" ");
            while (lstmt) {
                if (lstmt->exprst.kind == EXPR_STMT) {
                    lPrintExpr(lstmt->exprst.exp);
                } else {
                    printf("*** BAD STMT KIND ***");
                }
                if (lstmt->exprst.next)
                    printf(", ");
                lstmt = lstmt->exprst.next;
            }
        }
        printf(")\n");
        lPrintStmtList(fstmt->forst.body, level + 1, NULL);
        break;
    case BLOCK_STMT:
        if (level > 1)
            lIndent(level - 1);
        printf("{\n");
        lPrintStmtList(fstmt->blockst.body, level, NULL);
        if (level > 1)
            lIndent(level - 1);
        if (fcomment) {
            printf("} // %s\n", fcomment);
        } else {
            printf("}\n");
        }
        break;
    case RETURN_STMT:
        lIndent(level);
        printf("return");
        if (fstmt->returnst.exp) {
            printf(" ");
            lPrintExpr(fstmt->returnst.exp);
        }
        printf(";\n");
        break;
    case DISCARD_STMT:
        lIndent(level);
        printf("discard");
        if (fstmt->discardst.cond) {
            printf(" ");
            lPrintExpr(fstmt->discardst.cond);
        }
        printf(";\n");
        break;
    case COMMENT_STMT:
        lIndent(level);
        printf("// %s\n", GetAtomString(atable, fstmt->commentst.str));
        break;
    default:
        lIndent(level);
        printf("<!BadStmt-0x%2x>\n", fstmt->exprst.kind);
    }
} // lPrintStmt

/*
 * PrintStmt()
 *
 */

void PrintStmt(stmt *fstmt)
{
    lPrintStmt(fstmt, 0, NULL);
} // PrintStmt


/*
 * PrintStmtList()
 *
 */

void PrintStmtList(stmt *fstmt)
{
    lPrintStmtList(fstmt, 0, NULL);
} // PrintStmtList

/*
 * PrintFunction()
 *
 */

void PrintFunction(Symbol *symb)
{
    const char *sname, *pname;
    char tname[100], uname[100];
    Symbol *params;

    if (symb) {
        sname = GetAtomString(atable, symb->name);
        if (symb->kind == FUNCTION_S) {
            if (symb->type) {
                FormatTypeString(tname, sizeof tname, uname, sizeof uname, symb->type->fun.rettype);
            } else {
                strcpy(tname, "NULL");
            }
            printf("%s %s%s(",tname, sname, uname);
            params = symb->details.fun.params;
            while (params) {
                pname = GetAtomString(atable, params->name);
                FormatTypeString(tname, sizeof tname, uname, sizeof uname, params->type);
                printf("%s %s%s",tname, pname, uname);
                params = params->next;
                if (params)
                    printf(", ");
            }
            printf(")\n");
            printf("{\n");
            lPrintStmtList(symb->details.fun.statements, 1, "function");
            printf("} // %s\n", sname);
        } else {
            printf("PrintFunction: Symbol \"%s\" not a function\n", sname);
        }
    } else {
        printf("<<NULL-Function-Symbol>>\n");
    }
} // PrintFunction

/*
 * BPrintFunction()
 *
 */

void BPrintFunction(Symbol *symb)
{
    const char *sname;

    if (symb) {
        sname = GetAtomString(atable, symb->name);
        if (symb->kind == FUNCTION_S) {
            printf("{\n");
            lBPrintStmtList(symb->details.fun.statements, 0);
            printf("} // %s\n", sname);
        } else {
            printf("BPrintFunction: Symbol \"%s\" not a function\n", sname);
        }
    } else {
        printf("<<NULL-Function-Symbol>>\n");
    }
} // BPrintFunction

///////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////// End of printutils.c ////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av一区二区三区在线| 欧美国产激情一区二区三区蜜月 | 欧美日韩一区二区三区高清 | 欧美女孩性生活视频| 在线影视一区二区三区| 92精品国产成人观看免费| 成人avav影音| 99re热视频精品| 91视频xxxx| 色婷婷久久99综合精品jk白丝| 色噜噜狠狠色综合欧洲selulu| 一本大道久久a久久综合婷婷| 91麻豆swag| 欧美日韩一区视频| 日韩一区二区三| 26uuu另类欧美| 久久久精品tv| 中文字幕日韩av资源站| 一区二区激情视频| 日本不卡的三区四区五区| 精品一区二区日韩| 懂色av一区二区在线播放| 99久久亚洲一区二区三区青草| 色综合色狠狠综合色| 不卡影院免费观看| 成人avav影音| 欧美日韩国产综合久久| 精品黑人一区二区三区久久| 国产女人水真多18毛片18精品视频| 亚洲日穴在线视频| 日韩影院免费视频| 国产一区二区三区免费观看| www.色综合.com| 欧美日韩一级大片网址| 精品剧情v国产在线观看在线| 国产嫩草影院久久久久| 一区二区激情视频| 狠狠色狠狠色综合日日91app| 成人福利在线看| 欧美日韩国产中文| 欧美国产精品中文字幕| 午夜视频在线观看一区二区三区| 国内精品写真在线观看| 色吧成人激情小说| 2020国产精品久久精品美国| 一区二区三区美女| 激情久久五月天| 日本韩国视频一区二区| 久久影音资源网| 五月天激情综合网| 成人影视亚洲图片在线| 91 com成人网| 国产精品高潮久久久久无| 日本中文在线一区| 色网站国产精品| 久久久精品国产免费观看同学| 亚洲图片欧美一区| 成人av在线一区二区| 欧美成人一区二区三区| 亚洲综合色丁香婷婷六月图片| 国产美女娇喘av呻吟久久| 欧美日韩免费一区二区三区视频| 国产欧美日韩另类视频免费观看| 视频在线观看一区| 色婷婷精品久久二区二区蜜臂av| 久久久亚洲国产美女国产盗摄 | 91色婷婷久久久久合中文| 日韩午夜激情免费电影| 亚洲欧美激情插| 福利一区福利二区| 日韩欧美一区二区在线视频| 亚洲精品国产视频| 国产福利91精品一区| 欧美一三区三区四区免费在线看| 亚洲精品视频自拍| 大白屁股一区二区视频| 26uuu色噜噜精品一区二区| 天堂va蜜桃一区二区三区漫画版| 色狠狠色噜噜噜综合网| 国产精品国模大尺度视频| 国产一区91精品张津瑜| 欧美不卡在线视频| 午夜国产不卡在线观看视频| 色哟哟一区二区三区| 中文字幕一区二区在线观看| 国产成人av资源| 国产偷国产偷亚洲高清人白洁| 另类专区欧美蜜桃臀第一页| 欧美日韩亚洲综合一区二区三区| 亚洲精品成人天堂一二三| caoporn国产精品| 国产精品视频麻豆| 成人综合婷婷国产精品久久蜜臀| 久久一区二区三区国产精品| 久久99国产精品免费网站| 日韩三级中文字幕| 久久国产福利国产秒拍| 日韩美女天天操| 美女视频黄 久久| 日韩欧美亚洲一区二区| 久久er精品视频| 欧美电影免费观看高清完整版在| 欧美aaa在线| 欧美tickle裸体挠脚心vk| 另类小说一区二区三区| 日韩欧美国产小视频| 精品一区二区成人精品| 亚洲精品一区二区三区四区高清| 国产一区三区三区| 久久久久久97三级| 成人av在线影院| 亚洲欧美日韩国产手机在线 | 国产欧美中文在线| 成人国产精品免费网站| 亚洲乱码国产乱码精品精小说 | 91碰在线视频| 亚洲黄一区二区三区| 欧美亚洲另类激情小说| 午夜日韩在线观看| 欧美一卡二卡在线| 国产精品影视网| 国产精品对白交换视频 | 久久人人97超碰com| 成人免费av网站| 亚洲综合久久久久| 4438x亚洲最大成人网| 国产在线播放一区| 日本一区二区三区dvd视频在线| 99国产精品99久久久久久| 亚洲第一狼人社区| 欧美大片顶级少妇| 99视频一区二区| 亚洲第一福利一区| 久久嫩草精品久久久精品| eeuss鲁片一区二区三区| 亚洲一区二区三区三| 日韩美女主播在线视频一区二区三区| 国产精品1区2区| 亚洲精品视频在线| 91精品国产91综合久久蜜臀| 国产高清不卡二三区| 亚洲无人区一区| 久久久99精品久久| 欧美视频一区二| 国产在线播放一区二区三区| 亚洲欧美国产高清| 精品欧美乱码久久久久久1区2区| 成人一区二区在线观看| 图片区日韩欧美亚洲| 国产精品系列在线| 91精品在线麻豆| 99热99精品| 麻豆国产欧美日韩综合精品二区 | 成人动漫av在线| 日韩高清一区二区| **性色生活片久久毛片| 日韩免费在线观看| 91国内精品野花午夜精品| 国产乱对白刺激视频不卡| 婷婷国产v国产偷v亚洲高清| 国产清纯在线一区二区www| 91麻豆精品国产91久久久久久| 99久久免费精品| 国产一区免费电影| 亚洲午夜在线电影| 亚洲欧洲日韩在线| 久久久亚洲欧洲日产国码αv| 欧美日韩国产区一| 一本大道久久a久久精品综合| 国产精品一二一区| 捆绑调教一区二区三区| 日韩美女久久久| 中文字幕欧美日韩一区| 精品成人a区在线观看| 6080国产精品一区二区| 91在线免费看| 不卡视频在线观看| 国产91精品一区二区| 麻豆成人久久精品二区三区小说| 亚洲国产日韩精品| 一区二区三区欧美在线观看| 国产精品天美传媒沈樵| 久久午夜电影网| 欧美成人欧美edvon| 3atv一区二区三区| 欧美精品免费视频| 在线视频一区二区免费| 色综合久久久久综合| 成人高清av在线| 成人免费观看av| 成人激情午夜影院| 国产91丝袜在线观看| 国产一区二区三区蝌蚪| 精东粉嫩av免费一区二区三区| 日韩高清在线电影| 奇米精品一区二区三区四区| 视频在线在亚洲| 免费成人你懂的| 美腿丝袜亚洲一区| 国内精品久久久久影院色|