/p>
{(! s) return (size_t) 0; strlen (s);
} * parser_format_string (const char * fmt, ...)
{* msg = (char *) calloc (MAX_TOKEN_LEN, sizeof (char)); _list args; _start (args, fmt); (msg, fmt, args); _end (args); msg ;
} parser_error (CodeBuffer * cb, char * msg, int opt)
{buffer [1024]; (opt && cb) (buffer, "Помилка парсера у рядку% d:% s n", lexer_line_num (cb), msg); (buffer , "Помилка парсера% s n", msg); -> RichEdit1-> Lines-> Add (buffer);
}
/* Змінні */parser_variable_add_value (CodeBuffer * cb, char * name, ParserVal * value)
{(value-> type == TOK_STRING) _variable_add_string_var (cb, name, value-> s, FALSE/* quoted * /); _variable_add_numeric_var (cb, name, value-> d );
} parser_variable_add_numeric_var (CodeBuffer * cb, char * name, double val)
{(! (cb && name)) return; * var = parser_variable_create_new (name); _value_init_to_numeric (& var-> val, val); _variable_add_to_list (cb-> variable_list , var);
} parser_variable_add_string_var (CodeBuffer * cb, char * name, char * val, int quoted)
{(! (cb && name)) return; * var = parser_variable_create_new (name);
/* "Цитувати"? */(Quoted)
{* tmp = parser_quote_string (val); _value_init_to_string (& var-> val, tmp); (tmp);
} _value_init_to_string (& var-> val, val); _variable_add_to_list (cb-> variable_list, var);
} parser_variable_add_standard_constants (CodeBuffer * cb)
{(! cb) return;
} ** parser_variable_create_list ()
{
/* Створити порожній список змінних */** list;
list = (ParserVariable **) calloc (MAX_VARIABLE_LIST_LEN, sizeof (ParserVariable)); list;
} * parser_variable_create_new (char * name)
{* var = (ParserVariable *) calloc (1, sizeof (ParserVariable));> name = parser_format_string ("% s", name);
/* Присвоїти 0.0 (TOK_NUMERIC) */_value_init_to_numeric (& var-> val, 0.0); var;
} parser_variable_add_to_list (ParserVariable * variables [], ParserVariable * var)
{i; = parser_variable_find (variables, var-> name);
if (i> -1)
{/ * Оновлення існуючої змінної */
parser_variable_delete (variables [i]); [i] = var; i;
}
/* Додавання нової змінної */(i = 0; i
{(! variables [i])
{[i] = var; i;
}
} _error (NULL, "Список зм...