1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 #ifndef _RSCERROR_H 24 #define _RSCERROR_H 25 26 #ifndef _TOOLS_SOLAR_H 27 #include <tools/solar.h> 28 #endif 29 30 /****************** D E F I N I T I O N S ********************************/ 31 /******************* R e t u r n E r r o r s *******************/ 32 #define ERR_OK 0xFFFFFFFF 33 34 #define ERR_ERROR 0x0100 35 #define ERR_UNKNOWN_METHOD 0x0101 // Return 36 #define ERR_OPENFILE 0x0102 // Return 37 #define ERR_NOCHAR 0x0103 // Return 38 #define ERR_NORSCINST 0x0104 // Return 39 #define ERR_USAGE 0x0105 // 40 #define ERR_NOINPUT 0x0106 // Return 41 #define ERR_UNKNOWNSW 0x0107 // 42 #define ERR_REFTODEEP 0x0108 // Return 43 #define ERR_FILEFORMAT 0x0109 // Return 44 #define ERR_FILESIZE 0x010A // Return 45 #define ERR_RENAMEFILE 0x010B // Return 46 #define ERR_NOIMAGE 0x010C // Return 47 48 #define ERR_RSCRANGE 0x0200 // Return 49 #define ERR_RSCRANGE_OUTDEFSET (ERR_RSCRANGE +1 ) 50 51 #define ERR_RSCENUM 0x0210 // Return 52 #define ERR_RSCFLAG 0x0220 // Return 53 #define ERR_RSCCONT 0x0240 // Return 54 #define ERR_CONT_INVALIDPOS (ERR_RSCCONT +1 ) // Return 55 #define ERR_CONT_INVALIDTYPE (ERR_RSCCONT +2 ) // Return 56 57 #define ERR_RSCCMPED 0x0250 58 #define ERR_RSCINST 0x0260 59 #define ERR_RSCINST_NOVARNAME (ERR_RSCINST +1 ) // Return 60 #define ERR_RSCINST_RESERVEDNAME (ERR_RSCINST +2 ) // Return 61 62 #define ERR_LEX 0x0270 63 #define ERR_YACC 0x0280 // 64 #define ERR_DOUBLEID (ERR_YACC +1 ) // 65 #define ERR_FALSETYPE (ERR_YACC +2 ) // 66 #define ERR_NOVARIABLENAME (ERR_YACC +3 ) // 67 #define ERR_USHORTRANGE (ERR_YACC +4 ) // 68 #define ERR_IDRANGE (ERR_YACC +5 ) // 69 #define ERR_NOCOPYOBJ (ERR_YACC +6 ) // 70 #define ERR_REFNOTALLOWED (ERR_YACC +7 ) // Return 71 #define ERR_DOUBLEDEFINE (ERR_YACC +8 ) // 72 #define ERR_COPYNOTALLOWED (ERR_YACC +9 ) // 73 #define ERR_IDEXPECTED (ERR_YACC +10) // 74 #define ERR_ZERODIVISION (ERR_YACC +11) // 75 #define ERR_PRAGMA (ERR_YACC +12) // 76 #define ERR_DECLAREDEFINE (ERR_YACC +13) // 77 #define ERR_NOTUPELNAME (ERR_YACC +14) // 78 #define ERR_NOTYPE (ERR_YACC +15) // 79 80 #define ERR_RSCARRAY 0x02A0 // Return 81 #define ERR_ARRAY_INVALIDINDEX (ERR_RSCARRAY +1 ) // Return 82 83 #define ERR_ERROREND 0x1000 84 85 #define ERR_WARNINGSTART 0x1001 86 #define WRN_LOCALID (ERR_WARNINGSTART +1 ) 87 #define WRN_GLOBALID (ERR_WARNINGSTART +2 ) 88 #define WRN_SUBINMEMBER (ERR_WARNINGSTART +3 ) 89 #define WRN_CONT_NOID (ERR_WARNINGSTART +4 ) 90 #define WRN_STR_REFNOTFOUND (ERR_WARNINGSTART +5 ) 91 #define WRN_MGR_REFNOTFOUND (ERR_WARNINGSTART +6 ) 92 #define WRN_CONT_DOUBLEID (ERR_WARNINGSTART +7 ) 93 94 #define ERR_WARNINGEND 0x2000 95 96 class ERRTYPE { 97 sal_uInt32 nError; 98 public: 99 ERRTYPE() { nError = ERR_OK; } 100 ERRTYPE( sal_uInt32 nErr ) { nError = nErr; } 101 ERRTYPE( const ERRTYPE & rErr ) { nError = rErr.nError; }; 102 ERRTYPE& operator = ( const ERRTYPE & rError ); 103 operator sal_uInt32() const { return( nError ); } 104 sal_Bool IsError() const { return( nError <= ERR_ERROREND ); } 105 sal_Bool IsOk() const { return( !IsError() ); } 106 sal_Bool IsWarning() const { 107 return( nError >= ERR_WARNINGSTART && nError <= ERR_WARNINGEND ); 108 }; 109 void Clear(){ nError = ERR_OK; } 110 }; 111 112 /****************** R s c E r r o r **************************************/ 113 class RscId; 114 class RscTop; 115 116 enum RscVerbosity 117 { 118 RscVerbositySilent = 0, 119 RscVerbosityNormal = 1, 120 RscVerbosityVerbose = 2 121 }; 122 123 class RscError 124 { 125 FILE * fListing; 126 RscVerbosity m_verbosity; 127 128 void WriteError( const ERRTYPE& rError, const char * pMessage ); 129 void StdLstOut( const char * pStr ); 130 void StdLstErr( const char * pStr ); 131 void ErrorFormat( const ERRTYPE& rError, RscTop * pClass, 132 const RscId & aId ); 133 public: 134 sal_uInt32 nErrors;// Anzahl der Fehler 135 RscError( RscVerbosity _verbosity ) { 136 fListing = NULL; 137 nErrors = 0; 138 m_verbosity = _verbosity; 139 }; 140 void SetListFile( FILE * fList ){ 141 fListing = fList; 142 }; 143 FILE * GetListFile(){ 144 return fListing; 145 }; 146 RscVerbosity GetVerbosity() const { return m_verbosity; } 147 virtual void StdOut( const char *, const RscVerbosity _verbosityLevel = RscVerbosityNormal ); 148 virtual void StdErr( const char * ); 149 virtual void LstOut( const char * ); 150 virtual void Error( const ERRTYPE& rError, RscTop* pClass, const RscId &aId, 151 const char * pMessage = NULL ); 152 // Dieser Fehler sollte nur im Compilermodus auftreten, 153 // das Programm wird mit exit() verlassen 154 virtual void FatalError( const ERRTYPE& rError, const RscId &aId, 155 const char * pMessage = NULL ); 156 }; 157 158 #endif // _RSCERROR_H 159