root/branches/volker_dev/evaluator.h

Revision 754, 1.7 kB (checked in by michael, 2 years ago)

new function 'decode()'

  • Property svn:keywords set to Id URL Rev
Line 
1/* $Id$
2 * $URL$
3 *
4 * expression evaluation
5 *
6 * Copyright (C) 2003 Michael Reinelt <reinelt@eunet.at>
7 * Copyright (C) 2004 The LCD4Linux Team <lcd4linux-devel@users.sourceforge.net>
8 *
9 * This file is part of LCD4Linux.
10 *
11 * LCD4Linux is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License as published by
13 * the Free Software Foundation; either version 2, or (at your option)
14 * any later version.
15 *
16 * LCD4Linux is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19 * GNU General Public License for more details.
20 *
21 * You should have received a copy of the GNU General Public License
22 * along with this program; if not, write to the Free Software
23 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24 *
25 */
26
27
28#ifndef _EVALUATOR_H_
29#define _EVALUATOR_H_
30
31
32/* RESULT bitmask */
33#define R_NUMBER 1
34#define R_STRING 2
35
36typedef struct {
37    int type;
38    int size;
39    double number;
40    char *string;
41} RESULT;
42
43int SetVariable(const char *name, RESULT * value);
44int SetVariableNumeric(const char *name, const double value);
45int SetVariableString(const char *name, const char *value);
46
47int AddFunction(const char *name, const int argc, void (*func) ());
48
49void DeleteVariables(void);
50void DeleteFunctions(void);
51
52void DelResult(RESULT * result);
53RESULT *SetResult(RESULT ** result, const int type, const void *value);
54RESULT *CopyResult(RESULT ** result, RESULT * value);
55
56double R2N(RESULT * result);
57char *R2S(RESULT * result);
58
59int Compile(const char *expression, void **tree);
60int Eval(void *tree, RESULT * result);
61void DelTree(void *tree);
62
63#endif
Note: See TracBrowser for help on using the browser.