1282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski#ifndef SOURCEPOS_H 2282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski#define SOURCEPOS_H 3282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 4282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski#include <utils/String8.h> 5282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski#include <stdio.h> 6282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 7282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiusing namespace android; 8282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 9282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiclass SourcePos 10282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski{ 11282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskipublic: 12282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski String8 file; 13282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski int line; 14282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 15282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski SourcePos(const String8& f, int l); 16282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski SourcePos(const SourcePos& that); 17282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski SourcePos(); 18282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski ~SourcePos(); 19282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 20a01a9374fd386f3a8773528d7a49bc5315492dffAdam Lesinski void error(const char* fmt, ...) const; 21a01a9374fd386f3a8773528d7a49bc5315492dffAdam Lesinski void warning(const char* fmt, ...) const; 22a01a9374fd386f3a8773528d7a49bc5315492dffAdam Lesinski void printf(const char* fmt, ...) const; 23282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 24de7de47fef1dcaa26d553665d89e4d3792325c3fAdam Lesinski bool operator<(const SourcePos& rhs) const; 25de7de47fef1dcaa26d553665d89e4d3792325c3fAdam Lesinski 26282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski static bool hasErrors(); 27282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski static void printErrors(FILE* to); 28282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski}; 29282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 30282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 31282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski#endif // SOURCEPOS_H 32