Rewrote return statements...
This commit is contained in:
parent
26f39b9af8
commit
f3f489bc9a
67
xyntax.c
67
xyntax.c
@ -12,7 +12,6 @@
|
|||||||
#include <xolatile/xyntax.h>
|
#include <xolatile/xyntax.h>
|
||||||
|
|
||||||
int syntax_count = 0;
|
int syntax_count = 0;
|
||||||
int * syntax_mode = NULL;
|
|
||||||
int * syntax_enrange = NULL;
|
int * syntax_enrange = NULL;
|
||||||
int * syntax_derange = NULL;
|
int * syntax_derange = NULL;
|
||||||
char * * syntax_begin = NULL;
|
char * * syntax_begin = NULL;
|
||||||
@ -33,40 +32,40 @@ static int compare_character_array (char character, char * character_array, int
|
|||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syntax_define (int * index, int enrange, int derange, char * begin, char * end, char escape, int colour, int effect) {
|
int syntax_define (int enrange, int derange, char * begin, char * end, char escape, int colour, int effect) {
|
||||||
syntax_mode = reallocate (syntax_mode, (unsigned long int) (syntax_count + 1) * sizeof (* syntax_mode));
|
fatal_failure (begin == NULL, "syntax_define: Begin string is null pointer.");
|
||||||
syntax_enrange = reallocate (syntax_enrange, (unsigned long int) (syntax_count + 1) * sizeof (* syntax_enrange));
|
fatal_failure (end == NULL, "syntax_define: End string is null pointer.");
|
||||||
syntax_derange = reallocate (syntax_derange, (unsigned long int) (syntax_count + 1) * sizeof (* syntax_derange));
|
|
||||||
syntax_begin = reallocate (syntax_begin, (unsigned long int) (syntax_count + 1) * sizeof (* syntax_begin));
|
|
||||||
syntax_end = reallocate (syntax_end, (unsigned long int) (syntax_count + 1) * sizeof (* syntax_end));
|
|
||||||
syntax_escape = reallocate (syntax_escape, (unsigned long int) (syntax_count + 1) * sizeof (* syntax_escape));
|
|
||||||
syntax_colour = reallocate (syntax_colour, (unsigned long int) (syntax_count + 1) * sizeof (* syntax_colour));
|
|
||||||
syntax_effect = reallocate (syntax_effect, (unsigned long int) (syntax_count + 1) * sizeof (* syntax_effect));
|
|
||||||
|
|
||||||
syntax_begin [syntax_count] = allocate ((string_length (begin) + 1) * (int) sizeof (* * syntax_begin));
|
|
||||||
syntax_end [syntax_count] = allocate ((string_length (end) + 1) * (int) sizeof (* * syntax_end));
|
|
||||||
|
|
||||||
syntax_mode [syntax_count] = * index;
|
|
||||||
syntax_enrange [syntax_count] = enrange;
|
|
||||||
syntax_derange [syntax_count] = derange;
|
|
||||||
syntax_escape [syntax_count] = escape;
|
|
||||||
syntax_colour [syntax_count] = colour;
|
|
||||||
syntax_effect [syntax_count] = effect;
|
|
||||||
|
|
||||||
string_copy (syntax_begin [syntax_count], begin);
|
|
||||||
string_copy (syntax_end [syntax_count], end);
|
|
||||||
|
|
||||||
* index = syntax_count;
|
|
||||||
|
|
||||||
++syntax_count;
|
++syntax_count;
|
||||||
|
|
||||||
|
syntax_enrange = reallocate (syntax_enrange, syntax_count * (int) sizeof (* syntax_enrange));
|
||||||
|
syntax_derange = reallocate (syntax_derange, syntax_count * (int) sizeof (* syntax_derange));
|
||||||
|
syntax_begin = reallocate (syntax_begin, syntax_count * (int) sizeof (* syntax_begin));
|
||||||
|
syntax_end = reallocate (syntax_end, syntax_count * (int) sizeof (* syntax_end));
|
||||||
|
syntax_escape = reallocate (syntax_escape, syntax_count * (int) sizeof (* syntax_escape));
|
||||||
|
syntax_colour = reallocate (syntax_colour, syntax_count * (int) sizeof (* syntax_colour));
|
||||||
|
syntax_effect = reallocate (syntax_effect, syntax_count * (int) sizeof (* syntax_effect));
|
||||||
|
|
||||||
|
syntax_begin [syntax_count - 1] = allocate ((string_length (begin) + 1) * (int) sizeof (* * syntax_begin));
|
||||||
|
syntax_end [syntax_count - 1] = allocate ((string_length (end) + 1) * (int) sizeof (* * syntax_end));
|
||||||
|
|
||||||
|
syntax_enrange [syntax_count - 1] = enrange;
|
||||||
|
syntax_derange [syntax_count - 1] = derange;
|
||||||
|
syntax_escape [syntax_count - 1] = escape;
|
||||||
|
syntax_colour [syntax_count - 1] = colour;
|
||||||
|
syntax_effect [syntax_count - 1] = effect;
|
||||||
|
|
||||||
|
string_copy (syntax_begin [syntax_count - 1], begin);
|
||||||
|
string_copy (syntax_end [syntax_count - 1], end);
|
||||||
|
|
||||||
|
return (syntax_count - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syntax_select (char * string, int * index, int * length) {
|
int syntax_select (char * string, int * length) {
|
||||||
int offset = 0;
|
int offset = 0;
|
||||||
int select = 0;
|
int select = 0;
|
||||||
|
|
||||||
fatal_failure (string == NULL, "syntax_select: String is null.");
|
fatal_failure (string == NULL, "syntax_select: String is null.");
|
||||||
fatal_failure (index == NULL, "syntax_select: Index is null.");
|
|
||||||
fatal_failure (length == NULL, "syntax_select: Length is null.");
|
fatal_failure (length == NULL, "syntax_select: Length is null.");
|
||||||
|
|
||||||
do {
|
do {
|
||||||
@ -92,12 +91,9 @@ void syntax_select (char * string, int * index, int * length) {
|
|||||||
|
|
||||||
selected:
|
selected:
|
||||||
|
|
||||||
if (select == syntax_count) {
|
if (select == syntax_count) { /* Undefined symbol. */
|
||||||
* index = 0; /* Should we handle this undefined behavior? */
|
|
||||||
* length = 1;
|
* length = 1;
|
||||||
return;
|
return (0);
|
||||||
} else {
|
|
||||||
* index = select;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
do {
|
do {
|
||||||
@ -111,7 +107,7 @@ void syntax_select (char * string, int * index, int * length) {
|
|||||||
if (syntax_derange [select] == 0) {
|
if (syntax_derange [select] == 0) {
|
||||||
if (string_compare_limit (& string [offset], syntax_end [select], string_length (syntax_end [select]))) {
|
if (string_compare_limit (& string [offset], syntax_end [select], string_length (syntax_end [select]))) {
|
||||||
* length = offset + string_length (syntax_end [select]);
|
* length = offset + string_length (syntax_end [select]);
|
||||||
return;
|
return (select);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
int subset = 0;
|
int subset = 0;
|
||||||
@ -120,11 +116,13 @@ void syntax_select (char * string, int * index, int * length) {
|
|||||||
} do {
|
} do {
|
||||||
if (string [offset] == syntax_end [select] [subset]) {
|
if (string [offset] == syntax_end [select] [subset]) {
|
||||||
* length = offset;
|
* length = offset;
|
||||||
return;
|
return (select);
|
||||||
}
|
}
|
||||||
} while (++subset != (int) string_length (syntax_end [select]));
|
} while (++subset != (int) string_length (syntax_end [select]));
|
||||||
}
|
}
|
||||||
} while (string [offset - 1] != '\0');
|
} while (string [offset - 1] != '\0');
|
||||||
|
|
||||||
|
return (select);
|
||||||
}
|
}
|
||||||
|
|
||||||
void syntax_delete (void) {
|
void syntax_delete (void) {
|
||||||
@ -135,7 +133,6 @@ void syntax_delete (void) {
|
|||||||
syntax_end [syntax_count] = deallocate (syntax_end [syntax_count]);
|
syntax_end [syntax_count] = deallocate (syntax_end [syntax_count]);
|
||||||
} while (--syntax_count != -1);
|
} while (--syntax_count != -1);
|
||||||
|
|
||||||
syntax_mode = deallocate (syntax_mode);
|
|
||||||
syntax_enrange = deallocate (syntax_enrange);
|
syntax_enrange = deallocate (syntax_enrange);
|
||||||
syntax_derange = deallocate (syntax_derange);
|
syntax_derange = deallocate (syntax_derange);
|
||||||
syntax_begin = deallocate (syntax_begin);
|
syntax_begin = deallocate (syntax_begin);
|
||||||
|
6
xyntax.h
6
xyntax.h
@ -13,7 +13,6 @@
|
|||||||
#include <xolatile/xtandard.c>
|
#include <xolatile/xtandard.c>
|
||||||
|
|
||||||
extern int syntax_count;
|
extern int syntax_count;
|
||||||
extern int * syntax_mode;
|
|
||||||
extern int * syntax_enrange;
|
extern int * syntax_enrange;
|
||||||
extern int * syntax_derange;
|
extern int * syntax_derange;
|
||||||
extern char * * syntax_begin;
|
extern char * * syntax_begin;
|
||||||
@ -22,9 +21,8 @@ extern char * syntax_escape;
|
|||||||
extern int * syntax_colour;
|
extern int * syntax_colour;
|
||||||
extern int * syntax_effect;
|
extern int * syntax_effect;
|
||||||
|
|
||||||
extern void syntax_define (int *, int, int, char *, char *, char, int, int);
|
extern int syntax_define (int, int, char *, char *, char, int, int);
|
||||||
|
extern int syntax_select (char *, int *);
|
||||||
extern void syntax_select (char *, int *, int *);
|
|
||||||
|
|
||||||
extern void syntax_delete (void);
|
extern void syntax_delete (void);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user