Commit 7eb9753c by Aaron Leung

Const correctness!

parent 193110d6
...@@ -5,7 +5,44 @@ namespace Sass { ...@@ -5,7 +5,44 @@ namespace Sass {
Token::Token(const char* begin, const char* end) Token::Token(const char* begin, const char* end)
: begin(begin), end(end) { } : begin(begin), end(end) { }
void Token::stream_unquoted(std::stringstream& buf) const { string Token::unquote() const {
string result;
const char* p = begin;
if (*begin == '\'' || *begin == '"') {
++p;
while (p < end) {
if (*p == '\\') {
switch (*(++p)) {
case 'n': result += '\n'; break;
case 't': result += '\t'; break;
case 'b': result += '\b'; break;
case 'r': result += '\r'; break;
case 'f': result += '\f'; break;
case 'v': result += '\v'; break;
case 'a': result += '\a'; break;
case '\\': result += '\\'; break;
default: result += *p; break;
}
}
else if (p == end - 1) {
return result;
}
else {
result += *p;
}
++p;
}
return result;
}
else {
while (p < end) {
result += *(p++);
}
return result;
}
}
void Token::unquote_to_stream(std::stringstream& buf) const {
const char* p = begin; const char* p = begin;
if (*begin == '\'' || *begin == '"') { if (*begin == '\'' || *begin == '"') {
++p; ++p;
......
...@@ -15,7 +15,8 @@ namespace Sass { ...@@ -15,7 +15,8 @@ namespace Sass {
inline operator string() const inline operator string() const
{ return string(begin, end - begin); } { return string(begin, end - begin); }
void stream_unquoted(std::stringstream& buf) const; string unquote() const;
void unquote_to_stream(std::stringstream& buf) const;
bool operator<(const Token& rhs) const; bool operator<(const Token& rhs) const;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment