tab_t *def (int nbops, element_t **ops)
{
- int i;
tab_t *new = alloc_tab (nbops);
- for (i = 0; i < nbops; i++) {
+ for (int i = 0; i < nbops; i++) {
double val = evaluate_element (ops[i], 0);
VERBOSE (DEBUG, fprintf (stdout, "value %d/%d = %g\n", i + 1, nbops, val));
set_tab (new, i + 1, val);
void delelement (element_t *root)
{
if ((root != NULL) && (root != ERROR_OP)) {
- int i;
- for (i = 0; i < root->nbops; i++) {
+ for (int i = 0; i < root->nbops; i++) {
delelement (root->ops[i]);
}
if (root->nbops) {
element_t *dupelement (element_t *root)
{
element_t *tmp = NULL;
- int i;
if ((root == NULL) || (root == ERROR_OP)) {
return root;
}
tmp = newelement (root->func, root->nbops, root->prio);
tmp->value = root->value;
- for (i = 0; i < root->nbops; i++) {
+ for (int i = 0; i < root->nbops; i++) {
tmp->ops[i] = dupelement (root->ops[i]);
}
return tmp;
} while (value != 0);
/* revert */
- int i;
- for (i = 0; i < size; i++) {
+ for (int i = 0; i < size; i++) {
str[i] = buffer [size - i - 1];
}
str[size] = '\0';
all: depends
$(MAKE) $(ALLEXE:%=%.exe)
+analyze:
+ make purge
+ scan-build make
+
count:
wc $(wildcard *.c *.h) $(MAKEFILE_LIST)
## Phony
-.PHONY: all clean count depends gcovs purge tests
+.PHONY: all analyze clean count depends gcovs purge tests
## Precious
{
element_t *root = NULL;
char *string = str;
- int i;
VERBOSE (DEBUG, fprintf (stdout, "Starting parsing\n"));
return ERROR_OP;
}
element_t *newcode = newelement (Code, root->nbops + 1, 5);
- for (i = 0; i < root->nbops; i++) {
+ for (int i = 0; i < root->nbops; i++) {
newcode->ops[i] = root->ops[i];
root->ops[i] = NULL;
}
delelement (root);
return ERROR_OP;
}
- for (i = 0; i < root->nbops; i++) {
+ for (int i = 0; i < root->nbops; i++) {
if (root->ops[i] == NULL) {
root->ops[i] = new;
found = 1;
/* look for operators */
- for (i = 0; i < NB_OPERATORS; i++) {
+ for (int i = 0; i < NB_OPERATORS; i++) {
keyword_t *operator = operators + i;
if (codecmp (operator->keyword, str) == 0) {
VERBOSE (DEBUG, fprintf (stdout, "start processing operator\n"));
/* look for functions */
- for (i = 0; i < NB_FUNCTIONS; i++) {
+ for (int i = 0; i < NB_FUNCTIONS; i++) {
keyword_t *function = functions + i;
if (codecmp (function->keyword, str) == 0) {
VERBOSE (DEBUG, fprintf (stdout, "start processing function\n"));
/* look for constant */
- for (i = 0; i < NB_CONSTANTS; i++) {
+ for (int i = 0; i < NB_CONSTANTS; i++) {
keyword_t *constant = constants + i;
if (codecmp (constant->keyword, str) == 0) {
VERBOSE (DEBUG, fprintf (stdout, "start processing constant\n"));
if (root == NULL) {
root = new;
} else {
- for (i = 0; i < root->nbops; i++) {
+ for (int i = 0; i < root->nbops; i++) {
if (root->ops[i] == NULL) {
root->ops[i] = new;
found = 1;
void print_element (element_t *root, int level)
{
char *func = NULL;
- int i;
if ((root == NULL) || (root == ERROR_OP)) {
return;
}
- for (i = 0; i < level; i++) {
+ for (int i = 0; i < level; i++) {
printf (" ");
}
printf ("Function: %s\n", func);
if ((root->func == Val) && (root->ops[0] == NULL)) {
- for (i = 0; i < level; i++) {
+ for (int i = 0; i < level; i++) {
printf (" ");
}
printf ("value: %f\n", root->value);
} else {
- for (i = 0; i < root->nbops; i++) {
+ for (int i = 0; i < root->nbops; i++) {
print_element (root->ops[i], level + 1);
}
}
double execute_code (element_t **prog, int nbcalls)
{
double ret = 0;
- int i;
- for (i = 0; i < nbcalls; i++) {
+ for (int i = 0; i < nbcalls; i++) {
ret = evaluate_element (prog[i], 0);
}
return ret;
int lookfor_program (int id)
{
- int i;
- for (i = 0; (programs) && (i < nb_programs); i++) {
+ for (int i = 0; (programs) && (i < nb_programs); i++) {
if (programs[i]->id == id) {
return i;
}
double call (int id, int nbargs, element_t **args)
{
- int i;
double ret = 0;
VERBOSE (DEBUG, fprintf (stdout, "new call (%d)\n", id));
/* display debug information */
VERBOSE (DEBUG, fprintf (stdout, "nbargs: %d\n", nbargs));
- for (i = 0; i < nbargs; i++) {
+ for (int i = 0; i < nbargs; i++) {
VERBOSE (DEBUG, fprintf (stdout, "argument %d\n", i + 1); print_element (args[i], 0));
}
VERBOSE (DEBUG, fprintf (stdout, "program\n"); print_element (programs[n]->root, 0));
/* set arguments */
VERBOSE (DEBUG, fprintf (stdout, "argument before evaluation (%d)\n", size_tab (argument)));
- for (i = 0; i < size_tab (argument); i++) {
+ for (int i = 0; i < size_tab (argument); i++) {
VERBOSE (DEBUG, fprintf (stdout, "arg %d value: %g\n", i + 1, get_tab (argument, i + 1)));
}
VERBOSE (DEBUG, fprintf (stdout, "evaluate %d args\n", nbargs));
tab_t *old_argument = argument;
argument = new_argument;
VERBOSE (DEBUG, fprintf (stdout, "argument after evaluation (%d)\n", size_tab (argument)));
- for (i = 0; i < size_tab (argument); i++) {
+ for (int i = 0; i < size_tab (argument); i++) {
VERBOSE (DEBUG, fprintf (stdout, "arg %d value: %g\n", i + 1, get_tab (argument, i + 1)));
}
void list ()
{
- int i;
printf ("programs:");
- for (i = 0; i < nb_programs; i++) {
+ for (int i = 0; i < nb_programs; i++) {
printf (" %d", programs[i]->id);
}
printf ("\n");
char **generate_completion_list ()
{
- int i, j, l = 0;
+ int l = 0;
char **list = (char **) callocordie (NB_OPERATORS + NB_FUNCTIONS + NB_CONSTANTS + NB_SYMBOLS + 1, sizeof (char *));
- for (i = 0; i < NB_OPERATORS; i++) {
+ for (int i = 0; i < NB_OPERATORS; i++) {
list[l] = strdup ((operators + i)->keyword);
- for (j = 0; j < (int)strlen (list[l]); j++) {
+ for (int j = 0; j < (int)strlen (list[l]); j++) {
if (list[i][j] == '\t') {
list[i][j] = '\0';
}
}
}
- for (i = 0; i < NB_FUNCTIONS; i++) {
+ for (int i = 0; i < NB_FUNCTIONS; i++) {
list[l] = strdup ((functions + i)->keyword);
if (list[l] != NULL) {
l++;
}
}
- for (i = 0; i < NB_CONSTANTS; i++) {
+ for (int i = 0; i < NB_CONSTANTS; i++) {
list[l] = strdup ((constants + i)->keyword);
if (list[l] != NULL) {
l++;
}
}
- for (i = 0; i < NB_SYMBOLS; i++) {
+ for (int i = 0; i < NB_SYMBOLS; i++) {
list[l] = strdup (symbols[i]);
if (list[l] != NULL) {
l++;
void free_completion_list (char **list)
{
- int i;
-
if (list) {
- for (i = 0; i < NB_OPERATORS + NB_FUNCTIONS + NB_CONSTANTS + NB_SYMBOLS + 1; i++) {
+ for (int i = 0; i < NB_OPERATORS + NB_FUNCTIONS + NB_CONSTANTS + NB_SYMBOLS + 1; i++) {
if (list[i] != NULL) {
free (list[i]);
}
double set (int nbops, element_t **ops)
{
- int i;
stack = resize_tab (stack, nbops);
- for (i = 0; i < nbops; i++) {
+ for (int i = 0; i < nbops; i++) {
set_tab (stack, i + 1, evaluate_element (ops[i], 0));
}
return size_tab (stack);
void show (void)
{
- int i, n = size_tab (stack);
+ int n = size_tab (stack);
printf ("stack:");
- for (i = 0; i < n; i++) {
+ for (int i = 0; i < n; i++) {
printf (" ");
printl (get_tab (stack, i + 1));
}
double max ()
{
double ret = 0;
- int i, n = size_tab (stack);
+ int n = size_tab (stack);
if (n < 1) {
VERBOSE (WARNING, fprintf (stdout, "error not enough element in stack (%d)\n", n));
return 0;
}
ret = get_tab (stack, 1);
- for (i = 1; i < n; i++) {
+ for (int i = 1; i < n; i++) {
double cur = get_tab (stack, i + 1);
if (cur > ret) {
ret = cur;
double mean ()
{
double ret = 0;
- int i, n = size_tab (stack);
+ int n = size_tab (stack);
if (n < 1) {
VERBOSE (WARNING, fprintf (stdout, "error not enough element in stack (%d)\n", n));
return 0;
}
- for (i = 0; i < n; i++) {
+ for (int i = 0; i < n; i++) {
ret += get_tab (stack, i + 1);
}
return ret / n;
double min ()
{
double ret = 0;
- int i, n = size_tab (stack);
+ int n = size_tab (stack);
if (n < 1) {
VERBOSE (WARNING, fprintf (stdout, "error not enough element in stack (%d)\n", n));
return 0;
}
ret = get_tab (stack, 1);
- for (i = 1; i < n; i++) {
+ for (int i = 1; i < n; i++) {
double cur = get_tab (stack, i + 1);
if (cur < ret) {
ret = cur;
double prod ()
{
double ret = 1;
- int i, n = size_tab (stack);
+ int n = size_tab (stack);
if (n < 1) {
VERBOSE (WARNING, fprintf (stdout, "error not enough element in stack (%d)\n", n));
return 0;
}
- for (i = 0; i < n; i++) {
+ for (int i = 0; i < n; i++) {
ret *= get_tab (stack, i + 1);
}
return ret;
double sum ()
{
double ret = 0;
- int i, n = size_tab (stack);
+ int n = size_tab (stack);
if (n < 1) {
VERBOSE (WARNING, fprintf (stdout, "error not enough element in stack (%d)\n", n));
return 0;
}
- for (i = 0; i < n; i++) {
+ for (int i = 0; i < n; i++) {
ret += get_tab (stack, i + 1);
}
return ret;
double variance ()
{
double ret = 0;
- int i, n = size_tab (stack);
+ int n = size_tab (stack);
if (n < 2) {
VERBOSE (WARNING, fprintf (stdout, "error not enough element in stack (%d)\n", n));
return 0;
}
double m = mean ();
- for (i = 0; i < n; i++) {
+ for (int i = 0; i < n; i++) {
double x = get_tab (stack, i + 1);
ret += (x - m) * (x - m);
}
if (storage == NULL) {
memory (DEFAULT_STORAGE_SIZE);
}
- int i, n = size_tab (storage);
+ int n = size_tab (storage);
printf ("storage:");
- for (i = 0; i < n; i++) {
+ for (int i = 0; i < n; i++) {
printf (" ");
printl (get_tab (storage, i + 1));
}
if (storage == NULL) {
memory (DEFAULT_STORAGE_SIZE);
}
- int i, n = size_tab (storage);
- for (i = 0; i < n; i++) {
+ int n = size_tab (storage);
+ for (int i = 0; i < n; i++) {
set_tab (storage, i, 0);
}
}
void order_tab (tab_t *tab)
{
- int i, j;
if ((!tab) || (tab->size < 2)) {
VERBOSE (WARNING, fprintf (stdout, "error not enough element in stack (%d)\n", (tab) ? tab->size : 0));
return;
}
/* buble sort */
- for (i = 0; i < tab->size - 1; i++) {
+ for (int i = 0; i < tab->size - 1; i++) {
int done = 0;
- for (j = 0; j < tab->size - 1; j++) {
+ for (int j = 0; j < tab->size - 1; j++) {
double tab_j = tab->data[j];
double tab_jp1 = tab->data[j + 1];
if (tab_j > tab_jp1) {