mxwcore-wotlk/deps/g3dlite/include/G3D/ParseError.h

63 lines
1.7 KiB
C
Raw Permalink Normal View History

2023-11-07 05:04:30 -05:00
/**
@file ParseError.h
@maintainer Morgan McGuire
@created 2009-11-15
@edited 2009-11-15
Copyright 2000-2009, Morgan McGuire.
All rights reserved.
*/
#ifndef G3D_ParseError_h
#define G3D_ParseError_h
#include "G3D/platform.h"
#include "G3D/g3dmath.h"
#include <string>
namespace G3D {
/** Thrown by TextInput, Any, and other parsers on unexpected input. */
class ParseError {
public:
enum {UNKNOWN = -1};
/** Empty means unknown */
std::string filename;
/** For a binary file, the location of the parse error. -1 if unknown.*/
int64 byte;
/** For a text file, the line number is the line number of start of token which caused the exception. 1 is
the first line of the file. -1 means unknown. Note that you can use
TextInput::Settings::startingLineNumberOffset to shift the effective line
number that is reported by that class.
*/
int line;
/** Character number (in the line) of the start of the token which caused the
exception. 1 is the character in the line. May be -1 if unknown.
*/
int character;
std::string message;
ParseError() : byte(UNKNOWN), line(UNKNOWN), character(UNKNOWN) {}
virtual ~ParseError() {}
ParseError(const std::string& f, int l, int c, const std::string& m) :
filename (f), byte(UNKNOWN), line(l), character(c), message(m) {}
ParseError(const std::string& f, int64 b, const std::string& m) :
filename (f), byte(b), line(UNKNOWN), character(UNKNOWN), message(m) {}
/** If information is known, ends in ": ", otherwise empty */
std::string formatFileInfo() const;
};
}
#endif