Section courante

A propos

Section administrative du site

Voici un tableau de référence des différents codes d'erreur du HighSpeed Pascal.

Erreurs de compilation

Message Description
';' expected Ce message d'erreur permet d'indiquer qu'un caractère «;» est attendue.
':' expected Ce message d'erreur permet d'indiquer qu'un caractère «:» est attendue.
',' expected Ce message d'erreur permet d'indiquer qu'un caractère «,» est attendue.
'(' expected Ce message d'erreur permet d'indiquer qu'un caractère «(» est attendue.
')' expected Ce message d'erreur permet d'indiquer qu'un caractère «)» est attendue.
'[' expected Ce message d'erreur permet d'indiquer qu'un caractère «[» est attendue.
']' expected Ce message d'erreur permet d'indiquer qu'un caractère «]» est attendue.
'.' expected Ce message d'erreur permet d'indiquer qu'un caractère «.» est attendue.
'=' expected Ce message d'erreur permet d'indiquer qu'un caractère «=» est attendue.
':=' expected Ce message d'erreur permet d'indiquer que les caractères «:=» sont attendues.
'..' expected Ce message d'erreur permet d'indiquer que les caractères «..» sont attendues.
END expected Ce message d'erreur permet d'indiquer que le mot réservé «END» est attendue.
DO expected Ce message d'erreur permet d'indiquer que le mot réservé «DO» est attendue.
OF expected Ce message d'erreur permet d'indiquer que le mot réservé «OF» est attendue.
THEN expected Ce message d'erreur permet d'indiquer que le mot réservé «THEN» est attendue.
TO or DOWNTO expected Ce message d'erreur permet d'indiquer que le mot réservé «TO» ou «DOWNTO» est attendue. Notez que l'insertion du caractère approprié peu parfois ne pas être suffisante car ce type d'erreur peut être provoqué par une erreur antérieure dans le programme.
BEGIN expected Ce message d'erreur permet d'indiquer que le mot réservé «BEGIN» est attendue. Le compilateur attend BEGIN lorsqu'il ne peut pas trouver d'autres déclarations dans une fonction. Cette situation est probablement dû à une déclaration mal formulée.
INTERFACE expected Ce message d'erreur permet d'indiquer que le mot réservé «INTERFACE» est attendue. Le mot réservé UNIT doit suivre un entête d'unité.
IMPLEMENTATION expected Ce message d'erreur permet d'indiquer que le mot réservé «IMPLEMENTATION» est attendue. Cette situation est généralement donné par le curseur sur le texte à problème ou le mot BEGIN. Le compilateur attend IMPLEMENTATION lorsqu'il ne peut pas trouver d'autres déclarations. Les erreurs suivantes sont également attendues, mais elles sont plus complexes que celles décrites ci-dessus.
Constant expected Ce message d'erreur permet d'indiquer qu'une constante est attendue.
Boolean expression expected Ce message d'erreur permet d'indiquer qu'une expression booléenne est attendue. La construction «IF expression THEN» nécessite une expression booléenne. Vous ne pouvez pas écrire «IF 2 + 3 THEN», par exemple.
Integer constant expected Ce message d'erreur permet d'indiquer qu'une constante entière est attendue. L'affectation réelle R:=123.4; est autorisé, mais l'affectation R:=12345678; n'est pas autorisé parce que le compilateur lit d'abord le nombre comme un entier. Vous pouvez ajouter un .0 pour en faire un réel.
Integer expression expected Ce message d'erreur permet d'indiquer qu'une expression entière est attendue.
Integer variable expected Ce message d'erreur permet d'indiquer qu'une variable entière est attendue.
Integer or real constant expected Ce message d'erreur permet d'indiquer qu'une constante réel ou entière est attendue.
Integer or real expression expected Ce message d'erreur permet d'indiquer qu'une expression réel ou entière est attendue.
Integer or real variable expected Ce message d'erreur permet d'indiquer qu'une variable réel ou entière est attendue.
Pointer variable expected Ce message d'erreur permet d'indiquer qu'une variable de pointeur est attendue.
Typed Pointer variable expected Ce message d'erreur permet d'indiquer qu'une variable de pointeur typé est attendue.
File variable expected Ce message d'erreur permet d'indiquer qu'une variable de fichier est attendue.
Record variable expected Ce message d'erreur permet d'indiquer qu'une variable d'enregistrement est attendue.
Ordinal type expected Ce message d'erreur permet d'indiquer qu'un type ordinal est attendue.
Ordinal expression expected Ce message d'erreur permet d'indiquer qu'une expression ordinal est attendue.
String constant expected Ce message d'erreur permet d'indiquer que la constante de chaîne de caractères est attendue.
String expression expected Ce message d'erreur permet d'indiquer qu'une expression de chaîne de caractères est attendue.
String variable expected Ce message d'erreur permet d'indiquer qu'une variable de chaîne de caractères est attendue.
Identifier expected Ce message d'erreur permet d'indiquer qu'un identificateur est attendue.
Variable expected Ce message d'erreur permet d'indiquer qu'une variable est attendue.
Type identifier expected Ce message d'erreur permet d'indiquer qu'un identificateur de type est attendue.
Field identifier expected Ce message d'erreur permet d'indiquer qu'un identificateur de champ est attendue.
Char expression expected Ce message d'erreur permet d'indiquer qu'une expression de caractère est attendue.
Unknown identifier Ce message d'erreur permet d'indiquer que l'identificateur est inconnu. Le type est non défini dans la définition du pointeur.
'.' expected after module name Ce message d'erreur permet d'indiquer que le caractère «.» attendu après le nom du module. Lorsque vous utilisez des références d'unité, le nom de l'unité doit être suivi d'un point (.).
Duplicate identifier Ce message d'erreur permet d'indiquer que l'identificateur en double. Notez que le nom du programme est également entré dans la table des symboles. Cette situation peut être utilisé pour référencer des éléments dans d'autres unités s'ils sont redéfinis par d'autres unités. Si vous avez effectué une procédure de réinitialisation, vous ne pouvez réinitialiser un fichier qu'en écrivant «System.Reset(aFile)».
Type mismatch Ce message d'erreur permet d'indiquer une incompatibilité de type.
Constant out of range Ce message d'erreur permet d'indiquer que la constante est hors de portée.
Constant and CASE types do not match Ce message d'erreur permet d'indiquer que les types constants et CASE ne correspondent pas.
Operand types do not match operator Ce message d'erreur permet d'indiquer que les types d'opérandes ne correspondent pas à l'opérateur.
Invalid result type Ce message d'erreur permet d'indiquer que le type de résultat est non valide. Une fonction ne peut renvoyer que des types simples, chaîne de caractères et réels.
Invalid string length Ce message d'erreur permet d'indiquer que la longueur de chaîne de caractères est non valide.
Invalid subrange base type Ce message d'erreur permet d'indiquer que le type de base de sous-intervalle est non valide.
Lower bound greater than upper bound Ce message d'erreur permet d'indiquer que la limite inférieure est supérieure à la limite supérieure.
Invalid FOR control variable Ce message d'erreur permet d'indiquer que la variable de contrôle FOR est non valide. La variable FOR doit être déclarée dans la même fonction ou globale. Il ne doit faire partie d'aucune structure.
Illegal assignment Ce message d'erreur permet d'indiquer que l'assignation est illégale.
String constant exceeds line Ce message d'erreur permet d'indiquer que la constante de chaîne de caractères dépasse la limite de la ligne. Vous avez peut-être oublié une apostrophe dans la chaîne de caractères. Notez qu'une seule apostrophe dans une chaîne de caractères doit être écrite comme deux apostrophes.
Error in integer constant Ce message d'erreur permet d'indiquer qu'une erreur dans la constante entière s'est produite. Une constante entière hors de portée a été déclarée.
Error in real constant Ce message d'erreur permet d'indiquer qu'une erreur dans une constante de réel s'est produite. Une constante entière hors de portée a été déclarée.
Division by zero Ce message d'erreur permet d'indiquer qu'une division par zéro s'est produite. Le compilateur a tenté de diviser quelque chose par zéro.
Structure too large Ce message d'erreur permet d'indiquer que la structure est trop grande. La taille des enregistrements (mais pas des tableaux) ne doit pas dépasser 32 Ko.
Constants are not allowed here Ce message d'erreur permet d'indiquer que les constantes ne sont pas autorisées ici.
Invalid type cast argument Ce message d'erreur permet d'indiquer que le paramètre de conversion de type est non valide. La conversion de type ne peut être effectuée que lorsque le paramètre est de la même taille que le type souhaité.
Invalid '@' argument Ce message d'erreur permet d'indiquer que le paramètre '@' est invalide. Fonctionne uniquement sur les fonctions, les procédures et les variables.
Invalid GOTO Ce message d'erreur permet d'indiquer que le GOTO est non valide. Une étiquette a été déclarée (LABEL MonEtiquette;) mais ne se produit pas réellement dans le bloc principal (MonEtiquette:).
Label not within current block Ce message d'erreur permet d'indiquer que l'étiquette ne se trouve pas dans le bloc actuel. Il n'est pas possible de passer à une étiquette en dehors du bloc actuel.
Undefined label Ce message d'erreur permet d'indiquer que l'étiquette est non défini. La cible d'un GOTO n'a pas été définie.
Label already defined Ce message d'erreur permet d'indiquer que l'étiquette est déjà défini. Une tentative de redéfinition d'une étiquette a été effectuée.
Invalid file type Ce message d'erreur permet d'indiquer que le type de fichier est invalide. Il est impossible de lire ou d'écrire des variables de ce type.
Files must be VAR parameters Ce message d'erreur permet d'indiquer que les fichiers doivent avoir des paramètres VAR. Ils ne peuvent pas être transmis par valeur.
File components may not be files Ce message d'erreur permet d'indiquer que les composantes de fichier peuvent ne pas être des fichiers.
Set base type out of range Ce message d'erreur permet d'indiquer que vous tentez de définir le type de base hors de portée. Un type de base défini doit être une sous-plage avec ses limites dans l'intervalle 0..255 ou un type énuméré avec pas plus de 256 valeurs possibles.
Error in type Ce message d'erreur permet d'indiquer qu'une erreur de type s'est produite.
Error in statement Ce message d'erreur permet d'indiquer qu'une erreur dans la déclaration s'est produite.
Error in expression Ce message d'erreur permet d'indiquer qu'une erreur s'est produite dans l'expression.
Undefined FORWARD procedure: xx Ce message d'erreur permet d'indiquer que la procédure FORWARD est non définie.
Undefined EXTERNAL procedure: xx Ce message d'erreur permet d'indiquer que la procédure EXTERNAL est non définie.
Invalid external definition, symbol = xx Ce message d'erreur permet d'indiquer que la définition externe est non valide et indiquer par le symbole spécifié.
Invalid external reference, symbol = xx Ce message d'erreur permet d'indiquer que la référence externe est non valide et indiquer par le symbole spécifié.
Too many symbols Ce message d'erreur permet d'indiquer que trop de symboles sont présent. Seulement 32 Ko sont réservés à la table des symboles pour chaque unité ou programme.
Too many nested scopes Ce message d'erreur permet d'indiquer qu'il y a trop de portées imbriquées. Également indiqué lorsque trop d'unités sont utilisées. Le maximum est de 63.
Expression too complicated Ce message d'erreur permet d'indiquer que l'expression est trop compliquée. Tous les registres de données du processeur 68000 sont utilisés pour les entiers temporaires.
Too many variables Ce message d'erreur permet d'indiquer qu'il y a trop de variables. Il y a une limite de 32 Ko de table de symboles par module et vous l'avez dépassée. Divisez le code en unités.
Too much code Ce message d'erreur permet d'indiquer qu'il y a trop de code. Vous ne pouvez mettre plus de 32 Ko de code par module. Divisez le code en unités.
Bad unit or program name: xx Ce message d'erreur permet d'indiquer qu'une mauvaise unité ou un mauvais nom de programme s'est produit.
Unit missing: xx Ce message d'erreur permet d'indiquer que l'unité spécifié est introuvable.
Unit not found Ce message d'erreur permet d'indiquer que l'unité est non trouvée. L'éditeur de liens ne peut pas trouver une unité spécifique dans le fichier PASCAL.LIB ou en utilisant les répertoires spécifiés via l'option de compilation appropriée.
Incompatible unit versions Ce message d'erreur permet d'indiquer que les versions d'unité est incompatibles. Le programme essaie d'utiliser une unité compilée avec une autre version du compilateur que celle que vous utilisez actuellement. Si vous recevez une mise à niveau, vous devrez supprimer tous les fichiers .UNI existants.
Syntax error Ce message d'erreur permet d'indiquer une erreur de syntaxe.
Unexpected end of text Ce message d'erreur permet d'indiquer que la fin de texte est inattendue. Vous ne pouvez pas avoir plus de BEGIN que de END. Peut-être causé par un commentaire non terminé.
Line too long Ce message d'erreur permet d'indiquer que la Ligne est trop longue. Seuls 127 caractères sont autorisés sur une ligne.
Invalid compiler directive Ce message d'erreur permet d'indiquer que la directive du compilateur est non valide. Une directive de compilation inconnue a été trouvée.
Bad object file in file: xx Ce message d'erreur permet d'indiquer que le fichier d'objet est incorrect dans le fichier spécifié. Vous ne pouvez pas créer BSR et BRA sur des étiquettes définies externes. Vous devez utiliser JSR et JMP.
Not enough memory Ce message d'erreur permet d'indiquer qu'il n'y pas assez de mémoire. Vous pouvez augmenter la taille de son espace de travail à l'aide de l'option - Knn ou du compilateur ou de l'élément Workspace du demandeur Compiler Settings. Si vous manquez de mémoire alors que le compilateur s'initialise, vous pouvez réduire la taille de la bibliothèque résidente (pascal, lib) et/ou supprimer d'autres programmes que vous avez en cours d'exécution et des fichiers de votre disque virtuel.
Too many files ($I or USES) Ce message d'erreur permet d'indiquer que trop de fichiers sont spécifiés par $I ou USES. Chaque fichier Uses utilise un niveau d'inclusion lors de sa recompilation.
No room in 16 bit fix- up field, try with $F+ Ce message d'erreur permet d'indiquer qu'il n'y a pas de place dans le champ de correction 16 bits, essayez avec $F+. Si une unité doit appeler une procédure ou une fonction dans une autre unité de plus de 32 Ko, le compilateur doit utiliser un déplacement de 32 bits. La directive $F+ indique au compilateur d'effectuer les appels en utilisant ce format.
Duplicate unit name: xx Ce message d'erreur permet d'indiquer que le nom d'unité a été dupliqué. Un nom d'unité a été spécifié deux fois dans la même clause Uses, par exemple «Uses Dos, Dos».
Conditional variable missing Ce message d'erreur permet d'indiquer qu'une variable conditionnel est manquante. Le nom d'une variable conditionnelle est manquant dans une directive $DEFINE, $UNDEF, $IFDEF ou $IFNDEF.
Misplaced conditional directive Ce message d'erreur permet d'indiquer qu'une directive conditionnel est mal placé. Par exemple, en utilisant une directive $ELSE lorsqu'il n'y a pas de directive $IFDEF actuelle.
ENDIF directive missing Ce message d'erreur permet d'indiquer qu'une directive ENDIF est attendue. Soit cette erreur se produit, soit l'erreur de fin de texte inattendue se produira si une directive $ENDIF est manquante après une directive $IFDEF ou $ELSE.

