Files
Work/http/HOLD/SYMBOL.HPP
2024-08-07 09:16:27 -04:00

126 lines
2.3 KiB
C++

#ifndef _HTTP_SYMBOL_HPP_
#define _HTTP_SYMBOL_HPP_
#ifndef _COMMON_STRING_HPP_
#include <common/string.hpp>
#endif
class Symbol
{
public:
enum SymbolType{AssignedSymbol,ConstantSymbol,SystemSymbol,
CommandSymbol,UserSymbol,UnknownSymbol};
Symbol(void);
Symbol(const Symbol &someSymbol);
Symbol(const String &symbolString,int identifier,SymbolType symbolType);
virtual ~Symbol();
Symbol &operator=(const Symbol &someSymbol);
int operator==(const Symbol &someSymbol)const;
int operator==(const String &symbolString)const;
String symbolName(void)const;
void symbolName(const String &symbolName);
int identifier(void)const;
void identifier(int identifier);
SymbolType symbolType(void)const;
void symbolType(SymbolType symbolType);
void symbolValue(double symbolValue);
double symbolValue(void)const;
private:
String mSymbolName;
int mIdentifier;
SymbolType mSymbolType;
double mSymbolValue;
};
inline
Symbol::Symbol(void)
: mIdentifier(0), mSymbolType(UnknownSymbol), mSymbolValue(0.00)
{
}
inline
Symbol::Symbol(const Symbol &someSymbol)
{
*this=someSymbol;
}
inline
Symbol::Symbol(const String &symbolString,int identifier,SymbolType symbolType)
: mSymbolName(symbolString), mSymbolType(symbolType), mIdentifier(identifier)
{
}
inline
Symbol::~Symbol()
{
}
inline
int Symbol::operator==(const Symbol &someSymbol)const
{
return (mSymbolName==someSymbol.mSymbolName);
}
inline
int Symbol::operator==(const String &symbolName)const
{
return (mSymbolName==symbolName);
}
inline
Symbol &Symbol::operator=(const Symbol &someSymbol)
{
symbolName(someSymbol.symbolName());
identifier(someSymbol.identifier());
symbolType(someSymbol.symbolType());
symbolValue(someSymbol.symbolValue());
return *this;
}
inline
String Symbol::symbolName(void)const
{
return mSymbolName;
}
inline
void Symbol::symbolName(const String &symbolName)
{
mSymbolName=symbolName;
}
inline
Symbol::SymbolType Symbol::symbolType(void)const
{
return mSymbolType;
}
inline
void Symbol::symbolType(SymbolType symbolType)
{
mSymbolType=symbolType;
}
inline
int Symbol::identifier(void)const
{
return mIdentifier;
}
inline
void Symbol::identifier(int identifier)
{
mIdentifier=identifier;
}
inline
void Symbol::symbolValue(double symbolValue)
{
mSymbolValue=symbolValue;
}
inline
double Symbol::symbolValue(void)const
{
return mSymbolValue;
}
#endif