00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef TEUCHOS_STRUTILS_H
00030 #define TEUCHOS_STRUTILS_H
00031
00036 #include "Teuchos_ConfigDefs.hpp"
00037
00038 #include "Teuchos_Utils.hpp"
00039 #include "Teuchos_Array.hpp"
00040
00041 namespace Teuchos
00042 {
00047 class StrUtils
00048 {
00049 public:
00051 static Array<string> readFile(istream& is, char comment);
00052
00055 static Array<string> splitIntoLines(const string& input);
00056
00058 static Array<Array<string> > tokenizeFile(istream& is, char comment);
00059
00061 static bool readLine(istream& is, string& line);
00062
00063 static Array<string> stringTokenizer(const string& str);
00064
00065 static Array<string> getTokensPlusWhitespace(const string& str);
00066
00067 static string reassembleFromTokens(const Array<string>& tokens, int iStart=0);
00068
00069 static void splitList(const string& bigstring, Array<string>& elements);
00070
00071 static int findNextWhitespace(const string& str, int offset);
00072
00073 static int findNextNonWhitespace(const string& str, int offset);
00074
00075
00076 static string varSubstitute(const string& rawLine,
00077 const string& varName,
00078 const string& varValue);
00079
00080 static string varTableSubstitute(const string& rawLine,
00081 const Array<string>& varNames,
00082 const Array<string>& varValues);
00083
00084 static string envSubstitute(const string& line);
00085
00088 static string before(const string& str, const string& sub);
00089
00092 static string before(const string& str, char sub);
00093
00096 static string after(const string& str, const string& sub);
00097
00100 static int find(const string& str, const string& sub);
00101
00103 static bool isWhite(const string& str);
00104
00106 static string fixUnprintableCharacters(const string& str);
00107
00109 static bool isNonWhite(const string& str) {return !isWhite(str);}
00110
00116 static string between(const string& str, const string& begin,
00117 const string& end, string& front, string& back);
00118
00122 static string subString(const string& str, int begin, int end);
00123
00124 static string readFromStream(istream& is);
00125
00127 static string allCaps(const string& str);
00128
00130 static double atof(const string& str);
00131
00133 static int atoi(const string& str);
00134 };
00135
00136
00137
00138 }
00139
00140 #endif