Erreurs d'exécution

Les codes d'erreur de l'AmigaDOS sont renvoyés tels quels. Ce sont les erreurs générées par le système d'exécution Highspeed Pascal lui-même. Des erreurs d'exécution sont générées lorsque votre programme est en cours d'exécution et provoquent l'arrêt du programme. Voici la liste des erreurs :

Code Message Description
50 Stack overflow. Ce message d'erreur est généré par le code de contrôle $S+. La vérification est effectuée à l'entrée de chaque procédure et fonction lorsqu'elle est activée. Solution : votre programme a trop peu d'espace de pile, ou il est entré dans une procédure récursive ne s'étant pas terminée avant que la zone de pile ne soit épuisée. Vos procédures peuvent également avoir de grandes structures (tableaux ou enregistrements) en tant que variables locales, se trouvant sur la pile pendant l'exécution de la procédure.
51 Range check. Ce message d'erreur est généré par le code supplémentaire $R+. Solution : vous essayez peut-être d'affecter une valeur non valide à une variable, soit en utilisant une affectation comme :=, soit en la transmettant à une procédure/fonction. Un autre bogue possible tente d'accéder à un élément inexistant d'un tableau ou d'une chaîne de caractères.
52 Bus error. Ce message d'erreur est généré par le microprocesseur 680x0 lors de la tentative d'accès à une mémoire invalide. Solution : Le problème pourrait être que vous (par accident bien sûr) utilisez une variable de pointeur contenant des données périmés.
53 Address error. Ce message d'erreur est généré par le microprocesseur 68000, lors de la tentative d'accès à des éléments de mots ou de mots longs à partir d'une adresse impaire. Cette situation ne peut pas être fait en une seule instruction, vous devez le lire un octet à la fois. Notez que cela n'est pas généré sur les processeurs 68020 et supérieurs. Solution : vous ne verrez ce problème que si vous créez les adresses vous-même, en créant vos propres variables de pointeur avec la fonction Ptr. Le HighSpeed Pascal localise toujours ses variables de mot sur des adresses paires.
54 Other errors. Ce message d'erreur permet d'indiquer des erreurs de bus, d'adresse et de DIV0 ou des interruptions matérielles dans le système 68000. Il existe de nombreux autres trappes définis. Si le programme se termine en raison d'une trappe autre que ces trois, cette erreur s'affiche.
55 DIV0. Division by zero. Ce message d'erreur permet d'indiquer une erreur de division par zéro. Chaque fois que le microprocesseur 68000 effectue une division par zéro, cette erreur est donnée. Les entiers longs sont divisés par des routines internes, donnant également l'erreur 55 lorsque vous essayez de diviser par zéro.
56 Heap overflow. Ce message d'erreur permet d'indiquer un débordement de tas. Lorsque le tas est si plein qu'une demande de nouveau bloc à partir de celui-ci ne peut pas être satisfaite, cette erreur est donnée. Solution : vous devez tester la fonction MaxAvail au lieu de la fonction MemAvail. La fonction MaxAvail renvoie la taille du plus grand bloc où MemAvail renvoie le total.
60 File not open. Ce message d'erreur permet d'indiquer que le fichier n'est pas ouvert. Vous ne pouvez pas effectuer d'entrée/sortie sur un fichier n'ayant pas été ouvert via une réinitialisation ou une réécriture.
61 File not open for read. Ce message d'erreur permet d'indiquer que le fichier n'est pas ouvert en lecture. Vous ne pouvez écrire dans un fichier texte qu'en mode réécriture, mais pas en mode lecture seulement.
62 File not open for write. Ce message d'erreur permet d'indiquer que le fichier est non ouvert en écriture. Vous pouvez uniquement lire à partir d'un fichier texte en mode de réinitialisation, mais pas y écrire. Vous devriez peut-être utiliser procédure APPEND en premier.
63 No memory for device. Ce message d'erreur permet d'indiquer qu'il n'y a pas de mémoire pour le périphérique. Un pilote de périphérique HighSpeed Pascal a besoin de mémoire de tas pour son tampon et son nom.
64 Read Write error. Ce message d'erreur permet d'indiquer une erreur d'écriture en lecture. Une erreur de lecture/écriture s'est produite.
65 Bad numeric value read. Ce message d'erreur permet d'indiquer une mauvaise valeur numérique a été lue. Par exemple, le nombre 1.23e3e3e est considéré comme une mauvaise valeur.


Dernière mise à jour : Dimanche, le 19 avril 2020