# HG changeset patch
# User Balazs Dezso <deba@inf.elte.hu>
# Date 1215521864 -7200
# Node ID 5893bacaa7202617437685ae1a70efc029779e9e
# Parent 65cba1032f90cd157a56b911b4917920b07fc546
Set inline functions in header files (ticket #115)
diff -r 65cba1032f90 -r 5893bacaa720 lemon/lgf_reader.h
a
|
b
|
|
195 | 195 | } |
196 | 196 | }; |
197 | 197 | |
198 | | bool isWhiteSpace(char c) { |
| 198 | inline bool isWhiteSpace(char c) { |
199 | 199 | return c == ' ' || c == '\t' || c == '\v' || |
200 | 200 | c == '\n' || c == '\r' || c == '\f'; |
201 | 201 | } |
202 | 202 | |
203 | | bool isOct(char c) { |
| 203 | inline bool isOct(char c) { |
204 | 204 | return '0' <= c && c <='7'; |
205 | 205 | } |
206 | 206 | |
207 | | int valueOct(char c) { |
| 207 | inline int valueOct(char c) { |
208 | 208 | LEMON_ASSERT(isOct(c), "The character is not octal."); |
209 | 209 | return c - '0'; |
210 | 210 | } |
211 | 211 | |
212 | | bool isHex(char c) { |
| 212 | inline bool isHex(char c) { |
213 | 213 | return ('0' <= c && c <= '9') || |
214 | 214 | ('a' <= c && c <= 'z') || |
215 | 215 | ('A' <= c && c <= 'Z'); |
216 | 216 | } |
217 | 217 | |
218 | | int valueHex(char c) { |
| 218 | inline int valueHex(char c) { |
219 | 219 | LEMON_ASSERT(isHex(c), "The character is not hexadecimal."); |
220 | 220 | if ('0' <= c && c <= '9') return c - '0'; |
221 | 221 | if ('a' <= c && c <= 'z') return c - 'a' + 10; |
222 | 222 | return c - 'A' + 10; |
223 | 223 | } |
224 | 224 | |
225 | | bool isIdentifierFirstChar(char c) { |
| 225 | inline bool isIdentifierFirstChar(char c) { |
226 | 226 | return ('a' <= c && c <= 'z') || |
227 | 227 | ('A' <= c && c <= 'Z') || c == '_'; |
228 | 228 | } |
229 | 229 | |
230 | | bool isIdentifierChar(char c) { |
| 230 | inline bool isIdentifierChar(char c) { |
231 | 231 | return isIdentifierFirstChar(c) || |
232 | 232 | ('0' <= c && c <= '9'); |
233 | 233 | } |
234 | 234 | |
235 | | char readEscape(std::istream& is) { |
| 235 | inline char readEscape(std::istream& is) { |
236 | 236 | char c; |
237 | 237 | if (!is.get(c)) |
238 | 238 | throw DataFormatError("Escape format error"); |
… |
… |
|
284 | 284 | } |
285 | 285 | } |
286 | 286 | |
287 | | std::istream& readToken(std::istream& is, std::string& str) { |
| 287 | inline std::istream& readToken(std::istream& is, std::string& str) { |
288 | 288 | std::ostringstream os; |
289 | 289 | |
290 | 290 | char c; |
diff -r 65cba1032f90 -r 5893bacaa720 lemon/lgf_writer.h
a
|
b
|
|
225 | 225 | } |
226 | 226 | }; |
227 | 227 | |
228 | | bool isWhiteSpace(char c) { |
| 228 | inline bool isWhiteSpace(char c) { |
229 | 229 | return c == ' ' || c == '\t' || c == '\v' || |
230 | 230 | c == '\n' || c == '\r' || c == '\f'; |
231 | 231 | } |
232 | 232 | |
233 | | bool isEscaped(char c) { |
| 233 | inline bool isEscaped(char c) { |
234 | 234 | return c == '\\' || c == '\"' || c == '\'' || |
235 | 235 | c == '\a' || c == '\b'; |
236 | 236 | } |
237 | 237 | |
238 | | static void writeEscape(std::ostream& os, char c) { |
| 238 | inline static void writeEscape(std::ostream& os, char c) { |
239 | 239 | switch (c) { |
240 | 240 | case '\\': |
241 | 241 | os << "\\\\"; |
… |
… |
|
276 | 276 | } |
277 | 277 | } |
278 | 278 | |
279 | | bool requireEscape(const std::string& str) { |
| 279 | inline bool requireEscape(const std::string& str) { |
280 | 280 | if (str.empty() || str[0] == '@') return true; |
281 | 281 | std::istringstream is(str); |
282 | 282 | char c; |
… |
… |
|
288 | 288 | return false; |
289 | 289 | } |
290 | 290 | |
291 | | std::ostream& writeToken(std::ostream& os, const std::string& str) { |
| 291 | inline std::ostream& writeToken(std::ostream& os, const std::string& str) { |
292 | 292 | |
293 | 293 | if (requireEscape(str)) { |
294 | 294 | os << '\"'; |