* $Id$
*/
+#include "parser_variable.h"
#include "bool.h"
#include "variable.h"
-#include "parser_variable.h"
+#include "variable_list.h"
+#include "parser_common.h"
#include "parseerror.h"
#include "dllist.h"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
-bool is_space(char c) {
- return (c == ' ') || (c == '\t');
-}
-
-bool is_number(char c) {
- return ('0' <= c) && (c <= '9');
-}
-
-bool is_alpha(char c) {
- return (c == '_') || (('a' <= c) && (c <= 'z')) || (('A' <= c) && (c <= 'Z'));
-}
-
-bool is_alpha_num(c) {
- return is_number(c) || is_alpha(c);
-}
-
-bool DLList_variable_find(DLList* l, Variable* var) {
- Variable* v;
- for (v = DLList_begin(l); DLList_have_more(l); v = DLList_next(l)) {
- if (!strcmp(v->variable, var->variable)) {
- return TRUE;
- }
- }
- return FALSE;
-}
-
-size_t DLList_variable_print(DLList* l, FILE* fp) {
- size_t cant = 0;
- Variable* v;
- for (v = DLList_begin(l); DLList_have_more(l); v = DLList_next(l)) {
- cant += Variable_print(v, fp);
- }
- return cant;
-}
-
-void DLList_variable_delete(DLList* l) {
- if (l) {
- while (!DLList_empty(l)) {
- Variable_delete((Variable*)DLList_pop(l));
- }
- }
- DLList_delete(l);
-}
+#include "memdebug_debugger.h"
#define PARSE_ERROR(str) ParseError_set_pos_message(error, str, i + 1, c)
state = VAL;
/* Pone el inicio del valor. */
val_start = i;
+ /* Calcula la longitud como si fuera hasta el final. */
+ val_len = len - i;
}
/* Si es espacio, no hace nada, deja que siga. */
break;
state = MIN;
/* Pone el inicio del mínimo. */
min_start = i;
+ /* Calcula la longitud como si fuera hasta el final. */
+ min_len = len - i;
}
/* Si es espacio, no hace nada, deja que siga. */
break;
max_start = i;
/* Pone la longitud del máximo hasta el final (ya no hay más
* valores a buscar). */
- max_len = i - len;
+ max_len = len - i;
}
/* Si es espacio, no hace nada, deja que siga. */
break;
return FALSE;
}
/* Ahora sí, la puedo agregar a la lista de variables. */
- if (DLList_variable_find(variable_list, var)) {
+ if (DLList_variable_find(variable_list, var->variable)) {
/* Si ya había uno, lo borro. */
DLList_remove_current(variable_list);
}