设为首页 加入收藏

TOP

C++Precept和NV类的封装
2014-10-22 22:30:04 来源: 作者: 【 】 浏览:57
Tags:Precept 封装

  1 #pragma once


  2 #include "..\String\NWString.h"


  3 #include "..\AutoPtr\AutoPtr.h"


  4 #include "..\Common\List.h"


  5


  6 #define Type_Match_Content 0 // 匹配值


  7 #define Type_Match_Rule 1 // 匹配一条表达式


  8 #define Type_Or -1


  9 #define Type_Choose -2


  10 #define Type_Loop_0 -3


  11 #define Type_Loop_1 -4


  12 #define Type_Opt -5


  13 #define Type_LQ -6


  14 #define Type_RQ -7


  15


  16 class Precept


  17 {


  18 public:


  19 int Left;


  20 List Right;


  21


  22 Precept() : Left(0){}


  23 Precept(int L,List R) : Left(L),Right(R){}


  24


  25 // +Precept


  26 friend NAutoPtr operator+(NAutoPtr P)


  27 {


  28 NAutoPtr p = new Precept;


  29 p->Right.Add(Type_Loop_1);


  30 p->Right.Add(Type_LQ);


  31 p->Right.Add(P->Right);


  32 p->Right.Add(Type_RQ);


  33 return p;


  34 }


  35


  36 // Precept + Precept


  37 friend NAutoPtr operator+(NAutoPtr P1,NAutoPtr P2)


  38 {


  39 NAutoPtr p = new Precept;


  40 p->Right.Add(P1->Right);


  41 p->Right.Add(P2->Right);


  42 return p;


  43 }


  44


  45 // *Precept


  46 friend NAutoPtr operator*(NAutoPtr P)


  47 {


  48 NAutoPtr p = new Precept;


  49 p->Right.Add(Type_Loop_0);


  50 p->Right.Add(Type_LQ);


  51 p->Right.Add(P->Right);


  52 p->Right.Add(Type_RQ);


  53 return p;


  54 }


  55


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++简单NPC和智能NPC 下一篇C++基于CEGUI的StaticText的超级..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: