/******************************************************************
** Copyright (C) 2001, University of Alabama in Huntsville. 
** All rights reserved.
**
** File   : Rule.h
**
** Author : Yangsen Yao
**
** Description:
**    This file provides definition for the CLIPS rule
**    class.
**
** History:
**    26-Nov-2001 : Yangsen Yao
**        Created file.
******************************************************************/

#ifndef _RULE_H
#define _RULE_H

#include <string>
#include <iostream>
extern "C" 
{
  #include "clips/clips.h"
}
#include "Construct.h"

class CCLPRule : public CCLPConstruct
{
 public:
    class CLIPS_Exception {};
    class Rule_Not_Found : public CLIPS_Exception{};
    static CCLPRule* Find(std::string ruleName);
    bool DefRule();
    bool UnDefRule();
    bool IsDeletable();
    void List();
    void GetRuleList(DATA_OBJECT *);
    std::string NameOf();

 private:
    void *pDefRule;
    
};
#endif // _RULE_H
