====== Messages d'erreur du compilateur ====== Quand vous analysez (compilez) votre scénario, l'éditeur peut signaler des erreurs ou avertissements. Cette section explique les messages les plus fréquents et comment les corriger. ===== Catégories ===== ==== Structure d'un bloc ==== Erreurs liées à l'ouverture/fermeture d'un bloc de contrôle (''si'', ''choisir''…). * [[messages:structure_bloc:fin_bloc_different|fin bloc différent]] — le mot-clé de fin ne correspond pas à l'ouverture. * [[messages:structure_bloc:fin_bloc_manquant|fin bloc manquant]] — un bloc n'a jamais été refermé. * [[messages:structure_bloc:fin_bloc_pas_attendu|fin bloc pas attendu]] — un ''fin X'' apparaît hors d'un bloc ouvert. * [[messages:structure_bloc:sinonsi_suit_sinon|sinon ou sinonsi en double]] — ''sinon''/''sinonsi'' mal placé dans un ''si''. ==== Structure d'une routine ==== Erreurs liées à l'ouverture/fermeture d'une routine (''action'', ''règle'', ''réaction'', ''routine''…). * [[messages:structure_routine:fin_routine_manquant|fin routine manquant]] — une routine n'a jamais été refermée. * [[messages:structure_routine:fin_routine_pas_attendu|fin routine pas attendu]] — un ''fin routine'' apparaît alors qu'aucune routine n'est ouverte. * [[messages:structure_routine:fin_routine_different|fin routine différent]] — le ''fin'' ne correspond pas au type de la routine. ==== Syntaxe d'action ==== * [[messages:syntaxe_action:action_introuvable|action pas comprise]] — l'en-tête de l'action n'a pas pu être décomposé. * [[messages:syntaxe_action:nommage_complements_action|nommage des compléments]] — le complément direct doit être ''ceci'', l'indirect ''cela''. * [[messages:syntaxe_action:phase_inconnue|phase inconnue]] — phase autre que ''prérequis''/''exécution''/''épilogue''. * [[messages:syntaxe_action:complement_inexistant|complément inexistant]] — ''définition ceci/cela'' utilisé sans complément déclaré dans l'en-tête. * [[messages:syntaxe_action:definition_action|définition d'action attendue]] — une définition d'action n'a pas été comprise. ==== Syntaxe de contrôle ==== * [[messages:syntaxe_controle:fin_bloc_inconnu|fin bloc inconnu]] — ''fin X'' avec un X non reconnu. * [[messages:syntaxe_controle:instruction_controle_introuvable|instruction de contrôle introuvable]] — en-tête de contrôle non comprise. * [[messages:syntaxe_controle:instruction_si_introuvable|condition pas comprise]] — la condition d'un ''si''/''sinonsi'' n'a pas été comprise. ==== Syntaxe de règle ==== * [[messages:syntaxe_regle:type_regle_inconnu|type de règle inconnu]] — seuls ''avant'' et ''après'' sont pris en charge. * [[messages:syntaxe_regle:formulation_evenement_pas_comprise|formulation de l'évènement pas comprise]] — l'évènement déclencheur n'a pas été identifié. ==== Syntaxe de réaction ==== * [[messages:syntaxe_reaction:interlocuteur_introuvable|interlocuteur introuvable]] — l'interlocuteur de la réaction n'existe pas. * [[messages:syntaxe_reaction:sujet_introuvable|sujet introuvable]] — un sujet de réaction n'est pas un groupe nominal. * [[messages:syntaxe_reaction:reaction_simple_uniquement|réaction simple uniquement]] — seule l'instruction ''dire'' est permise dans la forme courte. ==== Syntaxe de routine ==== * [[messages:syntaxe_routine:routine_introuvable|routine introuvable]] — début de routine non interprété. * [[messages:syntaxe_routine:regle_introuvable|règle pas comprise]] — l'en-tête de la règle n'a pas pu être décomposé. * [[messages:syntaxe_routine:nom_routine_invalide|nom de routine invalide]] — nom ou bloc ''définitions'' de routine simple incorrect. ==== Syntaxe de définition ==== * [[messages:syntaxe_definition:definition_attendue|définition attendue]] — une phrase attendue comme définition n'a pas été comprise. ==== Référence à un élément ==== * [[messages:reference_element_generique:element_cible_pas_trouve|élément introuvable]] — un élément référencé n'a pas été trouvé. * [[messages:reference_element_generique:nom_element_cible_pas_supporte|nom d'élément pas pris en charge]] — un nom ou une cible n'a pas été compris(e). * [[messages:reference_element_generique:position_element_cible_pas_supportee|position relative pas prise en charge]] — la position entre deux éléments n'est pas reconnue. ==== Synonyme ==== * [[messages:synonyme:utilise_pour_plusieurs_verbes|synonyme utilisé pour plusieurs actions]] — un même mot est synonyme de plusieurs actions. * [[messages:synonyme:synonyme_pas_verbe|synonyme d'action invalide]] — le synonyme d'une action n'est pas un verbe. * [[messages:synonyme:synonyme_pas_groupe_nominal|synonyme d'élément invalide]] — le synonyme d'un élément n'est pas un groupe nominal. * [[messages:synonyme:element_original_introuvable|élément à synonymer introuvable]] — l'élément à synonymer n'a pas été trouvé. * [[messages:synonyme:element_original_ambigu|élément à synonymer ambigu]] — plusieurs éléments correspondent à l'intitulé. ==== Placement ==== Placement des éléments lors de la définition du monde (« ici », « dessus »…). * [[messages:placement:lieu_prealable_introuvable|aucun lieu défini précédemment]] — « ici » utilisé sans lieu défini avant. * [[messages:placement:element_prealable_introuvable|aucun élément défini précédemment]] — « dessus/dedans/dessous » sans élément défini avant. * [[messages:placement:conflit_nom_lieu_element|conflit de nom lieu / élément]] — l'élément « ici » porte le même nom que le lieu. * [[messages:placement:mot_cle_position_inconnu|mot-clé de position non pris en charge]] — mot de position non reconnu. ==== Type ==== * [[messages:type:type_parent_redefini|type parent redéfini]] — un type personnalisé reçoit plusieurs types parents. ==== Syntaxe dynamique ==== Erreurs dans les textes dynamiques (balises entre crochets ''[…]''). * [[messages:syntaxe_dynamique:crochet_ouvrant_non_ferme|crochet ouvrant non fermé]] — un ''['' sans '']'' correspondant. * [[messages:syntaxe_dynamique:crochet_fermant_orphelin|crochet fermant orphelin]] — un '']'' sans ''['' correspondant. * [[messages:syntaxe_dynamique:mot_cle_hors_cadre|mot-clé hors cadre]] — ''[sinon]''/''[ou]''/''[puis]'' hors de leur bloc. * [[messages:syntaxe_dynamique:fin_bloc_sans_ouverture|[fin] sans bloc ouvert]] — un ''[fin]'' sans bloc à refermer. * [[messages:syntaxe_dynamique:sinon_apres_sinon|[sinon] après un [sinon]]] — deux ''[sinon]'' dans le même bloc. * [[messages:syntaxe_dynamique:cadre_non_ferme|cadre non fermé]] — un bloc ''[…]'' resté ouvert en fin de texte. ==== Génération ==== Problèmes détectés lors de la génération du jeu (après l'analyse). * [[messages:generation:intitule_non_supporte|intitulé non supporté]] — valeur de propriété non reconnue. * [[messages:generation:position_introuvable|position introuvable]] — la position d'un élément n'a pas été résolue. * [[messages:generation:positions_multiples|positions multiples non autorisées]] — un objet positionné à plusieurs endroits. * [[messages:generation:action_dupliquee|action définie plusieurs fois]] — utiliser « règle remplacer » pour modifier une action. * [[messages:generation:regle_remplacer_ambigue|règle remplacer ambiguë]] — correspond à plusieurs actions. * [[messages:generation:regle_remplacer_multiple|règle remplacer en double]] — deux remplacements pour la même action. * [[messages:generation:regle_sans_commande|règle sans commande associée]] — l'évènement ne correspond à aucune action. * [[messages:generation:regle_commandes_multiples|règle : plusieurs commandes]] — l'évènement correspond à plusieurs actions. * [[messages:generation:lieu_position_introuvable|position de lieu introuvable]] — position relative d'un lieu non interprétée. * [[messages:generation:lieu_lie_introuvable|lieu lié introuvable]] — le lieu voisin n'a pas été trouvé. * [[messages:generation:etat_negation_inexistant|négation d'un état inexistant]] — « non … » sur un état inconnu. * [[messages:generation:etat_deja_declare|état déjà déclaré]] — nom d'état en conflit (moteur ou déclaration). * [[messages:generation:bascule_etat_deja_declare|bascule sur un état déjà déclaré]] — état de bascule en conflit. * [[messages:generation:groupe_etat_deja_declare|groupe sur un état déjà déclaré]] — état de groupe « se contredisent » en conflit. * [[messages:generation:etat_relation_inexistant|état de relation inexistant]] — état d'une relation non déclaré. ==== Erreur Donjon ==== * [[messages:erreur_donjon:etiquette_entete_introuvable|étiquette d'en-tête introuvable]] — erreur interne du moteur (à signaler). ===== Démarche de débogage ===== - **Lire le numéro de ligne** indiqué — c'est presque toujours pertinent. - **Vérifier l'indentation** — le moteur s'appuie sur la cohérence des blocs. - **Compter les ''fin''** — chaque ''si'' / ''action'' / ''règle'' / ''routine'' / ''choisir'' nécessite son ''fin si'' / ''fin action'' / etc. - Si vous utilisez [[reference:divers:inclure|inclure]], l'erreur pointe sur le **fichier d'origine** (pas le fichier racine). ===== Pages disponibles ===== ===== Voir aussi ===== * [[reference:debogage:|Débogage]] — magnéto, mode triche, commande déboguer. * [[reference:|Référence]] — documentation exhaustive du langage.