cmtparsr.h

来自「国外网站上的一些精典的C程序」· C头文件 代码 · 共 106 行

H
106
字号
/* * CMTPARSR.H * Base class: comment parser. * * ver 1.0, 30 Jun 1996 * * Public domain by: *   Jari Laaksonen *   Arkkitehdinkatu 30 A 2 *   FIN-33720 Tampere *   FINLAND * *   Fidonet : 2:221/360.20 *   Internet: jla@to.icl.fi */#ifndef _CMTPARSR_H_#define _CMTPARSR_H_#include <stdio.h>class CommentParser{public:    enum State {        NormalInput,        InsideString,        InsideChar,        BeginComment,        InsideEscape,        InCppComment,        InCComment,        StarInCppComment,        StarInCComment    };    enum Event {        ANY_CHAR,        FOUND_BACKSLASH,        FOUND_NL,        FOUND_QUOTE,        FOUND_SINGLEQUOTE,        FOUND_SLASH,        FOUND_STAR,        FOUND_WHITESPACE,        END_OF_FILE    };    CommentParser (State InitState = NormalInput)        : itsState(InitState)        , lines(1)    { }    virtual ~CommentParser() { }    int Init (int argc, char **argv);    int Init (char *file);    void Uninit();    int Run();    unsigned long GetLines() { return lines - 1; };    int GetLastState() { return itsState; };protected:    virtual void ProcessState (Event theEvent);    virtual void ProcessActions (Event theEvent) = 0;    void print (char ch)    {        fputc (ch, OutFile);    }    void print (char *str)    {        fputs (str, OutFile);    }    void ChangeChar (int ch)    {        ReadCh = ch;    }    int ReadChar();    void PrintChar();    void PrintLineNumber();    Event GetEvent();    State   itsState;    State   itsPrevState;private:    unsigned long  lines;    int     arguments;    int     ReadCh;    FILE   *InFile,           *OutFile;};#endif // _CMTPARSR_H_

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?