19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#ifndef SOURCEPOS_H
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define SOURCEPOS_H
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <utils/String8.h>
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <stdio.h>
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectusing namespace android;
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectclass SourcePos
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic:
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String8 file;
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int line;
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    SourcePos(const String8& f, int l);
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    SourcePos(const SourcePos& that);
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    SourcePos();
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    ~SourcePos();
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int error(const char* fmt, ...) const;
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int warning(const char* fmt, ...) const;
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static bool hasErrors();
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static void printErrors(FILE* to);
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project};
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // SOURCEPOS_H
29