Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- #include <dirent.h>
- #include <string.h>
- #define ACCOLADE '{'
- #define ACCOLADE_FERMANTE '}'
- #define CARRIAGERETURN '\n'
- #define SPACE ' '
- #define COMMA ','
- void arrayBracketEol(char*);
- void operatorsSpacing(char*);
- void commaSpacing(char*);
- void indent(char*);
- void commentsHeader(char*);
- void maxLineNumbers(int n, char*);
- void maxFileLineNumbers(int n, char*);
- void noMultiDeclaration(char*);
- void noTrailingSpaces(char*);
- void functionactive(int aBrack, int commaSpace, int pIndent, int commHeadr,int maxLineNbr, int maxFileNbr, int noMultiDec,int noTrail, char* fileName);
- int main()
- {
- int menu;
- FILE *fichier;
- fichier=NULL;
- fichier = fopen("Config.lconf","rb");
- int i=0;
- int j = 1;
- int t=0;
- int numLine=1;
- int fileSize=0;
- int aBrack = 0;
- int commaSpace = 0;
- int pIndent = 0;
- int commHeadr = 0;
- int maxLineNbr = 0;
- int maxFileNbr = 0;
- int noMultiDec =0;
- int noTrail =0;
- char *confBuffer;
- char bufMaxLine[] = {'0','0','0','\0'};
- char bufMaxFileNbr[] = {'0','0','0','\0'};
- if (fichier != NULL)
- {
- do
- {
- fgetc(fichier);
- fileSize++;
- }
- while (!feof(fichier));
- confBuffer = malloc(sizeof(char) * fileSize);
- fseek(fichier, 0, SEEK_SET);
- do
- {
- confBuffer[i] = fgetc(fichier);
- i++;
- }
- while (!feof(fichier));
- for(int i=0; i< fileSize; i++) //On fait un confBuffer sous forme de chaques caractères pour enregistrer chaques lignes
- {
- if(CARRIAGERETURN==confBuffer[i-1] && '-'==confBuffer[i] )
- {
- while (CARRIAGERETURN != confBuffer[i])
- {
- if('-'==confBuffer[i] && 'a'==confBuffer[i+1] && 'r'==confBuffer[i+2] && 'r'==confBuffer[i+3] && 'a'==confBuffer[i+4] && 'y'==confBuffer[i+5] && '-'==confBuffer[i+6] && 'b'==confBuffer[i+7] )
- {
- printf("array bracket parameters\n");
- while(CARRIAGERETURN!=confBuffer[i])
- {
- if('1'==confBuffer[i])
- {
- aBrack = 1;
- }
- else if('0'==confBuffer[i])
- {
- aBrack=0;
- }
- i++;
- }
- printf("%d\n", aBrack );
- }
- if('-'==confBuffer[i] && 'c'==confBuffer[i+1] && 'o'==confBuffer[i+2] && 'm'==confBuffer[i+3] && 'm'==confBuffer[i+4] && 'a'==confBuffer[i+5] )
- {
- printf("Comma parameters\n");
- while(CARRIAGERETURN!=confBuffer[i])
- {
- if('1'==confBuffer[i])
- {
- commaSpace = 1;
- }
- else if('0'==confBuffer[i])
- {
- commaSpace=0;
- }
- i++;
- }
- printf("%d\n", commaSpace );
- }
- if('-'==confBuffer[i] && 'i'==confBuffer[i+1] && 'n'==confBuffer[i+2] && 'd'==confBuffer[i+3] && 'e'==confBuffer[i+4] && 'n'==confBuffer[i+5] )
- {
- printf("indent parameters\n");
- while(CARRIAGERETURN!=confBuffer[i])
- {
- if('1'==confBuffer[i])
- {
- pIndent = 1;
- }
- else if('0'==confBuffer[i])
- {
- pIndent=0;
- }
- i++;
- }
- printf("%d\n", pIndent );
- }
- if('-'==confBuffer[i] && 'c'==confBuffer[i+1] && 'o'==confBuffer[i+2] && 'm'==confBuffer[i+3] && 'm'==confBuffer[i+4] && 'e'==confBuffer[i+5] && 'n'==confBuffer[i+6] && 't'==confBuffer[i+7] )
- {
- printf("comments parameters\n");
- while(CARRIAGERETURN!=confBuffer[i])
- {
- if('1'==confBuffer[i])
- {
- commHeadr = 1;
- }
- else if('0'==confBuffer[i])
- {
- commHeadr=0;
- }
- i++;
- }
- printf("%d\n", commHeadr );
- }
- if('-'==confBuffer[i] && 'm'==confBuffer[i+1] && 'a'==confBuffer[i+2] && 'x'==confBuffer[i+3] && '-'==confBuffer[i+4] && 'l'==confBuffer[i+5] && 'i'==confBuffer[i+6] && 'n'==confBuffer[i+7] )
- {
- printf("maxline parameters\n");
- while(CARRIAGERETURN!=confBuffer[i])
- {
- if('='==confBuffer[i])
- {
- j=1;
- t=0;
- while(CARRIAGERETURN!=confBuffer[i+j])
- {
- bufMaxLine[t] = confBuffer[i+j];
- j++;
- t++;
- }
- }
- i++;
- }
- maxLineNbr = atoi(bufMaxLine);
- printf("%d\n", maxLineNbr);
- }
- if('-'==confBuffer[i] && 'm'==confBuffer[i+1] && 'a'==confBuffer[i+2] && 'x'==confBuffer[i+3] && '-'==confBuffer[i+4] && 'f'==confBuffer[i+5] && 'i'==confBuffer[i+6] && 'l'==confBuffer[i+7] )
- {
- printf("maxfile parameters\n");
- while(CARRIAGERETURN!=confBuffer[i])
- {
- if('='==confBuffer[i])
- {
- j=1;
- t=0;
- while(CARRIAGERETURN!=confBuffer[i+j])
- {
- bufMaxFileNbr[t] = confBuffer[i+j];
- j++;
- t++;
- }
- }
- i++;
- }
- maxFileNbr = atoi(bufMaxFileNbr);
- printf("%d\n", maxFileNbr);
- }
- if('-'==confBuffer[i] && 'n'==confBuffer[i+1] && 'o'==confBuffer[i+2] && '-'==confBuffer[i+3] && 't'==confBuffer[i+4] && 'r'==confBuffer[i+5] && 'a'==confBuffer[i+6] && 'i'==confBuffer[i+7])
- {
- printf("notrailing parameters\n");
- while(CARRIAGERETURN!=confBuffer[i])
- {
- if('1'==confBuffer[i])
- {
- noTrail = 1;
- }
- else if('0'==confBuffer[i])
- {
- noTrail=0;
- }
- i++;
- }
- printf("%d\n", noTrail );
- }
- if('-'==confBuffer[i] && 'n'==confBuffer[i+1] && 'o'==confBuffer[i+2] && '-'==confBuffer[i+3] && 'm'==confBuffer[i+4] && 'u'==confBuffer[i+5] && 'l'==confBuffer[i+6] && 't'==confBuffer[i+7])
- {
- printf("nomultideclarations parameters\n");
- while(CARRIAGERETURN!=confBuffer[i])
- {
- if('1'==confBuffer[i])
- {
- noMultiDec = 1;
- }
- else if('0'==confBuffer[i])
- {
- noMultiDec=0;
- }
- i++;
- }
- printf("%d\n", noMultiDec );
- }
- i++;
- }
- }
- if(CARRIAGERETURN==confBuffer[i])
- {
- numLine++;
- }
- fclose(fichier);
- }
- }
- free(confBuffer);
- //////MENU//////////
- do
- {
- DIR * rep = opendir(".");
- printf("\nTaper 1 pour activer le linter !\n");
- printf("Taper 0 pour sortir du programme !\n");
- scanf("%d",&menu);
- switch(menu)
- {
- case 1:
- if (rep != NULL)
- {
- struct dirent * ent;
- while ((ent = readdir(rep)) != NULL)
- {
- printf("\n%s\n", ent->d_name);
- functionactive(aBrack, commaSpace, pIndent, commHeadr, maxLineNbr, maxFileNbr, noMultiDec, noTrail, ent->d_name);
- /*
- arrayBracketEol(ent->d_name);
- operatorsSpacing(ent->d_name);
- commaSpacing(ent->d_name);
- indent(ent->d_name);
- commentsHeader((ent->d_name));
- maxLineNumbers(60, ent->d_name);
- maxFileLineNumbers(20, ent->d_name);
- noMultiDeclaration(ent->d_name);
- */
- }
- closedir(rep);
- }
- break;
- case 0:
- return 0;
- default:
- break;
- }
- }
- while(menu != 0);
- }
- void functionactive(int aBrack, int commaSpace, int pIndent, int commHeadr,int maxLineNbr, int maxFileNbr,int noMultiDec, int noTrail, char* fileName)
- {
- /*
- if (aBrack == 1)
- {
- arrayBracketEol(fileName);
- }
- else if(aBrack == 0)
- {
- }
- if (commaSpace == 1)
- {
- commaSpacing(fileName);
- }
- else if(commaSpace == 0)
- {
- }
- if (pIndent == 1)
- {
- indent(fileName);
- }
- else if(pIndent == 0)
- {
- }
- if (commHeadr == 1)
- {
- commentsHeader(fileName);
- }
- else if(commHeadr == 0)
- {
- }
- */
- if (noTrail == 1)
- {
- noTrailingSpaces(fileName);
- }
- else if(noTrail == 0)
- {
- }
- /*
- if (maxLineNbr > 0)
- {
- maxLineNumbers(60, fileName);
- }
- else
- {
- }
- if (maxFileNbr > 0)
- {
- maxFileLineNumbers(20, fileName);
- }
- else
- {
- }
- */
- /*
- if (Recursive = True){
- }
- */
- }
- void arrayBracketEol(char* fileName)
- {
- FILE *fichier;
- fichier=NULL;
- fichier = fopen(fileName,"rb");
- char caractereActuel;
- char caractereBuff;
- int numLine=1;
- if (fichier != NULL)
- {
- do
- {
- caractereActuel = fgetc(fichier); // On lit le caractère
- if(CARRIAGERETURN==caractereActuel)
- {
- numLine++;
- }
- if(ACCOLADE==caractereActuel)
- {
- if (CARRIAGERETURN==caractereBuff)
- {
- printf("array-bracket-eol error line %d\n",numLine);
- }
- }
- if(SPACE!=caractereActuel)
- {
- caractereBuff = caractereActuel;
- }
- }
- while (!feof(fichier));
- }
- else
- {
- //printf("\n Impossible d'ouvrir le fichier test.txt \n");
- }
- fclose(fichier);
- }
- void operatorsSpacing(char* fileName)
- {
- /* PENSER à GERER LES EXCEPTIONS EX:"* POUR LES DECLARATIONS DE POINTEURS"*/
- FILE *fichier;
- fichier=NULL;
- fichier = fopen(fileName,"rb");
- char caractereActuel;
- char prevChar;
- char nextChar;
- int numLine=1;
- if (fichier != NULL)
- {
- do
- {
- if(CARRIAGERETURN==caractereActuel)
- {
- numLine++;
- }
- caractereActuel = fgetc(fichier);
- if(43==caractereActuel || 42==caractereActuel || 47==caractereActuel || 45==caractereActuel || 61==caractereActuel || 63==caractereActuel || 58==caractereActuel)
- {
- fseek(fichier, -2, SEEK_CUR );
- prevChar=fgetc(fichier);
- fseek(fichier, 1, SEEK_CUR);
- nextChar=fgetc(fichier);
- if(prevChar!=SPACE || nextChar!=SPACE)
- {
- printf("operators-spacing error line %d\n",numLine);
- }
- }
- }
- while (!feof(fichier));
- }
- else
- {
- //printf("Impossible d'ouvrir le fichier test.txt");
- }
- fclose(fichier);
- }
- void commaSpacing(char* fileName)
- {
- FILE *fichier;
- fichier=NULL;
- fichier = fopen(fileName,"rb");
- char caractereActuel;
- char nextChar;
- int numLine=1;
- if (fichier != NULL)
- {
- do
- {
- if(CARRIAGERETURN==caractereActuel)
- {
- numLine++;
- }
- caractereActuel = fgetc(fichier);
- if(COMMA==caractereActuel)
- {
- nextChar=fgetc(fichier);
- if(nextChar!=SPACE)
- {
- printf("coma-spacing error line %d\n",numLine);
- }
- }
- }
- while (!feof(fichier));
- }
- else
- {
- //printf("Impossible d'ouvrir le fichier test.txt");
- }
- fclose(fichier);
- }
- void indent(char* fileName)
- {
- FILE *fichier;
- fichier=NULL;
- fichier = fopen(fileName,"rb");
- char caractereActuel;
- int numLine=1;
- int n = 0;
- int numberOfSpace = 0;
- int counterEndOfLine = 0;
- if (fichier != NULL)
- {
- do
- {
- if(CARRIAGERETURN==caractereActuel)
- {
- numLine++;
- counterEndOfLine = -1;
- }
- if(ACCOLADE==caractereActuel) //Trouve une accolade ouvrante
- {
- n += 4;
- //printf("%c", caractereActuel);
- //printf("%d \n", numLine);
- }
- if(ACCOLADE_FERMANTE==caractereActuel) //Trouve une accolade fermante
- {
- n -= 4;
- //printf("%c", caractereActuel);
- //printf("%d \n", numLine);
- }
- //printf("%d ", counterEndOfLine);
- if(counterEndOfLine == 0) //Si nous sommes en début de ligne
- {
- while(caractereActuel==SPACE) //Compte les espaces en début de ligne
- {
- numberOfSpace++;
- caractereActuel = fgetc(fichier);
- }
- printf("\n %d %d ", n, numberOfSpace);
- if(numberOfSpace != n && numberOfSpace != 0) //Compare le nombre d'espace en début de ligne au nombre d'espace qu'il devrait y avoir
- {
- printf("indent error line %d\n",numLine);
- }
- }
- numberOfSpace = 0;
- caractereActuel = fgetc(fichier);
- counterEndOfLine++;
- }
- while (!feof(fichier));
- }
- else
- {
- //printf("Impossible d'ouvrir le fichier test.txt");
- }
- fclose(fichier);
- }
- void commentsHeader(char* fileName)
- {
- FILE *fichier;
- fichier=NULL;
- fichier = fopen(fileName,"rb");
- char caractereActuel;
- char caractereBuff;
- int numLine=1;
- if (fichier != NULL)
- {
- do
- {
- caractereActuel = fgetc(fichier); // On lit le caractère
- if(CARRIAGERETURN==caractereActuel)
- {
- numLine++;
- }
- if(numLine<6)
- {
- if('*'==caractereActuel)
- {
- if ('/'==caractereBuff)
- {
- printf("comments header on top line %d\n",numLine);
- }
- }
- }
- caractereBuff = caractereActuel;
- }
- while (!feof(fichier));
- }
- else
- {
- printf("Impossible d'ouvrir le fichier test.txt");
- }
- fclose(fichier);
- }
- void maxLineNumbers(int n, char* fileName)
- {
- FILE *fichier;
- fichier=NULL;
- fichier = fopen(fileName,"rb");
- char caractereActuel;
- int numLine=1;
- int nbCarac=0;
- int reset=0;
- if (fichier != NULL)
- {
- do
- {
- caractereActuel = fgetc(fichier); // On lit le caractère
- if(CARRIAGERETURN==caractereActuel)
- {
- numLine++;
- reset=0;
- }
- nbCarac++;
- if (CARRIAGERETURN==caractereActuel)
- {
- nbCarac=0;
- }
- if(nbCarac>n && reset!=1)
- {
- printf("max-line-numbers error line %d\n",numLine);
- reset=1;
- }
- }
- while (!feof(fichier));
- }
- else
- {
- printf("Impossible d'ouvrir le fichier test.txt");
- }
- fclose(fichier);
- }
- void maxFileLineNumbers(int n, char* fileName)
- {
- FILE *fichier;
- fichier=NULL;
- fichier = fopen(fileName,"rb");
- char caractereActuel;
- int numLine=1;
- int nbCarac=0;
- if (fichier != NULL)
- {
- do
- {
- caractereActuel = fgetc(fichier); // On lit le caractère
- nbCarac++;
- if(CARRIAGERETURN==caractereActuel)
- {
- numLine++;
- }
- }
- while (!feof(fichier));
- if (numLine>n)
- {
- printf("error maxFileLineNumbers : %d lignes", numLine);
- }
- }
- else
- {
- printf("Impossible d'ouvrir le fichier test.txt");
- }
- fclose(fichier);
- }
- void noTrailingSpaces(char* fileName)
- {
- FILE *fichier;
- fichier=NULL;
- int cptError = 0;
- fichier = fopen(fileName,"rb");
- char caractereActuel;
- int numLine=1;
- if (fichier != NULL)
- {
- do
- {
- caractereActuel = fgetc(fichier); // On lit le caractère
- if(CARRIAGERETURN==caractereActuel)
- {
- numLine++;
- }
- if(SPACE == caractereActuel)
- {
- cptError=1;
- }
- else if(CARRIAGERETURN==caractereActuel)
- {
- if(cptError==1)
- {
- printf("noTrailingSpaces error line %d\n",numLine);
- cptError=0;
- }
- }
- else if(SPACE!=caractereActuel)
- {
- cptError =0;
- }
- }
- while (!feof(fichier));
- }
- else
- {
- //printf("\n Impossible d'ouvrir le fichier test.txt \n");
- }
- fclose(fichier);
- }
- void noMultiDeclaration(char* fileName)
- {
- FILE *fichier;
- fichier=NULL;
- fichier = fopen(fileName,"rb");
- int i=0;
- int numLine=1;
- int checkCR=0;
- int fileSize=0;
- char *buffer;
- if (fichier != NULL)
- {
- do
- {
- fgetc(fichier);
- fileSize++;
- }
- while (!feof(fichier));
- buffer = malloc(sizeof(char) * fileSize);
- fseek(fichier, 0, SEEK_SET);
- do
- {
- buffer[i] = fgetc(fichier);
- i++;
- }
- while (!feof(fichier));
- for(int i=0; i< fileSize; i++) //On fait un buffer sous forme de chaques caractères pour enregistrer chaques lignes
- {
- //Debut du process pour trouver les types de variables
- if('t'==buffer[i] && 'r'==buffer[i-1] && 'o'==buffer[i-2] && 'h'==buffer[i-3] && 's'==buffer[i-4] && (' '==buffer[i-5] || CARRIAGERETURN==buffer[i-5]))
- {
- while (CARRIAGERETURN != buffer[i])
- {
- if(';'==buffer[i] || '('==buffer[i])
- {
- checkCR=1;
- }
- if (','==buffer[i] && checkCR==0)
- {
- printf("no-multi-declaration error line %d\n",numLine);
- }
- i++;
- }
- checkCR=0;
- }
- if('e'==buffer[i] && 'l'==buffer[i-1] && 'b'==buffer[i-2] && 'u'==buffer[i-3] && 'o'==buffer[i] && 'd'==buffer[i-5] && (' '==buffer[i-6] || CARRIAGERETURN==buffer[i-6]))
- {
- while (CARRIAGERETURN != buffer[i])
- {
- if(';'==buffer[i] || '('==buffer[i])
- {
- checkCR=1;
- }
- if (','==buffer[i] && checkCR==0)
- {
- printf("no-multi-declaration error line %d\n",numLine);
- }
- i++;
- }
- checkCR=0;
- }
- if('t'==buffer[i] && 'n'==buffer[i-1] && 'i'==buffer[i-2] && (' '==buffer[i-3] || CARRIAGERETURN==buffer[i-3]))
- {
- while (CARRIAGERETURN != buffer[i])
- {
- if(';'==buffer[i] || '('==buffer[i])
- {
- checkCR=1;
- }
- if (','==buffer[i] && checkCR==0)
- {
- printf("no-multi-declaration error line %d\n",numLine);
- }
- i++;
- }
- checkCR=0;
- }
- if('t'==buffer[i] && 'a'==buffer[i-1] && 'o'==buffer[i-2] && 'l'==buffer[i-3] && 'f'==buffer[i-4] && (' '==buffer[i-5] || CARRIAGERETURN==buffer[i-5]))
- {
- while (CARRIAGERETURN != buffer[i])
- {
- if(';'==buffer[i] || '('==buffer[i])
- {
- checkCR=1;
- }
- if (','==buffer[i] && checkCR==0)
- {
- printf("no-multi-declaration error line %d\n",numLine);
- }
- i++;
- }
- checkCR=0;
- }
- if('r'==buffer[i] && 'a'==buffer[i-1] && 'h'==buffer[i-2] && 'c'==buffer[i-3] && (' '==buffer[i-4] || CARRIAGERETURN==buffer[i-4]))
- {
- while (CARRIAGERETURN != buffer[i])
- {
- if(';'==buffer[i] || '('==buffer[i])
- {
- checkCR=1;
- }
- if (','==buffer[i] && checkCR==0)
- {
- printf("no-multi-declaration error line %d\n",numLine);
- }
- i++;
- }
- checkCR=0;
- }
- if('n'==buffer[i] && 'a'==buffer[i-1] && 'e'==buffer[i-2] && 'l'==buffer[i-3] && 'o'==buffer[i-4] && 'o'==buffer[i-5] && 'b'==buffer[i-6] && (' '==buffer[i-7] || CARRIAGERETURN==buffer[i-7]))
- {
- while (CARRIAGERETURN != buffer[i])
- {
- if(';'==buffer[i] || '('==buffer[i])
- {
- checkCR=1;
- }
- if (','==buffer[i] && checkCR==0)
- {
- printf("no-multi-declaration error line %d\n",numLine);
- }
- i++;
- }
- numLine++;
- checkCR=0;
- }
- if(CARRIAGERETURN==buffer[i])
- {
- numLine++;
- }
- }
- }
- else
- {
- printf("Impossible d'ouvrir le fichier test.c");
- }
- printf("%d",numLine);
- fclose(fichier);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement