Skip to content

Commit

Permalink
improve rules
Browse files Browse the repository at this point in the history
  • Loading branch information
Quentin Martinez authored and Quentin Martinez committed Feb 27, 2018
1 parent 988f48c commit 0fab4e2
Show file tree
Hide file tree
Showing 9 changed files with 67 additions and 24 deletions.
39 changes: 28 additions & 11 deletions Rules/Formating.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,23 +16,25 @@ public void Verify(string filename, string[] content)
{
Console.WriteLine($"[{filename}]:[{0}] Filenames should respect the snake_case naming convention.");
}
CheckSpaceAfterKeyword(filename, content);

for (int i = 0; i < content.Length; i++)
{
string line = content[i];
CheckSpaceVirgule(filename,i, line);
CheckSpaceVirgule(filename, i, line);
CheckOperatorSpace(filename, i, line);
CheckOperandSpace(filename, i, line);
CheckSpaceAfterKeyword(filename, i, line);
int count = 0;
foreach (var c in line){
foreach (var c in line)
{
if (c == '\t')
count = count + 4;
else
count++;
}
if (count > 80)
Console.WriteLine($"[{filename}]:[{i}] Too many columns");
Console.WriteLine($"[{filename}]:[{i}] Line size exceeded.");

if (line.EndsWith(" ") || line.EndsWith("\t") || line.EndsWith(" ;") || line.EndsWith("\t;"))
{
Console.WriteLine($"[{filename}]:[{i}] Trailing space(s) at the end of the line.");
Expand All @@ -47,6 +49,10 @@ public void Verify(string filename, string[] content)
{
Console.WriteLine($"[{filename}]:[{i}] Misplaced pointer symbol.");
}
if (new Regex(";").Matches(line).Count > 1)
{
Console.WriteLine($"[{filename}]:[{i}] Multiple statement on same line.");
}
}
}

Expand Down Expand Up @@ -108,14 +114,25 @@ private void CheckOperandSpace(string filename, int position, string str)
}
}

private void CheckSpaceAfterKeyword(string filename, int position, string str)
private void CheckSpaceAfterKeyword(string filename, string[] content)
{

Regex regStructDefinition = new Regex("(return|if|else if|else|while|for)\\(", RegexOptions.IgnoreCase);
Match match = regStructDefinition.Match(str);
if (match.Success)
for (int i = 0; i < content.Length; i++)
{
Console.WriteLine($"[{filename}]:[{position}] Missing space after keyword {match.Captures[0]}.");
string line = content[i];


Regex regStructDefinition = new Regex("(return|if|else if|else|while)\\(", RegexOptions.IgnoreCase);
Match match = regStructDefinition.Match(line);
if (match.Success)
{
var keyword = match.Captures[0].Value.Remove(match.Captures[0].Value.Length - 1);
Console.WriteLine($"[{filename}]:[{i}] Missing space after keyword {keyword}.");
}

if (new Regex("return[ \t]+[^;\\(=]+", RegexOptions.IgnoreCase).Match(line).Success && !match.Success)
{
Console.WriteLine($"[{filename}]:[{i}] Missing bracket after keyword return.");
}
}
}

Expand Down
11 changes: 10 additions & 1 deletion Rules/FunctionsDefinition.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,18 @@ public void CheckDefinition(string filename, string[] content){
Console.WriteLine($"[{filename}]:[{i}] Missing void word for this function.");
}

if (m.Captures[0].Value.EndsWith(";") && !filename.EndsWith("h")){
if (new Regex("[A-Z]+").Match(line).Success){
Console.WriteLine($"[{filename}]:[{i}] Forbidden uppercase in function name.");
}

if (line.EndsWith(";") && !filename.EndsWith("h") && !filename.StartsWith("static")){
Console.WriteLine($"[{filename}]:[{i}] Forbidden function declaration in c file.");
}

if (!line.EndsWith(";") && filename.EndsWith("c") && !line.Contains("#define"))
{
Console.WriteLine($"[{filename}]:[{i}] Forbidden function implementation in h file.");
}

}

Expand Down
19 changes: 19 additions & 0 deletions Rules/Misc.cs
Original file line number Diff line number Diff line change
Expand Up @@ -46,5 +46,24 @@ private void OwnLineBrace(string filename, string[] content)
}
}
}

private void checkSpace(string filename, string[] content)
{
for (int i = 0; i < content.Length; i++)
{
string line = content[i];
if (line.Contains("{") && !(line.Trim().Length == 1))
{
Console.WriteLine($"[{filename}]:[{i}] Opening brace must be on their own line.");
}
else if (line.Contains("{") && !(line.Trim().Length == 1))
{
if (!line.EndsWith(";"))
{
Console.WriteLine($"[{filename}]:[{i}] CLosing brace must be on their own line.");
}
}
}
}
}
}
14 changes: 8 additions & 6 deletions appRegex.userprefs
Original file line number Diff line number Diff line change
@@ -1,23 +1,25 @@
<Properties StartupConfiguration="{2A6A2AD0-5D68-4A77-B10A-B8052DE11F9D}|Default">
<MonoDevelop.Ide.Workbench ActiveDocument="bin/Debug/My_app.c">
<MonoDevelop.Ide.Workbench ActiveDocument="Rules/Formating.cs">
<Files>
<File FileName="Program.cs" Line="47" Column="13" />
<File FileName="Rules/StructureDefinition.cs" Line="21" Column="102" />
<File FileName="Rules/TypedefUsage.cs" Line="17" Column="42" />
<File FileName="Rules/FunctionsDefinition.cs" Line="39" Column="84" />
<File FileName="Rules/FunctionsDefinition.cs" Line="37" Column="22" />
<File FileName="Rules/Naming.cs" Line="6" Column="1" />
<File FileName="Rules/UnionDefinition.cs" Line="22" Column="119" />
<File FileName="App.config" Line="1" Column="1" />
<File FileName="bin/Debug/My_app.c" Line="21" Column="9" />
<File FileName="Rules/Formating.cs" Line="15" Column="1" />
<File FileName="bin/Debug/My_app.c" Line="13" Column="15" />
<File FileName="Rules/Formating.cs" Line="127" Column="17" />
<File FileName="Properties/AssemblyInfo.cs" Line="1" Column="1" />
<File FileName="Rules.cs" Line="1" Column="1" />
<File FileName="Rules/Misc.cs" Line="44" Column="107" />
<File FileName="Rules/Misc.cs" Line="50" Column="32" />
</Files>
</MonoDevelop.Ide.Workbench>
<MonoDevelop.Ide.Workspace ActiveConfiguration="Debug" />
<MonoDevelop.Ide.DebuggingService.Breakpoints>
<BreakpointStore />
<BreakpointStore>
<Breakpoint file="/Users/quentinmartinez/Documents/42-C-Norme/Rules/FunctionsDefinition.cs" relfile="Rules/FunctionsDefinition.cs" line="39" column="84" />
</BreakpointStore>
</MonoDevelop.Ide.DebuggingService.Breakpoints>
<MonoDevelop.Ide.DebuggingService.PinnedWatches />
<MultiItemStartupConfigurations />
Expand Down
8 changes: 2 additions & 6 deletions bin/Debug/My_app.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,17 @@ struct s_list
struct s_list *next;
}

typedef struct s_list t_list;
t_list *ft_create_elem(void *data, int a, string b, string e);

int main(void);
int main(void)
{
int a;
char alpha;
string pl;
long hier;

a = 0;

if (a != alpha)
{

return;
}
}

Expand Down
Binary file modified bin/Debug/appRegex.exe
Binary file not shown.
Binary file modified bin/Debug/appRegex.pdb
Binary file not shown.
Binary file modified obj/Debug/appRegex.exe
Binary file not shown.
Binary file modified obj/Debug/appRegex.pdb
Binary file not shown.

0 comments on commit 0fab4e2

Please sign in to comment.