Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '-------------------------------------------------------------------------'
- ' '
- ' [jTool] - PAWN Errors & Warnungen '
- ' - Deutsche Übersetzung - '
- ' '
- ' j_PAWN_EW_de.pdf '
- ' '
- ' Version 1.0 - 12.12.2014 '
- ' '
- ' Von Jeffry '
- ' '
- '-------------------------------------------------------------------------'
- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
- $ ~ Errors ~ $
- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
- 001
- expected token:<token>, but found <token>
- Zeichen <Zeichen> erwartet, aber <Zeichen> gefunden.
- Das erwartete Zeichen wurde nicht gefunden, stattdessen wurde ein anderes Zeichen gefunden, welches nicht zur Syntax passt.
- 002
- only a single statement (or expression) can follow each "case"
- Es kann nur eine Anweisung (oder Ausdruck) auf ein "case" folgen
- Jeder Fall (case) in einer switch-Anweisung kann genau eine Anweisung beinhalten. Um mehrere Anweisungen auszuführen, müssen diese Anweisungen zwischen zwei geschweifte Klammern gesetzt werden (dies erstellt eine geschlossene Anweisung).
- 003
- declaration of a local variable must appear in a compound block
- Die Deklaration einer lokalen Variable muss innerhalb eines abgeschlossenen Blocks stattfinden.
- Die Deklaration einer lokalen Variable muss zwischen zwei geschweiften Klammern ("{...}") stehen, im aktiven Bereich.
- Wenn der Syntax-Analysator diesen Error markiert, dann scheint die Variablendeklaration die einzige Anweisung einer Funktion oder unter einer if, else, for while oder do - Anweisung zu sein. Man beachte, dass lokale Variablen nur innerhalb der Ebene angesprochen werden können, in der sie deklariert sind oder zu niedrigeren Ebenen hin. Es macht keinen Sinn eine Variablendeklaration als einzige Anweisung innerhalb einer Ebene stehen zu haben.
- 004
- function name is not implemented
- Funktionsname ist nicht implementiert
- Es ist keine Implementierung der angegebenen Funktion vorhanden. Die Funktion wurde möglicherweise "forward"-deklariert oder aufgebaut, aber die gesamte Funktion mit der Anweisung bzw. dem Anweisungsblock fehlt.
- 005
- function may not have arguments
- Funktion darf keine Parameter haben
- Die "main"-Funktion ist der Einstiegspunkt des Programms. Sie darf keine Parameter haben.
- 006
- must be assigned to an array
- Muss einem Array zugeordnet werden
- Stringliterale oder Arrays müssen einem Array zugeordnet werden. Diese Fehlermeldung kann auch auf einen fehlenden Index (oder Indizes) am Array, rechts vom "=" Zeichen, hinweisen.
- 007
- operator cannot be redefined
- Operator darf nicht neu definiert werden
- Nur bestimmte Operatoren dürfen neu definiert werden, dieser Operator gehört nicht dazu. Mehr Informationen dazu gibt es auf Seite 84 der PAWN Dokumentation.
- 008
- must be a constant expression; assumed zero
- Muss eine konstante Bezeichnung sein; null wird vermutet
- Die Größe von Arrays und die Parameter der meisten Anweisungen müssen konstante Werte sein.
- 009
- invalid array size (negative, zero or out of bounds)
- Ungültige Arraygröße (negativ, null oder außerhalb der Beschränkung)
- Die Zahl der Elemente in einem Array muss immer größer bzw. gleich 1 sein. Zusätzlich dazu ist ein Array ungültig, wenn es den Wertebereich einer Zelle überschreitet.
- 010
- illegal function or declaration
- Ungültige Funktion oder Deklaration
- Der Compiler nimmt an dieser Stelle im Code eine Deklaration einer globalen Variable oder einer Funktion an, kann den Code an dieser Stelle jedoch nicht als solche interpretieren.
- 011
- invalid outside functions
- Nicht außerhalb von Funktionen erlaubt
- Die Anweisung oder der Befehl ist auf globaler Ebene nicht erlaubt. Lokale Bezeichnungen und (zusammengesetzte) Befehle sind nur innerhalb von Funktionen erlaubt.
- 012
- invalid function call, not a valid address
- Ungültiger Funktionsaufruf, keine gültige Adresse
- Das Symbol ist keine Funktion.
- 013
- no entry point (no public functions)
- Kein Einstiegspunkt (keine "public"-Funktionen)
- Die Datei enthält keine "main"-Funktion oder keine "public"-Funktionen. Die kompilierte Datei hat somit keinen Einstiegspunkt für die Ausführung.
- 014
- invalid statement; not in switch
- Ungültiger Befehl; nicht in einem "switch"
- The Befehle "case" und "default" sind nur in einer "switch"-Anweisung gültig.
- 015
- "default" must be the last clause in switch statement
- "default" muss der letzte Abschnitt in einer "switch"-Anweisung sein
- Der "default"-Abschnitt einer "switch"-Anweisung muss in PAWN immer der letzte Abschnitt sein.
- 016
- multiple defaults in "switch"
- Mehrere "default" Anweisungen in einem "switch"
- Jede "switch"-Anweisung darf nur eine "default"-Anweisung haben.
- 017
- undefined symbol <symbol>
- Undefiniertes Symbol <Symbol>
- Das Symbol (Variable, Konstante oder Funktion) ist nicht deklariert.
- 018
- initialization data exceeds declared size
- Initialisierungswert ist größer als die deklarierte Größe
- Ein Array mit einer expliziten Größe ist initialisiert, aber der angegebene Initialisierungswert überschreitet die Anzahl der definierten Elemente im Array. Zum Beispiel bei "arr[3]={1,2,3,4};" ist das Array mit drei Elementen deklariert, aber mit vier Elementen initialisiert.
- 019
- not a label: <name>
- Kein Kennzeichen: <Name>
- Eine "goto"-Anweisung springt auf ein Symbol, welches kein Kennzeichen ist.
- 020
- invalid symbol name
- Ungültiger Symbolname
- Ein Symbol darf mit einem Buchstabe, einem Unterstrich oder einem "at" Zeichen ("@") starten, und darf mit einer Folge von Buchstaben, Zahlen, Unterstrichen und "@" Zeichen fortgeführt werden.
- 021
- symbol aleady defined: <identifier>
- Symbol bereits definiert: <Bezeichner>
- Das Symbol ist auf derselben Ebene bereits definiert.
- 022
- must be lvalue (non-constant)
- Muss lvalue sein (nicht konstant)
- Das Symbol welches modifiziert (erhöht, verringert, ein Wert zugewiesen, usw.) muss eine Variable sein welche modifiziert werden kann (diese Art von Variable wird lvalue genannt). Funktionen, Zeichenketten (Strings), Arrays und Konstanten sind keine lvalue. Variablen welche mit "const" deklariert werden sind ebenfalls keine lvalue.
- 023
- array assignment must be simple assignment
- Array Zuweisung muss einfache Zuweisung sein
- Wenn ein Array einem anderen zugewiesen wird können keine arithmetischen Operationen mit der Zuweisung kombiniert werden (z.B. kann der "+=" Operator nicht verwendet werden.
- 024
- "break" or "continue" is out of context
- "break" oder "continue" ist nicht im Kontext
- Die Befehle "break" oder "continue" sind nur innerhalb des Kontextes einer Schleife gültig (eine do, for oder while Schleife). Im Gegensatz zu den Sprachen C/C++ und Java springt "break" in PAWN nicht aus einer "switch"-Anweisung heraus.
- 025
- function heading differs from prototype
- Funktionskopf unterscheidet sich von der Urform
- Die Anzahl der Parameter die in einer vorherigen Deklaration der Funktion angegeben worden sind stimmen nicht mit der Anzahl der Parameter dieser Deklaration überein.
- 026
- no matching "#if..."
- Kein passendes "#if..."
- Es wurde eine "#else" oder "#endif" Anweisung gefunden, aber keine dazu passende "#if" Anweisung.
- 027
- invalid character constant
- Ungültige Zeichenkonstante
- Ein wahrscheinlicher Grund für diesen Fehler ist das Auftreten eines unbekannten Zeichens wie zum Beispiel "\x". Der Fehler tritt ebenfalls auf, wenn man mehrere Zeichen zwischen einzelne Anführungszeichen setzt, wie zum Beispiel 'abc'. Ein dritter Grund für diesen Fehler ist die Situation, dass eine Zeichenkonstante erwartet wurde aber keine (oder eine nicht zeichenartige Anweisung) angegeben worden ist.
- 028
- invalid subscript (not an array or too many subscripts): <identifier>
- Ungültiger Index (kein Array oder zu viele Indizes): <Bezeichnung>
- Die Indexierungsoperatoren "[" und "]" sind nur an Arrays gültig. Die Anzahl an rechteckigen Klammerpaaren darf die Anzahl der Dimensionen eines Arrays nicht überschreiten.
- 029
- invalid expression, assumed zero
- Ungültiger Befehl, null wird vermutet
- Der Compiler kann die Anweisung/den Befehl nicht interpretieren.
- 030
- compound statement not closed at the end of file (started at line <number>)
- Zusammengesetze Anweisung wird bis zum Ende der Datei nicht geschlossen (beginnend in Zeile <Nummer>)
- Ein unerwartetes Ende der Datei ist aufgetreten. Ein oder mehrere zusammengesetzte Anweisung(en) (Block) wurden bis zum Ende der Datei noch nicht abgeschlossen (zum Beispiel eine schließende Klammer "}" wurde nicht gefunden). Die Nummer der Zeile, in der der Block startet, wird in der Fehlermeldung mit angegeben.
- 031
- unknown directive
- Unbekannte Compileranweisung
- Das Zeichen "#" ist erstes Zeichen einer Zeile, es wurde aber keine gültige Compileranweisung angegeben.
- 032
- array index out of bounds
- Array Index außerhalb der Abgrenzung
- Der angegebene Array Index ist größer als der größte erlaubte Eintrag des Arrays.
- 033
- array must be indexed (variable name)
- Array muss indiziert werden (Variablenname)
- Ein Array kann in einem Ausdruck nicht als ein Ganzes verwendet werden; es muss ein Element des Arrays mit Hilfe der rechteckigen Klammern angegeben werden.
- 034
- argument does not have a default value (argument index)
- Parameter hat keinen Standardwert (Parameterindex)
- Es kann nur ein Platzhalter für Parameter verwendet werden, wenn die Funktionsdeklaration einen Standardwert für den Parameter enthält.
- 035
- argument type mismatch (argument index)
- Parametertyp unpassend (Parameterindex)
- Der Parameter der übergeben wird stimmt nicht mit dem Parametertyp überein, den die Funktion erwartet, und der Compiler kann den eingegebenen Parameter nicht in den benötigten Typ umwandeln. Zum Beispiel kann der Symbolwert "1" als Parameter einer Funktion übergeben werden, wenn diese ein Array oder einen Verweis erwartet.
- 036
- empty statement
- Leere Anweisung
- Die Zeile enthält ein Semikolon, vor dem keine Anweisung steht. PAWN unterstützt kein Semikolon als leere Anweisung, stattdessen sollte ein leerer zusammengesetzter Block verwendet werden.
- 037
- invalid string (possibly non-terminated string)
- Ungültiger String (möglicherweise nicht beendeter String)
- Ein String wurde nicht korrekt aufgebaut; zum Beispiel können die Anführungszeichen am Ende der Zeichenkette fehlen, oder der Dateiname eines inkludierten Verzeichnisses wurde nicht zwischen zwei Anführungszeichen oder spitze Klammern gesetzt.
- 038
- extra characters on line
- Extra Zeichen in einer Zeile
- Es sind nachfolgende Zeichen in einer Zeile vorhanden, welche eine Direktive enthält (eine Direktive startet mit dem "#"-Symbol, mehr dazu auf Seite 116 der PAWN Doc).
- 039
- constant symbol has no size
- Konstantes Symbol hat keine Größe
- Eine Variable hat eine Größe (gemessen an der Anzahl der Zellen), eine Konstante hingegen hat keine Göße. So kann zum Beispiel der "sizeof"-Operator nicht mit Konstanten verwendet werden.
- 040
- duplicate "case" label (value <value>)
- Doppelte "case" Kennzeichnung (Wert <Wert>)
- Ein vorangegangenes "case" Kennzeichen in der Liste der "switch"-Anweisung verweist auf denselben Wert.
- 041
- invalid ellipsis, array size if not known
- Ungültiges Auslassen, Arraygröße ist nicht bekannt
- Es wurde eine Syntax wie zum Beispiel "arr[] = {1,...};" verwendet. Dies ist nicht erlaubt, da der Compiler die Größe des Arrays nicht ermitteln kann.
- 042
- invalid combination of class specifiers
- Ungültige Kombination von Klassenspezifikationssymbolen
- Eine Funktion oder eine Variable ist unerlaubterweise sowohl als "public" als auch als "native" gekennzeichnet. Andere Kombinationen können ebenfalls nicht unterstützt werden, so kann eine Funktion zum Beispiel nicht gleichzeitig "public" und "stock" sein (eine Variable jedoch kann jedoch mit "public" und "stock" deklariert werden).
- 043
- character constant value exceeds range for a packed string/array
- Konstanter Zeichenwert überschreitet den Bereich für einen gepackten String/Array.
- Wenn dieser Error an einer Zeichenkette auftritt, ist dies meistens wegen dem Versuch ein Unicode-Zeichen in einen gepackten String zu speichern, wobei gepackte Zeichen 8 Bit groß sind. Für ein zeichenartiges Array stimmt eine der Konstanten nicht mit dem Bereich von gepackten Zeichen überein.
- 044
- positional parameters must precede all named parameters
- Positionelle Parameter müssen vor allen namentlichen Parameter stehen
- Wenn positionelle und namentliche Parameter gemischt in einem Funktionsaufruf vorkommen, dann müssen die positionellen Parameter zuerst aufgeführt werden.
- 045
- too many function arguments
- Zu viele Funktionsparameter
- Das Maximum an Parametern in einer Funktion ist zurzeit auf 64 Parameter begrenzt.
- 046
- unknown array size (variable name)
- Unbekannte Arraygröße (Variablenname)
- Für Arrayzuweisungen muss die Größe von beiden Arrays explizit angegeben werden, ebenso wenn sie als Funktionsparameter verarbeitet werden.
- 047
- array sizes do not match, or destination array is too small
- Arraygrößen stimmen nicht überein, oder das Zielarray ist zu klein
- Für Arrayzuweisungen müssen beide Arrays die gleiche Größe haben – man beachte, dass ein ungepacktes Array nicht in ein gepacktes Array, mit derselben Anzahl an Elementen, passt.
- Zusätzlich:
- - Bei mehrdimensionalen Arrays müssen beide Arrays die gleiche Größe haben – man beachte, dass ein ungepacktes Array nicht in ein gepacktes Array, mit der gleichen Anzahl an Elementen, passt.
- - Bei Arrays mit einer Dimension muss das Array auf der linken Seite des Zuweisungsoperators eine Größe größer oder gleich dem Array auf der rechten Seite haben.
- Wenn Arrays in einen Funktionsparameter übergeben werden, dann greifen diese Regeln ebenfalls für das Array, das in die Funktion übergeben wird (im Funktionsaufruf) gegen das Array welches in der Funktion deklariert ist.
- Wenn eine Funktion ein Array zurückgibt, dann müssen alle "return"-Anweisungen innerhalb der Funktion ein Array mit derselben Größe und Anzahl an Dimensionen zurückgeben.
- 048
- array dimensions do not match
- Arraydimensionen stimmen nicht überein
- Bei einer Arrayzuweisung müssen die Arrays auf beiden Seiten vom "="-Zeichen die gleichen Dimensionen haben, ebenso müssen die Arrays die in einer Funktion über einen Parameter übergeben werden (im Funktionsaufruf) mit denen in der Definition der Funktion übereinstimmen. Wenn eine Funktion ein Array zurückgibt, dann müssen alle "return"-Anweisungen innerhalb der Funktion ein Array mit derselben Größe und Anzahl an Dimensionen zurückgeben.
- 049
- invalid line continuation
- Ungültige Zeilenfortführung
- Ein Zeilenfortführungszeichen (ein Backslash "\" am Ende der Zeile) ist an einer ungültigen Position, zum Beispiel am Ende der Datei oder in einem einzeiligen Kommentar.
- 050
- invalid range
- Ungültiger Bereich
- Ein numerischer Bereich mit der Syntax "n1 .. n2", bei welchem n1 und n2 numerische Konstanten sind, ist ungültig. Entweder ist einer der beiden Werte keine gültige Zahl, oder n1 ist kleiner als n2.
- 051
- invalid subscript, use "[ ]" operators on major dimensions and for named indices
- Ungültiger Index, benutze die "[ ]" Operatoren an führenden Dimensionen und für namentliche Indizes.
- Der Operator für "char"-Arrayindizes (geschwungene Klammern "{ }") kann nur für die letzte Dimension verwendet werden, und nur dann, wenn das Array mit einer Zahl indiziert wird. Für alle anderen Dimensionen und wenn das Array mit einem "symbolischen Index" (einer der mit einem "." startet) muss der Zellenindexoperator (eckige Klammern "[ ]") verwendet werden.
- 052
- multi-dimensional arrays must be fully initialized
- Mehrdimensionale Arrays müssen vollständig initialisiert werden
- Wenn ein Array mit mehr als einer Dimension bei deiner Deklaration initialisiert wird, dann müssen genau so viele Vektoren/Unterarrays auf der rechten Seite des Gleichzeichens ("=") stehen, wie für das Array in den voranstehenden Dimensionen definiert sind.
- 053
- exceeding maximum number of dimensions
- Überschreitung des Maximums der Anzahl an Dimensionen
- Der PAWN Compiler unterstützt derzeit nur Arrays mit ein oder zwei Dimensionen.
- 054
- unmatched closing brace
- Unpassende schließende Klammer
- Es wurde eine schließende geschweifte Klammer ("}") gefunden, welche zu keiner öffnenden geschweiften Klammer ("{") passt.
- 055
- start of function body without function header
- Start des Funktionsaufbaus ohne einen Funktionskopf
- Eine öffnende geschweifte Klammer ("{") wurde außerhalb des Geltungsbereiches einer Funktion gefunden. Dies könnte durch ein Semikolon am Ende eines voranstehenden Funktionskopfes verursacht werden.
- 056
- arrays, local variables and function arguments cannot be public
- Arrays, lokale Variablen und Funktionsparameter können nicht "public" sein
- Eine lokale Variable oder ein Funktionsparameter startet mit dem "@"-Zeichen, dies ist nicht erlaubt.
- 057
- Unfinished expression before compiler directive
- Unbeendeter Ausdruck vor Compileranweisung
- Compileranweisungen dürfen nur zwischen Anweisungen stehen, nicht innerhalb einer Anweisung. Dieser Fehler tritt meistens dann auf, wenn eine Anweisung über mehrere Zeilen aufgeteilt ist und die Compileranweisung zwischen dem Anfang und dem Ende der Anweisung steht. Dies wird nicht unterstützt.
- 058
- duplicate argument; same argument is passed twice
- Doppelter Parameter; selber Parameter wird doppelt übergeben
- Im Funktionsaufruf wird derselbe Parameter zweimal übergeben, möglicherweise wegen der Vermischung von namentlichen und positionellen Parametern.
- 059
- function argument may not have a default value (variable name)
- Funktionsparameter darf keinen Standardwert haben (Variablenname)
- Alle Parameter einer "public" Funktion müssen explizit übergeben werden. Diese "public" Funktionen werden typischerweise von der Host Anwendung aufgerufen, welche kein Wissen von möglichen Standardwerten in Parametern hat. Parameter von benutzerdefinierten Operatoren sind inbegriffen in der Anweisung und können nicht vom Standardwert eines Parameters erschlossen werden.
- 060
- multiple "#else" directives between "#if...#endif"
- Mehrere "#else"-Anweisungen zwischen einem "#if...#endif".
- Zwei oder mehr "#else"-Anweisungen kommen zwischen einem passenden "#if" und "#endif" vor.
- 061
- "#elseif" directive follows an "#else" directive
- Eine "#elseif"-Anweisung folgt auf eine "#else"-Anweisung
- Alle "#elseif"-Anweisungen müssen vor der "#else"-Anweisung stehen. Dieser Error kann auch darauf hinweisen, dass die "#endif"-Anweisung eines vorherigen Blocks fehlt.
- 062
- number of operands does not fit the operator
- Anzahl der Operanden passt nicht zum Operator
- Wenn ein Operator neu definiert wird, dann muss die Anzahl der Operanden. die der Operator hat (1 für einzelne Operatoren und 2 für zweistellige Operatoren). mit der Anzahl der Parameter der Operatorfunktion übereinstimmen.
- 063
- function result tag of operator name must be name
- Kennzeichen der Funktionsrückgabe des Operatornamens muss ein Name sein.
- Logische und rationale Operatoren sind so definiert, dass sie ein Ergebnis haben, welches entweder wahr (1) oder falsch (0) ist, markiert mit einem "bool:" Kennzeichen. Ein benutzerdefinierter Operator sollte sich ebenfalls daran halten.
- 064
- cannot change predefined operators
- Vordefinierte Operatoren können nicht verändert werden
- Man kann zum Beispiel keine Operatoren so definieren, dass sie mit unmarkierten Werten arbeiten, weil PAWN diese Operation bereits definiert hat.
- 065
- function argument may only have a single tag (argument number)
- Funktionsparameter darf nur eine Kennzeichnung haben (Parameternummer)
- In einem benutzerdefinierten Operator darf ein Funktionsparameter nicht mehrere Kennzeichen haben.
- 066
- function argument may not be a reference argument or an array (argument number)
- Funktionsparameter darf kein Referenzparameter oder Array sein (Parameternummer)
- In einem benutzerdefinierten Operator müssen alle Parameter Zellen (keine Arrays) sein, die "nach Wert" übergeben werden.
- 067
- variable cannot be both a reference and an array (variable name)
- Variable kann nicht gleichzeitig eine Referenz und ein Array sein (Variablenname)
- Ein Funktionsparameter darf als Referenz oder als Array gekennzeichnet werden, aber nicht als beides.
- 068
- invalid rational number precision in #pragma
- Ungültige Genauigkeit für rationale Zahlen in "#pragma"
- Die Genauigkeit ist negativ oder zu hoch. Für Gleitkommazahlen sollte die Genauigkeitsbestimmung weggelassen werden.
- 069
- rational number format was not enabled
- Format für rationalen Zahlen wurde nicht aktiviert.
- Dieses "#pragma" steht im Konflikt zu einem vorangegangenen "#pragma", welches ein anderes Format angegeben hat.
- 070
- rational number support was not enabled
- Unterstützung für rationale Zahlen wurde nicht aktiviert
- Eine rationale Zahl wurde gefunden, allerdings wurde das Format für rationale Zahlen nicht angegeben.
- 071
- user-defined operator must be declared before use (function name)
- Benutzerdefinierter Operator muss vor der Benutzung deklariert werden (Funktionsname)
- Wie eine Variable, müssen auch benutzerdefinierte Operatoren vor ihrer ersten Verwendung deklariert werden. Diese Meldung weist darauf hin, dass vor der Deklaration des Operators eine Instanz, in der der Operator an Operanden mit demselben Kennzeichen verwendet wurde, gefunden worden ist. Dies bedeutet entweder, dass das Programm versucht gemischten Gebrauch des Standardoperators und des benutzerdefinierten Operators zu machen, oder dass der benutzerdefinierte Operator "forward" deklariert werden muss.
- 072
- "sizeof" operator is invalid on function symbols
- Der "sizeof" Operator ist an Funktionssymbolen nicht gültig
- Es wurde etwas wie "sizeof MeinZaehler" verwendet, wobei "MeinZaehler" keine Variable ist, sondern eine Funktion. Die Größe einer Funktion kann nicht abgefragt werden.
- 073
- function argument must be an array (argument name)
- Funktionsparameter muss ein Array sein (Parametername)
- Der Funktionsparameter ist ein Array oder eine einfache Variable, aber die Funktion benötigt die Übergabe eines Arrays.
- 074
- #define pattern must start with an alphabetic character
- "#define" Modell muss mit einem alphabetischen Zeichen beginnen
- Jedes Modell einer "#define"-Anweisung muss mit einem Buchstaben, einem Unterstrich ("_") oder einem "@"-Zeichen beginnen. Das Modell ist das erste Wort welches auf das "#define"-Schlüsselwort folgt.
- 075
- input line too long (after substitutions)
- Eingabezeile zu lang (nach Ersetzungen)
- Entweder beinhaltet der Quellcode eine sehr lange Zeile, oder Textersetzungen machen eine Zeile, die eingangs von akzeptierter Länge war, zu einer zu langen Zeile. Dies kann durch eine Textersetzung verursacht werden, welche eine rekursive Ersetzung verursacht (das Muster stimmt mit einem Abschnitt des ersetzenden Textes überein, sodass dieser Teil des ersetzenden Textes wiederum ersetzt wird, und so weiter).
- 076
- syntax error in the expression or invalid function call
- Syntaxfehler in der Anweisung ode rein ungültiger Funktionsaufruf
- Der Anweisungsausdruck wurde nicht als gültiger Ausdruck erkannt (somit ist es ein "Syntaxfehler"). Vom Teil des Strings der analysiert wurde sieht es so aus, als enthalte die Quellcode-Zeile einen Funktionsaufruf in einer "Prozedursaufruf"-Syntax (unter Nichtbeachtung der Klammern), aber das Funktionsergebnis wird benutzt (einer Variable zugewiesen, als Parameter weitergegeben, in einer Anweisung verwendet, ...).
- 077
- malformed UTF-8 encoding, or corrupted file: <filename>
- Fehlerhafte UTF-8 Verschlüsselung, oder beschädigte Datei: <Dateiname>
- Die Datei startet mit einer UTF-8 Signatur, aber enthält Verschlüsselungen welche nicht zu UTF-8 passen. Falls die Datei mit einem Editor oder Converter erstellt worden ist, der UTF-8 unterstützt, dann ist diese UTF-8 Unterstützung nicht konform.
- 078
- function uses both "return" and "return <value>"
- Funktion verwendet sowohl "return" als auch "return <Wert>"
- Die Funktion hat sowohl eine Rückgabe ohne Wert als auch eine Rückgabe mit Wert. Die Funktion sollte übereinstimmend immer entweder einen Wert im Funktionsergebnis zurückgeben, oder nie einen Wert zurückgeben.
- 079
- inconsistent return types (array & non-array)
- Ungleiche Rückgabetypen (Array & Nicht-Array)
- Die Funktion gibt sowohl ein Array als auch ein Nicht-Array zurück, was nicht erlaubt ist. Wenn eine Funktion ein Array zurückgibt, dann müssen alle "return"-Anweisungen ein Array zurückgeben (mit derselben Größe und Anzahl an Dimensionen).
- 080
- unknown symbol, or not a constant symbol (symbol name)
- Unbekanntes Symbol, oder kein konstantes Symbol (Symbolname)
- An einer Stelle an der ein konstantes Symbol erwartet wurde, ist ein unbekanntes Symbol oder ein nicht konstantes Symbol (Variable) gefunden worden.
- 082
- user-defined operators and native functions may not have states
- Benutzerdefinierte Operatoren und "native" Funktionen dürfen keine Zustände haben
- Nur Standard- und "public"-Funktionen dürfen einen Zustand haben.
- 083
- a function or variable may only belong to a single automaton (symbol name)
- Eine Funktion oder Variable darf nur zu einem einzigen Automaten gehören (Symbolname)
- Es sind, in der angegebenen Funktion oder Variable, mehrere Automaten in der Zustandsdeklaration vorhanden, was nicht unterstützt wird.
- Im Falle einer Funktion: Alle Instanzen einer Funktion müssen zum selben Automat gehören.
- Im Falle einer Variable: Es ist erlaubt, mehrere Variablen mit demselben Name aber mit unterschiedlichen Automaten zu haben, allerdings nur in getrennten Deklarationen – dies sind unterscheidbare Variablen.
- 084
- state conflict: one of the states is already assigned to another implementation (symbol name)
- Zustandskonflikt: Einer der Zustände ist bereits einer anderen Implementierung zugewiesen (Symbolname)
- Der angegebene Zustand kommt im Zustands-Spezifikationssymbol zweier Implementierungen derselben Funktion vor.
- 085
- no states are defined for <symbol name>
- Es wurde kein Zustand für <Symbolname> definiert
- Wenn dieser Fehler an einer Funktion auftritt, dann hat diese Funktion eine Rückgriffsimplementierung, aber keine anderen Zustände.
- Wenn der Fehler auf eine Variable verweist, dann hat die Variable keine Liste von Zuständen zwischen den "<" und ">" Zeichen. Es sollte stattdessen eine zustandslose Funktion oder Variable verwendet werden.
- 086
- unknown automaton name
- Unbekannter Automatenname
- Die "state"-Anweisung verweist auf einen unbekannten Automat.
- 087
- unknown state name for automaton name
- Unbekannter Zustandsname für Automatenname
- Die "state" Anweisung verweist auf einen unbekannten Zustand (für den angegebenen Automat).
- 088
- public variables and local variables may not have states (symbol name)
- Öffentliche Variablen und lokale Variablen dürfen keine Zustände haben (Symbolname)
- Nur Standardvariablen (globale) dürfen eine Liste von Zuständen (und einen Automaten) am Ende der Deklaration haben.
- 089
- state variables may not be initialized (symbol name)
- Zustandsvariablen dürfen nicht initialisiert werden (Symbolname)
- Variablen mit einer Zustandsliste dürfen keine Initialisierer haben. Zustandsvariablen sollten immer über eine Zuweisung initialisiert werden (anstatt bei ihrer Deklaration), da ihr Initialwert unbestimmt ist.
- 090
- public functions may not return arrays (symbol name)
- "public"-Funktionen dürfen keine Arrays zurückgeben (Symbolname)
- Eine "public"-Funktion darf kein Array zurückgeben. Arrayrückgaben sind nur mit normalen Funktionen möglich.
- 091
- first constant in an enumerated list must be initialized (symbol name)
- Erste Konstante in einer aufgezählten Liste muss initialisiert werden (Symbolname)
- Die erste Konstante in einer Liste von aufgezählten symbolischen Konstanten muss ein Wert zugewiesen werden. Jedem nachfolgendem Symbol wird automatisch der Wert der voranstehenden Variable +1 zugewiesen.
- 092
- invalid number format
- Ungültiges Nummernformat
- Ein Symbol startet mit einer Nummer, ist aber keine gültige Zahl.
- 093
- array fields with a size may only appear in the final dimension
- Arrayfelder mit einer Größe dürfen nur in der letzten Dimension vorhanden sein
- In der letzten Dimension (der "Nebendimension") dürfen die Felder eines Arrays optional mit einer Größe deklariert werden, die von der, der einzelnen Zelle, abweicht. In den Hauptdimensionen eines Arrays ist dies nicht möglich.
- 094
- invalid subscript, subscript does not match array definition regarding named indices (symbol name)
- Ungültiger Index, Index passt nicht zur Arraydefinition bezüglich benannten Indizes (Symbolname)
- Entweder wurde das Array mit symbolischen Indizes deklariert und es wird mit einem Ausdruck indiziert, oder das Array wird mit einem symbolischen Index indiziert, welches für das Array nicht definiert ist.
- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
- $ ~ Fatal Errors ~ $
- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
- 100
- cannot read from file: <filename>
- Datei kann nicht gelesen werden: <Dateiname>
- Der Compiler kann die angegebene Datei nicht finden oder hat keinen Zugriff darauf.
- 101
- cannot write to file: <filename>
- Datei kann nicht beschrieben werden: <Dateiname>
- Der Compiler kann nicht in die angegebene Datei schreiben, wahrscheinlich verursacht durch zu wenig Festplattenspeicher oder beschränkte Zugriffsrechte (die Datei kann zum Beispiel nur lesbar sein).
- 102
- table overflow: <table name>
- Tabellenüberlauf: <Tabellenname>
- Eine interne Tabelle im PAWN-Syntaxanalysator ist zu klein um die benötigten Daten zu speichern. Manche Tabellen sind können dynamisch wachsen, was bedeutet, dass zu wenig Speicher zu Verfügung stand um die Tabelle zu vergrößern. Der Tabellenname ist einer der Folgenden:
- "staging buffer": Der Sammelzwischenspeicher beinhaltet den Code, der für eine Anweisung generiert worden ist, bevor er an den Code-Optimierer ("peephole optimizer") weitergegeben wird. Dieser Sammelzwischenspeicher wächst dynamisch, sodass ein Überlauf des Sammelzwischenspeichers eigentlich ein "kein Speicherplatz vorhanden" Fehler ist.
- "loop table": Die Schleifentabelle ist ein Stapel der für verschachtelte "do"-, "for"- und "while"-Anweisungen verwendet wird. Die Tabelle erlaubt Verschachtelungen dieser Anweisungen von bis zu 24 Ebenen.
- "literal table": Die Zeichentabelle beinhaltet die Zeichenkonstanten (Zahlen, Strings) welche in Anweisungen und als Initialisierungen für Arrays verwendet werden. Die Zeichentabelle wächst dynamisch, sodass ein Überlauf der Zeichentabelle eigentlich ein "kein Speicherplatz vorhanden" Fehler ist.
- "compiler stack": Der Compiler verwendet einen Stapelspeicher zum speichern von temporären Informationen während der Syntaxanalysierung. Ein Überlauf dieses Stapelspeichers ist wahrscheinlich von zu tief verschachtelten (oder rekursiven) Dateieinbindungen. Der Stapelspeicher des Compilers wächst dynamisch, sodass ein Überlauf des Stapelspeichers eigentlich ein "kein Speicherplatz vorhanden" Fehler ist.
- "option table:" Für den Fall, falls mehr Optionen in einer Befehlszeile oder in der Rückmeldungsdatei vorhanden sind, als der Compiler vorarbeiten kann.
- 103
- insufficient memory
- Nicht genügend Speicher
- Allgemeiner "kein Speicherplatz vorhanden" Fehler.
- 104
- incompatible options: option versus option
- Unverträgliche Optionen: Option gegen Option
- Zwei Optionen die an den PAWN Compiler weitergegeben werden stehen im Widerspruch zueinander, oder eine Option steht im Widerspruch zu der Konfiguration des PAWN Compilers.
- 105
- numeric overflow, exceeding capacity
- Numerischer Überlauf, überschreiten der Kapazität
- Eine numerische Konstante, insbesondere eine Dimension eines Arrays, ist zu groß für den Compiler. Wird die Anwendung zum Beispiel als 16-bit Anwendung kompiliert, dann kann der Compiler keine Arrays mit mehr als 32767 Elementen verarbeiten.
- 106
- compiled script exceeds the maximum memory size (number bytes)
- Das kompilierte Skript überschreitet die maximale Speichergröße (Anzahl Bytes)
- Die Speichergröße für die abstrakte Maschine, welche für das Ausführen des Skripts benötigt wird, überschreitet den Wert, der mit "#pragma amxlimit" gesetzt wurde. Das bedeutet, dass das Skript zu groß ist, um vom Computer unterstützt zu werden. Man kann folgende Dinge versuchen, um die Speicherauslastung zu verringern:
- - Eine kleinere "stack/heap" Größe zu setzen – siehe dazu "#pragma dynamic" auf Seite 119 in der PAWN Dokumentation.
- - Benutzung von gepackten Strings anstatt ungepackten Strings – siehe dazu Seite 99 und Seite 136 in der PAWN Dokumentation.
- - Benutzung von Überlagerungen – siehe dazu Seite 120 und Seite 170 in der PAWN Dokumentation.
- - Sich wiederholenden Code in Funktionen trennen.
- - Sich wiederholende Daten (Strings) in globalen Variablen verwenden.
- - Nach kompakteren Algorithmen suchen, welche die gleiche Aufgabe verrichten.
- 107
- too many error/warning messages on one line
- Zu viele Error/Warnungs-Meldungen in einer Zeile
- Eine einzelne Zeile die mehrere Error/Warnungs-Meldungen erzeugt ist oft ein Hinweis darauf, dass der PAWN Syntaxanalysator nicht in der Lage war, sich von einem voranstehenden Error zu "erholen". In dieser Situation ist es unwahrscheinlich, dass der Syntaxanalysator noch irgendeinen Sinn in dem folgenden Quellcode erkennen kann – es werden eher noch mehr unpassende Fehlermeldungen produziert. Deswegen wird der Kompilierungsvorgang gestoppt.
- 108
- codepage mapping file not found
- Zeichensatz-Mapping-Datei wurde nicht gefunden
- Die Datei für die Übersetzung des Zeichensatzes, der mit der "-c" Compileroption oder der "#pragma codepage" Compileranweisung angegeben wurde, konnte nicht geladen werden.
- 109
- invalid path: <path name>
- Ungültiger Pfad: <Pfadname>
- Ein Pfad, zum Beispiel für eingebettete Dateien (Includes) oder Zeichensatz-Dateien, ist nicht gültig. Es sollte die Compileroption und, falls verwendet, die Konfigurationsdatei überprüft werden.
- 110
- assertion failed: <expression>
- Durchsetzung fehlgeschlagen: Anweisung
- Kompilierungszeit-Durchsetzung ist fehlgeschlagen.
- 111
- user error: <message>
- Benutzer-Error: <Nachricht>
- Der Syntaxanalysator ist auf eine "#error" Compileranweisung gestoßen.
- 112
- overlay function name exceeds limit by <value bytes>
- Überlagernder Funktionsname überschreitet das Limit mit <Anzahl Bytes>
- Die Größe einer Funktion ist zu groß für das Überlagerungssystem. Um dieses Problem zu beheben muss die Funktion in zwei (oder mehr) Funktionen aufgeteilt werden.
- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
- $ ~ Warnungen ~ $
- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
- 200
- symbol is truncated to <number> characters
- Symbol wurde auf <Anzahl> Buchstaben gekürzt
- Das Symbol ist länger als die maximal erlaubte Symbollänge. Die maximale Länge eines Symbols hängt davon ab, ob das Symbol "native", "public" oder etwas anderes ist. Die Kürzung kann dazu führen, dass zwei Symbole den gleichen Namen haben, was wiederrum den Error 021 oder die Warnung 219 zur Folge haben kann.
- 201
- redefinition of constant/macro (symbol name)
- Neudefinierung einer Konstante / eines Makros (Symbolname)
- Das Symbol wurde zuvor einem anderen Wert zugewiesen, oder das Textersetzungs-Makro mit dem Präfix-Name wurde mit einem anderen zu ersetzenden Text definiert.
- 202
- number of arguments does not match definition
- Anzahl der Parameter passt nicht zur Definition
- Die Anzahl der Parameter (tatsächliche Parameter) bei einem Funktionsaufruf unterscheidet sich von der Anzahl der formalen Parameter die im Funktionskopf deklariert worden sind. Um Funktionen mit variablen Parameterlisten zu deklarieren müssen drei Punkte (...) nach dem letzten bekannten Parameter im Funktionskopf gesetzt werden, zum Beispiel: print(formatstring, ...);
- 203
- symbol is never used: <identifier>
- Symbol wird nie verwendet: <Bezeichner>
- Es wurde ein Symbol definiert, aber die verwendet. "public"-Funktionen sind von dieser Art Verwendungsprüfung ausgeschlossen (da sie von außerhalb aufgerufen werden können).
- 204
- symbol is assigned a value that is never used: <identifier>
- Symbol wurde ein Wert zugewiesen welcher nie verwendet wird: <Bezeichner>
- Einem Symbol wurde ein Wert zugewiesen, auf den Inhalt dieses Symbols wird allerdings nie zugegriffen.
- 205
- redundant code: constant expression is zero
- Überflüssiger Code: konstanter Ausdruck ist Null
- An einer Stelle an der ein bedingter Ausdruck erwartet worden ist, wurde ein konstanter Ausdruck mit dem Wert Null gefunden, z.B. "while(0)" oder "if(0)". Der bedingte Code unter dieser Prüfung wird die ausgeführt, daher ist er überflüssig.
- 206
- redundant test: constant expression is non-zero
- Überflüssiger Test: konstanter Ausdruck ist nicht Null
- An einer Stelle an der ein bedingter Ausdruck erwartet worden ist, wurde ein konstanter Ausdruck mit einem Wert, der nicht Null ist, gefunden, z.B. "if(1)". Dieser Test ist überflüssig, da der bedingte Code immer ausgeführt wird. Um eine nie endende Schleife zu erstellen muss "for( ;; )" anstelle von "while(1)" verwendet werden.
- 207
- unknown "#pragma"
- Unbekanntes "#pragma"
- Der Compiler ignoriert das Pragma. Die #pragma-Compileranweisungen können zwischen verschiedenen Compiler-Herstellern und verschiedenen Versionen eines Compilers der selben Art variieren.
- 208
- function with tag result is used before definition, forcing reparse
- Funktion mit einer markierten Rückgabe wird vor ihrer Definition verwendet, erzwinge Neuanalysation.
- Wenn eine Funktion vor ihrer Deklaration "verwendet" (aufgerufen) wird und die Funktion einen Wert mit einer Markierung zurückgibt, muss der Syntaxanalysator einen zweiten Durchgang durch den Quellcode machen, da die Anwesenheit einer Markierung die Interpretation von Operatoren (beim Auftreten in benutzerdefinierten Operatoren) verändern kann. Der Analysations-/Kompilierungsvorgang kann beschleunigt werden, indem diese Funktionen vor der ersten Verwendung deklariert werden.
- 209
- function should return a value
- Funktion sollte einen Wert zurückgeben
- Die Funktion hat keine "return"-Anweisung, oder es ist keine Anweisung hinter dem "return"-Ausdruck, aber die Rückgabe der Funktion wird in einer Anweisung verwendet.
- 210
- possible use of symbol before initialization: <identifier>
- Verwendung des Symbols möglicherweise vor der Initialisierung: <Bezeichner>
- Eine lokale (nicht initialisierte) Variable scheint ausgelesen zu werden, bevor ihr ein Wert zugewiesen wird. Der Compiler kann nicht zwischen der tatsächlichen Reihenfolge des Lesens und Schreibens der Variable unterschieden und basiert somit seine Annahme auf die Reihenfolge der Ausführung auf Grund der Reihenfolge des physischen Auftretens von Ausdrücken und Anweisungen in der Quelldatei.
- 211
- possibly unintended assignment
- Möglicherweise ungewollte Zuweisung
- An einer Stelle, an der ein bedingter Ausdruck erwartet worden ist, wurde der Zuweisungsoperator ("=") anstatt dem Gleichheitsoperator ("==") gefunden. Da dies ein häufiger Fehler ist, meldet der Compiler eine Warnung. Um diese Warnung zu verhindern müssen Klammern um die Anweisung gesetzt werden, z.B. "if( (a=2) )".
- 212
- possibly unintended bitwise operation
- Möglicherweise ungewollte binäre Operation
- An einer Stelle, an der ein bedingter Ausdruck erwartet worden ist, wurde ein binärer Operator ("&" oder "|") anstatt einem boole'schen Operators ("&&" oder "||"). In Situationen in denen eine binäre Operation unüblich scheint meldet der Compiler diese Warnung. Um diese Warnung zu vermeiden müssen Klammern um die Anweisung gesetzt werden.
- 213
- tag mismatch
- Unterschiedliche Markierung
- Ein Unterschied in der Markierung tritt auf, wenn:
- - einer markierten Variable ein unmarkierter, oder anders markierter, Wert zugewiesen wird.
- - die Ausdrücke auf beiden Seiten eines binären Operators unterschiedliche Markierungen haben.
- - in einem Funktionsaufruf ein unmarkierter oder anders markierter Parameter übergeben wird, als der Funktionsparameter in der Funktionsdeklaration markiert wurde.
- - ein Array, welches eine markierte Indizierung benötigt, ohne Markierung oder mit einer falschen Markierung indiziert wird.
- 214
- possibly a "const" array argument was intended: <identifier>
- Möglicherweise wurde ein konstantes ("const") Array gewollt: <Bezeichner>
- Arrays werden immer als Referenz übergeben. Wenn eine Funktion das Parameterarray jedoch nicht verändert kann der Compiler in manchen Fällen einen kompakteren und schnelleren Code generieren wenn das Parameterarray speziell als konstant ("const") angegeben wird.
- 215
- expression has no effect
- Anweisung hat keine Auswirkung
- Der Rückgabewert der Anweisung wird scheinbar nicht in einer Variable gespeichert oder in einer Überprüfung verwendet. Die Anweisung oder der Ausdruck ist somit überflüssig.
- 216
- nested comment
- Verschachtelter Kommentar
- PAWN unterstützt keine verschachtelten Kommentare.
- 217
- loose indentation
- Ungenaue Einrückung
- Anweisungen auf gleicher logischer Ebene beginnen nicht in derselben Spalte, dadurch ist die Einrückung der Anweisungen unterschiedlich. Trotz dass PAWN eine "Frei-Format-Sprache" ist, versteckt eine ungenaue Einrückung oftmals einen logischen Fehler im Kontrollfluss.
- Der Compiler kann auch fälschlicherweise eine ungenaue Einrückung annehmen, wenn die Tabulatorgröße, mit der der Code eingerückt wurde, sich von der angenommenen Größe unterscheidet. Dies kann passieren, wenn Dateien einen Mix aus Tabulatorzeichen und Leerzeichen verwenden, um den Code einzurücken. Manchmal ist es dann notwendig, dem Syntaxanalysator zu sagen, welche Tabulatorgröße zu verwenden ist – siehe dazu "#pragma tabsize" auf Seite 121 der PAWN Dokumentation oder auf Seite 170 die Compiler Option "-t".
- Die Warnung kann auch deaktiviert werden, indem "#pragma tabsize 0" verwendet wird, oder die Compiler Option "-t:0" angegeben wird.
- 218
- old style prototypes used with optional semicolon
- Alter Prototypen-Style mit optionalem Semikolon verwendet
- Wenn "optionale Semikolons" verwendet werden, wird bevorzugt, dass man "forward"-Funktionen explizit mit dem "forward" Schlüsselwort deklariert, anstatt ein Abschluss-Semikolon zu verwenden.
- 219
- local variable <identifier> shadows a symbol at a preceding level
- Lokale Variable <Bezeichner> überschattet ein Symbol auf vorangehender Ebene
- Eine lokale Variable hat denselben Namen wie eine globale Variable, eine Funktion, ein Funktionsparameter oder eine lokale Variable einer kleineren Rangordnungsebene. Dies wird "Überschattung" genannt, da die neue lokale variable die zuvor definierte Funktion oder Variable nicht mehr zugreifbar macht.
- Beachte: Falls weiter unten im Code Errormeldungen auftreten, bezüglich fehlenden Variablen (mit demselben Name) oder Klammerebene-Problemen, kann es gut sein, dass die Überschattungs-Warnung wegen diesen Syntax- und Semantikfehlern auftritt. Es sollten zuerst die Errors behoben werden, bevor man sich auf die Überschattungen konzentriert.
- 220
- expression with tag override must appear between parentheses
- Ausdruck mit Markierungseingriff muss zwischen Klammern stehen
- In einer "case"-Anweisung und in Ausdrücken mit dem Bedingungs-Operator ("? :"), muss jede Anweisung mit einem Markierungseingriff zwischen Klammern geschrieben werden, um zu verhindern, dass der Doppelpunk als Trennzeichen einer "case"-Anweisung oder als Teil des Bedingungs-Operators fehlinterpretiert wird.
- 221
- label name <identifier> shadows tag name
- Sprungmarke <Bezeichner> überschattet Markierungsname
- Eine Sprungmarke (für die "goto"-Anweisung) hat den gleichen Namen wie eine zuvor definierte Markierung. Dies kannauf einen falsch angewendeten Markierungseingriff hinweisen; ein typischer Fall ist der Versuch einen Markierungseingriff an der Variable auf der linken Seite des "="-Operators in einer Zuweisung anzuwenden.
- 222
- number of digits exceeds rational number precision
- Anzahl der Ziffern überschreitet die Genauigkeit der rationalen Zahlen
- Eine rationale Zahl hat mehr Dezimalstellen als die Genauigkeit von rationalen Zahlen unterstützt. Die überschüssigen Dezimalstellen werden ignoriert.
- 223
- redundant "sizeof": argument size is always 1 (symbol name)
- Überflüssiges "sizeof": Parametergröße ist immer 1 (Symbolname)
- Ein Funktionsparameter hat als Standardwert die Größe eines anderen Parameters derselben Funktion. Der Standard-"sizeof" Wert ist nur nützlich, wenn die Größe des angegebenen Parameters nicht in der Deklaration der Funktion spezifiziert ist; z.B. wenn der angegebene Parameter ein Array ist.
- 224
- indeterminate array size in "sizeof" expression (symbol name)
- Unbestimmte Arraygröße in "sizeof"-Ausdruck (Symbolname)
- Der Operand des "sizeof"-Operators ist ein Array mir einer unbestimmten Größe. Dadurch kann die Größe der Variable zur Zeit des Kompiliervorgangs nicht bestimmt werden. Falls in einer "if"-Anweisung verwendet sollte eine bedingt kompilierte Sektion in Betracht gezogen werden, ersetzend mit "#if".
- 225
- unreachable code
- Unerreichbarer Code
- Der angegebene Code wird niemals ausgeführt, da zuvor eine Anweisung steht, die einen Sprung aus der Funktion, Schleife, o.ä. verursacht. Es sollte nach "return", "break", "continue" und "goto" überhalb der angegebenen Zeile geschaut werden. Unerreichbarer Code kann auch von einer Endlosschleife oberhalb der angegebenen Zeile verursacht werden.
- 226
- a variable is assigned to itself (symbol name)
- Eine Variable ist sich selbst zugewiesen (Symbolname)
- Es befindet sich eine Anweisung wie "x = x" im Code. Der Syntaxanalysator prüft auf Selbstzuweisung nachdem alle Text- und Konstantenersetzungen durchgeführt worden sind, so können die linke und rechte Seite einer Zuweisung auf den ersten Blick unterschiedlich erscheinen. Zum Beispiel, wenn das Symbol "ZWEI" eine Konstante mit dem Wert 2 ist, dann ist "var[ZWEI] = var[2]" ebenso einen Selbstzuweisung.
- Selbstzuweisungen sind, logischerweise, überflüssig und sie können einen Fehler verstecken (eine Zuweisung zu einer falschen Variable, ein Fehler in der Deklaration von Konstanten).
- Man beachte, dass der PAWN Syntaxanalysator auf statische Prüfungen beschränkt ist. In diesem Fall bedeutet das, dass er nur Arrayzuweisungen auf Selbstzuweisungen prüfen kann, die einen konstanten Arrayindex angegeben haben.
- 227
- more initiallers than array fields
- Mehr Initialwerte als Arrayfelder
- Ein Array welches mit symbolischen Indizes deklariert ist enthält mehr Werte/Felder als Initialwerte, als dass es (symbolische) Indizes hat.
- 228
- length of initialler exceeds size of the array field
- Länge des Initialwertes überschreitet die Größe des Arrayfeldes
- Der Initialisierungswert für ein Arrayelement enthält mehr Werte als die Größe des Feldes erlaubt. Dies tritt in einem Array auf, welches einen symbolischen Index hat und wo der spezielle Index mit einer Größe deklariert wird.
- 229
- mixing packed and unpacked array indexing or array assignment
- Mischen von gepackten und ungepackten Arrayindizierungen oder Arrayzuweisungen
- Ein Array wurde als gepackt deklariert (mit "{" und "}" Klammern) aber ungepackt indiziert (mit "[" und "]"), oder andersherum. Oder es wird ein gepacktes Array einem ungepackten Array zugewiesen, oder andersherum.
- 230
- no implementation for state name in function name, no fall-back
- Keine Implementierung für den Zustandsname im Funktionsname, kein Rückgriff
- Einer Funktion fehlt die Implementierung für den angegeben Zustand. Der Compiler kann nicht (statisch) prüfen, ob die Funktion in diesem Zustand jemals aufgerufen wird, somit wird eine Warnung erzeugt. Wenn die Funktion mit einem Zustand aufgerufen wird, für den keine Implementierung existiert, bricht die abstrakte Maschine mit einem Laufzeitfehler ab.
- Siehe auf Seite 81 der PAWN Dokumentation wie man eine Rückgriffsfunktion spezifiziert, und Seite 42 für die Beschreibung und ein Beispiel.
- 231
- state specification on forward declaration is ignored
- Zustandsspezifikation an "forward"-Deklaration wird ignoriert
- Eine Zustandsspezifikation ist an "forward"-Deklarationen überflüssig. Die Funktionssignatur muss für alle Zustände identisch sein. Nur die Implementierungen der Funktion sind zustandsspezifisch.
- 232
- native function lacks a predefined index (symbol name)
- "native"-Funktion hat keinen vordefinierten Index (Symbolname)
- Der PAWN Compiler wurde auf vordefinierte Indizes für "native"-Funktionen eingestellt, aber er hat eine Deklaration aufgefunden, welche keine Indexdeklaration hat. Dies bedeutet meistens, dass das Skript eine oder mehrere Includes verwendet, die nicht zu den aktiven Einstellungen passen.
- 233
- state variable name shadows a global variable
- Name einer Zustandsvariable überschattet eine globale Variable
- Die Zustandsvariable hat denselben Name wie eine globale Variable (ohne Zustandsspezifizierungen). Das bedeutet, dass auf die globale Variable nicht mit einer Funktion mit einem dieser Zustände der Variable zugegriffen werden kann.
- 234
- function is deprecated (symbol name)
- Funktion ist veraltet (Symbolname)
- Das Skript verwendet eine Funktion welche als "veraltet" markiert worden ist. Die Host-Anwendung kann ("native") Funktionen als veraltet markieren, wenn es besser Alternativen für die Funktion gibt, oder die Funktion in einer neueren Version der Host-Anwendung nicht mehr unterstützt wird.
- 235
- public function lacks forward declaration (symbol name)
- "public"-Funktion hat keine "forward"-Deklaration (Symbolname)
- Das Skript definiert eine "public"-Funktion, aber es gibt keine "forward"-Deklaration dieser Funktion. Möglicherweise ist der Funktionsname falsch geschrieben worden. Die Notwendigkeit "public"-Funktionen "forward" zu deklarieren schützt vor einem häufigen Fehler.
- 236
- unknown parameter in substitution (incorrect #define pattern)
- Unbekannter Parameter in Ersetzung (falsches "#define"-Muster)
- Ein "#define"-Muster beinhaltet einen Parameter in der Ersetzung (z.B. "%1"), welcher nicht im zutreffenden Muster ist. Siehe Seite 92 der PAWN Dokumentation für die Vorverarbeitungsprozessor-Syntax.
- 237
- recursive function name
- Rekursiver Funktionsname
- Die angegebene Funktion ruft sich selbst rekursiv auf. Trotz dass dies in PAWN erlaubt ist, weist ein Selbstaufruf oft auf einen Fehler hin. Man beachte, dass diese Warnung nur angezeigt wird, wenn der PAWN Syntaxanalysator / Compiler auf "verbose" (ausführlich) gestellt wurde.
- 238
- mixing string formats in concatenation
- Vermischen von Stringformaten in Verkettung
- In einer Verknüpfung von zeichenartigen Strings wurden Strings mit unterschiedlichen Formaten (solche wie gepackte mit ungepackten, und "klare" mit Standard-Strings) kombiniert. Dies ist meistens ein Error. Der Syntaxanalysator verwendet das Format des ersten (ganz linken) Strings in der Verknüpfung für das Ergebnis.
- Diese Übersetzung wurde mit bestem Wissen und Gewissen gemacht, trotzdem können Fehler nicht ausgeschlossen werden.
- Für die sprachliche und inhaltliche Richtigkeit kann nicht garantiert werden. Fehler im Inhalt oder in der Sprache dürfen gerne an mich (Jeffry) weitergegeben werden.
- - Dezember 2014
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement