diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:45 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:45 -0800 |
commit | d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 (patch) | |
tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /tools/aapt/SourcePos.cpp | |
parent | 076357b8567458d4b6dfdcf839ef751634cd2bfb (diff) | |
download | frameworks_base-d83a98f4ce9cfa908f5c54bbd70f03eec07e7553.zip frameworks_base-d83a98f4ce9cfa908f5c54bbd70f03eec07e7553.tar.gz frameworks_base-d83a98f4ce9cfa908f5c54bbd70f03eec07e7553.tar.bz2 |
auto import from //depot/cupcake/@135843
Diffstat (limited to 'tools/aapt/SourcePos.cpp')
-rw-r--r-- | tools/aapt/SourcePos.cpp | 171 |
1 files changed, 0 insertions, 171 deletions
diff --git a/tools/aapt/SourcePos.cpp b/tools/aapt/SourcePos.cpp deleted file mode 100644 index 2761d18..0000000 --- a/tools/aapt/SourcePos.cpp +++ /dev/null @@ -1,171 +0,0 @@ -#include "SourcePos.h" - -#include <stdarg.h> -#include <vector> - -using namespace std; - - -// ErrorPos -// ============================================================================= -struct ErrorPos -{ - String8 file; - int line; - String8 error; - bool fatal; - - ErrorPos(); - ErrorPos(const ErrorPos& that); - ErrorPos(const String8& file, int line, const String8& error, bool fatal); - ~ErrorPos(); - bool operator<(const ErrorPos& rhs) const; - bool operator==(const ErrorPos& rhs) const; - ErrorPos& operator=(const ErrorPos& rhs); - - void print(FILE* to) const; -}; - -static vector<ErrorPos> g_errors; - -ErrorPos::ErrorPos() - :line(-1), fatal(false) -{ -} - -ErrorPos::ErrorPos(const ErrorPos& that) - :file(that.file), - line(that.line), - error(that.error), - fatal(that.fatal) -{ -} - -ErrorPos::ErrorPos(const String8& f, int l, const String8& e, bool fat) - :file(f), - line(l), - error(e), - fatal(fat) -{ -} - -ErrorPos::~ErrorPos() -{ -} - -bool -ErrorPos::operator<(const ErrorPos& rhs) const -{ - if (this->file < rhs.file) return true; - if (this->file == rhs.file) { - if (this->line < rhs.line) return true; - if (this->line == rhs.line) { - if (this->error < rhs.error) return true; - } - } - return false; -} - -bool -ErrorPos::operator==(const ErrorPos& rhs) const -{ - return this->file == rhs.file - && this->line == rhs.line - && this->error == rhs.error; -} - -ErrorPos& -ErrorPos::operator=(const ErrorPos& rhs) -{ - this->file = rhs.file; - this->line = rhs.line; - this->error = rhs.error; - return *this; -} - -void -ErrorPos::print(FILE* to) const -{ - const char* type = fatal ? "ERROR" : "WARNING"; - - if (this->line >= 0) { - fprintf(to, "%s:%d: %s %s\n", this->file.string(), this->line, type, this->error.string()); - } else { - fprintf(to, "%s: %s %s\n", this->file.string(), type, this->error.string()); - } -} - -// SourcePos -// ============================================================================= -SourcePos::SourcePos(const String8& f, int l) - : file(f), line(l) -{ -} - -SourcePos::SourcePos(const SourcePos& that) - : file(that.file), line(that.line) -{ -} - -SourcePos::SourcePos() - : file("???", 0), line(-1) -{ -} - -SourcePos::~SourcePos() -{ -} - -int -SourcePos::error(const char* fmt, ...) const -{ - int retval=0; - char buf[1024]; - va_list ap; - va_start(ap, fmt); - retval = vsnprintf(buf, sizeof(buf), fmt, ap); - va_end(ap); - char* p = buf + retval - 1; - while (p > buf && *p == '\n') { - *p = '\0'; - p--; - } - g_errors.push_back(ErrorPos(this->file, this->line, String8(buf), true)); - return retval; -} - -int -SourcePos::warning(const char* fmt, ...) const -{ - int retval=0; - char buf[1024]; - va_list ap; - va_start(ap, fmt); - retval = vsnprintf(buf, sizeof(buf), fmt, ap); - va_end(ap); - char* p = buf + retval - 1; - while (p > buf && *p == '\n') { - *p = '\0'; - p--; - } - ErrorPos(this->file, this->line, String8(buf), false).print(stderr); - return retval; -} - -bool -SourcePos::hasErrors() -{ - return g_errors.size() > 0; -} - -void -SourcePos::printErrors(FILE* to) -{ - vector<ErrorPos>::const_iterator it; - for (it=g_errors.begin(); it!=g_errors.end(); it++) { - it->print(to); - } -} - - - |