|
|
1.1 ! root 1: class vector : public common { ! 2: common** vec; ! 3: int size; ! 4: public: ! 5: vector(int sz) { size = (sz<=0) ? 1 : sz; vec = new common*[size]; } ! 6: ~vector() {}; ! 7: virtual common* range_error() { return 0; } ! 8: common& operator[](int i) { return (0<=i && i<size) ? vec[i] : range_error(); } ! 9: int max() { return size-1; } ! 10: void grow(int size); ! 11: }; ! 12: ! 13: class table : public vector { ! 14: short* hashtbl; ! 15: table* next; ! 16: void grow(); ! 17: common* lookup(char* s, common* p, int i); ! 18: public: ! 19: table(int size); ! 20: table(vector&); ! 21: common* insert(common& oo) { return lookup(oo.swho(),&oo,1); } ! 22: common* look(char* s) { return lookup(s,0,1); } ! 23: common* look(common& oo, int i = 0) { return lookup(oo.swho(),&oo,i); } ! 24: }; ! 25:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.