15 #ifndef OPENHRP_UTIL_EASYSCANNER_H_INCLUDED
16 #define OPENHRP_UTIL_EASYSCANNER_H_INCLUDED
23 #include <boost/shared_ptr.hpp>
40 std::string getFullMessage();
44 T_NONE = 0, T_SPACE, T_ALPHABET, T_INTEGER, T_DOUBLE,
T_WORD,
66 SymbolMap::iterator p = symbols->find(symbol);
67 return (p != symbols->end()) ? p->second : 0;
71 void setCommentChar(
char cc);
73 void setLineOriented(
bool on);
74 void setQuoteChar(
char qc);
75 void setWhiteSpaceChar(
char ws);
77 void loadFile(
const std::string&
filename);
79 void setText(
const char* text,
int len);
81 void setLineNumberOffset(
int offset);
84 defaultErrorMessage = message;
96 bool readChar(
int chara);
114 return readString0(delimiterChar);
117 bool readString(
const char* str);
120 return readString(str.c_str());
123 bool readQuotedString(
bool allowNoQuotedWord =
false);
125 bool readUnquotedTextBlock();
128 bool readSymbol(
int id);
132 return (*text ==
'\0');
143 return readLF0() ? true : (*text ==
'\0');
150 bool skipBlankLines();
154 void throwException(
const char* message);
155 void throwException(
const std::string& message);
162 if(!readInt()) throwException(message);
170 if(!readDouble()) throwException(message);
179 throwException(message);
186 if(!readChar(chara)) throwException(message);
193 if(!readWord()) throwException(message);
202 if(!readString()) throwException(message);
207 if(!readQuotedString()) throwException(message);
215 if(!readSymbol()) throwException(message);
222 if(!readLF()) throwException(message);
226 if(!readLFEOF()) throwException(message);
244 int extractQuotedString();
246 inline void skipToLineEnd();
249 bool readString0(
const int delimiterChar);