added project

This commit is contained in:
ALEXks
2023-09-14 19:43:13 +03:00
parent d78c55e275
commit 59c56cc5c2
638 changed files with 352236 additions and 92 deletions

View File

@@ -0,0 +1,124 @@
// ----------------------------------
// Darryl Brown
// University of Oregon pC++/Sage++
//
// baseClasses.h - module for basic classes used by
// breakpoint modules.
//
//
// ----------------------------------
//if already included, skip this file...
#ifdef BASE_CL_ALREADY_INCLUDED
// do nothing;
#else
#define BASE_CL_ALREADY_INCLUDED 1
// -------------------------------------------------------------;
// this class is the base pointer type of all elements ;
// stored in linked lists;
class brk_basePtr {
public:
virtual void print();
// this function should be overridden by later classes.;
virtual void print(int);
// this function should be overridden by later classes.;
virtual void printToBuf(int, char *);
// this function should be overridden by later classes.;
virtual void print(int t, FILE *fptr);
// this function should be overridden by later classes.;
virtual void printAll();
// this function should be overridden by later classes.;
virtual void printAll(int);
// this function should be overridden by later classes.;
#if 0
virtual void printAll(int, FILE *);
// this function should be overridden by later classes.;
virtual void printAll(FILE *);
// this function should be overridden by later classes.;
#endif
int (* userCompare)(brk_basePtr *, brk_basePtr *);
// this function should be overridden by later classes.;
virtual int compare(brk_basePtr *);
// this function should be overridden by later classes.;
brk_basePtr();
};
// -------------------------------------------------------------
// the nodes of the linked lists kept for children and parents of each class;
class brk_ptrNode : public brk_basePtr {
public:
brk_ptrNode *next; // next node;
brk_ptrNode *prev; // previous node;
brk_basePtr *node; // the ptr to the hierarchy at this node;
// constructors;
brk_ptrNode (void);
brk_ptrNode (brk_basePtr *h);
virtual int compare(brk_basePtr *);
// compares this heirarchy with another alphabetically using className;
};
// -------------------------------------------------------------
// the class implementing the linked list for
class brk_linkedList : public brk_basePtr {
public:
brk_ptrNode *end; // end of list;
brk_ptrNode *start; // start of list;
brk_ptrNode *current; // pointer to current element in list,
// used for traversal of list.;
int length; // length of list;
// constructor;
brk_linkedList();
// access functions;
void push (brk_basePtr *h); // push hierarchy h onto front of list;
void pushLast (brk_basePtr *h); // push hierarchy h onto back of list;
brk_basePtr *pop (); // remove and return the first element in list;
brk_basePtr *popLast (); // remove and return the last element in list;
brk_basePtr *searchList (); // begin traversal of list;
brk_basePtr *nextItem(); // give the next item in list during traversal;
brk_basePtr *remove (int i); // remove & return the i-th element of list;
brk_basePtr *getIth (int i); // return the i-th element of list;
brk_basePtr *insert(int i, brk_basePtr * p);
// insert *p at point i in list;
brk_ptrNode *findMember (brk_basePtr *); // look for this element and
// return the brk_ptrNode that points to it;
int memberNum(brk_ptrNode *); // what order does this element fall in list;
virtual void print(int); // print all elements;
virtual void print(int, FILE *ftpr); // print all elements;
virtual void print(); // print all elements;
virtual void printIth(int i); // print i-th element of list;
virtual void printToBuf(int, char *);
// this function should be overridden by later classes.;
void sort (); // sorts the list, elements must have compare function.,;
void sort(int (* compareFunc) (brk_basePtr *, brk_basePtr *));
virtual void swap(brk_ptrNode *l, brk_ptrNode *r);
// swaps these two basic elements
};
// ---------------------------------------------------
// external declarations.
// ---------------------------------------------------
extern char * brk_stringSave(char * str);
extern int brk_strsame(char * str, char * str1);
extern void brk_printtabs(int tabs);
extern void brk_printtabs(int tabs, FILE *fptr);
// here is the endif
#endif