/*!\file check.h * * \author SOUPLET Antoine * \version 1.0 * \date 10-01-2012 * * \brief Fichier contenant les entêtes des fonctions de vérification de la justesse des lignes écrites dans les fichiers L-System et Flamme * */ /*!\fn void testCorrectFlameFunction(char* pc_function, char* pc_fileName, int i_line) * * \author SOUPLET Antoine * \version 1.0 * \date 10-01-2012 * * \brief Teste si une chaine de caractère, à un numéro de ligne précis, dans un fichier, est correcte * * \pre * \post * * \param pc_function : Une chaine de caractère correspond à l'expression de la fonction de transformation flamme à tester * \param pc_fileName : Le nom du fichier flamme contenant l'expression de la fonction de transformation flamme à tester * \param i_line : Le numéro de la ligne correspondant à la position de l'expression de la fonction de transformation flamme à tester * */ void testCorrectFlameFunction(char* pc_function, char* pc_fileName, int i_line); /*!\fn int testCorrectParenthesis(char* pc_function, char* pc_fileName, int i_line) * * \author SOUPLET Antoine * \version 1.0 * \date 10-01-2012 * * \brief Teste si la syntaxe des parenthèses dans la ligne d'un fichier est correcte * * \pre * \post * * \param pc_function : Une chaine de caractère représentant la fonction de transformation flamme * \param pc_fileName : Une chaine de caractère correspondant au nom du fichier flamme * \param i_line : Un entier correspondant à la ligne contenant l'expression de la fonction de transformation flamme * \return Un entier, 1 si la syntaxe des parenthèses est correcte, 0 sinon : * */ void testCorrectParenthesis(char* pc_function, char* pc_fileName, int i_line); /*!\fn int isAllowChar(char* pc_fileName, int i_line, int i_pos, char* pc_function) * * \author SOUPLET Antoine * \version 1.0 * \date 10-01-2012 * * \brief Teste si un caractère est permit, c'est à dire s'il correspond à un opérateur, un opérande prédéfinit, un chiffre ou une parenthèse * * \pre * \post * * \param pc_fileName : Une chaine de caractère correspondant au nom du fichier flamme * \param i_line : Un entier correspondant à la ligne contenant l'expression de la fonction de transformation flamme * \param i_pos : Un entier correspondant à la position du caractère en cours de lecture * \param pc_function : Une chaine de caractère représentant la fonction de transformation flamme * \return Un entier, 1 si la syntaxe des parenthèses est correcte, 0 sinon * */ int isAllowChar(char* pc_fileName, int i_line, int i_pos, char* pc_function); /*!\fn int isCorrectCos(char* pc_fileName, int i_line, int i_pos, char* pc_function) * * \author SOUPLET Antoine * \version 1.0 * \date 10-01-2012 * * \brief Teste si la fonction cosinus reconnue par l'analyseur syntaxique est correcte * * \pre * \post * * \param pc_fileName : Une chaine de caractère correspondant au nom du fichier flamme * \param i_line : Un entier correspondant à la ligne contenant l'expression de la fonction de transformation * \param i_pos : Un entier correspondant à la position du caractère en cours de lecture * \param pc_function : Une chaine de caractère représentant la fonction de transformation * \return Un entier, 1 si la fonction cosinus est correcte, 0 sinon * */ int isCorrectCos(char* pc_fileName, int i_line, int i_pos, char* pc_function); /*!\fn int isCorrectSin(char* pc_fileName, int i_line, int i_pos, char* pc_function) * * \author SOUPLET Antoine * \version 1.0 * \date 10-01-2012 * * \brief Teste si la fonction sinus reconnue par l'analyseur syntaxique est correcte * * \pre * \post * * \param pc_fileName : Une chaine de caractère correspondant au nom du fichier flamme * \param i_line : Un entier correspondant à la ligne contenant l'expression de la fonction de transformation * \param i_pos : Un entier correspondant à la position du caractère en cours de lecture * \param pc_function : Une chaine de caractère représentant la fonction de transformation * \return Un entier, 1 si la fonction sinus est correcte, 0 sinon * */ int isCorrectSin(char* pc_fileName, int i_line, int i_pos, char* pc_function); /*!\fn int isCorrectTan(char* pc_fileName, int i_line, int i_pos, char* pc_function) * * \author SOUPLET Antoine * \version 1.0 * \date 10-01-2012 * * \brief Teste si la fonction tangente reconnue par l'analyseur syntaxique est correcte * * \pre * \post * * \param pc_fileName : Une chaine de caractère correspondant au nom du fichier flamme * \param i_line : Un entier correspondant à la ligne contenant l'expression de la fonction de transformation * \param i_pos : Un entier correspondant à la position du caractère en cours de lecture * \param pc_function : Une chaine de caractère représentant la fonction de transformation * \return Un entier, 1 si la fonction tangente est correcte, 0 sinon * */ int isCorrectTan(char* pc_fileName, int i_line, int i_pos, char* pc_function); /*!\fn int isCorrectArc(char* pc_fileName, int i_line, int i_pos, char* pc_function) * * \author SOUPLET Antoine * \version 1.0 * \date 10-01-2012 * * \brief Teste si la fonction de type arc (arccosinus, arcsinus, arctangente) reconnu par l'analyseur syntaxique est correcte * * \pre * \post * * \param pc_fileName : Une chaine de caractère correspondant au nom du fichier flamme * \param i_line : Un entier correspondant à la ligne contenant l'expression de la fonction de transformation * \param i_pos : Un entier correspondant à la position du caractère en cours de lecture * \param pc_function : Une chaine de caractère représentant la fonction de transformation * \return Un entier, 1 si la fonction de type arc (arccosinus, arcsinus, arctangente) est correcte, 0 sinon * */ int isCorrectArc(char* pc_fileName, int i_line, int i_pos, char* pc_function); /*!\fn int isCorrectHyp(char* pc_fileName, int i_line, int i_pos, char* pc_function) * * \author SOUPLET Antoine * \version 1.0 * \date 10-01-2012 * * \brief Teste si la fonction hyperbolique reconnue par l'analyseur syntaxique est correcte * * \pre * \post * * \param pc_fileName : Une chaine de caractère correspondant au nom du fichier flamme * \param i_line : Un entier correspondant à la ligne contenant l'expression de la fonction de transformation * \param i_pos : Un entier correspondant à la position du caractère en cours de lecture * \param pc_function : Une chaine de caractère représentant la fonction de transformation * \return Un entier, 1 si la fonction hyperbolique est correcte, 0 sinon * */ int isCorrectHyp(char* pc_fileName, int i_line, int i_pos, char* pc_function); /*!\fn int isCorrectPi(char* pc_fileName, int i_line, int i_pos, char* pc_function) * * \author SOUPLET Antoine * \version 1.0 * \date 10-01-2012 * * \brief Teste si l'operande constant Pi reconnu par l'analyseur syntaxique est correct * * \pre * \post * * \param pc_fileName : Une chaine de caractère correspondant au nom du fichier flamme * \param i_line : Un entier correspondant à la ligne contenant l'expression de la fonction de transformation * \param i_pos : Un entier correspondant à la position du caractère en cours de lecture * \param pc_function : Une chaine de caractère représentant la fonction de transformation * \return Un entier, 1 si la l'opérande Pi est correct, 0 sinon * */ int isCorrectPi(char* pc_fileName, int i_line, int i_pos, char* pc_function); /*!\fn int isCorrectSqrt(char* pc_fileName, int i_line, int i_pos, char* pc_function) * * \author SOUPLET Antoine * \version 1.0 * \date 10-01-2012 * * \brief Teste si la fonction racine carrée reconnue par l'analyseur syntaxique est correcte * * \pre * \post * * \param pc_fileName : Une chaine de caractère correspondant au nom du fichier flamme * \param i_line : Un entier correspondant à la ligne contenant l'expression de la fonction de transformation * \param i_pos : Un entier correspondant à la position du caractère en cours de lecture * \param pc_function : Une chaine de caractère représentant la fonction de transformation * \return Un entier, 1 si la fonction racine carrée est correcte, 0 sinon * */ int isCorrectSqrt(char* pc_fileName, int i_line, int i_pos, char* pc_function); /*!\fn int isCorrectExp(char* pc_fileName, int i_line, int i_pos, char* pc_function) * * \author SOUPLET Antoine * \version 1.0 * \date 10-01-2012 * * \brief Teste si la fonction exponentielle reconnue par l'analyseur syntaxique est correcte * * \pre * \post * * \param pc_fileName : Une chaine de caractère correspondant au nom du fichier flamme * \param i_line : Un entier correspondant à la ligne contenant l'expression de la fonction de transformation * \param i_pos : Un entier correspondant à la position du caractère en cours de lecture * \param pc_function : Une chaine de caractère représentant la fonction de transformation * \return Un entier, 1 si la fonction racine carrée est correcte, 0 sinon * */ int isCorrectExp(char* pc_fileName, int i_line, int i_pos, char* pc_function); /*!\fn int isCorrectOperand(char* pc_fileName, int i_line, int i_pos, char* pc_function) * * \author SOUPLET Antoine * \version 1.0 * \date 10-01-2012 * * \brief Teste si l'operande reconnu par l'analyseur syntaxique est correct * * \pre * \post * * \param pc_fileName : Une chaine de caractère correspondant au nom du fichier flamme * \param i_line : Un entier correspondant à la ligne contenant l'expression de la fonction de transformation * \param i_pos : Un entier correspondant à la position du caractère en cours de lecture * \param pc_function : Une chaine de caractère représentant la fonction de transformation * \return Un entier, 1 si l'opérande est correct, 0 sinon * */ int isCorrectOperand(char* pc_fileName, int i_line, int i_pos, char* pc_function); /*!\fn int isCorrectOperator(char* pc_fileName, int i_line, int i_pos, char* pc_function) * * \author SOUPLET Antoine * \version 1.0 * \date 10-01-2012 * * \brief Teste si l'operateur reconnu par l'analyseur syntaxique est correct * * \pre * \post * * \param pc_fileName : Une chaine de caractère correspondant au nom du fichier flamme * \param i_line : Un entier correspondant à la ligne contenant l'expression de la fonction de transformation * \param i_pos : Un entier correspondant à la position du caractère en cours de lecture * \param pc_function : Une chaine de caractère représentant la fonction de transformation * \return Un entier, 1 si l'opérande est correct, 0 sinon * */ int isCorrectOperator(char* pc_fileName, int i_line, int i_pos, char* pc_function); /*!\fn int isCorrectParenthesisOpen(char* pc_fileName, int i_line, int i_pos, char* pc_function) * * \author SOUPLET Antoine * \version 1.0 * \date 10-01-2012 * * \brief Teste si la parenthèse ouvrante reconnue par l'analyseur syntaxique est correcte * * \pre * \post * * \param pc_fileName : Une chaine de caractère correspondant au nom du fichier flamme * \param i_line : Un entier correspondant à la ligne contenant l'expression de la fonction de transformation * \param i_pos : Un entier correspondant à la position du caractère en cours de lecture * \param pc_function : Une chaine de caractère représentant la fonction de transformation * \return Un entier, 1 si l'opérande est correct, 0 sinon * */ int isCorrectParenthesisOpen(char* pc_fileName, int i_line, int i_pos, char* pc_function); /*!\fn int isConstant(char c_char) * * \author SOUPLET Antoine * \version 1.0 * \date 10-01-2012 * * \brief Teste si un caractère est une constante prédéfinit * * \pre * \post * * \param c_char : Un caractère correspondant au caractère en cours de lecture par l'analyseur syntaxique * \return Un entier, 0 si le caractère est une constante, 1 sinon * */ int isConstant(char c_char); /*!\fn int isParticularOperatorBinary(char c_char) * * \author SOUPLET Antoine * \version 1.0 * \date 10-01-2012 * * \brief Test si un caractère est un opérateur particulier (différent de + ou -) * * \pre * \post * * \param c_char : Un caractère correspondant au caractère en cours de lecture par l'analyseur syntaxique * \return Un entier, 0 si le caractère est un opérator particulier (différent de + ou -) * */ int isParticularOperatorBinary(char c); /*!\fn int isAllowOperatorOrParenthesis(char* pc_fileName, int i_line, int i_pos, char* pc_function) * * \author SOUPLET Antoine * \version 1.0 * \date 10-01-2012 * * \brief Teste si un caractère correspond à un opérateur permit ou à une parenthèse * * \pre * \post * * \param pc_fileName : Une chaine de caractère correspondant au nom du fichier flamme * \param i_line : Un entier correspondant à la ligne contenant l'expression de la fonction de transformation flamme * \param i_pos : Un entier correspondant à la position du caractère en cours de lecture * \param pc_function : Une chaine de caractère représentant la fonction de transformation flamme * \return Un entier, 1 si le caractère est permit, 0 sinon * */ int isAllowOperatorOrParenthesis(char* pc_fileName, int i_line, int i_pos, char* pc_function); /*!\fn void exitErrorSyntax(char* pc_fileName, char* pc_function, int i_line, int i_pos, int i_posMax) * * \author SOUPLET Antoine * \version 1.0 * \date 10-01-2012 * * \brief Quitte le programme après avoir affiché un message d'erreur précisant la position du caractère à problème, la ligne et le fichier contenant l'erreur * * \pre * \post * * \param pc_fileName : Une chaine de caractère correspondant au nom du fichier flamme * \param pc_function : Une chaine de caractère représentant la fonction de transformation flamme * \param i_line : Un entier correspondant à la ligne contenant l'expression de la fonction de transformation flamme * \param i_pos : Un entier correspondant à la position du caractère en cours de lecture * \param i_posMax : Un entier correspondant à la position maximal du dernier caractère posant problème * */ void exitErrorSyntax(char* pc_fileName, char* pc_function, int i_line, int i_pos, int i_posMax); /*!\fn void exitErrorSyntaxParenthesis(char* pc_fileName, char* pc_function, int i_line) * * \author SOUPLET Antoine * \version 1.0 * \date 10-01-2012 * * \brief Quitte le programme après avoir affichée un message erreur précisant la ligne et le fichier contenant l'erreur de parenthèses * * \pre * \post * * \param pc_fileName : Une chaine de caractère correspondant au nom du fichier flamme * \param pc_function : Une chaine de caractère représentant la fonction de transformation flamme * \param i_line : Un entier correspondant à la ligne contenant l'expression de la fonction de transformation flamme * */ void exitErrorSyntaxParenthesis(char* pc_fileName, char* pc_function, int i_line); /*!\fn void exitErrorFileName(char* pc_fileName, char* pc_type) * * \author SOUPLET Antoine * \version 1.0 * \date 10-01-2012 * * \brief Quitte le programme après avoir affiché un message d'erreur indiquant le nom du fichier n'existant pas * * \pre * \post * * \param pc_fileName : Une chaine de caractère correspondant au nom du fichier flamme * \param pc_type : Une chaine de caractère représentant le type de fichier (Flamme ou L-System) * */ void exitErrorFileName(char* pc_fileName, char* pc_type); /*!\fn void exitErrorNumberLine(char* pc_fileName) * * \author SOUPLET Antoine * \version 1.0 * \date 10-01-2012 * * \brief Quitte le programme après avoir affiché un message d'erreur indiquant le fichier dans lequel le nombre de lignes renseignées est insuffisant * * \pre * \post * * \param pc_fileName : Une chaine de caractère correspondant au nom du fichier flamme ou L-System * */ void exitErrorNumberLine(char* pc_fileName); /*!\fn void exitErrorGeneralSyntax(char* pc_fileName) * * \author SOUPLET Antoine * \version 1.0 * \date 10-01-2012 * * \brief Quitte le programme après avoir affiché un message d'erreur indiquant qu'il y a un problème de syntaxe dans le fichier passé en paramètre * * \pre * \post * * \param pc_fileName : Une chaine de caractère correspondant au nom du fichier L-System * */ void exitErrorGeneralSyntax(char* pc_fileName); /*!\fn void exitErrorSyntaxSym(char* pc_fileName) * * \author SOUPLET Antoine * \version 1.0 * \date 10-01-2012 * * \brief Quitte le programme après avoir affiché un message d'erreur indiquant le symbole concerné par cette erreur * * \pre * \post * * \param pc_fileName : Une chaine de caractère correspondant au nom du fichier L-System * */ void exitErrorSyntaxSym(char* pc_fileName); /*!\fn void exitErrorSyntaxLsystem(char* pc_fileName, char* pc_function, int i_line) * * \author SOUPLET Antoine * \version 1.0 * \date 10-01-2012 * * \brief Quitte le programme après avoir affiché un message d'erreur indiquant la ligne du problème * * \pre * \post * * \param pc_fileName : Une chaine de caractère correspondant au nom du fichier L-System * \param pc_function : Une chaine de caractère représentant la ligne concernée par l'erreur * \param i_line : Un entier correspondant au numéro de la ligne contenant l'erreur de syntaxe * */ void exitErrorSyntaxLsystem(char* pc_fileName, char* pc_function, int i_line); /*!\fn void testCorrectLsystemFile(char** ppc_tab, int i_nbLine, char* pc_fileName) * * \author SOUPLET Antoine * \version 1.0 * \date 10-01-2012 * * \brief Teste si un fichier L-System est correct * * \pre * \post * * \param ppc_tab : Un tableau de chaines de caractères contenant les informations extraites du fichier L-System * \param i_nbLine : Une entier représentant le nombre de lignes * \param pc_fileName : Une chaine de caractère correspondant au nom du fichier L-System * */ void testCorrectLsystemFile(char** ppc_tab, int i_nbLine, char* pc_fileName);