Google
Web alhem.net
Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members

Sequence Class Reference

#include <Sequence.h>

Inheritance diagram for Sequence:

Inheritance graph
[legend]
Collaboration diagram for Sequence:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Sequence ()
 Sequence (token_v &)
virtual ~Sequence ()
void SetFile (const std::string &file)
std::string GetFile ()
void SetLine (int line)
int GetLine ()
void SetPos (int pos)
int GetPos ()
void SetExtern (bool x)
bool IsExtern ()
void SetParent (Scope *p)
ScopeGetParent ()
virtual void Display ()
void Tab ()
std::string GetExpr ()
void xmlsafestr (std::string &)
TokenGetFirstToken ()
token_v::iterator Begin ()
token_v::iterator End ()

Private Attributes

std::string m_file
int m_line
int m_pos
bool m_bExtern
token_v m_tokens
Scopem_parent

Constructor & Destructor Documentation

Sequence::Sequence  ) 
 

File ......... Sequence.cpp Published .... 2004-05-17 Author ....... grymse@alhem.net

Definition at line 36 of file Sequence.cpp.

00037 :m_file("")
00038 ,m_line(0)
00039 ,m_pos(0)
00040 ,m_bExtern(false)
00041 ,m_parent(NULL)
00042 {
00043 }

Sequence::Sequence token_v  ) 
 

Definition at line 46 of file Sequence.cpp.

References token_v.

00047 :m_file("")
00048 ,m_line(0)
00049 ,m_pos(0)
00050 ,m_bExtern(false)
00051 ,m_tokens(tokens)
00052 ,m_parent(NULL)
00053 {
00054 }

Sequence::~Sequence  )  [virtual]
 

Definition at line 57 of file Sequence.cpp.

00058 {
00059         while (m_tokens.size())
00060         {
00061                 token_v::iterator it = m_tokens.begin();
00062                 Token *t = *it;
00063                 delete t;
00064                 m_tokens.erase(it);
00065         }
00066 }


Member Function Documentation

token_v::iterator Sequence::Begin  )  [inline]
 

Definition at line 55 of file Sequence.h.

00055 { return m_tokens.begin(); }

void Sequence::Display  )  [virtual]
 

Reimplemented in Scope, and Statement.

Definition at line 69 of file Sequence.cpp.

References GetExpr().

00070 {
00071         return;
00072         printf("%s",GetExpr().c_str());
00073 }

token_v::iterator Sequence::End  )  [inline]
 

Definition at line 56 of file Sequence.h.

00056 { return m_tokens.end(); }

std::string Sequence::GetExpr  ) 
 

Definition at line 87 of file Sequence.cpp.

References COMMENT, config, and xmlsafestr().

Referenced by Statement::Display(), Display(), and Scope::Display().

00088 {
00089         std::string tmp;
00090         bool first = true;
00091         for (token_v::iterator it = m_tokens.begin(); it != m_tokens.end(); it++)
00092         {
00093                 Token *t = *it;
00094                 if (t -> GetCode() != COMMENT || first)
00095                 {
00096                         std::string str = t -> GetVal();
00097 //                      if (tmp.size() && (isalpha(str[0]) || str[0] == '<' || str[0] == '_' || str[0] == 34 || str[0] == '~') )
00098 //                              tmp += " ";
00099                         tmp += str;
00100                 }
00101                 first = false;
00102         }
00103         if (config["-xml"] == "true")
00104                 xmlsafestr(tmp);
00105         return tmp;
00106 }

std::string Sequence::GetFile  )  [inline]
 

Definition at line 38 of file Sequence.h.

References m_file.

Referenced by Statement::Display(), and Scope::Display().

00038 { return m_file; }

Token * Sequence::GetFirstToken  ) 
 

Definition at line 139 of file Sequence.cpp.

Referenced by Scope::Trail().

00140 {
00141         if (!m_tokens.size())
00142                 return NULL;
00143         token_v::iterator it = m_tokens.begin();
00144         Token *t = *it;
00145         return t;
00146 }

int Sequence::GetLine  )  [inline]
 

Definition at line 40 of file Sequence.h.

Referenced by Statement::Display(), and Scope::Display().

00040 { return m_line; }

Scope* Sequence::GetParent  )  [inline]
 

Definition at line 47 of file Sequence.h.

References m_parent.

Referenced by Scope::Display(), and Tab().

00047 { return m_parent; }

int Sequence::GetPos  )  [inline]
 

Definition at line 42 of file Sequence.h.

00042 { return m_pos; }

bool Sequence::IsExtern  )  [inline]
 

Definition at line 44 of file Sequence.h.

References m_bExtern.

Referenced by Statement::Display(), and Scope::Display().

00044 { return m_bExtern; }

void Sequence::SetExtern bool  x  )  [inline]
 

Definition at line 43 of file Sequence.h.

References m_bExtern.

00043 { m_bExtern = x; }

void Sequence::SetFile const std::string &  file  )  [inline]
 

Definition at line 37 of file Sequence.h.

References m_file.

00037 { m_file = file; }

void Sequence::SetLine int  line  )  [inline]
 

Definition at line 39 of file Sequence.h.

00039 { m_line = line; }

void Sequence::SetParent Scope p  )  [inline]
 

Definition at line 46 of file Sequence.h.

References m_parent.

00046 { m_parent = p; }

void Sequence::SetPos int  pos  )  [inline]
 

Definition at line 41 of file Sequence.h.

00041 { m_pos = pos; }

void Sequence::Tab  ) 
 

Definition at line 76 of file Sequence.cpp.

References GetParent().

Referenced by Statement::Display(), and Scope::Display().

00077 {
00078         Scope *p = GetParent();
00079         while (p && p -> GetParent() )
00080         {
00081                 printf("\t");
00082                 p = p -> GetParent();
00083         }
00084 }

void Sequence::xmlsafestr std::string &   ) 
 

Definition at line 109 of file Sequence.cpp.

Referenced by GetExpr(), and Scope::GetTrail().

00110 {
00111         std::string str;
00112         for (size_t i = 0; i < s.size(); i++)
00113         {
00114                 switch (s[i])
00115                 {
00116                 case '&':
00117                         str += "&amp;";
00118                         break;
00119                 case '<':
00120                         str += "&lt;";
00121                         break;
00122                 case '>':
00123                         str += "&gt;";
00124                         break;
00125                 case '"':
00126                         str += "&quot;";
00127                         break;
00128                 case '\'':
00129                         str += "&apos;";
00130                         break;
00131                 default:
00132                         str += s[i];
00133                 }
00134         }
00135         s = str;
00136 }


Member Data Documentation

bool Sequence::m_bExtern [private]
 

Definition at line 62 of file Sequence.h.

Referenced by IsExtern(), and SetExtern().

std::string Sequence::m_file [private]
 

Definition at line 59 of file Sequence.h.

Referenced by GetFile(), and SetFile().

int Sequence::m_line [private]
 

Definition at line 60 of file Sequence.h.

Scope* Sequence::m_parent [private]
 

Definition at line 64 of file Sequence.h.

Referenced by GetParent(), and SetParent().

int Sequence::m_pos [private]
 

Definition at line 61 of file Sequence.h.

token_v Sequence::m_tokens [private]
 

Definition at line 63 of file Sequence.h.


The documentation for this class was generated from the following files:
Generated for My SDL C++ Gui by doxygen 1.3.6