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

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

?? cc.c

?? 編譯器的辭法分析器工具
?? C
字號:
/*                 parser suite - and / or / nothing / something  parsers   parser = [token] -> ([token],status)       implemented as sideeffecting on [token], returns status.*/# include "cc.h"STATUS  p_andparse0 (p, q)/*Serial composition of parsers. Doesfirst p then q. Put p's instructions on thetop of the program stack, then layer q's above it.This version has full rewind of the input stream onfailure, but this can be altered to single tokenlookahead by deleting the line of code marked.*/PARSER  *p, *q;{    static status tok;    /* why can't this be static? */    MARK;    tok = (*p) ();    if (BADSTATUS (tok)){    /* error */            RELEASE;        return tok;    }    tok = (*q) ();    if (BADSTATUS (tok))    /* error */    {        REWIND;        /* remove this line for 1-token LA parsing */        return tok;        /* fail */    }    pushDECR;    RELEASE;    return tok;            /* succeed */}STATUS  p_orparse0 (p, q)/*alternate composition of parsers. Tries p first,and if it doesnt work, tries q. Code correspondingto the successful parse is placed on the program stack.If both fail, the routine relies on p and q's auto-rewindmechanisms to do the rewind for it.*/PARSER  p, q;{	static status  tok;     /* I don't see why this can't be static */	tok = p ();	if (BADSTATUS (tok))	/* error */		tok = q ();	/* retry */	return tok;		/* whatever */}STATUS p_many0 (p)/*parser which tries p any number of timesuntil p fails, but returns success anyhow.*/PARSER *p;{    int repeat = 0;    while (GOODSTATUS((*p) ()))        repeat++;/* we no longer need stack manipulations */# ifdef STACKMANIPS    switch(repeat)    {      case 0: pushINCR; break;      case 1: break;      default:pushMANIP(-(repeat-1)); break;    }# endif    return (SUCCESS);}STATUS p_iter0 (repeat, p)/*parser which tries p repeat number of times exactly*/PARSER *p;int repeat;{    static int k;    static status tok;    MARK;    k = repeat;    while (k-->0) {        tok = (*p) ();        if (BADSTATUS(tok)) {            REWIND;            return tok;        }    }#ifdef STACKMANIPS    switch(repeat)    {      case 0: pushINCR; break;      case 1: break;      default:pushMANIP(-(repeat-1)); break;    }#endif    RELEASE;    return tok;}STATUS   p_until0(p)/* This parser skips until p succeeds, when it returns with p's value.   It's equivalent to a  foo = p | ? foo, but more efficient by a small   bit of the call stack for each fail of p. */PARSER *p;{    static STATUS tok;    while (*pstr) {        tok = (*p)();        if GOODSTATUS(tok)            return tok;        MOVEON;    }    return FAILURE;}STATUS  p_some0 (p)/*At least one repetition of parser p*/PARSER *p;{    status tok;    tok = (*p) ();    if (GOODSTATUS(tok)){        tok = p_many0 (p);        pushDECR; /* bound to succeed */        return(tok);    }    return tok;}STATUS p_option0 (p)/* optionally p */PARSER *p;{    static status tok;    tok = (*p) ();    if (GOODSTATUS(tok))        return tok;    pushINCR;    return(SUCCESS);}STATUS p_range0 (p)/*checks whether *pstr satisfies predicate p.p must take a TOKEN as arg. That is a mistake. It should bean int (a PARAM).*/PREDICATE *p;{    VALUE v;    if ((*p) (*pstr))    {        v = lvbuff[(int)(pstr-buffer)];        MOVEON;        pushVALUE(v);        return (OK(v));    }    return (FAILURE);}STATUS p_attach (p,f)PARSER *p;ACTION *f;{    static status tok;    tok = (*p) ();    if (GOODSTATUS(tok)) {        pushACTION(f);        return tok;    }    return tok;}STATUS p_prepend (f,p)PARSER *p;ACTION *f;{    static status tok;    MARK;    pushACTION(f);    tok = (*p) ();    if (GOODSTATUS(tok)) {        RELEASE;    return tok;    }    REWIND;    return tok;}STATUS  p_hidden0 (p)PARSER *p;/*parser which tries p, but doesnt moveon, just reports the resultof p.*/{    static status tok;    MARK;    tok = (*p) ();    REWIND;    if(GOODSTATUS(tok)) {   /* we have to show we were here to keep in V(n) step */           pushVALUE(tok);           return tok;    }    return tok;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产福利一区二区三区| 亚洲午夜精品网| 日韩欧美国产综合| 欧美一区二区三区日韩视频| 欧美亚洲免费在线一区| 色噜噜久久综合| 欧美日韩日日夜夜| 欧美一区二区三区在线观看| 在线综合视频播放| 欧美大肚乱孕交hd孕妇| 精品国产99国产精品| 精品国产百合女同互慰| 国产欧美一区视频| 1区2区3区国产精品| 日韩久久一区二区| 亚洲综合免费观看高清完整版| 亚洲福利一二三区| 免费高清在线一区| 国产一区二区三区不卡在线观看| 国产盗摄一区二区三区| 91在线无精精品入口| 欧美日韩在线亚洲一区蜜芽| 欧美一区二区三区在线电影 | 成人激情免费网站| 91亚洲精华国产精华精华液| 欧美日韩精品一区二区三区蜜桃| 欧美日韩国产bt| 精品国产乱码久久| ㊣最新国产の精品bt伙计久久| 亚洲最新视频在线观看| 开心九九激情九九欧美日韩精美视频电影| 久久99精品久久久久久国产越南| 成人一区二区视频| 欧美体内she精高潮| 久久久精品免费观看| 亚洲乱码中文字幕| 狠狠色丁香久久婷婷综合_中 | 美女视频黄 久久| 高清shemale亚洲人妖| 欧美午夜片在线观看| 亚洲精品在线观看视频| 中文字幕在线播放不卡一区| 免费不卡在线观看| 在线观看免费视频综合| 久久精品欧美一区二区三区麻豆| 一区二区三区在线高清| 国产精品一区在线观看乱码| 欧美日韩一二三区| 亚洲天堂网中文字| 精品亚洲欧美一区| 3751色影院一区二区三区| 国产精品久久福利| 国产伦精品一区二区三区视频青涩 | 欧美视频精品在线观看| 国产日韩高清在线| 美女性感视频久久| 欧美美女直播网站| 亚洲亚洲人成综合网络| 97久久精品人人做人人爽| 久久色成人在线| 精品一区二区在线视频| 56国语精品自产拍在线观看| 一区二区三区在线观看视频| 丁香激情综合五月| 日韩视频一区二区在线观看| 亚洲一区二区三区在线播放| 色婷婷综合激情| 中文字幕欧美一| 99久免费精品视频在线观看| 国产目拍亚洲精品99久久精品| 激情五月播播久久久精品| 日韩欧美国产高清| 久久99国产精品久久99果冻传媒| 久久嫩草精品久久久精品一| 男女激情视频一区| 欧美成人性福生活免费看| 视频一区视频二区中文| 91精品国产全国免费观看| 日韩电影在线观看电影| 日韩免费高清电影| 久久99九九99精品| 久久久久国产免费免费| 成人小视频在线观看| 亚洲同性gay激情无套| 在线观看av不卡| 天天亚洲美女在线视频| 日韩欧美亚洲国产另类| 国产毛片精品一区| 最新国产の精品合集bt伙计| 91网站在线播放| 亚洲一区二区三区在线播放| 制服视频三区第一页精品| 久热成人在线视频| 国产精品色哟哟| 色网站国产精品| 美女一区二区三区| 中文字幕不卡一区| 欧美亚洲高清一区| 精品一区二区综合| 亚洲色图欧洲色图| 日韩欧美色综合网站| 成人亚洲精品久久久久软件| 欧美aaaaa成人免费观看视频| www国产精品av| 99re在线精品| 蜜桃一区二区三区在线观看| 国产精品久久免费看| 欧美日韩在线观看一区二区| 久久99精品国产麻豆不卡| 亚洲色图.com| 日韩欧美高清一区| 91福利国产精品| 国产精品一二一区| 天天综合色天天| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 在线观看www91| 国产一区激情在线| 亚洲国产精品视频| 亚洲国产精品精华液ab| 日韩视频一区在线观看| 色偷偷久久一区二区三区| 精品综合久久久久久8888| 亚洲综合成人在线视频| 国产欧美一区视频| 日韩午夜在线观看视频| 欧美在线三级电影| 99久久免费视频.com| 国内国产精品久久| 夜夜爽夜夜爽精品视频| 欧美国产日本韩| 亚洲精品一区二区三区影院| 欧美欧美欧美欧美首页| 一本大道久久a久久精二百| 国产高清亚洲一区| 伦理电影国产精品| 午夜成人免费电影| 亚洲制服丝袜在线| 日本人妖一区二区| 亚洲一区免费观看| 国产精品短视频| 国产精品久久久久久户外露出| 精品久久久久久无| 欧美tickle裸体挠脚心vk| 欧美一级xxx| 91精品国产综合久久精品 | 亚洲成人在线免费| 亚洲综合色自拍一区| 亚洲色图清纯唯美| 亚洲欧美日韩电影| 一区二区三区四区不卡在线 | 日韩片之四级片| 91精品国产91热久久久做人人| 欧美日韩在线播放三区| 欧美日韩综合色| 欧美精选午夜久久久乱码6080| 欧美日韩国产成人在线91| 欧美日韩一区中文字幕| 91 com成人网| 精品久久久久99| 欧美精品一区二区久久久| 久久伊人蜜桃av一区二区| 久久久久97国产精华液好用吗| 日韩理论片在线| 亚洲一区二三区| 蜜臀a∨国产成人精品| 精品一二三四区| 93久久精品日日躁夜夜躁欧美| 91国产视频在线观看| 51精品视频一区二区三区| 日韩欧美亚洲国产另类| 亚洲国产精品激情在线观看| 亚洲人成精品久久久久久| 亚洲国产精品自拍| 精品一区二区av| 99re热这里只有精品视频| 精品视频免费在线| 欧美mv日韩mv| 亚洲精品视频在线看| 日韩激情视频网站| 国产成人亚洲综合a∨猫咪| 色综合久久综合网97色综合| 欧美日韩大陆在线| 国产婷婷色一区二区三区| 亚洲美女偷拍久久| 久久精品99国产精品| heyzo一本久久综合| 91.com视频| 成人免费在线播放视频| 捆绑调教一区二区三区| 成人午夜在线播放| 日本韩国欧美三级| 欧美刺激脚交jootjob| 综合在线观看色| 久久激情综合网| 一本大道av伊人久久综合| 精品久久五月天| 午夜成人免费视频| av电影在线观看不卡| 日韩欧美国产精品| 亚洲福利电影网|