diff options
Diffstat (limited to 'src/mp-equation.h')
-rw-r--r-- | src/mp-equation.h | 97 |
1 files changed, 45 insertions, 52 deletions
diff --git a/src/mp-equation.h b/src/mp-equation.h index bb06de6..d6c0f24 100644 --- a/src/mp-equation.h +++ b/src/mp-equation.h @@ -1,20 +1,12 @@ -/* Copyright (c) 2004-2008 Sami Pietila - * Copyright (c) 2008-2009 Robert Ancell - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. +/* + * Copyright (C) 2004-2008 Sami Pietila + * Copyright (C) 2008-2011 Robert Ancell. + * + * This program is free software: you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation, either version 2 of the License, or (at your option) any later + * version. See http://www.gnu.org/copyleft/gpl.html the full text of the + * license. */ #ifndef MP_EQUATION_H @@ -22,55 +14,56 @@ #include "mp.h" -typedef enum { - PARSER_ERR_NONE = 0, - PARSER_ERR_INVALID, - PARSER_ERR_OVERFLOW, - PARSER_ERR_UNKNOWN_VARIABLE, - PARSER_ERR_UNKNOWN_FUNCTION, - PARSER_ERR_UNKNOWN_CONVERSION, - PARSER_ERR_MP +typedef enum +{ + PARSER_ERR_NONE = 0, + PARSER_ERR_INVALID, + PARSER_ERR_OVERFLOW, + PARSER_ERR_UNKNOWN_VARIABLE, + PARSER_ERR_UNKNOWN_FUNCTION, + PARSER_ERR_UNKNOWN_CONVERSION, + PARSER_ERR_MP } MPErrorCode; /* Options for parser */ typedef struct { - /* Default number base */ - int base; + /* Default number base */ + int base; - /* The wordlength for binary operations in bits (e.g. 8, 16, 32) */ - int wordlen; + /* The wordlength for binary operations in bits (e.g. 8, 16, 32) */ + int wordlen; - /* Units for angles (e.g. radians, degrees) */ - MPAngleUnit angle_units; + /* Units for angles (e.g. radians, degrees) */ + MPAngleUnit angle_units; - // FIXME: - // int enable_builtins; + // FIXME: + // int enable_builtins; - /* Data to pass to callbacks */ - void *callback_data; + /* Data to pass to callbacks */ + void *callback_data; + + /* Function to check if a variable is defined */ + int (*variable_is_defined)(const char *name, void *data); - /* Function to check if a variable is defined */ - int (*variable_is_defined)(const char* name, void* data); + /* Function to get variable values */ + int (*get_variable)(const char *name, MPNumber *z, void *data); - /* Function to get variable values */ - int (*get_variable)(const char* name, MPNumber* z, void* data); + /* Function to set variable values */ + void (*set_variable)(const char *name, const MPNumber *x, void *data); - /* Function to set variable values */ - void (*set_variable)(const char* name, const MPNumber *x, void* data); + /* Function to check if a function is defined */ + int (*function_is_defined)(const char *name, void *data); - /* Function to check if a function is defined */ - int (*function_is_defined)(const char* name, void* data); + /* Function to solve functions */ + int (*get_function)(const char *name, const MPNumber *x, MPNumber *z, void *data); - /* Function to solve functions */ - int (*get_function)(const char* name, const MPNumber* x, MPNumber* z, void* data); - - /* Function to convert units */ - int (*convert)(const MPNumber* x, const char* x_units, const char* z_units, MPNumber* z, void* data); + /* Function to convert units */ + int (*convert)(const MPNumber *x, const char *x_units, const char *z_units, MPNumber *z, void *data); } MPEquationOptions; -MPErrorCode mp_equation_parse(const char* expression, MPEquationOptions* options, MPNumber* result, char** error_token); -const char* mp_error_code_to_string(MPErrorCode error_code); +MPErrorCode mp_equation_parse(const char *expression, MPEquationOptions *options, MPNumber *result, char **error_token); +const char *mp_error_code_to_string(MPErrorCode error_code); -int sub_atoi(const char* data); -int super_atoi(const char* data); +int sub_atoi(const char *data); +int super_atoi(const char *data); #endif |