00001
00002
00003
00004
00005
00006
00007
00008 #ifndef RULESYMBOL_H_
00009 #define RULESYMBOL_H_
00010
00011 #include <iostream>
00012 #include <string>
00013
00014
00015 class RuleSymbol
00016 {
00017 public:
00018 RuleSymbol();
00019 virtual ~RuleSymbol();
00020
00021 virtual bool IsNonTerm() const = 0;
00022
00023 virtual std::string Debug() const = 0;
00024 virtual void Output(std::ostream &out) const = 0;
00025
00026 virtual std::string GetString() const = 0;
00027
00028 int Compare(const RuleSymbol &other) const;
00029
00030 };
00031
00032 #endif