/* $Id: evaluator.h,v 1.11 2005/05/08 04:32:44 reinelt Exp $ * * expression evaluation * * Copyright (C) 2003 Michael Reinelt * Copyright (C) 2004 The LCD4Linux Team * * This file is part of LCD4Linux. * * LCD4Linux 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. * * LCD4Linux 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., 675 Mass Ave, Cambridge, MA 02139, USA. * * * $Log: evaluator.h,v $ * Revision 1.11 2005/05/08 04:32:44 reinelt * CodingStyle added and applied * * Revision 1.10 2005/01/18 06:30:23 reinelt * added (C) to all copyright statements * * Revision 1.9 2004/06/26 12:04:59 reinelt * * uh-oh... the last CVS log message messed up things a lot... * * Revision 1.8 2004/06/26 09:27:21 reinelt * * added '-W' to CFLAGS * changed all C++ comments to C ones * cleaned up a lot of signed/unsigned mistakes * * Revision 1.7 2004/06/20 10:09:56 reinelt * * 'const'ified the whole source * * Revision 1.6 2004/03/11 06:39:59 reinelt * big patch from Martin: * - reuse filehandles * - memory leaks fixed * - earlier busy-flag checking with HD44780 * - reuse memory for strings in RESULT and hash * - netdev_fast to wavid time-consuming regex * * Revision 1.5 2004/03/06 20:31:16 reinelt * Complete rewrite of the evaluator to get rid of the code * from mark Morley (because of license issues). * The new Evaluator does a pre-compile of expressions, and * stores them in trees. Therefore it should be reasonable faster... * * Revision 1.4 2004/03/03 03:47:04 reinelt * big patch from Martin Hejl: * - use qprintf() where appropriate * - save CPU cycles on gettimeofday() * - add quit() functions to free allocated memory * - fixed lots of memory leaks * * Revision 1.3 2004/01/12 03:51:01 reinelt * evaluating the 'Variables' section in the config file * * Revision 1.2 2003/10/11 06:01:53 reinelt * * renamed expression.{c,h} to client.{c,h} * added config file client * new functions 'AddNumericVariable()' and 'AddStringVariable()' * new parameter '-i' for interactive mode * * Revision 1.1 2003/10/06 04:34:06 reinelt * expression evaluator added * */ #ifndef _EVALUATOR_H_ #define _EVALUATOR_H_ /* RESULT bitmask */ #define R_NUMBER 1 #define R_STRING 2 typedef struct { int type; double number; int length; char *string; } RESULT; int SetVariable(const char *name, RESULT * value); int SetVariableNumeric(const char *name, const double value); int SetVariableString(const char *name, const char *value); int AddFunction(const char *name, const int argc, void (*func) ()); void DeleteVariables(void); void DeleteFunctions(void); void DelResult(RESULT * result); RESULT *SetResult(RESULT ** result, const int type, const void *value); double R2N(RESULT * result); char *R2S(RESULT * result); int Compile(const char *expression, void **tree); int Eval(void *tree, RESULT * result); void DelTree(void *tree); #endif ns'>+6 2012-03-25modbuslog: move exclusively to numbytesJonathan McCrohan2-25/+38 2012-03-25modbuslog: force interval wrap aroundJonathan McCrohan1-1/+1 2012-03-24ftphelper: add --version argumentJonathan McCrohan1-0/+8 2012-03-21Double the width of registervalueJonathan McCrohan1-1/+1 2012-03-14modbuslog: Fix bitshiftingv1.4Jonathan McCrohan1-5/+2 2012-03-13modbuslog: fix logic typov1.3Jonathan McCrohan1-1/+1 2012-03-13modbuslog: reindentJonathan McCrohan1-3/+4 2012-03-13modbuslog: Make debug messages more 'English'Jonathan McCrohan1-1/+4 2012-03-13modbuslog.cfg: set /dev/ttyUSB0 as default entryJonathan McCrohan1-1/+1 2012-03-13modbuslog: improve error handlingJonathan McCrohan1-3/+6 2012-03-13modbuslog: fix syslog regressionJonathan McCrohan1-1/+1 2012-03-13modbuslog: Surround syslog outputs with bracketsJonathan McCrohan1-8/+8 2012-03-13ftpupload: use fully qualified pathsJonathan McCrohan1-3/+10 2012-03-12Force log upon startupJonathan McCrohan1-2/+8 2012-03-12ftphelper: Fix off by one errorv1.2Jonathan McCrohan1-7/+7 2012-03-12Add cron.d entryJonathan McCrohan2-0/+9 2012-03-127 day rolling uploadJonathan McCrohan1-8/+22 2012-03-09Fix ftpuploadJonathan McCrohan1-1/+5 2012-03-07ReindentJonathan McCrohan1-5/+6 2012-03-07Made logs more 'English'Jonathan McCrohan1-3/+4 2012-03-07Surround log startup notice with empty linesJonathan McCrohan1-0/+2 2012-03-07Add compile time version numbersJonathan McCrohan2-1/+10 2012-03-05Fix copypasta errorv1.1Jonathan McCrohan1-10/+18 2012-03-05Rearrange syslog output to read 8N1 rather than N81Jonathan McCrohan1-2/+2 2012-03-05Refactor codeJonathan McCrohan2-6/+4 2012-03-05Add syslog loggingJonathan McCrohan1-24/+57 2012-03-04Remove unused #define statementsJonathan McCrohan1-3/+0 2012-02-20Prune archive after 3 monthsJonathan McCrohan3-0/+7 2012-02-20Update documentationJonathan McCrohan1-3/+5 2012-02-20Add PHP to make installJonathan McCrohan1-0/+3 2012-02-20Update MakefileJonathan McCrohan1-0/+17 2012-02-20Move interval.txt to src/Jonathan McCrohan2-1/+1 2012-02-19Remove debug/testing files.Jonathan McCrohan50-4742/+0 2012-02-15Archive files after upload.Jonathan McCrohan1-0/+2 2012-02-12Fix typo in README.Jonathan McCrohan1-1/+1 2012-02-12Add ftp upload function + add documentation.Jonathan McCrohan5-3/+151 2012-01-10Handle 32bit signed overflow.Jonathan McCrohan1-1/+6 2012-01-10Update README.Jonathan McCrohan1-1/+3