List of all members.
Detailed Description
Definition at line 80 of file columns.
Constructor & Destructor Documentation
inlib::columns::parser::parser |
( |
| ) |
[inline] |
virtual inlib::columns::parser::~parser |
( |
| ) |
[inline, virtual] |
inlib::columns::parser::parser |
( |
const parser & |
a_from | ) |
[inline, protected] |
Member Function Documentation
void inlib::columns::parser::dump |
( |
std::ostream & |
a_out | ) |
[inline] |
bool inlib::columns::parser::parse |
( |
const std::string & |
a_s | ) |
[inline] |
Definition at line 89 of file columns.
{
m_top.clear();
tree* prev = &m_top;
{tree tmp(0);
std::string s;
for(std::string::const_iterator it=a_s.begin();;++it) {
if(it==a_s.end()) {
if(s.size()) {
tmp.m_dcl = s;
tmp.m_parent = prev;
prev->m_sub.push_back(tmp);
s.clear();
}
tmp.clear();
break;
} else {
const char& c = *it;
if(c==',') {
if(s.size()) {
tmp.m_dcl = s;
tmp.m_parent = prev;
prev->m_sub.push_back(tmp);
s.clear();
}
tmp.clear();
} else if(c=='{') {
tmp.clear();
if(s.size()) {
tmp.m_dcl = s;
s.clear();
}
tmp.m_parent = prev;
prev->m_sub.push_back(tmp);
prev = &(prev->m_sub.back());
} else if(c=='}') {
if(s.size()) {
tmp.m_dcl = s;
tmp.m_parent = prev;
prev->m_sub.push_back(tmp);
s.clear();
}
tmp.clear();
prev = prev->m_parent;
if(!prev) return false;
} else {
s += c;
}
}
}}
return true;
}
Member Data Documentation
The documentation for this class was generated from the following file:
- /Users/barrand/private/dev/softinex/old/inexlib-1.2/inlib/inlib/columns