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

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

?? ccheck.c

?? 一個用于檢查c語法錯誤的程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
        }
        if (oddsinglequote)
            printf("\tOdd number of single quotes.\n");
        if (bracecnt)
            printf("\t%d too few %s braces.\n", abs(bracecnt), (bracecnt >
              0 ? "closing" : "opening"));
        if (sqbrakcnt)
            printf("\t%d too few %s square brackets.\n", abs(sqbrakcnt), (sqbrak
              > 0 ? "closing" : "opening"));
        if (parencnt)
            printf("\t%d too few %s parentheses.\n", abs(parencnt), (parencnt
              > 0 ? "closing" : "opening"));
        if (errstatus && !i)
            printf("\tPossible error(s), but no net delimiter imbalance.\n");
        putchar('\n');
    } while (++file_index < argc);

    exit(errstatus ? 2 : wstatus);
}

int mygetchar()
{
    register int c;

    c = fgetc(infile);

    /*
    if (c == ';') {
 ungetc(SPACE, infile);
 return(';');
    }
    */
    if (c == '/') {    /* open comment ? */
        c = fgetc(infile);
        if (c != '*') {
            ungetc(c, infile);
            return('/');
        }
        commln = ln;
        commindent = indent;

        while (1) {
            c = fgetc(infile);

            if (c == EOF) {   /* last comment never ended */
                if (pr(2))
                    printf
                      ("Comment opened line %d unclosed by end of file.\n",
                      commln);
                break; /* Get out of this loop! */
            } else if (c == '/') {  /* nested comment ? */
                if ((c = fgetc(infile)) == '*') {
                    if (pr(0))
                        fprintf(stdout,
                          "Nested comment: line %d, indent %d.  First open: line
                             ln, indent, commln, commindent);
                } else
                    ungetc(c, infile);
            } else if (c == '*') {  /* end comment ? */
                if ((c = fgetc(infile)) == '/') {
                    if (indent != commindent  &&  indent - 1 != commindent)
                        if (pr(0))
                            printf(
                              "Indent of comment close doesn't match open: lines
                                     commln, ln, commindent, indent);

                    break;    /* only exit from loop, except EOF */
                } else
                    ungetc(c, infile);
            } else if (c == '\n') {
                do {
                    if (c == SPACE)
                        indent++;
                    else if (c == '\t')
                        indent = ((indent + 8) / 8) * 8;
                    else if (c == '\n') {
                        ln++;
                        indent = 0;
                    }
                } while (isspace(c = fgetc(infile)));
                ungetc(c, infile);
            }
        }
        return(SPACE);

    }

    if (c == '\n'  ||  firsttime == 1) {
        firsttime = 0;
lf:
        while (1) {
            if (c == SPACE)
                indent++;
            else if (c == '\t')
                indent = ((indent + 8) / 8) * 8;
            else if (c == '\n') {
                ln++;
                indent = 0;
                singlequoterr = 0;
            } else {
                ungetc(c, infile);
                return('\n');
                /*NOTREACHED*/
                break;
            }
            c = fgetc(infile);
        }
    }

    if (c == SPACE  ||  c == '\t') {
        do
            c = fgetc(infile);
        while (c == SPACE  ||  c == '\t');
        if (c != '\n') {
            ungetc(c, infile);
            return(SPACE);
        } else
            goto lf;
    }
    return(c);
}

/*
 * administer count of error msgs. and suppress if too many
 * administer the status var.s
 * prepend file name to msg.
 * flag error msg.s (not warnings) with '*'
 */
