.\\\ 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