gch
if ((c = gch()) == 0)
while ((c = gch()) != '\n')
static char gch(void);
int gch(void);
(void) gch();
switch(c=gch()){
while((c=gch()) && c != '\n');
while((c=gch()) && c != '\n') {
if((c=gch())=='*') {
c=gch();
if ((c=gch()) == '/') goto w_loop;
c = gch();
c = gch();
c = gch();
if(digit(c=gch())){ /* iteration */
c = gch();
c = gch();
if(!isascii(c = gch()))
if(!isascii(c = gch()))
while((c=gch()) && c != '"' && c != '\n'){
if(c == '\\') c = usescape(c=gch());
if((c = gch()) == '^'){
c = gch();
c = gch();
c = usescape(c=gch());
c = gch();
c=usescape(c=gch());
c = gch();
c = usescape(c=gch());
remch(token[i++] = gch());
if (digit((dd = gch())) ||
dd = gch();
while ('0' <= (d = gch()) && d <= '7') {
while (((c = gch()) != 0) && c != '\n') {
while ((c = gch()) != 0) {
if ((c = gch()) == '/') {
while ((c = gch()) == ' ' || c == '\t')
c = gch();
(void) gch(); /* eat up an extra '|' */
c = gch();
while ((c = gch()) != 0) {
if ((c = gch()) == '/') {
while ((c = gch()) == ' ' ||
while ((c = gch()) != 0) {
c = gch();
unsigned char gch, c;
gch = getchar()&0377;
if ((gch == character(value(ESCAPE))) && bol) {
if (!(gch = escape()))
} else if (!cumode && gch == character(value(RAISECHAR))) {
} else if (gch == '\r') {
parwrite(FD, &gch, 1);
} else if (!cumode && gch == character(value(FORCE)))
gch = getchar()&0377;
bol = any(gch, value(EOL));
if (boolean(value(RAISE)) && islower(gch))
gch = toupper(gch);
c = gch;
parwrite(FD, &gch, 1);
unsigned char gch;
gch = (getchar()&0377);
if (p->e_char == gch) {
(*p->e_func)(gch);
if (c != gch)
return (gch);
for (up = L->openupval; up != NULL; up = up->gch.next)
gch(o)->next = g->allgc; /* link upvalue into 'allgc' list */
lua_assert(gch(o)->tt != LUA_TTABLE);
lua_assert(isblack(o) && !isdead(g, o) && gch(o)->tt == LUA_TTABLE);
gch(o)->marked = luaC_white(g);
gch(o)->tt = tt;
gch(o)->next = *list;
switch (gch(o)->tt) {
for (o = g->tobefnz; o != NULL; o = gch(o)->next) {
switch (gch(o)->tt) {
(gch(x)->marked = cast_byte((gch(x)->marked & maskcolors) | luaC_white(g)))
#define white2gray(x) resetbits(gch(x)->marked, WHITEBITS)
#define black2gray(x) resetbit(gch(x)->marked, BLACKBIT)
#define isfinalized(x) testbit(gch(x)->marked, FINALIZEDBIT)
switch (gch(o)->tt) {
int marked = gch(curr)->marked;
*p = gch(curr)->next; /* remove 'curr' from list */
if (gch(curr)->tt == LUA_TTHREAD)
gch(curr)->marked = cast_byte((marked & toclear) | toset);
p = &gch(curr)->next; /* go to next element */
g->tobefnz = gch(o)->next; /* remove it from 'tobefnz' list */
gch(o)->next = g->allgc; /* return it to 'allgc' list */
resetbit(gch(o)->marked, SEPARATED); /* mark that it is not in 'tobefnz' */
lastnext = &gch(*lastnext)->next;
lua_assert(testbit(gch(curr)->marked, SEPARATED));
p = &gch(curr)->next; /* don't bother with it */
l_setbit(gch(curr)->marked, FINALIZEDBIT); /* won't be finalized again */
*p = gch(curr)->next; /* remove 'curr' from 'finobj' list */
gch(curr)->next = *lastnext; /* link at the end of 'tobefnz' list */
lastnext = &gch(curr)->next;
if (testbit(gch(o)->marked, SEPARATED) || /* obj. is already separated... */
GCheader *ho = gch(o);
for (p = &g->allgc; *p != o; p = &gch(*p)->next) { /* empty */ }
#define isblack(x) testbit((x)->gch.marked, BLACKBIT)
(!testbits((x)->gch.marked, WHITEBITS | bitmask(BLACKBIT)))
#define isold(x) testbit((x)->gch.marked, OLDBIT)
#define resetoldbit(o) resetbit((o)->gch.marked, OLDBIT)
#define isdead(g,v) isdeadm(otherwhite(g), (v)->gch.marked)
#define changewhite(x) ((x)->gch.marked ^= WHITEBITS)
#define gray2black(x) l_setbit((x)->gch.marked, BLACKBIT)
#define iswhite(x) testbits((x)->gch.marked, WHITEBITS)
#define righttt(obj) (ttype(obj) == gcvalue(obj)->gch.tt)
val_(io).gc=i_g; settt_(io, ctb(gch(i_g)->tt)); }
GCheader gch; /* common header */
#define gch(o) (&(o)->gch)
check_exp(novariant((o)->gch.tt) == LUA_TSTRING, &((o)->ts))
#define rawgco2u(o) check_exp((o)->gch.tt == LUA_TUSERDATA, &((o)->u))
#define gco2lcl(o) check_exp((o)->gch.tt == LUA_TLCL, &((o)->cl.l))
#define gco2ccl(o) check_exp((o)->gch.tt == LUA_TCCL, &((o)->cl.c))
check_exp(novariant((o)->gch.tt) == LUA_TFUNCTION, &((o)->cl))
#define gco2t(o) check_exp((o)->gch.tt == LUA_TTABLE, &((o)->h))
#define gco2p(o) check_exp((o)->gch.tt == LUA_TPROTO, &((o)->p))
#define gco2uv(o) check_exp((o)->gch.tt == LUA_TUPVAL, &((o)->uv))
#define gco2th(o) check_exp((o)->gch.tt == LUA_TTHREAD, &((o)->th))
o = gch(o)->next) {
GCObject *next = gch(p)->next; /* save next */
gch(p)->next = tb->hash[h]; /* chain it */