int pr(error)
int error;
{
    int i;

    if (singlequoterr)
        return(0);

    if (verbose) {
        for (i = stackc; i > 0; i--) {
            printf("%d: type ", i);
            prtype(stack[i].type);
            printf(", indent %d, line %d.\n", stack[i].b_indent, stack[i].b_ln);
        }
    }

    if (error == 2) {
        errnmb = 0;
        errstatus = 1;
    } else if (error) {
        errstatus = 1;
        if (errnmb < 0)
            return(0);
        else if (errnmb >= 9) {
            errnmb = -1;
            printf("Other error messages being suppressed.\n");
            return(0);
        }
    } else {
        wstatus = 1;
        if (wnmb < 0)
            return(0);
        else if (errnmb + wnmb >= 9) {
            wnmb = -1;
            puts("Further warning messages being suppressed.\n");
            return(0);
        }
    }

    if (filename != NULL) {
        fputs(filename, stdout);
        fputs(": ", stdout);
    }
    if (error)
        putchar('*');
    if (error)
        errnmb++;
    else
        wnmb++;
    return(1);
}

void newbrak(newtype)
int newtype;
{
    if (newtype == 0) {
        top = stack;
        stackc = 0;
    } else {
        top++;
        stackc++;
    }
    if (stackc >= STACKSIZ) {
        if (pr(2))
            printf("***stack overflow, line %d.\n", ln);
        exit(3);
    }

    top->type = newtype;
    top->b_indent = indent;
    top->b_ln = ln;

}

void prtype(typ)
int typ;
{
    switch (typ) {
    case BRACE:
        putchar('}');
        break;
    case PAREN:
        putchar(')');
        break;
    case SQBRAK:
        putchar(']');
        break;
    case IF:
        fputs("if", stdout);
        break;
    case IFCOND:
        fputs("if-condition", stdout);
        break;
    case THEN:
        fputs("then", stdout);
        break;
    case ELSE:
        fputs("else", stdout);
        break;
    case WHLCOND:
        fputs("while-condition", stdout);
        break;
    default:
        fputs("'NULL'", stdout);
        break;
    }
}

void checkcloser(typ)
int (typ);
{
    int i, found;

    i = found = 0;
    if (typ == top->type  &&  top->b_indent == indent) {
        rmbrak(1);
        return;
    }

    while (!found  &&  ++i < stackc  &&  indent <= (top - i)->b_indent)
        if (typ == (top - i)->type  &&  (top - i)->b_indent == indent)
            found = 1;

    if (found) {
        if (pr(1))
            printf("Missing closer%s detected line %d:\n", (i > 1 ? "s" :
              ""), ln);
        while (i--) {
            if (pr(1)) {
                fputs("\tMissing closing ", stdout);
                prtype(top->type);
                printf(" opened line %d.\n", top->b_ln);
            }
            switch (top->type) {
            case BRACE:
                bracecnt++;
                break;
            case SQBRAK:
                sqbrakcnt++;
                break;
            case PAREN:
                parencnt++;
                break;
            default:
                break;
            }
            rmbrak(1);
        }
        rmbrak(1); /* the matching brak */
    } else if (typ == top->type) {
        if (indent != top->b_indent) {
            if (pr(0)) {
                fputs("Mismatched indent on closing ", stdout);
                prtype(typ);
                printf
                  (" lines %d, %d; indents %d, %d.\n",
                  top->b_ln, ln, top->b_indent, indent);
            }
        }
        rmbrak(1);
    }
      else {
        switch (typ) {
        case BRACE:
            bracecnt--;
            break;
        case SQBRAK:
            sqbrakcnt--;
            break;
        case PAREN:
            parencnt--;
            break;
        default:
            break;
        }

        if (pr(1)) {
            fputs("Muddle detected at unmatched closing ", stdout);
            prtype(typ);
            printf(" line %d.\n", ln);
        }
    }
}

/*
 * removes IF from stack
 * checks else's indent
 */
void checkelse()
{
    int c;

    while ((c = mygetchar()) == SPACE  || c == '\n')
        ;
    if (c == 'e'
      &&  (c = mygetchar()) == 'l'
      &&  (c = mygetchar()) == 's'
      &&  (c = mygetchar()) == 'e'
      &&  !isalpha(c = fgetc(infile))  &&  !isdigit(c)) {
        ungetc(c, infile);
        if (top->type == THEN)
            rmbrak(1);
        if (top->type != IF) {
            if (pr(1))
                printf("Else with no if line %d.\n", ln);
        }
          else if (indent + 2 < top->b_indent) {
            if (pr(1))
                printf("Dangling else -- bound to wrong if?  \"if\" line %d, \"e
                   top->b_ln, ln);
        }
          else if (indent != top->b_indent) {
            if (pr(0)) {
                fputs("Wrong indent for else", stdout);
                if (indent - 2 >  top->b_indent)
                    fputs(" (missing if?)", stdout);
                printf(".  \"if\" line %d, \"else\" line %d.\n", top->b_ln,
                   ln);
            }
        }

        if (top->type == IF)
            rmbrak(1);
        newbrak(ELSE);
    } else {
        myungetc(c);
        ungetc(SPACE, infile);  /* BUG?? */
        /* no else so terminate the IF */
        if (top->type == IF) {
            rmbrak(1);
            while (top->type == ELSE)
                rmbrak(1);
            if (top->type == THEN) {
                rmbrak(1);
                checkelse();
            }
        }
    }
}

/*  This function is included because Aztec C does not include an "abs"
    function.  If your library contains this function, this code can be
    deleted.
*/
int abs(i)
{
    int c;

    return((i < 0) ? -i : i);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩毛片精品高清免费| 国产日产欧美一区二区三区 | 国产精品久久久久影院| 欧美va亚洲va香蕉在线| 欧美电影免费观看高清完整版 | 国产毛片一区二区| 精品在线观看视频| 国产美女主播视频一区| 国产精品主播直播| 懂色av噜噜一区二区三区av| 福利一区二区在线| av成人免费在线| 欧美在线三级电影| 日韩小视频在线观看专区| 日韩免费高清视频| 久久精品在线免费观看| 国产欧美日韩久久| 亚洲精品网站在线观看| 婷婷开心久久网| 国产精品一区免费视频| av电影在线观看不卡| 欧美老女人在线| 久久久久久久久久美女| 亚洲免费观看高清完整版在线观看熊 | 日本伊人色综合网| 国产精一品亚洲二区在线视频| 成人免费av在线| 欧美日韩免费观看一区三区| 91精品国产91久久综合桃花 | 处破女av一区二区| 欧美性感一类影片在线播放| 777亚洲妇女| 国产精品区一区二区三区| 亚洲综合区在线| 国产一区二区三区不卡在线观看| 成人ar影院免费观看视频| 欧美在线播放高清精品| 精品免费一区二区三区| 一区二区日韩av| 国产永久精品大片wwwapp| 在线免费观看日本欧美| 久久综合色播五月| 亚洲一区二区三区美女| 高清不卡在线观看| 日韩精品一区二区三区三区免费| 悠悠色在线精品| 国产a视频精品免费观看| 欧美日韩黄色一区二区| 中文字幕在线不卡一区二区三区| 日本欧美久久久久免费播放网| 成人精品鲁一区一区二区| 欧美一区二区三区四区视频| 亚洲伦理在线免费看| 成人高清伦理免费影院在线观看| 日韩一级黄色大片| 亚洲成人福利片| 一本色道亚洲精品aⅴ| 欧美经典一区二区| 精品一区二区三区久久| 欧美日韩国产色站一区二区三区| 亚洲欧洲精品一区二区三区不卡 | 成人美女视频在线观看18| 欧美sm极限捆绑bd| 日产欧产美韩系列久久99| 欧美色网站导航| 一区二区三区欧美激情| 成人av网站大全| 国产精品美女久久久久久久久 | 成人黄色网址在线观看| 精品国产一区二区三区久久影院| 日本va欧美va精品发布| 欧美日韩亚洲综合一区二区三区 | 日本aⅴ亚洲精品中文乱码| 欧美日韩激情在线| 日韩国产欧美一区二区三区| 欧美日韩aaaaaa| 日韩成人午夜电影| 欧美一级xxx| 久久精品国产77777蜜臀| 欧美va日韩va| 国产成人精品一区二区三区四区| 久久久久久一级片| 成人综合激情网| 亚洲视频一区二区在线| 色国产精品一区在线观看| 一区二区三区四区不卡视频| 色婷婷国产精品综合在线观看| 一区二区三区日韩精品视频| 欧美伊人精品成人久久综合97| 亚洲高清不卡在线观看| 日韩午夜av一区| 国产乱妇无码大片在线观看| 国产精品视频一二三| 99久久精品国产麻豆演员表| 亚洲一区二区三区视频在线播放 | 欧美日韩在线精品一区二区三区激情| 亚洲制服欧美中文字幕中文字幕| 欧美绝品在线观看成人午夜影视| 美腿丝袜在线亚洲一区| 国产欧美一区二区三区沐欲| 91香蕉视频污在线| 五月天视频一区| 久久你懂得1024| 欧美亚洲丝袜传媒另类| 麻豆国产精品一区二区三区| 国产精品久久久久久亚洲毛片 | 日韩电影一区二区三区四区| 久久夜色精品一区| 91视频在线看| 麻豆极品一区二区三区| 日韩一区有码在线| 91精品福利在线一区二区三区 | 国产成人免费视频一区| 亚洲色图20p| 日韩网站在线看片你懂的| www.日韩av| 麻豆精品久久精品色综合| 亚洲日本中文字幕区| 欧美xingq一区二区| 在线亚洲高清视频| 国产成人在线影院| 天堂一区二区在线| 国产精品久久久久久久浪潮网站 | 国产精品视频yy9299一区| 69成人精品免费视频| 波多野洁衣一区| 久久精品国产精品亚洲精品| 一个色妞综合视频在线观看| 精品美女在线观看| 51午夜精品国产| 色狠狠一区二区三区香蕉| 成人高清伦理免费影院在线观看| 蜜臀久久久久久久| 亚洲成av人片| 亚洲综合区在线| 亚洲麻豆国产自偷在线| 中文字幕中文乱码欧美一区二区 | 国产精品久久久久影视| 久久综合九色综合97_久久久| 欧美裸体bbwbbwbbw| 色哟哟精品一区| 成人黄动漫网站免费app| 国产综合成人久久大片91| 麻豆freexxxx性91精品| 欧美a一区二区| 免费成人在线观看视频| 麻豆精品国产91久久久久久| 亚洲h在线观看| 亚洲成人综合网站| 亚洲永久精品大片| 亚洲风情在线资源站| 亚洲成人手机在线| 亚洲成av人**亚洲成av**| 亚洲高清不卡在线观看| 天天影视涩香欲综合网| 欧美a级理论片| 裸体一区二区三区| 国产伦精品一区二区三区免费迷 | 中文字幕日韩av资源站| 国产精品色在线观看| 自拍偷自拍亚洲精品播放| 亚洲精品欧美在线| 亚洲一区在线看| 午夜精品aaa| 久久不见久久见免费视频1| 精品午夜久久福利影院| 国产成人精品亚洲777人妖| 不卡在线观看av| 色丁香久综合在线久综合在线观看| 在线一区二区观看| 337p亚洲精品色噜噜噜| 久久综合九色综合97婷婷女人| 久久久精品免费网站| 亚洲欧美日韩国产一区二区三区| 一区二区三区不卡视频在线观看| 日韩二区三区四区| 国产成人一区在线| 色www精品视频在线观看| 欧美精品色一区二区三区| 久久久综合视频| 亚洲欧洲三级电影| 蜜臀va亚洲va欧美va天堂| 国产91在线|亚洲| 欧美视频在线观看一区| 久久九九99视频| 亚洲一区二区影院| 国产一本一道久久香蕉| 在线观看av一区| 久久久99精品免费观看不卡| 亚洲欧美电影一区二区| 久草在线在线精品观看| 91麻豆成人久久精品二区三区| 欧美一二三区在线观看| 亚洲欧洲另类国产综合| 精品一区二区三区香蕉蜜桃| 欧美亚洲一区二区在线| 国产网站一区二区| 石原莉奈一区二区三区在线观看 | 色偷偷一区二区三区| 精品国产污污免费网站入口|