Annotation of parser3/src/include/pa_exception.h, revision 1.59
1.10 paf 1: /** @file
1.11 paf 2: Parser: exception decls.
3:
1.55 misha 4: Copyright (c) 2001-2009 ArtLebedev Group (http://www.artlebedev.com)
1.31 paf 5: Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)
1.1 paf 6: */
7:
8: #ifndef PA_EXCEPTION_H
9: #define PA_EXCEPTION_H
1.36 paf 10:
1.59 ! misha 11: static const char * const IDENT_EXCEPTION_H="$Date: 2011-05-25 06:04:22 $";
1.46 misha 12:
1.47 misha 13: const char* const PARSER_RUNTIME = "parser.runtime";
1.52 misha 14: const char* const IMAGE_FORMAT = "image.format";
1.53 misha 15: const char* const PCRE_EXCEPTION_TYPE = "pcre.execute";
1.54 misha 16: const char* const DATE_RANGE_EXCEPTION_TYPE = "date.range";
1.1 paf 17:
1.48 misha 18: const char* const NAME_MUST_BE_STRING = "name must be string";
19: const char* const FILE_NAME_MUST_BE_STRING = "file name must be string";
20: const char* const VALUE_MUST_BE_STRING = "value must be string";
1.49 misha 21: const char* const PARAMETER_MUST_BE_STRING = "parameter must be string";
1.50 misha 22: const char* const COLUMN_NAME_MUST_BE_STRING = "column name must be string";
1.48 misha 23:
24: const char* const FILE_NAME_MUST_NOT_BE_CODE = "file name must not be code";
25: const char* const COORDINATES_MUST_NOT_BE_CODE = "coordinates must not be code";
1.51 misha 26: const char* const FIRST_ARG_MUST_NOT_BE_CODE = "first argument must not be code";
27: const char* const PARAM_MUST_NOT_BE_CODE = "param must not be code";
1.59 ! misha 28: const char* const PARAM_MUST_BE_HASH = "param must be hash";
1.51 misha 29: const char* const MODE_MUST_NOT_BE_CODE = "mode must not be code";
1.55 misha 30: const char* const OPTIONS_MUST_NOT_BE_CODE = "options must not be code";
1.57 misha 31: const char* const OPTIONS_MUST_BE_HASH_NOT_CODE = "options must be hash, not code";
32: const char* const OPTIONS_MUST_BE_HASH = "options must be hash";
1.48 misha 33:
1.57 misha 34: const char* const CALLED_WITH_INVALID_OPTION = "called with invalid option";
1.56 misha 35:
1.39 paf 36: // includes
1.14 parser 37:
1.39 paf 38: #include "pa_memory.h"
39:
40: // forwards
41:
42: class String;
1.14 parser 43:
1.22 paf 44: // defines
45:
1.1 paf 46: class Exception {
47: public:
48:
1.19 paf 49: Exception();
1.15 parser 50: Exception(
1.39 paf 51: const char* atype,
52: const String* aproblem_source,
53: const char* comment_fmt, ...);
1.22 paf 54: Exception(const Exception& src);
1.44 paf 55: operator bool() { return ftype || fproblem_source || fcomment; }
1.22 paf 56: Exception& operator =(const Exception& src);
1.1 paf 57:
1.10 paf 58: /// extracts exception type
1.39 paf 59: const char* type(bool can_be_empty=false) const {
1.35 paf 60: if(can_be_empty)
61: return ftype;
62: else
63: return ftype?ftype:"<no type>";
64: }
1.10 paf 65: /// extracts exception problem_source
1.39 paf 66: const String* problem_source() const;
1.10 paf 67: /// extracts exception comment
1.39 paf 68: const char* comment(bool can_be_empty=false) const {
69: const char* result=fcomment && *fcomment?fcomment:0;
1.35 paf 70: if(can_be_empty)
71: return result;
72: else
73: return result?result:"<no comment>";
74: }
1.1 paf 75:
1.40 paf 76: protected:
1.1 paf 77:
1.39 paf 78: const char* ftype;
79: const String* fproblem_source;
80: char* fcomment;
1.15 parser 81:
1.1 paf 82: };
83:
84: #endif
E-mail: