Clean indentation
This commit is contained in:
parent
ee26ca9c27
commit
a300e1cc32
|
@ -3,20 +3,20 @@
|
|||
#include "shared/functions/synthaxcheck.c"
|
||||
|
||||
int main() {
|
||||
char errors[6][30] = {
|
||||
"none",
|
||||
"unmatched round bracket",
|
||||
"unmatched curly bracket",
|
||||
"unmatched single quote",
|
||||
"unmatched double quote",
|
||||
"unmatched square bracket"
|
||||
};
|
||||
int result;
|
||||
if ((result = synthaxcheck()) == 0) {
|
||||
printf("No synthax errors found!\n");
|
||||
return 0;
|
||||
} else {
|
||||
printf("Sythax error found at line %i column %i\nReason: %s\n", unmline, unmcol, errors[result]);
|
||||
return result;
|
||||
}
|
||||
char errors[6][30] = {
|
||||
"none",
|
||||
"unmatched round bracket",
|
||||
"unmatched curly bracket",
|
||||
"unmatched single quote",
|
||||
"unmatched double quote",
|
||||
"unmatched square bracket"
|
||||
};
|
||||
int result;
|
||||
if ((result = synthaxcheck()) == 0) {
|
||||
printf("No synthax errors found!\n");
|
||||
return 0;
|
||||
} else {
|
||||
printf("Sythax error found at line %i column %i\nReason: %s\n", unmline, unmcol, errors[result]);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,120 +3,114 @@
|
|||
int unmline, unmcol;
|
||||
|
||||
int synthaxcheck(void) {
|
||||
int c, // Character integer
|
||||
lastchar = 0, // Last character buffers, for escapes
|
||||
dq = 0, // Double quote status
|
||||
sq = 0, // Single quote status
|
||||
cb = 0, // Curly bracket count
|
||||
sb = 0, // Square bracket count
|
||||
rb = 0, // Round bracket count
|
||||
mc = 0, // Multi-line comment status
|
||||
sc = 0, // Single line comment status
|
||||
line = 0, // Current line
|
||||
col = 0, // Current column
|
||||
lce = 0, // Last character escape
|
||||
result = 0; // Result of evaluation
|
||||
while ((c=getchar()) != EOF && result == 0) {
|
||||
if (lastchar != '\\' || lce != 0) {
|
||||
switch (c) {
|
||||
case '"': {
|
||||
if (sq == 0 && mc == 0 && sc == 0) {
|
||||
if (dq == 1) {
|
||||
dq = 0;
|
||||
} else {
|
||||
dq = 1;
|
||||
int c, // Character integer
|
||||
lastchar = 0, // Last character buffers, for escapes
|
||||
dq = 0, // Double quote status
|
||||
sq = 0, // Single quote status
|
||||
cb = 0, // Curly bracket count
|
||||
sb = 0, // Square bracket count
|
||||
rb = 0, // Round bracket count
|
||||
mc = 0, // Multi-line comment status
|
||||
sc = 0, // Single line comment status
|
||||
line = 0, // Current line
|
||||
col = 0, // Current column
|
||||
lce = 0, // Last character escape
|
||||
result = 0; // Result of evaluation
|
||||
while ((c=getchar()) != EOF && result == 0) {
|
||||
if (lastchar != '\\' || lce != 0) {
|
||||
switch (c) {
|
||||
case '"': {
|
||||
if (sq == 0 && mc == 0 && sc == 0) {
|
||||
dq = !dq;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case '\'': {
|
||||
if (dq == 0 && mc == 0 && sc == 0) {
|
||||
sq = !sq;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case '\n': {
|
||||
if (dq == 0 && sq == 0) {
|
||||
col = 0;
|
||||
line++;
|
||||
} else if (dq != 0) {
|
||||
result = 4;
|
||||
} else if (sq != 0) {
|
||||
result = 3;
|
||||
}
|
||||
if (sc != 0) {
|
||||
sc = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
default: break;
|
||||
}
|
||||
if (sq == 0 && dq == 0) {
|
||||
if (mc == 0 && sc == 0) {
|
||||
switch (c) {
|
||||
case '{': {
|
||||
cb++;
|
||||
break;
|
||||
}
|
||||
case '}': {
|
||||
cb--;
|
||||
break;
|
||||
}
|
||||
case '[': {
|
||||
sb++;
|
||||
break;
|
||||
}
|
||||
case ']': {
|
||||
sb--;
|
||||
break;
|
||||
}
|
||||
case '(': {
|
||||
rb++;
|
||||
break;
|
||||
}
|
||||
case ')': {
|
||||
rb--;
|
||||
break;
|
||||
}
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
switch (c) {
|
||||
case '/': {
|
||||
if (lastchar == '/') {
|
||||
sc = 1;
|
||||
} else if (lastchar == '*') {
|
||||
mc = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case '*': {
|
||||
if (lastchar == '/' && mc == 0) {
|
||||
mc = 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case '\'': {
|
||||
if (dq == 0 && mc == 0 && sc == 0) {
|
||||
if (sq == 1) {
|
||||
sq = 0;
|
||||
} else {
|
||||
sq = 1;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (sq == 0 && dq == 0) {
|
||||
if (mc == 0 && sc == 0) {
|
||||
case '{': {
|
||||
cb++;
|
||||
break;
|
||||
}
|
||||
case '}': {
|
||||
cb--;
|
||||
break;
|
||||
}
|
||||
case '[': {
|
||||
sb++;
|
||||
break;
|
||||
}
|
||||
case ']': {
|
||||
sb--;
|
||||
break;
|
||||
}
|
||||
case '(': {
|
||||
rb++;
|
||||
break;
|
||||
}
|
||||
case ')': {
|
||||
rb--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
case '/': {
|
||||
if (lastchar == '/') {
|
||||
sc = 1;
|
||||
} else if (lastchar == '*') {
|
||||
mc = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case '*': {
|
||||
if (lastchar == '/' && mc == 0) {
|
||||
mc = 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
case '\n': {
|
||||
if (dq == 0 && sq == 0) {
|
||||
col = 0;
|
||||
line++;
|
||||
} else if (dq != 0) {
|
||||
result = 4;
|
||||
} else if (sq != 0) {
|
||||
result = 3;
|
||||
}
|
||||
if (sc != 0) {
|
||||
sc = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
default: break;
|
||||
}
|
||||
col++;
|
||||
lce = (lastchar == '\\');
|
||||
lastchar = c;
|
||||
}
|
||||
col++;
|
||||
if (lastchar == '\\') {
|
||||
lce = 1;
|
||||
} else {
|
||||
lce = 0;
|
||||
unmcol = col;
|
||||
unmline = line;
|
||||
// Don't overwrite results if previous loop finished with a error
|
||||
if (result == 0) {
|
||||
if (cb != 0) {
|
||||
result = 2;
|
||||
} else if (sb != 0) {
|
||||
result = 5;
|
||||
} else if (rb != 0) {
|
||||
result = 1;
|
||||
}
|
||||
}
|
||||
lastchar = c;
|
||||
}
|
||||
unmcol = col;
|
||||
unmline = line;
|
||||
// Don't overwrite results if previous loop finished with a error
|
||||
if (result == 0) {
|
||||
if (cb != 0) {
|
||||
result = 2;
|
||||
} else if (sb != 0) {
|
||||
result = 5;
|
||||
} else if (rb != 0) {
|
||||
result = 1;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
return result;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue