/xbmc/visualizations/Milkdrop/vis_milkdrop/evallib/Compiler.h
http://github.com/xbmc/xbmc · C++ Header · 74 lines · 34 code · 11 blank · 29 comment · 0 complexity · 426a3cfaadd645da17330a1369803088 MD5 · raw file
- /*
- LICENSE
- -------
- Copyright 2005 Nullsoft, Inc.
- All rights reserved.
- Redistribution and use in source and binary forms, with or without modification,
- are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
- * Neither the name of Nullsoft nor the names of its contributors may be used to
- endorse or promote products derived from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
- IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- .
- */
- #ifndef __COMPILER_H
- #define __COMPILER_H
- #define FN_ASSIGN 0
- #define FN_MULTIPLY 1
- #define FN_DIVIDE 2
- #define FN_MODULO 3
- #define FN_ADD 4
- #define FN_SUB 5
- #define FN_AND 6
- #define FN_OR 7
- #define FN_UMINUS 8
- #define FN_UPLUS 9
- #define MATH_SIMPLE 0
- #define MATH_FN 1
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- int compileCode(char *exp);
- void executeCode(int handle);
- void freeCode(int handle);
- typedef struct {
- char *name;
- void *afunc;
- int nParams;
- } functionType;
- extern functionType fnTable[27];
- int createCompiledValue(double value, double *addrValue);
- int createCompiledFunction1(int fntype, int fn, int code);
- int createCompiledFunction2(int fntype, int fn, int code1, int code2);
- int createCompiledFunction3(int fntype, int fn, int code1, int code2, int code3);
- #ifdef __cplusplus
- }
- #endif
- #endif