Fehlerbehandlung

Top  Previous  Next

Codeerzeugung > Fehlerbehandlung

 

Es gibt vier Ereignisse, die den Parser zum Abbruch zwingen und für jedes dieser Ereignisse gibt es eine Behandlungsroutine, die im Normalfall einen entsprechenden Fehlertyp auswirft. Diese Methoden sind virtuell und können überschrieben werden.

 

void    OnErrorExpected(state_type& xParseState,

                                    int xiSym,

                                    const char* xpProduction,

                                    const char* xpBranch) const;

 

Das Token mit der Nummer xiSym wurde in der Produktion mit dem Namen xpProduction an der Verzweigung mit dem Namen xpBranch erwartet, jedoch wurde es nicht gefunden.

 

void    OnErrorUnexpected(state_type& xParseState,

                                        const char* xpProduction,

                                        const char* xpBranch) const;

 

Ein anderes Token wurde in der Produktion mit dem Namen xpProduction an der Verzweigung mit dem Namen xpBranch erwartet.

 

void    OnErrorIncomplete(state_type& xParseState,

                                      const char* xpProduction,

                                      const char* xpBranch) const;

 

Der Eingabetext konnte mit der Produktion xpProduction nicht vollständig geparst werden.

 

void    OnErrorStandstill(state_type& xParseState,

                                     const char* xpProduction,

                                     const char* xpBranch) const;

 

Der Parser befindet sich in der Produktion mit dem Namen xpProduction an der Verzweigung mit dem Namen xpBranch in einer Endlosschleife. (Dieser Fehler kann zur zeit nicht auftreten, da nur Token zugelassen sind, die mindestens ein Zeichen abdecken.)

 

 

CTT_Message ist Basisklasse für alle Meldungen, Warnungen Fehler und Ausnahmen. Neben der eigentlichen Meldung enthält sie Angaben zum aktuellen Zustand des Parsers.

 

CTT_Message(const std::string& xsWhat,

                     unsigned int xuiLastPosition,

                     unsigned int xuiPosition,

                     const char* xpProduction,

                     const char* xpSymbol = NULL,

                     EMsgType xeMsgType = eMessage,

                     unsigned int xui = 0)

 

 

Von CTT_Message direkt oder indirekt abgeleitet sind:

 

CTT_Exit

CTT_Warning

CTT_Error

CTT_ParseError

CTT_ErrorExpected

CTT_ErrorUnexpected

CTT_ErrorStandstill

CTT_ErrorIncomplete

CTT_SemError

CTT_NodeError

 

 



Diese Seite gehört zur TextTransformer Dokumentation

Home  Inhalt  English