Go to the documentation of this file.00001 #ifndef VARIABLE_H
00002 #define VARIABLE_H
00003
00004 #include <string>
00005 #include <iostream>
00006 using namespace std;
00007
00008 class Variable {
00009 private:
00010 int range;
00011 string name;
00012 int layer;
00013 int level;
00014 bool necessary;
00015 bool functional;
00016 bool subterm;
00017 bool comparison;
00018 bool used_in_duration_condition;
00019 bool module;
00020 public:
00021 Variable(istream &in);
00022 void set_level(int level);
00023 void set_necessary();
00024 int get_level() const;
00025 bool is_necessary() const;
00026 int get_range() const;
00027 string get_name() const;
00028 int get_layer() const { return layer; }
00029 bool is_derived() const { return layer != -1; }
00030 bool is_functional() const;
00031 bool is_used_in_duration_condition() const;
00032 void set_used_in_duration_condition();
00033 bool is_subterm() const;
00034 void set_subterm();
00035 bool is_module() const;
00036 void set_module();
00037 bool is_comparison() const;
00038 void set_comparison();
00039 void dump() const;
00040 };
00041
00042 #endif