⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scanio.c

📁 a little DFA compiler.
💻 C
字号:
uchar *ScanFill(uchar *cursor){    unsigned cnt = s->tok - s->bot;    s->pos += cursor - s->mrk;    if(cnt){        if(s->eot){            unsigned len = s->eot - s->tok;            memcpy(s->bot, s->tok, len);            s->eot = &s->bot[len];            if((len = s->lim - cursor) != 0)                memcpy(s->eot, cursor, len);            cursor = s->eot;            s->lim = &cursor[len];        } else {            memcpy(s->bot, s->tok, s->lim - s->tok);            cursor -= cnt;            s->lim -= cnt;        }        s->tok = s->bot;        s->ptr -= cnt;    }    if((s->top - s->lim) < 512){        uchar *buf = (uchar*) malloc(((s->lim - s->bot) + 512)*sizeof(uchar));        memcpy(buf, s->bot, s->lim - s->bot);        s->tok = buf;        s->ptr = &buf[s->ptr - s->bot];        if(s->eot)            s->eot = &buf[s->eot - s->bot];        cursor = &buf[cursor - s->bot];        s->lim = &buf[s->lim - s->bot];        s->top = &s->lim[512];        free(s->bot);        s->bot = buf;    }    s->mrk = cursor;    if(ScanCBIO.file){        if((cnt = read(ScanCBIO.u.f.fd, (char*) s->lim, 512)) != 512)            memset(&s->lim[cnt], 0, 512 - cnt);        s->lim += 512;    }    return cursor;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -