blob: f6e48c96237d892df0671bd2fc6515c96a5760a9 [file] [log] [blame]
.\\\ WRITER 6 \\\
S:\APP\SW5\STARLAB.LAY
R:\SW55N\TREIBER\PS.GPM
12
00000
00010
01394
00001
00001
00001
00002
00002
00000
00000
00000
00000
Markus Meyer
Spezifikation
Rsc-Compiler
Fehlerbehandlung
0
16836
11338
0
0
JA
3
75
0
20
0
0
0
0
0
0
0
JA
9
20
4
Helvetica 14 Pt
H1
97
20
0
Helvetica 12 Pt
H2
65
23
0
Helvetia 10 Pt
H3
65
20
0
Courier 10 Pt
C1
1
23
0
Helvetica 14 Pt Fett
F1
65
27
2
Helvetica 12 Pt Fett
F2
65
23
2
Helvetia 10 Pt Fett
F3
65
20
0
Tasten
T1
129
27
0
Grundschrift
GA
97
20
0
Grund - Absatzlayout V1.5-LSLP8
GA
0
0
0
0
9
97
20
0
1
0
1
NEIN
NEIN
NEIN
240
0
0
16
0
0
0
0
0
0
0
NEIN
13
576
0
0
1152
0
0
1728
0
0
2304
0
0
2880
0
0
3456
0
0
4032
0
0
4608
0
0
5184
0
0
5760
0
0
6336
0
0
6912
0
0
7488
0
0
Grundabsatzlayout-rechtsbndig
GR
0
0
0
0
9
35
20
0
2
0
1
NEIN
NEIN
NEIN
240
0
0
16
0
0
0
0
0
0
0
NEIN
13
576
0
0
1152
0
0
1728
0
0
2304
0
0
2880
0
0
3456
0
0
4032
0
0
4608
0
0
5184
0
0
5760
0
0
6336
0
0
6912
0
0
7488
0
0
Listing
LI
0
0
0
0
0
1
23
0
1
0
1
NEIN
NEIN
NEIN
240
0
0
16
0
0
0
0
0
0
0
NEIN
13
576
0
0
1152
0
0
1728
0
0
2304
0
0
2880
0
0
3456
0
0
4032
0
0
4608
0
0
5184
0
0
5760
0
0
6336
0
0
6912
0
0
7488
0
0
šberschrift
U0
0
0
0
0
5
35
28
2
1
0
1
NEIN
NEIN
JA
240
0
0
16
0
0
0
0
0
0
0
NEIN
13
576
0
0
1152
0
0
1728
0
0
2304
0
0
2880
0
0
3456
0
0
4032
0
0
4608
0
0
5184
0
0
5760
0
0
6336
0
0
6912
0
0
7488
0
0
šberschrift X.
U1
0
0
0
0
5
35
28
2
1
0
1
NEIN
NEIN
JA
240
1
0
16
0
0
0
0
0
0
0
NEIN
13
576
0
0
1152
0
0
1728
0
0
2304
0
0
2880
0
0
3456
0
0
4032
0
0
4608
0
0
5184
0
0
5760
0
0
6336
0
0
6912
0
0
7488
0
0
šberschrift X.X.
U2
0
0
0
0
6
35
24
2
1
0
1
NEIN
NEIN
JA
240
2
0
16
0
0
0
0
0
0
0
NEIN
13
576
0
0
1152
0
0
1728
0
0
2304
0
0
2880
0
0
3456
0
0
4032
0
0
4608
0
0
5184
0
0
5760
0
0
6336
0
0
6912
0
0
7488
0
0
šberschrift X.X.X.
U3
0
0
0
0
6
35
20
2
1
0
1
NEIN
NEIN
JA
240
3
0
16
0
0
0
0
0
0
0
NEIN
13
576
0
0
1152
0
0
1728
0
0
2304
0
0
2880
0
0
3456
0
0
4032
0
0
4608
0
0
5184
0
0
5760
0
0
6336
0
0
6912
0
0
7488
0
0
šberschrift X.X.X.X.
U4
0
0
0
0
7
35
20
0
1
0
1
NEIN
NEIN
NEIN
240
4
0
16
0
0
0
0
0
0
0
NEIN
13
576
0
0
1152
0
0
1728
0
0
2304
0
0
2880
0
0
3456
0
0
4032
0
0
4608
0
0
5184
0
0
5760
0
0
6336
0
0
6912
0
0
7488
0
0
šberschrift X.X.X.X.X.
U5
0
0
0
0
7
35
20
0
1
0
1
NEIN
NEIN
NEIN
240
5
0
16
0
0
0
0
0
0
0
NEIN
13
576
0
0
1152
0
0
1728
0
0
2304
0
0
2880
0
0
3456
0
0
4032
0
0
4608
0
0
5184
0
0
5760
0
0
6336
0
0
6912
0
0
7488
0
0
Einrckung 4 Sp / 4 Sp
E1
576
576
0
0
9
35
20
0
1
0
1
NEIN
NEIN
NEIN
240
0
0
16
0
0
0
0
0
0
0
NEIN
13
576
0
0
1152
0
0
1728
0
0
2304
0
0
2880
0
0
3456
0
0
4032
0
0
4608
0
0
5184
0
0
5760
0
0
6336
0
0
6912
0
0
7488
0
0
Einrckung 8 Sp / 8 Sp
E2
1150
1150
0
0
9
35
20
0
1
0
1
NEIN
NEIN
NEIN
240
0
0
16
0
0
0
0
0
0
0
NEIN
13
576
0
0
1152
0
0
1728
0
0
2304
0
0
2880
0
0
3456
0
0
4032
0
0
4608
0
0
5184
0
0
5760
0
0
6336
0
0
6912
0
0
7488
0
0
Einrckung 0 Sp / 4 Sp
E3
0
564
0
0
9
35
20
0
1
0
1
NEIN
NEIN
NEIN
240
0
0
16
0
0
0
0
0
0
0
NEIN
13
576
0
0
1152
0
0
1728
0
0
2304
0
0
2880
0
0
3456
0
0
4032
0
0
4608
0
0
5184
0
0
5760
0
0
6336
0
0
6912
0
0
7488
0
0
Einrckung 4 Sp / 8 Sp
E4
564
1150
0
0
9
35
20
0
1
0
1
NEIN
NEIN
NEIN
240
0
0
16
0
0
0
0
0
0
0
NEIN
13
576
0
0
1152
0
0
1728
0
0
2304
0
0
2880
0
0
3456
0
0
4032
0
0
4608
0
0
5184
0
0
5760
0
0
6336
0
0
6912
0
0
7488
0
0
Funktionsparameter
FP
0
2891
0
0
9
35
20
0
1
0
1
NEIN
NEIN
NEIN
240
0
0
16
0
0
0
0
0
0
0
NEIN
13
576
0
0
1152
0
0
1728
0
0
2304
0
0
2880
0
0
3456
0
0
4032
0
0
4608
0
0
5184
0
0
5760
0
0
6336
0
0
6912
0
0
7488
0
0
Inhaltsverzeichnis
IV
0
0
0
0
9
35
20
0
1
0
1
NEIN
NEIN
NEIN
240
0
0
16
0
0
0
0
0
0
0
NEIN
1
7653
0
0
Stichwortverzeichnis
SV
0
0
0
0
9
35
20
0
1
141
1
JA
NEIN
NEIN
240
0
0
16
0
0
0
0
0
0
0
NEIN
1
3744
1
0
Fettschrift einzeilig
F1
0
0
0
0
7
65
20
2
1
0
1
NEIN
NEIN
NEIN
240
0
0
16
0
0
0
0
0
0
0
NEIN
13
576
0
0
1152
0
0
1728
0
0
2304
0
0
2880
0
0
3456
0
0
4032
0
0
4608
0
0
5184
0
0
5760
0
0
6336
0
0
6912
0
0
7488
0
0
Punktliste
PL
0
564
0
0
9
35
20
0
1
0
1
NEIN
NEIN
NEIN
240
0
0
16
0
0
0
0
0
0
0
NEIN
13
566
0
0
1133
0
0
1728
0
0
2304
0
0
2880
0
0
3456
0
0
4032
0
0
4608
0
0
5184
0
0
5760
0
0
6336
0
0
6912
0
0
7488
0
0
Fuázeile
FZ
0
0
0
0
3
97
20
2
1
0
1
NEIN
NEIN
NEIN
240
0
0
16
0
0
0
0
0
0
0
NEIN
1
7200
1
0
Kopfzeile
KZ
0
0
0
0
3
97
20
2
1
0
1
NEIN
NEIN
NEIN
240
0
0
16
0
0
0
0
0
0
0
NEIN
1
7920
1
0
Grund-Seitenlayout
GS
566
609
2436
679
1416
1416
0
0
1
NEIN
0
0
AkzBf3#_PFAD##_TEXTNAME# 6-#_S#-
Bf3ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

