static TaggedString *insert (char *buff, int tag, stringtable *tb) { TaggedString *ts; unsigned long h = hash(buff, tag); int i; int j = -1; if ((Long)tb->nuse*3 >= (Long)tb->size*2) { if (!initialized) initialize(); grow(tb); } i = h%tb->size; while ((ts = tb->hash[i]) != NULL) { if (ts == &EMPTY) j = i; else if ((ts->tag == LUA_T_STRING) ? (tag == LUA_T_STRING && (strcmp(buff, ts->str) == 0)) : ((tag == ts->tag || tag == LUA_ANYTAG) && buff == ts->u.v)) return ts; i = (i+1)%tb->size; } /* not found */ lua_pack(); if (j != -1) /* is there an EMPTY space? */ i = j; else tb->nuse++; ts = tb->hash[i] = newone(buff, tag, h); return ts; }
void main() { Tutorpair tutorpair; Tutorpair newone(12,3.7); cout<<"back in main"<<endl; }
ostream& RationalNumber::printTwoPart(ostream& out, const char* spacer) const { int tnum = _num; int tden = _den; int sign = 1; if (tnum < 0) { tnum = -tnum; sign = -sign; } if (tden < 0) { tden = -tden; sign = -sign; } if (tnum < tden) { out << *this; return out; } int integ = tnum / tden; tnum = tnum - tden * integ; if (sign < 0) { out << '-'; } if (integ > 0) { out << integ; if (tnum > 0) { out << spacer; RationalNumber newone(tnum, tden); out << newone; } } else { RationalNumber newone(tnum, tden); out << newone; } return out; }