Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лабы / Lab_11 / library

.h
Скачиваний:
17
Добавлен:
16.04.2013
Размер:
3 Кб
Скачать
#ifndef LIBRARY
#define LIBRARY
////////////////////////////////////////////////////////////////////////////////////////////////////
#include <stdio.h>
////////////////////////////////////////////////////////////////////////////////////////////////////
class CList                             //циклический двунаправленный список
{
public:
    CList(void);
    ~CList();

    int   GetCount(void);               //получить длину списка
    void  Clear(void);                  //очистить список
    void  Free(void);                   //освободить память из-под элементов и очистить список
    void  Add(void);                    //добавить элемент после текущего и сделать его текущим
    void  Delete(void);                 //удалить текущий элемент и сделать текущим следующий за ним
    void* GetData(void);                //получить текущее значение
    void  SetData(void*);               //установить текущее значение
    void  GoBegin(void);                //сделать текущим первый элемент
    void  GoNext(void);                 //сделать текущим следующий элемент
    void  GoPrev(void);                 //сделать текущим предыдущий элемент

    struct ListItem                     //элемент списка
    {
        void*     Data;                 //данные
        ListItem* Next;                 //указатель на следующий элемент
        ListItem* Prev;                 //указатель на предыдущий элемент
    };

private:
    int       Count;                    //количество элементов в списке
    ListItem* Begin;                    //первый элемент списка
    ListItem* Cur;                      //текущий элемент списка
};
////////////////////////////////////////////////////////////////////////////////////////////////////
class CLogFile                          //файл протокола
{
public:
    CLogFile(void);

    void Setup(char*);                  //установить имя файла
    void Reset(void);                   //сброс содержимого протокола
    void Print(char*, ...);             //форматированная запись в протокол (см. printf)

private:
    char FileName[256];                 //имя файла протокола
};
////////////////////////////////////////////////////////////////////////////////////////////////////
class CSyntaxer                         //синтаксический анализатор текстовой информации
{
public:
    CSyntaxer(void);
    ~CSyntaxer();

    int  Open(char*);                   //открыть файл для анализа
    void Close(void);                   //закрыть файл
    int  GetWord(char*);                //получить слово из файла
    int  GetNumber(int*);               //получить целое число из файла

private:
    int  SkipComment(void);             //пропустить комментарий
    int  SkipSpaces(void);              //пропустить незначащие символы (пробел, табуляция и т.п.)

private:
    FILE* file;
};
////////////////////////////////////////////////////////////////////////////////////////////////////
#endif
Соседние файлы в папке Lab_11