ie.h

来自「很好的windows驱动开发书记,基于WDM的,,可以很好的学习」· C头文件 代码 · 共 56 行

H
56
字号

#ifndef _IE_H_
#define _IE_H_

#include <stack>
#include <string>
#include <list>

class IEGoal;
class IEExec;
class IERule;
class IEOwner;

class IE
{

public:

    void start          ( char   * name, IEOwner * owner );
    void end            ();
    void makeGoal       ( IEExec * goalExec );
    void makeRule       ( IEExec * condition, char * lineInfo );
    void addRuleGoto    ( char   * goalName,  char * lineInfo );
    void addRuleGosub   ( char   * goalName,  char * lineInfo );
    void addRuleReturn  ( char * lineInfo );

    void update         ();
    void checkStart     ();
    bool checkFinish    ();

private:

    bool        noRule          ( char * lineInfo );
    void        linkRuleGoals   ();
    IEGoal    * findGoal        ( std::string & goalName );

    void pushGoal  ( IEGoal * goal );
    void popGoal   ( IEGoal * goal );
    
private:

    std::string           m_name;
    int                   m_type;

    IEGoal              * m_curGoal;
    IERule              * m_curRule;
    IEGoal              * m_nextGoal;

    std::list<IEGoal *>   m_goalList;
    std::list<IEGoal *>   m_goalStack;

    IEOwner             * m_owner;
};

#endif

⌨️ 快捷键说明

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