AfzBf3$Date: 22 Jan 1992 12:40:36 $ $Revision: 1.1 $

Stichwortverzeichnis
SV
566
609
2437
680
1416
1416
566
0
2
NEIN
0
0
AliBf3Stichwortverzeichnis
AliBf3ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄ

Ali6Bf3- #_S# -B00

GS - ohne Fuázeile
KF
566
609
2437
680
1416
1416
0
0
1
NEIN
0
0
AliBf3#_KATEGORIE# / #_THEMA2#
AliBf3ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

Ali

Inhaltsverzeichnis
IV
566
609
2437
680
1416
1416
0
0
1
NEIN
0
0
AliBf3Inhaltsverzeichnis
AliBf3ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄ

Ali

0
0
SkfAga
Au0 #_KATEGORIE#
Aga
Au0 #_THEMA2#
Aga
Au0
Aga
Au0 #_AUTOR#
Aga
Au0 STAR DIVISION / STAR LAB Hamburg
Aga
Au0 Stand: $Date: 22 Jan 1992 12:40:36 $
Aga
Sgs
SkfAgaPA
Au0#_KATEGORIE#
Aga
AfpDokumentenname #_THEMA2#
Aga
AfpProjektname #_THEMA1#
Aga
AfpVersionsnummer $Revision: 1.1 $
Aga
Afperstellt 16. September 1991
Aga
Afpge„ndert $Date: 22 Jan 1992 12:40:36 $
Aga
AfpDateiname #_PFAD##_TEXTNAME#
Aga
AfpAutor #_AUTOR#
Aga
AfpBearbeiter $Author: MM $
Aga
AfpQualit„tskontrolle
Aga
AfpStatus XX in Arbeit
Afp !__ fertiggestellt
Afp !__ abgenommen
Afp !__ freigegeben
Aga
AfpVertraulich __ Ja XX Nein
Aga
AfpCopyright (C) Star Division 1990
Aga
Sgspa
Au1#1 Einleitung
Aga
In diesem Dokument werden die Klassen beschrieben, die die Fehlerbehandlung organisieren.
Hinweise zur Implementation
Bevor eine dieser Klassen benutzt wird, muá die Funktion InitRscCompiler aufgerufen werden.
AgaPA
Au1#2 Klassenbeschreibung
Aga
AgaERRTYPE:
Diese Klasse enth„lt eine Fehler- oder eine Warnungsnummer.
RscError:
Diese Klasse bernimmt die Ausgabe der Fehlermeldungen.
Au1#3 Globale Funktionen
Aga
RscExit():
Die Funktion muá von jedem Programm implementiert werden, die Klassen aus dem rsc-System
benutzen. Die Funktion bedeutet, daá das Programm sofort beendet werden muá, weil ein
scherwiegender Programmfehler aufgetreten ist.
SivPA
Au0Inhaltsverzeichnis
Aga
Aiv1. Einleitung M3
2. Klassenbeschreibung D4
3. Globale Funktionen E4
ERRTYPE S6
RscError R10
::RscExit() O15
Stichwortverzeichnis F17
Sgs
Au0
Aga
Au0PAERRTYPE
Aga
Aliclass ERRTYPE {
public:
ERRTYPE();
ERRTYPE( USHORT nErr );
ERRTYPE& operator = ( const ERRTYPE & rError );
operator USHORT();
BOOL IsError();
BOOL IsOk();
BOOL IsWarning();
void Clear();
};
#define ERR_OK
#define ERR_ERROREND
#define ERR_WARNING
#define ERR_WARNINGEND
Aga
Af1Beschreibung
Aga
Eine Instanz dieser Klassen enth„lt entweder eine Fehler- oder eine Warnungsnummer oder keines von
beiden. Zu beachten ist, daá eine Fehlernummer nicht berschrieben werden kann (!der erste Fehler ist
interressant ).
Af1Anmerkungen
AgaWarnungen werden von Fehlernummern berschrieben, aber nicht von Warnungsnummern.
Af1Querverweise
Aga
Klasse: RscError.
Af1Beispiel
Aga
Ali.....
ERRTYPE aError;
aError = ERR_OPENFILE;
aError = ERR_ERROR;
if( ERR_OPENFILE == aError )
printf( "Fehler: Datei kann nicht g”ffnet werden!\n" );
else
printf( "Fehler: Allgemeiner Fehler!\n");
.....
Aga
AgaDie Ausgabe heiát:
Fehler: Datei kann nicht ge”ffnet werden!
Au0PAERRTYPE::ERRTYPE()
Aga
AliERRTYPE::ERRTYPE();
ERRTYPE::ERRTYPE( USHORT nErrNo );
ERRTYPE::ERRTYPE( const ERRTYPE & rError );
Aga
Af1Beschreibung
Aga
Die wird eine Instanz ERRTYPE erzeugt.
Af1Parameter
Aga
AfpnErrNo diese Zahl ist der Fehler der in die Instanz eingetragen wird.
rError aus dieser Instanz wird der Fehler bernommen.
Aga
Af1Anmerkungen
Aga
Wird der leere Konstruktor verwendet, dann ist die Fehlernummer ERR_OK. Die Methode IsOk()
liefert TRUE.
Af1Querverweise
Aga
Klassen: RscError
Methoden: IsError(), IsOk(), Clear().
Af1Beispiel
AgaHier wird gezeigt wie Fehler zugewiesen und berschrieben werden.
AliERRTYPE aErr;
printf( aErr.IsOk() ? "TRUE", "FALSE" ); //Ausg.: TRUE
aErr = WRN_LOCALID; //Warnung zuweisen
printf( aErr.IsOk() ? "TRUE", "FALSE" ); //Ausg.: TRUE
printf( aErr.IsWarning() ? "TRUE", "FALSE" );//Ausg.: TRUE
printf( aErr.IsError() ? "TRUE", "FALSE" ); //Ausg.: FALSE
aErr = ERR_ERROR; //Fehler zuweisen
printf( aErr.IsOk() ? "TRUE", "FALSE" ); //Ausg.: FALSE
printf( aErr.IsWarning() ? "TRUE", "FALSE" );//Ausg.: FALSE
printf( aErr.IsError() ? "TRUE", "FALSE" ); //Ausg.: TRUE
aErr = ERR_OK; //Fehler aufheben geht so nicht
printf( aErr.IsOk() ? "TRUE", "FALSE" ); //Ausg.: FALSE
printf( aErr.IsError() ? "TRUE", "FALSE" ); //Ausg.: TRUE
aError.Clear(); //Fehler aufheben
printf( aErr.IsOk() ? "TRUE", "FALSE" ); //Ausg.: TRUE
printf( aErr.IsError() ? "TRUE", "FALSE" ); //Ausg.: FALSE
Aga
AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Aga
Au0ERRTYPE::operator =()
Aga
AliERRTYPE & ERRTYPE::operator &( const ERRTYPE & rErr );
Aga
Af1Beschreibung
Aga
Der Zuweisungsoperator kopiert den Fehler oder die Warnung von rErr in die Instanz. Ein kopieren
findet nicht statt, wenn in der Instanz schon ein Fehler eingetragen wurde.
Af1Parameter
Aga
AfprErr aus dieser Instanz wird der Fehler bernommen.
Aga
Af1Return-Werte
Aga
Die eigene Instanz wird zurckgeliefert.
Af1Querverweise
Aga
Methoden: operator USHORT().
Af1Beispiel
Aga
AliERRTYPE aError( ERR_RSCRANGE );
printf( ERR_RSCRANGE == aError ? "TRUE" : "FALSE" );
//Ausgabe: TRUE
//Versuch den Fehler zu ueberschreiben (geht nicht)
aError = ERRTYPE( ERR_ERROR );
printf( ERR_ERROR == aError ? "TRUE" : "FALSE" );
//Ausgabe: FALSE
aError.Clear();
aError = ERRTYPE( ERR_ERROR );
printf( ERR_ERROR == aError ? "TRUE" : "FALSE" );
//Ausgabe: TRUE
Aga
AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Aga
Au0ERRTYPE::operator USHORT()
Aga
AliERRTYPE::operator USHORT();
Aga
Af1Return-Werte
Aga
Die Fehlernummer in der Instanz wird zurckgeliefert.
Af1Querverweise
Aga
Methoden: operator =().
AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Aga
Au0ERRTYPE::IsError()
Aga
AliBOOL ERRTYPE::IsError();
Aga
Af1Beschreibung
Aga
Diese Methode zeigt an ob in der Instanz eine Fehlernummer steht, die einen Fehler anzeigt.
Af1Return-Werte
Aga
AfpTRUE wenn die Fehlernummer im Bereich [0, ERR_ERROREND] liegt.
FALSE wenn die Fehlernummer im Bereich ]ERR_ERROREND, 0xFFFF
"] liegt.
Aga
Af1Querverweise
Aga
Methoden: IsOk(), IsWarning(), Clear().
Aga
AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Aga
Au0ERRTYPE::IsOk()
Aga
AliBOOL ERRTYPE::IsOk();
Aga
Af1Beschreibung
Aga
Diese Methode zeigt an ob in der Instanz eine Fehlernummer steht, die keinen Fehler anzeigt.
Af1Return-Werte
Afp
TRUE wenn die Fehlernummer im Bereich ]ERR_ERROREND,
"0xFFFF] liegt.
FALSE wenn die Fehlernummer im Bereich [0, ERR_ERROREND] liegt.
Aga
Af1Querverweise
Aga
Methoden: IsError(), IsWarning(), Clear().
Aga
AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Aga
Au0ERRTYPE::IsWarning()
Aga
AliBOOL ERRTYPE::IsWarning();
Aga
Af1Beschreibung
Aga
Diese Methode zeigt an ob in der Instanz eine Fehlernummer steht, die einen Warnung anzeigt.
Af1Return-Werte
Afp
TRUE wenn die Fehlernummer im Bereich [ERR_WARNING,
"ERR_WARNINGEND] liegt.
FALSE wenn die Fehlernummer in einem anderen Bereich liegt.
Aga
Af1Querverweise
Aga
Methoden: IsOk(), IsError(), Clear().
Aga
AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Au0ERRTYPE::Clear()
Aga
Alivoid ERRTYPE::Clear();
Aga
Af1Beschreibung
Aga
Die Fehlernummer wird auf ERR_OK gesetzt. Das heiát die Methode IsOk() liefert TRUE zurck.
Aga
AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Au0PARscError
Aga
Ali#define ERR_ERROR 0x0100
#define ERR_UNKNOWN_METHOD 0x0101
#define ERR_OPENFILE 0x0102
#define ERR_NOCHAR 0x0103
#define ERR_NORSCINST 0x0104
#define ERR_USAGE 0x0105
#define ERR_NOINPUT 0x0106
#define ERR_UNKNOWNSW 0x0107
#define ERR_REFTODEEP 0x0108
#define ERR_RSCRANGE 0x0200
#define ERR_RSCRANGE_OUTDEFSET (ERR_RSCRANGE +1 )
#define ERR_RSCENUM 0x0210
#define ERR_RSCFLAG 0x0220
#define ERR_RSCCONT 0x0240
#define ERR_CONT_INVALIDPOS (ERR_RSCCONT +1 )
#define ERR_CONT_INVALIDTYPE (ERR_RSCCONT +2 )
#define ERR_RSCCMPED 0x0250
#define ERR_RSCINST 0x0260
#define ERR_RSCINST_NOVARNAME (ERR_RSCINST +1 )
#define ERR_RSCINST_RESERVEDNAME (ERR_RSCINST +2 )
#define ERR_LEX 0x0270
#define ERR_YACC 0x0280
#define ERR_DOUBLEID (ERR_YACC +1 )
#define ERR_FALSETYPE (ERR_YACC +2 )
#define ERR_NOVARIABLENAME (ERR_YACC +3 )
#define ERR_USHORTRANGE (ERR_YACC +4 )
#define ERR_IDRANGE (ERR_YACC +5 )
#define ERR_NOCOPYOBJ (ERR_YACC +6 )
#define ERR_REFNOTALLOWED (ERR_YACC +7 )
#define ERR_DOUBLEDEFINE (ERR_YACC +8 )
#define ERR_COPYNOTALLOWED (ERR_YACC +9 )
#define ERR_IDEXPECTED (ERR_YACC +10)
#define ERR_ZERODIVISION (ERR_YACC +11)
#define ERR_PRAGMA (ERR_YACC +12)
#define ERR_DECLAREDEFINE (ERR_YACC +13)
#define WRN_LOCALID (ERR_WARNING +1 )
#define WRN_GLOBALID (ERR_WARNING +2 )
#define WRN_SUBINMEMBER (ERR_WARNING +3 )
#define WRN_CONT_NOID (ERR_WARNING +4 )
#define WRN_STR_REFNOTFOUND (ERR_WARNING +5 )
#define WRN_MGR_REFNOTFOUND (ERR_WARNING +6 )
#define WRN_CONT_DOUBLEID (ERR_WARNING +7 )
class RscError{
public:
USHORT nErrors;// Anzahl der Fehler
RscError();
void SetListFile( FILE * fList );
virtual void StdOut( const char * );
virtual void LstOut( const char * );
virtual void Error( ERRTYPE nError, RscTop* pClass,
const RscId &aId,
const char * pMessage = NULL );
virtual void FatalError( ERRTYPE nError, const RscId
&aId, const char * pMessage = NULL );
};
Aga
Af1Beschreibung
Aga
In dieser Klasse werden Fehlermeldungen ausgegeben. Die Fehlermeldungen werden zur
Standartausgabe geschickt und in eine Listing-Datei geschrieben. Nach Aufruf der Methode
FatalError() wird die Funktion RscExit() aufgerufen. Diese sollte das Programm terminieren.
Die Ausgabe der Fehler hat folgendes Format:
1. Zeile in der der Fehler aufgetreten ist.
2. Position an der der Fehler aufgetreten ist.
3. Fehlernummer: Error ( Typ, Identifier ): Fehlermeldung.
Af1Ausnahmen
Aga
Die Ausgabe wird unter MS-Windows nicht nach "stdout" umgeleitet, sondern sie wird unterdrckt.
Af1Anmerkungen
Aga
Die Klasse tauscht Zeilennummern, Zeilen usw. ber globale Variable mit dem Parser aus. Aus diesem
Grund darf der Parser nicht rekursiv aufgerufen werden.
Wenn ein Fehler am Ende einer Zeile bemerkt wird, wird h„ufig die Zeile nach der Fehlerhaften
angezeigt.
Af1Querverweise
Aga
Klassen: RscTypCont, ERRTYPE, RscId, RscFileInst, alle Rsc... Klassen.
Funktionen: ::RscExit(), ::parser(), ::MacroParser(), ::IncludeParser().
Af1Beispiel
AgaImplementation der Standartausgabe unter MS-Windows.
Ali.....
class WinError :: public RscError{
ListBox * pOutput;
public:
WinError( ListBox * pListBox ) : RscError(){
 pOutput = pListBox;
}
void StdOut( const char * pStr ){
 //fuer gute Ausgabeformatierung muesste auf RETURN
 //geachtet werden
 pOutput.Insert( pStr, LISTBOX_APPEND );
}
};
.....
AgapaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Au0Fehlernummern
Aga
AfpERR_ERROR Allgemeiner Fehler, dieser Fehler kann nicht nicht genauer
"spezifiziert werden.
ERR_UNKNOWN_METHOD Eine virtuelle Methode die in der abgeleiteten Klasse nicht
"implementiert ist. Siehe Methoden der Klasse RscInst: SetString(),
"SetNumber .... Man kann die Fehlermeldung als Typfehler
"betrachten, das heiát dieser Typ darf nicht verwendet werden.
ERR_OPENFILE Die Datei mit dem angegebenen Namen konnte nicht ge”ffnet
"werden.
ERR_NOCHAR Es konnte kein Zeichen generiert werden. Zum Beispiel kann
"'\333' nicht in ein Zeichen umgewandelt werden.
ERR_NORSCINST Interner Fehler, eine Methode soll auf eine ungltige Instanz
"angewendet werden.
ERR_NOINPUT Es wurde keine Eingabedatei angegeben.
ERR_USAGE Es wird eine Kommandozeilenhilfe ausgegeben (rsc -h).
ERR_UNKNOWNSW In der Kommandozeile wurde ein unbekannter Schalter
"verwendet.
ERR_REFTODEEP Referenzen werden nur bis zu einer bestimmten Tiefe aufgel”st.
"Der Fehler bedeutet, das Referenzen rekursiv definiert wurden
"oder daá sie zu tief verschachtelt sind.
ERR_RSCRANGE In der Klasse RscRange ist ein Fehler aufgetreten.
ERR_RSCRANGE_OUTDEFSET  In eine RscRange-Instanz wurde versucht eine Zahl einzusetzen,
"die auáerhalb des Wertebereichs liegt.
ERR_RSCENUM In der Klasse RscEnum ist ein Fehler aufgetreten.
ERR_RSCFLAG In der Klasse RscFlag ist ein Fehler aufgetreten.
ERR_RSCCONT In der Klasse RscCont ist ein Fehler aufgetreten.
ERR_CONT_INVALIDPOS In einer RscCont-Instanz wurde auf eine Position zugegriffen, auf
"der sich keine Instanz befunden hat.
ERR_CONT_INVALIDTYPE  In einer RscCont-Instanz wurde versucht eine Instanz mit
"falschem Typ einzusetzen.
ERR_RSCINST In der Klasse RscInst ist ein Fehler aufgetreten.
ERR_RSCINST_NOVARNAME  Eine Methode der Klasse RscInst die einen Variablennamen als
"Parameter ben”tigt stellt fest, das dieser Name in der
"entsprechenden Instanz nicht als Variable definiert ist. Vermutlich
"hat die RscInst-Instanz einen anderen Typ als erwartet.
ERR_RSCINST_RESERVEDNAME Fr ein Makro soll eine Name verwendet werden, der
"schon belegt ist. Namen k”nnen zum Beispiel schon fr Variablen
"vergeben sein.
Aga
Es folgen Fehler die beim Parsen auftreten k”nnen.
AfpERR_YACC Allgemeiner Fehler der beim Parsen aufgetreten ist.
ERR_DOUBLEID Zwei globale Resourcen haben den gleichen Identifier.
ERR_FALSETYPE Der verwendete Typ ist nicht erlaubt.
ERR_NOVARIABLENAME Die Variable darf hier nicht verwendet werden.
ERR_USHORTRANGE Der Zahlenwert ist auáerhalb von [0, 0xFFFF].
ERR_IDRANGE Der Zahlenwert ist auáerhalb von [0, 0x7FFF].
ERR_NOCOPYOBJ Defaultresource wurde nicht gefunden. Eine Resourceinstanz kann
"mit einer anderen initialisiert werden. Diese ander Instanz wurde
"nicht gefunden.
ERR_REFNOTALLOWED An dieser Stelle ist die Angabe einer Referenz verboten.
ERR_DOUBLEDEFINE Ein Makroname soll doppelt vergeben werden.
ERR_COPYNOTALLOWED Die Angabe einer Defaultresource ist verboten.
ERR_IDEXPECTED Ein Identifier muá Angegeben werden.
ERR_ZERODIVISION Es sollte durch Null geteilt werden.
ERR_PRAGMA Bei der Angabe eines Pragmas ist ein Fehler aufgetreten.
ERR_DECLAREDEFINE Ein Makro mit dieser Deklaration kann nicht erstellt werden.
"Entweder eine rekursive Definition oder die verwendeten Makros
"sind nicht in der Abh„ngigkeitsliste.
Aga
Es folgen Warnungen.
AfpWRN_LOCALID Resourcen die sich innerhalb einer anderen Resource befinden
"(Unterresourcen) haben ein Identifier ber 255.
WRN_GLOBALID Globale Resourcen haben einen Identifier unter 256.
WRN_SUBINMEMBER Die Unterresource werden nicht beachtet. Das bedeutet, daá auf
"diese Resourcen zur Laufzeit nicht zugegriffen werden kann.
WRN_CONT_NOID Die Resourcen haben einen ungltigen Identifier. Auf diese
"Resourcen kann zur Laufzeit nicht zugegriffen werden.
WRN_STR_REFNOTFOUND Beim schreiben ein rc-Datei konnte eine Stringreferenz nicht
"aufgel”st werden.
WRN_MGR_REFNOTFOUND Beim schreiben ein rc-Datei konnte eine Referenz nicht aufgel”st
"werden. Wenn auf Unterresourcen zugegriffen wird, die sich in
"der referenzierten Resource befinden, dann kann ein
"Laufzeitfehler auftreten.
WRN_CONT_DOUBLEID Zwei Unterresource haben den gleichen Identifier.
Aga
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Au0RscError::RscError()
Aga
AliRscError::RscError();
Aga
Af1Beschreibung
Aga
Eine Instanz wird erzeugt. Der Fehlerz„hler wird auf Null gesetzt.
AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Aga
Au0RscError::SetListFile()
Aga
Alivoid RscError::SetListFile( FILE * fLstFile );
Aga
Af1Beschreibung
Aga
Es wird eine Datei angegeben in die das Listing und die Fehlermeldungen geschrieben werden.
fListing darf auch NULL sein, dann wird kein Listing erzeugt.
Af1Parameter
Aga
AfpfLstFile Dies ist die Datei in die geschrieben wird.
Aga
Af1Anmerkung
Aga
Fr das ™ffnen und Schlieáen ist der Aufrufer verantwortlich.
AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Aga
Au0RscError::StdOut()
Aga
Alivirtual void RscError::StdOut( const char * pStr );
Aga
Af1Beschreibung
Aga
Alle Zeichenketten werden nach stdout geschrieben.
Af1Parameter
Aga
AfppStr Dies ist die Zeichenkette die geschrieben wird.
Aga
Af1Ausnahmen
Aga
Unter MS-Windows wird nicht nach stdout ausgegeben.
Aga
AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Aga
Au0RscError::StdLst()
Aga
Alivirtual void RscError::StdLst( const char * pStr );
Aga
Af1Beschreibung
Aga
Alle Zeichenketten werden in die Listing-Datei geschrieben.
Af1Parameter
Aga
AfppStr Dies ist die Zeichenkette die geschrieben wird.
Aga
Af1Ausnahmen
Aga
Wenn keine Listing-Datei angegeben ist passiert nichts.
Aga
Querverweise
Methoden: SetListFile().
AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Au0RscError::Error()
Aga
Alivirtual void RscError::Error( ERRTYPE aError,
RscTop * pClass,
const RscId & rId,
const char * pMess = NULL );
Aga
Af1Beschreibung
Aga
Mit dieser Methode werden Fehler- und Warnungsmeldungen ausgegeben. Die Methode benutzt die
Methoden StdOut() und LstOut(). Wenn eine Fehlermeldung vorliegt wird der Fehlerz„hler um eins
erh”ht.
Af1Parameter
Aga
AfpaError Hierin ist die Fehlernummer gespeichert. šber diese wird der
"Fehlertext ermittelt.
pClass Dies ist der Typ der Resourceinstanz, in der der Fehler aufgetreten
"ist. pClass darf NULL sein.
rId Dies ist der Identifier der Resourceinstanz, in der der Fehler
"aufgetreten ist.
pMess Dies ist der Fehlertext. pMess darf NULL sein.
Aga
AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Aga
Au0RscError::FatalError()
Aga
Alivirtual void RscError::FatalError( ERRTYPE aError,
const RscId & rId,
const char * pMess = NULL );
Aga
Af1Beschreibung
Aga
Mit dieser Methode werden schwerwiegende Fehler angezeigt. Die Methode benutzt die Methoden
StdOut() und LstOut(). Die Funktion RscExit( 1 ) wird gerufen, diese sollte das Programm beenden.
Af1Parameter
Aga
AfpaError Hierin ist die Fehlernummer gespeichert. šber diese wird der
"Fehlertext ermittelt.
rId Dies ist der Identifier der Resourceinstanz, in der der Fehler
"aufgetreten ist.
pMess Dies ist der Fehlertext. pMess darf NULL sein.
Aga
AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Aga
Au0::RscExit()
Aga
Alivoid RscExit( USHORT nExit );
Aga
Af1Beschreibung
Aga
Diese Methode wird gerufen wenn ein schwerwiegende Fehler aufgetreten ist. Das Programm muá
beendet werden.
Fehlernummer:
Afp1  Die Funktion FatalError() wurde aufgerufen.
10 Mit den c-Funktionen alloc() oder realloc() wird kein Speicher
"mehr zur Verfgung gestellt.
11 Hashtabelle l„uft ber.
12 Es wird mehr als 64k -1 Byte Speicher angefordert.
13 In einem internen Zeichenkettenfeld ist nicht genug Platz.
14 Es wird ein Objekt gel”scht auf das noch mindestens eine
"Referenz besteht.
16 Maximal 32 Variablen pro Klasse erlaubt.
Aga
Af1Parameter
Aga
AfpnExit Mit Hilfe dieser Zahl wird der aufgetreten Fehler etwas genauer
"beschrieben.
Aga
Af1Beispiel
Aga
Alivoid RscExit( USHORT nExit ){
if( nExit )
 printf( "Program exit ist %d\n" nExit );
exit( nExit );
};
Aga
AgaÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Aga
SsvAgaPA
Au0Stichwortverzeichnis
Aga
Asv::RscExit() 15
ERRTYPE::Clear() 9
ERRTYPE::ERRTYPE() 7
ERRTYPE::IsError() 8
ERRTYPE::IsOk() 9
ERRTYPE::IsWarning() 9
ERRTYPE::operator =() 7
ERRTYPE::operator USHORT() 8
ERRTYPE #6
Fehlernummern 12
RscError !10
RscError::Error() 14
RscError::FatalError() 15
RscError::RscError() 13
RscError::SetListFile() 13
RscError::StdLst() 14
RscError::StdOut() 13
Aga