Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
F
freeswitch
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
张华
freeswitch
Commits
89ecc939
提交
89ecc939
authored
11月 13, 2007
作者:
Michael Jerris
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
dos2unix
git-svn-id:
http://svn.freeswitch.org/svn/freeswitch/trunk@6242
d0543943-73ff-0310-b7d9-9358b9ac24b2
上级
797d7c57
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
15 个修改的文件
包含
4713 行增加
和
4713 行删除
+4713
-4713
conio.h
src/mod/applications/mod_expr/conio.h
+161
-161
exprconf.h
src/mod/applications/mod_expr/exprconf.h
+29
-29
expreval.c
src/mod/applications/mod_expr/expreval.c
+268
-268
expreval.h
src/mod/applications/mod_expr/expreval.h
+127
-127
exprfunc.c
src/mod/applications/mod_expr/exprfunc.c
+329
-329
exprilfs.h
src/mod/applications/mod_expr/exprilfs.h
+1064
-1064
exprincl.h
src/mod/applications/mod_expr/exprincl.h
+112
-112
exprinit.c
src/mod/applications/mod_expr/exprinit.c
+115
-115
exprmem.c
src/mod/applications/mod_expr/exprmem.c
+39
-39
exprmem.h
src/mod/applications/mod_expr/exprmem.h
+21
-21
exprobj.c
src/mod/applications/mod_expr/exprobj.c
+237
-237
exprpars.c
src/mod/applications/mod_expr/exprpars.c
+1558
-1558
exprpriv.h
src/mod/applications/mod_expr/exprpriv.h
+215
-215
exprutil.c
src/mod/applications/mod_expr/exprutil.c
+43
-43
exprval.c
src/mod/applications/mod_expr/exprval.c
+395
-395
没有找到文件。
src/mod/applications/mod_expr/conio.h
浏览文件 @
89ecc939
/* A conio implementation for Mingw/Dev-C++.
/* A conio implementation for Mingw/Dev-C++.
*
*
* Written by:
* Written by:
* Hongli Lai <hongli@telekabel.nl>
* Hongli Lai <hongli@telekabel.nl>
* tkorrovi <tkorrovi@altavista.net> on 2002/02/26.
* tkorrovi <tkorrovi@altavista.net> on 2002/02/26.
* Andrew Westcott <ajwestco@users.sourceforge.net>
* Andrew Westcott <ajwestco@users.sourceforge.net>
*
*
* Offered for use in the public domain without any warranty.
* Offered for use in the public domain without any warranty.
*/
*/
#ifndef _CONIO_H_
#ifndef _CONIO_H_
#define _CONIO_H_
#define _CONIO_H_
#include <stdio.h>
#include <stdio.h>
#ifdef __cplusplus
#ifdef __cplusplus
extern
"C"
{
extern
"C"
{
#endif
#endif
#define BLINK 0
#define BLINK 0
typedef
enum
typedef
enum
{
{
BLACK
,
BLACK
,
BLUE
,
BLUE
,
GREEN
,
GREEN
,
CYAN
,
CYAN
,
RED
,
RED
,
MAGENTA
,
MAGENTA
,
BROWN
,
BROWN
,
LIGHTGRAY
,
LIGHTGRAY
,
DARKGRAY
,
DARKGRAY
,
LIGHTBLUE
,
LIGHTBLUE
,
LIGHTGREEN
,
LIGHTGREEN
,
LIGHTCYAN
,
LIGHTCYAN
,
LIGHTRED
,
LIGHTRED
,
LIGHTMAGENTA
,
LIGHTMAGENTA
,
YELLOW
,
YELLOW
,
WHITE
WHITE
}
COLORS
;
}
COLORS
;
#define cgets _cgets
#define cgets _cgets
#define cprintf _cprintf
#define cprintf _cprintf
#define cputs _cputs
#define cputs _cputs
#define cscanf _cscanf
#define cscanf _cscanf
#define ScreenClear clrscr
#define ScreenClear clrscr
/* blinkvideo */
/* blinkvideo */
void
clreol
(
void
);
void
clreol
(
void
);
void
clrscr
(
void
);
void
clrscr
(
void
);
int
_conio_gettext
(
int
left
,
int
top
,
int
right
,
int
bottom
,
int
_conio_gettext
(
int
left
,
int
top
,
int
right
,
int
bottom
,
char
*
str
);
char
*
str
);
/* _conio_kbhit */
/* _conio_kbhit */
void
delline
(
void
);
void
delline
(
void
);
/* gettextinfo */
/* gettextinfo */
void
gotoxy
(
int
x
,
int
y
);
void
gotoxy
(
int
x
,
int
y
);
/*
/*
highvideo
highvideo
insline
insline
intensevideo
intensevideo
lowvideo
lowvideo
movetext
movetext
normvideo
normvideo
*/
*/
void
gotoxy
(
int
x
,
int
y
);
void
gotoxy
(
int
x
,
int
y
);
void
puttext
(
int
left
,
int
top
,
int
right
,
int
bottom
,
char
*
str
);
void
puttext
(
int
left
,
int
top
,
int
right
,
int
bottom
,
char
*
str
);
// Screen Variables
// Screen Variables
/* ScreenCols
/* ScreenCols
ScreenGetChar
ScreenGetChar
ScreenGetCursor
ScreenGetCursor
ScreenMode
ScreenMode
ScreenPutChar
ScreenPutChar
ScreenPutString
ScreenPutString
ScreenRetrieve
ScreenRetrieve
ScreenRows
ScreenRows
ScreenSetCursor
ScreenSetCursor
ScreenUpdate
ScreenUpdate
ScreenUpdateLine
ScreenUpdateLine
ScreenVisualBell
ScreenVisualBell
_set_screen_lines */
_set_screen_lines */
void
_setcursortype
(
int
type
);
void
_setcursortype
(
int
type
);
void
textattr
(
int
_attr
);
void
textattr
(
int
_attr
);
void
textbackground
(
int
color
);
void
textbackground
(
int
color
);
void
textcolor
(
int
color
);
void
textcolor
(
int
color
);
/* textmode */
/* textmode */
int
wherex
(
void
);
int
wherex
(
void
);
int
wherey
(
void
);
int
wherey
(
void
);
/* window */
/* window */
/* The code below was part of Mingw's conio.h */
/* The code below was part of Mingw's conio.h */
/*
/*
* conio.h
* conio.h
*
*
* Low level console I/O functions. Pretty please try to use the ANSI
* Low level console I/O functions. Pretty please try to use the ANSI
* standard ones if you are writing new code.
* standard ones if you are writing new code.
*
*
* This file is part of the Mingw32 package.
* This file is part of the Mingw32 package.
*
*
* Contributors:
* Contributors:
* Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
* Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
*
*
* THIS SOFTWARE IS NOT COPYRIGHTED
* THIS SOFTWARE IS NOT COPYRIGHTED
*
*
* This source code is offered for use in the public domain. You may
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
* use, modify or distribute it freely.
*
*
* This code is distributed in the hope that it will be useful but
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*
* $Revision: 1.4 $
* $Revision: 1.4 $
* $Author: hongli $
* $Author: hongli $
* $Date: 2002/04/26 19:31:25 $
* $Date: 2002/04/26 19:31:25 $
*
*
*/
*/
char
*
_cgets
(
char
*
);
char
*
_cgets
(
char
*
);
int
_cprintf
(
const
char
*
,
...);
int
_cprintf
(
const
char
*
,
...);
int
_cputs
(
const
char
*
);
int
_cputs
(
const
char
*
);
int
_cscanf
(
char
*
,
...);
int
_cscanf
(
char
*
,
...);
int
_getch
(
void
);
int
_getch
(
void
);
int
_getche
(
void
);
int
_getche
(
void
);
int
_kbhit
(
void
);
int
_kbhit
(
void
);
int
_putch
(
int
);
int
_putch
(
int
);
int
_ungetch
(
int
);
int
_ungetch
(
int
);
int
getch
(
void
);
int
getch
(
void
);
int
getche
(
void
);
int
getche
(
void
);
int
kbhit
(
void
);
int
kbhit
(
void
);
int
putch
(
int
);
int
putch
(
int
);
int
ungetch
(
int
);
int
ungetch
(
int
);
#ifdef __cplusplus
#ifdef __cplusplus
}
}
#endif
#endif
#endif
/* _CONIO_H_ */
#endif
/* _CONIO_H_ */
src/mod/applications/mod_expr/exprconf.h
浏览文件 @
89ecc939
/*
/*
File: exprconf.h
File: exprconf.h
Auth: Brian Allen Vanderburg II
Auth: Brian Allen Vanderburg II
Date: Thursday, October 20, 2005
Date: Thursday, October 20, 2005
Desc: Configuration for ExprEval
Desc: Configuration for ExprEval
This file is part of ExprEval.
This file is part of ExprEval.
*/
*/
#ifndef __BAVII_EXPRCONF_H
#ifndef __BAVII_EXPRCONF_H
#define __BAVII_EXPRCONF_H
#define __BAVII_EXPRCONF_H
/*
/*
Error checking level
Error checking level
0: Don't check any errors (don't use errno). Divide by 0
0: Don't check any errors (don't use errno). Divide by 0
is avoided and the part that divides by 0 is 0. For example
is avoided and the part that divides by 0 is 0. For example
'4+1/0' is 4.
'4+1/0' is 4.
1: Check math errors.
1: Check math errors.
*/
*/
#define EXPR_ERROR_LEVEL_NONE 0
#define EXPR_ERROR_LEVEL_NONE 0
#define EXPR_ERROR_LEVEL_CHECK 1
#define EXPR_ERROR_LEVEL_CHECK 1
#ifndef EXPR_ERROR_LEVEL
#ifndef EXPR_ERROR_LEVEL
#define EXPR_ERROR_LEVEL EXPR_ERROR_LEVEL_CHECK
#define EXPR_ERROR_LEVEL EXPR_ERROR_LEVEL_CHECK
#endif
#endif
#endif
/* __BAVII_EXPRCONF_H */
#endif
/* __BAVII_EXPRCONF_H */
src/mod/applications/mod_expr/expreval.c
浏览文件 @
89ecc939
差异被折叠。
点击展开。
src/mod/applications/mod_expr/expreval.h
浏览文件 @
89ecc939
/*
/*
File: expreval.h
File: expreval.h
Auth: Brian Allen Vanderburg II
Auth: Brian Allen Vanderburg II
Date: Thursday, April 24, 2003
Date: Thursday, April 24, 2003
Desc: Main include file for ExprEval library
Desc: Main include file for ExprEval library
This file is part of ExprEval.
This file is part of ExprEval.
*/
*/
/* Include once */
/* Include once */
#ifndef __BAVII_EXPREVAL_H
#ifndef __BAVII_EXPREVAL_H
#define __BAVII_EXPREVAL_H
#define __BAVII_EXPREVAL_H
#ifdef __cplusplus
#ifdef __cplusplus
extern
"C"
{
extern
"C"
{
#endif
#endif
/* Define type of data to use */
/* Define type of data to use */
typedef
double
EXPRTYPE
;
typedef
double
EXPRTYPE
;
/* Defines for various things */
/* Defines for various things */
/* Max id size */
/* Max id size */
#define EXPR_MAXIDENTSIZE 255
#define EXPR_MAXIDENTSIZE 255
/* Error values */
/* Error values */
enum
enum
{
{
EXPR_ERROR_UNKNOWN
=
-
1
,
/* Unknown error */
EXPR_ERROR_UNKNOWN
=
-
1
,
/* Unknown error */
EXPR_ERROR_NOERROR
=
0
,
/* No Error */
EXPR_ERROR_NOERROR
=
0
,
/* No Error */
EXPR_ERROR_MEMORY
,
/* Memory allocation failed */
EXPR_ERROR_MEMORY
,
/* Memory allocation failed */
EXPR_ERROR_NULLPOINTER
,
/* Null pointer passed to function */
EXPR_ERROR_NULLPOINTER
,
/* Null pointer passed to function */
EXPR_ERROR_NOTFOUND
,
/* Item not found in a list */
EXPR_ERROR_NOTFOUND
,
/* Item not found in a list */
EXPR_ERROR_UNMATCHEDCOMMENT
,
/* Unmatched comment tags */
EXPR_ERROR_UNMATCHEDCOMMENT
,
/* Unmatched comment tags */
EXPR_ERROR_INVALIDCHAR
,
/* Invalid characters in expression */
EXPR_ERROR_INVALIDCHAR
,
/* Invalid characters in expression */
EXPR_ERROR_ALREADYEXISTS
,
/* An item already called create */
EXPR_ERROR_ALREADYEXISTS
,
/* An item already called create */
EXPR_ERROR_ALREADYPARSEDBAD
,
/* Expression parsed already, but unsuccessfully. call free or clear */
EXPR_ERROR_ALREADYPARSEDBAD
,
/* Expression parsed already, but unsuccessfully. call free or clear */
EXPR_ERROR_ALREADYPARSEDGOOD
,
/* Expression parsed already, successfully, call free or clear */
EXPR_ERROR_ALREADYPARSEDGOOD
,
/* Expression parsed already, successfully, call free or clear */
EXPR_ERROR_EMPTYEXPR
,
/* Empty expression string passed to parse */
EXPR_ERROR_EMPTYEXPR
,
/* Empty expression string passed to parse */
EXPR_ERROR_UNMATCHEDPAREN
,
/* Unmatched parenthesis */
EXPR_ERROR_UNMATCHEDPAREN
,
/* Unmatched parenthesis */
EXPR_ERROR_SYNTAX
,
/* Syntax error in expression */
EXPR_ERROR_SYNTAX
,
/* Syntax error in expression */
EXPR_ERROR_MISSINGSEMICOLON
,
/* Missing semicolon at end of expression */
EXPR_ERROR_MISSINGSEMICOLON
,
/* Missing semicolon at end of expression */
EXPR_ERROR_BADIDENTIFIER
,
/* Identifier was to big or not formed right */
EXPR_ERROR_BADIDENTIFIER
,
/* Identifier was to big or not formed right */
EXPR_ERROR_NOSUCHFUNCTION
,
/* Function does not exist in function list */
EXPR_ERROR_NOSUCHFUNCTION
,
/* Function does not exist in function list */
EXPR_ERROR_BADNUMBERARGUMENTS
,
/* Bad number of arguments in a function call */
EXPR_ERROR_BADNUMBERARGUMENTS
,
/* Bad number of arguments in a function call */
EXPR_ERROR_BADEXPR
,
/* This is a bad expression to evaluate. It has not been parsed or has unsuccessfully */
EXPR_ERROR_BADEXPR
,
/* This is a bad expression to evaluate. It has not been parsed or has unsuccessfully */
EXPR_ERROR_UNABLETOASSIGN
,
/* Unable to do an assignment, maybe no variable list */
EXPR_ERROR_UNABLETOASSIGN
,
/* Unable to do an assignment, maybe no variable list */
EXPR_ERROR_DIVBYZERO
,
/* Attempted a division by zero */
EXPR_ERROR_DIVBYZERO
,
/* Attempted a division by zero */
EXPR_ERROR_NOVARLIST
,
/* No variable list found but one is needed */
EXPR_ERROR_NOVARLIST
,
/* No variable list found but one is needed */
EXPR_ERROR_BREAK
,
/* Expression was broken by break function */
EXPR_ERROR_BREAK
,
/* Expression was broken by break function */
EXPR_ERROR_CONSTANTASSIGN
,
/* Assignment to a constant */
EXPR_ERROR_CONSTANTASSIGN
,
/* Assignment to a constant */
EXPR_ERROR_REFCONSTANT
,
/* Constant used as a reference parameter */
EXPR_ERROR_REFCONSTANT
,
/* Constant used as a reference parameter */
EXPR_ERROR_OUTOFRANGE
,
/* A bad value was passed to a function */
EXPR_ERROR_OUTOFRANGE
,
/* A bad value was passed to a function */
EXPR_ERROR_USER
/* Custom errors should be larger than this */
EXPR_ERROR_USER
/* Custom errors should be larger than this */
};
};
/* Macros */
/* Macros */
/* Forward declarations */
/* Forward declarations */
typedef
struct
_exprNode
exprNode
;
typedef
struct
_exprNode
exprNode
;
typedef
struct
_exprFuncList
exprFuncList
;
typedef
struct
_exprFuncList
exprFuncList
;
typedef
struct
_exprValList
exprValList
;
typedef
struct
_exprValList
exprValList
;
typedef
struct
_exprObj
exprObj
;
typedef
struct
_exprObj
exprObj
;
/* Function types */
/* Function types */
typedef
int
(
*
exprFuncType
)(
exprObj
*
obj
,
exprNode
*
nodes
,
int
nodecount
,
EXPRTYPE
**
refs
,
int
refcount
,
EXPRTYPE
*
val
);
typedef
int
(
*
exprFuncType
)(
exprObj
*
obj
,
exprNode
*
nodes
,
int
nodecount
,
EXPRTYPE
**
refs
,
int
refcount
,
EXPRTYPE
*
val
);
typedef
int
(
*
exprBreakFuncType
)(
exprObj
*
obj
);
typedef
int
(
*
exprBreakFuncType
)(
exprObj
*
obj
);
/* Functions */
/* Functions */
/* Version information function */
/* Version information function */
void
exprGetVersion
(
int
*
major
,
int
*
minor
);
void
exprGetVersion
(
int
*
major
,
int
*
minor
);
/* Functions for function lists */
/* Functions for function lists */
int
exprFuncListCreate
(
exprFuncList
**
flist
);
int
exprFuncListCreate
(
exprFuncList
**
flist
);
int
exprFuncListAdd
(
exprFuncList
*
flist
,
char
*
name
,
exprFuncType
ptr
,
int
min
,
int
max
,
int
refmin
,
int
refmax
);
int
exprFuncListAdd
(
exprFuncList
*
flist
,
char
*
name
,
exprFuncType
ptr
,
int
min
,
int
max
,
int
refmin
,
int
refmax
);
int
exprFuncListFree
(
exprFuncList
*
flist
);
int
exprFuncListFree
(
exprFuncList
*
flist
);
int
exprFuncListClear
(
exprFuncList
*
flist
);
int
exprFuncListClear
(
exprFuncList
*
flist
);
int
exprFuncListInit
(
exprFuncList
*
flist
);
int
exprFuncListInit
(
exprFuncList
*
flist
);
/* Functions for value lists */
/* Functions for value lists */
int
exprValListCreate
(
exprValList
**
vlist
);
int
exprValListCreate
(
exprValList
**
vlist
);
int
exprValListAdd
(
exprValList
*
vlist
,
char
*
name
,
EXPRTYPE
val
);
int
exprValListAdd
(
exprValList
*
vlist
,
char
*
name
,
EXPRTYPE
val
);
int
exprValListSet
(
exprValList
*
vlist
,
char
*
name
,
EXPRTYPE
val
);
int
exprValListSet
(
exprValList
*
vlist
,
char
*
name
,
EXPRTYPE
val
);
int
exprValListGet
(
exprValList
*
vlist
,
char
*
name
,
EXPRTYPE
*
val
);
int
exprValListGet
(
exprValList
*
vlist
,
char
*
name
,
EXPRTYPE
*
val
);
int
exprValListAddAddress
(
exprValList
*
vlist
,
char
*
name
,
EXPRTYPE
*
addr
);
int
exprValListAddAddress
(
exprValList
*
vlist
,
char
*
name
,
EXPRTYPE
*
addr
);
int
exprValListGetAddress
(
exprValList
*
vlist
,
char
*
name
,
EXPRTYPE
**
addr
);
int
exprValListGetAddress
(
exprValList
*
vlist
,
char
*
name
,
EXPRTYPE
**
addr
);
void
*
exprValListGetNext
(
exprValList
*
vlist
,
char
**
name
,
EXPRTYPE
*
value
,
EXPRTYPE
**
addr
,
void
*
cookie
);
void
*
exprValListGetNext
(
exprValList
*
vlist
,
char
**
name
,
EXPRTYPE
*
value
,
EXPRTYPE
**
addr
,
void
*
cookie
);
int
exprValListFree
(
exprValList
*
vlist
);
int
exprValListFree
(
exprValList
*
vlist
);
int
exprValListClear
(
exprValList
*
vlist
);
int
exprValListClear
(
exprValList
*
vlist
);
int
exprValListInit
(
exprValList
*
vlist
);
int
exprValListInit
(
exprValList
*
vlist
);
/* Functions for expression objects */
/* Functions for expression objects */
int
exprCreate
(
exprObj
**
obj
,
exprFuncList
*
flist
,
exprValList
*
vlist
,
exprValList
*
clist
,
int
exprCreate
(
exprObj
**
obj
,
exprFuncList
*
flist
,
exprValList
*
vlist
,
exprValList
*
clist
,
exprBreakFuncType
breaker
,
void
*
userdata
);
exprBreakFuncType
breaker
,
void
*
userdata
);
int
exprFree
(
exprObj
*
obj
);
int
exprFree
(
exprObj
*
obj
);
int
exprClear
(
exprObj
*
obj
);
int
exprClear
(
exprObj
*
obj
);
int
exprParse
(
exprObj
*
obj
,
char
*
expr
);
int
exprParse
(
exprObj
*
obj
,
char
*
expr
);
int
exprEval
(
exprObj
*
obj
,
EXPRTYPE
*
val
);
int
exprEval
(
exprObj
*
obj
,
EXPRTYPE
*
val
);
int
exprEvalNode
(
exprObj
*
obj
,
exprNode
*
nodes
,
int
curnode
,
EXPRTYPE
*
val
);
int
exprEvalNode
(
exprObj
*
obj
,
exprNode
*
nodes
,
int
curnode
,
EXPRTYPE
*
val
);
exprFuncList
*
exprGetFuncList
(
exprObj
*
obj
);
exprFuncList
*
exprGetFuncList
(
exprObj
*
obj
);
exprValList
*
exprGetVarList
(
exprObj
*
obj
);
exprValList
*
exprGetVarList
(
exprObj
*
obj
);
exprValList
*
exprGetConstList
(
exprObj
*
obj
);
exprValList
*
exprGetConstList
(
exprObj
*
obj
);
exprBreakFuncType
exprGetBreakFunc
(
exprObj
*
obj
);
exprBreakFuncType
exprGetBreakFunc
(
exprObj
*
obj
);
int
exprGetBreakResult
(
exprObj
*
obj
);
int
exprGetBreakResult
(
exprObj
*
obj
);
void
*
exprGetUserData
(
exprObj
*
obj
);
void
*
exprGetUserData
(
exprObj
*
obj
);
void
exprSetUserData
(
exprObj
*
obj
,
void
*
userdata
);
void
exprSetUserData
(
exprObj
*
obj
,
void
*
userdata
);
void
exprSetBreakCount
(
exprObj
*
obj
,
int
count
);
void
exprSetBreakCount
(
exprObj
*
obj
,
int
count
);
void
exprGetErrorPosition
(
exprObj
*
obj
,
int
*
start
,
int
*
end
);
void
exprGetErrorPosition
(
exprObj
*
obj
,
int
*
start
,
int
*
end
);
/* Other useful routines */
/* Other useful routines */
int
exprValidIdent
(
char
*
name
);
int
exprValidIdent
(
char
*
name
);
/* Name mangling */
/* Name mangling */
#ifdef __cplusplus
#ifdef __cplusplus
}
}
#endif
#endif
#endif
/* __BAVII_EXPREVAL_H */
#endif
/* __BAVII_EXPREVAL_H */
src/mod/applications/mod_expr/exprfunc.c
浏览文件 @
89ecc939
差异被折叠。
点击展开。
src/mod/applications/mod_expr/exprilfs.h
浏览文件 @
89ecc939
差异被折叠。
点击展开。
src/mod/applications/mod_expr/exprincl.h
浏览文件 @
89ecc939
/*
/*
File: exprincl.h
File: exprincl.h
Auth: Brian Allen Vanderburg II
Auth: Brian Allen Vanderburg II
Date: Thursday, April 24, 2003
Date: Thursday, April 24, 2003
Desc: Includes, macros, etc needed by this library
Desc: Includes, macros, etc needed by this library
This file is part of ExprEval.
This file is part of ExprEval.
*/
*/
#ifndef __BAVII_EXPRINCL_H
#ifndef __BAVII_EXPRINCL_H
#define __BAVII_EXPRINCL_H
#define __BAVII_EXPRINCL_H
/* Includes and macros and whatnot for building the library */
/* Includes and macros and whatnot for building the library */
#ifdef _MSC_VER
#ifdef _MSC_VER
#if (_MSC_VER >= 1400) // VC8+
#if (_MSC_VER >= 1400) // VC8+
#ifndef _CRT_SECURE_NO_DEPRECATE
#ifndef _CRT_SECURE_NO_DEPRECATE
#define _CRT_SECURE_NO_DEPRECATE
#define _CRT_SECURE_NO_DEPRECATE
#endif
#endif
#ifndef _CRT_NONSTDC_NO_DEPRECATE
#ifndef _CRT_NONSTDC_NO_DEPRECATE
#define _CRT_NONSTDC_NO_DEPRECATE
#define _CRT_NONSTDC_NO_DEPRECATE
#endif
#endif
#endif // VC8+
#endif // VC8+
#endif
#endif
/* Memory routines. memory.h for VC++, mem.h for BC++ */
/* Memory routines. memory.h for VC++, mem.h for BC++ */
#ifdef __TURBOC__
#ifdef __TURBOC__
#include <mem.h>
#include <mem.h>
#else
#else
#include <memory.h>
#include <memory.h>
#endif
#endif
/* Memory allocation */
/* Memory allocation */
#include <malloc.h>
#include <malloc.h>
/* String routines */
/* String routines */
#include <string.h>
#include <string.h>
/* Character manipulation routines */
/* Character manipulation routines */
#include <ctype.h>
#include <ctype.h>
/* Standard routines */
/* Standard routines */
#include <stdlib.h>
#include <stdlib.h>
/* Math routines */
/* Math routines */
#include <math.h>
#include <math.h>
/* Time */
/* Time */
#include <time.h>
#include <time.h>
/* Math constants. VC++ does not seem to have these */
/* Math constants. VC++ does not seem to have these */
#ifndef M_E
#ifndef M_E
#define M_E 2.7182818284590452354
#define M_E 2.7182818284590452354
#endif
#endif
#ifndef M_LOG2E
#ifndef M_LOG2E
#define M_LOG2E 1.4426950408889634074
#define M_LOG2E 1.4426950408889634074
#endif
#endif
#ifndef M_LOG10E
#ifndef M_LOG10E
#define M_LOG10E 0.43429448190325182765
#define M_LOG10E 0.43429448190325182765
#endif
#endif
#ifndef M_LN2
#ifndef M_LN2
#define M_LN2 0.69314718055994530942
#define M_LN2 0.69314718055994530942
#endif
#endif
#ifndef M_LN10
#ifndef M_LN10
#define M_LN10 2.30258509299404568402
#define M_LN10 2.30258509299404568402
#endif
#endif
#ifndef M_PI
#ifndef M_PI
#define M_PI 3.14159265358979323846
#define M_PI 3.14159265358979323846
#endif
#endif
#ifndef M_PI_2
#ifndef M_PI_2
#define M_PI_2 1.57079632679489661923
#define M_PI_2 1.57079632679489661923
#endif
#endif
#ifndef M_PI_4
#ifndef M_PI_4
#define M_PI_4 0.78539816339744830962
#define M_PI_4 0.78539816339744830962
#endif
#endif
#ifndef M_1_PI
#ifndef M_1_PI
#define M_1_PI 0.31830988618379067154
#define M_1_PI 0.31830988618379067154
#endif
#endif
#ifndef M_2_PI
#ifndef M_2_PI
#define M_2_PI 0.63661977236758134308
#define M_2_PI 0.63661977236758134308
#endif
#endif
#ifndef M_1_SQRTPI
#ifndef M_1_SQRTPI
#define M_1_SQRTPI 0.56418958354776
#define M_1_SQRTPI 0.56418958354776
#endif
#endif
#ifndef M_2_SQRTPI
#ifndef M_2_SQRTPI
#define M_2_SQRTPI 1.12837916709551257390
#define M_2_SQRTPI 1.12837916709551257390
#endif
#endif
#ifndef M_SQRT2
#ifndef M_SQRT2
#define M_SQRT2 1.41421356237309504880
#define M_SQRT2 1.41421356237309504880
#endif
#endif
#ifndef M_1_SQRT2
#ifndef M_1_SQRT2
#define M_1_SQRT2 0.70710678118654752440
#define M_1_SQRT2 0.70710678118654752440
#endif
#endif
#endif
/* __BAVII_EXPRINCL_H */
#endif
/* __BAVII_EXPRINCL_H */
src/mod/applications/mod_expr/exprinit.c
浏览文件 @
89ecc939
/*
/*
File: exprinit.c
File: exprinit.c
Auth: Brian Allen Vanderburg II
Auth: Brian Allen Vanderburg II
Date: Thursday, May 1, 2003
Date: Thursday, May 1, 2003
Desc: Extra functions and routines for ExprEval
Desc: Extra functions and routines for ExprEval
This file is part of ExprEval.
This file is part of ExprEval.
*/
*/
/* Include files */
/* Include files */
#include "exprincl.h"
#include "exprincl.h"
#include "exprpriv.h"
#include "exprpriv.h"
/* Macro for adding a function node type */
/* Macro for adding a function node type */
#define EXPR_ADDFUNC_TYPE(name, type, argmin, argmax, refmin, refmax) \
#define EXPR_ADDFUNC_TYPE(name, type, argmin, argmax, refmin, refmax) \
err
=
exprFuncListAddType
(
flist
,
name
,
type
,
argmin
,
argmax
,
refmin
,
refmax
);
\
err = exprFuncListAddType(flist, name, type, argmin, argmax, refmin, refmax); \
if
(
err
!=
EXPR_ERROR_NOERROR
)
\
if(err != EXPR_ERROR_NOERROR) \
return
err
;
return err;
/* Macro for adding a constant */
/* Macro for adding a constant */
#define EXPR_ADDCONST(name, val) \
#define EXPR_ADDCONST(name, val) \
err
=
exprValListAdd
(
vlist
,
name
,
val
);
\
err = exprValListAdd(vlist, name, val); \
if
(
err
!=
EXPR_ERROR_NOERROR
)
\
if(err != EXPR_ERROR_NOERROR) \
return
err
;
return err;
/* Call this function to initialize these functions into a function list */
/* Call this function to initialize these functions into a function list */
int
exprFuncListInit
(
exprFuncList
*
flist
)
int
exprFuncListInit
(
exprFuncList
*
flist
)
{
{
int
err
;
int
err
;
if
(
flist
==
NULL
)
if
(
flist
==
NULL
)
return
EXPR_ERROR_NULLPOINTER
;
return
EXPR_ERROR_NULLPOINTER
;
EXPR_ADDFUNC_TYPE
(
"abs"
,
EXPR_NODEFUNC_ABS
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"abs"
,
EXPR_NODEFUNC_ABS
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"mod"
,
EXPR_NODEFUNC_MOD
,
2
,
2
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"mod"
,
EXPR_NODEFUNC_MOD
,
2
,
2
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"ipart"
,
EXPR_NODEFUNC_IPART
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"ipart"
,
EXPR_NODEFUNC_IPART
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"fpart"
,
EXPR_NODEFUNC_FPART
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"fpart"
,
EXPR_NODEFUNC_FPART
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"min"
,
EXPR_NODEFUNC_MIN
,
1
,
-
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"min"
,
EXPR_NODEFUNC_MIN
,
1
,
-
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"max"
,
EXPR_NODEFUNC_MAX
,
1
,
-
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"max"
,
EXPR_NODEFUNC_MAX
,
1
,
-
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"pow"
,
EXPR_NODEFUNC_POW
,
2
,
2
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"pow"
,
EXPR_NODEFUNC_POW
,
2
,
2
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"sqrt"
,
EXPR_NODEFUNC_SQRT
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"sqrt"
,
EXPR_NODEFUNC_SQRT
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"sin"
,
EXPR_NODEFUNC_SIN
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"sin"
,
EXPR_NODEFUNC_SIN
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"sinh"
,
EXPR_NODEFUNC_SINH
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"sinh"
,
EXPR_NODEFUNC_SINH
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"asin"
,
EXPR_NODEFUNC_ASIN
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"asin"
,
EXPR_NODEFUNC_ASIN
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"cos"
,
EXPR_NODEFUNC_COS
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"cos"
,
EXPR_NODEFUNC_COS
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"cosh"
,
EXPR_NODEFUNC_COSH
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"cosh"
,
EXPR_NODEFUNC_COSH
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"acos"
,
EXPR_NODEFUNC_ACOS
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"acos"
,
EXPR_NODEFUNC_ACOS
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"tan"
,
EXPR_NODEFUNC_TAN
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"tan"
,
EXPR_NODEFUNC_TAN
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"tanh"
,
EXPR_NODEFUNC_TANH
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"tanh"
,
EXPR_NODEFUNC_TANH
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"atan"
,
EXPR_NODEFUNC_ATAN
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"atan"
,
EXPR_NODEFUNC_ATAN
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"atan2"
,
EXPR_NODEFUNC_ATAN2
,
2
,
2
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"atan2"
,
EXPR_NODEFUNC_ATAN2
,
2
,
2
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"log"
,
EXPR_NODEFUNC_LOG
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"log"
,
EXPR_NODEFUNC_LOG
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"pow10"
,
EXPR_NODEFUNC_POW10
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"pow10"
,
EXPR_NODEFUNC_POW10
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"ln"
,
EXPR_NODEFUNC_LN
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"ln"
,
EXPR_NODEFUNC_LN
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"exp"
,
EXPR_NODEFUNC_EXP
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"exp"
,
EXPR_NODEFUNC_EXP
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"logn"
,
EXPR_NODEFUNC_LOGN
,
2
,
2
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"logn"
,
EXPR_NODEFUNC_LOGN
,
2
,
2
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"ceil"
,
EXPR_NODEFUNC_CEIL
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"ceil"
,
EXPR_NODEFUNC_CEIL
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"floor"
,
EXPR_NODEFUNC_FLOOR
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"floor"
,
EXPR_NODEFUNC_FLOOR
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"rand"
,
EXPR_NODEFUNC_RAND
,
0
,
0
,
1
,
1
);
EXPR_ADDFUNC_TYPE
(
"rand"
,
EXPR_NODEFUNC_RAND
,
0
,
0
,
1
,
1
);
EXPR_ADDFUNC_TYPE
(
"random"
,
EXPR_NODEFUNC_RANDOM
,
2
,
2
,
1
,
1
);
EXPR_ADDFUNC_TYPE
(
"random"
,
EXPR_NODEFUNC_RANDOM
,
2
,
2
,
1
,
1
);
EXPR_ADDFUNC_TYPE
(
"randomize"
,
EXPR_NODEFUNC_RANDOMIZE
,
0
,
0
,
1
,
1
);
EXPR_ADDFUNC_TYPE
(
"randomize"
,
EXPR_NODEFUNC_RANDOMIZE
,
0
,
0
,
1
,
1
);
EXPR_ADDFUNC_TYPE
(
"deg"
,
EXPR_NODEFUNC_DEG
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"deg"
,
EXPR_NODEFUNC_DEG
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"rad"
,
EXPR_NODEFUNC_RAD
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"rad"
,
EXPR_NODEFUNC_RAD
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"recttopolr"
,
EXPR_NODEFUNC_RECTTOPOLR
,
2
,
2
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"recttopolr"
,
EXPR_NODEFUNC_RECTTOPOLR
,
2
,
2
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"recttopola"
,
EXPR_NODEFUNC_RECTTOPOLA
,
2
,
2
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"recttopola"
,
EXPR_NODEFUNC_RECTTOPOLA
,
2
,
2
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"poltorectx"
,
EXPR_NODEFUNC_POLTORECTX
,
2
,
2
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"poltorectx"
,
EXPR_NODEFUNC_POLTORECTX
,
2
,
2
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"poltorecty"
,
EXPR_NODEFUNC_POLTORECTY
,
2
,
2
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"poltorecty"
,
EXPR_NODEFUNC_POLTORECTY
,
2
,
2
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"if"
,
EXPR_NODEFUNC_IF
,
3
,
3
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"if"
,
EXPR_NODEFUNC_IF
,
3
,
3
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"select"
,
EXPR_NODEFUNC_SELECT
,
3
,
4
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"select"
,
EXPR_NODEFUNC_SELECT
,
3
,
4
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"equal"
,
EXPR_NODEFUNC_EQUAL
,
2
,
2
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"equal"
,
EXPR_NODEFUNC_EQUAL
,
2
,
2
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"above"
,
EXPR_NODEFUNC_ABOVE
,
2
,
2
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"above"
,
EXPR_NODEFUNC_ABOVE
,
2
,
2
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"below"
,
EXPR_NODEFUNC_BELOW
,
2
,
2
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"below"
,
EXPR_NODEFUNC_BELOW
,
2
,
2
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"avg"
,
EXPR_NODEFUNC_AVG
,
1
,
-
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"avg"
,
EXPR_NODEFUNC_AVG
,
1
,
-
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"clip"
,
EXPR_NODEFUNC_CLIP
,
3
,
3
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"clip"
,
EXPR_NODEFUNC_CLIP
,
3
,
3
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"clamp"
,
EXPR_NODEFUNC_CLAMP
,
3
,
3
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"clamp"
,
EXPR_NODEFUNC_CLAMP
,
3
,
3
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"pntchange"
,
EXPR_NODEFUNC_PNTCHANGE
,
5
,
5
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"pntchange"
,
EXPR_NODEFUNC_PNTCHANGE
,
5
,
5
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"poly"
,
EXPR_NODEFUNC_POLY
,
2
,
-
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"poly"
,
EXPR_NODEFUNC_POLY
,
2
,
-
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"and"
,
EXPR_NODEFUNC_AND
,
2
,
2
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"and"
,
EXPR_NODEFUNC_AND
,
2
,
2
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"or"
,
EXPR_NODEFUNC_OR
,
2
,
2
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"or"
,
EXPR_NODEFUNC_OR
,
2
,
2
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"not"
,
EXPR_NODEFUNC_NOT
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"not"
,
EXPR_NODEFUNC_NOT
,
1
,
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"for"
,
EXPR_NODEFUNC_FOR
,
4
,
-
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"for"
,
EXPR_NODEFUNC_FOR
,
4
,
-
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"many"
,
EXPR_NODEFUNC_MANY
,
1
,
-
1
,
0
,
0
);
EXPR_ADDFUNC_TYPE
(
"many"
,
EXPR_NODEFUNC_MANY
,
1
,
-
1
,
0
,
0
);
return
EXPR_ERROR_NOERROR
;
return
EXPR_ERROR_NOERROR
;
}
}
/* Call this function to initialize some constants into a value list */
/* Call this function to initialize some constants into a value list */
int
exprValListInit
(
exprValList
*
vlist
)
int
exprValListInit
(
exprValList
*
vlist
)
{
{
int
err
;
int
err
;
if
(
vlist
==
NULL
)
if
(
vlist
==
NULL
)
return
EXPR_ERROR_NULLPOINTER
;
return
EXPR_ERROR_NULLPOINTER
;
EXPR_ADDCONST
(
"M_E"
,
M_E
);
EXPR_ADDCONST
(
"M_E"
,
M_E
);
EXPR_ADDCONST
(
"M_LOG2E"
,
M_LOG2E
);
EXPR_ADDCONST
(
"M_LOG2E"
,
M_LOG2E
);
EXPR_ADDCONST
(
"M_LOG10E"
,
M_LOG10E
);
EXPR_ADDCONST
(
"M_LOG10E"
,
M_LOG10E
);
EXPR_ADDCONST
(
"M_LN2"
,
M_LN2
);
EXPR_ADDCONST
(
"M_LN2"
,
M_LN2
);
EXPR_ADDCONST
(
"M_LN10"
,
M_LN10
);
EXPR_ADDCONST
(
"M_LN10"
,
M_LN10
);
EXPR_ADDCONST
(
"M_PI"
,
M_PI
);
EXPR_ADDCONST
(
"M_PI"
,
M_PI
);
EXPR_ADDCONST
(
"M_PI_2"
,
M_PI_2
);
EXPR_ADDCONST
(
"M_PI_2"
,
M_PI_2
);
EXPR_ADDCONST
(
"M_PI_4"
,
M_PI_4
);
EXPR_ADDCONST
(
"M_PI_4"
,
M_PI_4
);
EXPR_ADDCONST
(
"M_1_PI"
,
M_1_PI
);
EXPR_ADDCONST
(
"M_1_PI"
,
M_1_PI
);
EXPR_ADDCONST
(
"M_2_PI"
,
M_2_PI
);
EXPR_ADDCONST
(
"M_2_PI"
,
M_2_PI
);
EXPR_ADDCONST
(
"M_1_SQRTPI"
,
M_1_SQRTPI
);
EXPR_ADDCONST
(
"M_1_SQRTPI"
,
M_1_SQRTPI
);
EXPR_ADDCONST
(
"M_2_SQRTPI"
,
M_2_SQRTPI
);
EXPR_ADDCONST
(
"M_2_SQRTPI"
,
M_2_SQRTPI
);
EXPR_ADDCONST
(
"M_SQRT2"
,
M_SQRT2
);
EXPR_ADDCONST
(
"M_SQRT2"
,
M_SQRT2
);
EXPR_ADDCONST
(
"M_1_SQRT2"
,
M_1_SQRT2
);
EXPR_ADDCONST
(
"M_1_SQRT2"
,
M_1_SQRT2
);
return
EXPR_ERROR_NOERROR
;
return
EXPR_ERROR_NOERROR
;
}
}
src/mod/applications/mod_expr/exprmem.c
浏览文件 @
89ecc939
/*
/*
File: exprmem.c
File: exprmem.c
Auth: Brian Allen Vanderburg II
Auth: Brian Allen Vanderburg II
Date: Wednesday, April 30, 2003
Date: Wednesday, April 30, 2003
Desc: Memory functions for ExprEval
Desc: Memory functions for ExprEval
This file is part of ExprEval.
This file is part of ExprEval.
*/
*/
/* Includes */
/* Includes */
#include "exprincl.h"
#include "exprincl.h"
#include "exprmem.h"
#include "exprmem.h"
/* Allocate memory and zero it */
/* Allocate memory and zero it */
void
*
exprAllocMem
(
size_t
size
)
void
*
exprAllocMem
(
size_t
size
)
{
{
void
*
data
=
malloc
(
size
);
void
*
data
=
malloc
(
size
);
if
(
data
)
if
(
data
)
{
{
memset
(
data
,
0
,
size
);
memset
(
data
,
0
,
size
);
}
}
return
data
;
return
data
;
}
}
/* Free memory */
/* Free memory */
void
exprFreeMem
(
void
*
data
)
void
exprFreeMem
(
void
*
data
)
{
{
if
(
data
)
if
(
data
)
free
(
data
);
free
(
data
);
}
}
/* Allocate a list of nodes */
/* Allocate a list of nodes */
exprNode
*
exprAllocNodes
(
size_t
count
)
exprNode
*
exprAllocNodes
(
size_t
count
)
{
{
return
exprAllocMem
(
count
*
sizeof
(
exprNode
));
return
exprAllocMem
(
count
*
sizeof
(
exprNode
));
}
}
src/mod/applications/mod_expr/exprmem.h
浏览文件 @
89ecc939
/*
/*
File: exprmem.h
File: exprmem.h
Auth: Brian Allen Vanderburg II
Auth: Brian Allen Vanderburg II
Date: Wednesday, April 30, 2003
Date: Wednesday, April 30, 2003
Desc: Memory functions for ExprEval
Desc: Memory functions for ExprEval
This file is part of ExprEval.
This file is part of ExprEval.
*/
*/
#ifndef __BAVII_EXPRMEM_H
#ifndef __BAVII_EXPRMEM_H
#define __BAVII_EXPRMEM_H
#define __BAVII_EXPRMEM_H
/* Needed for exprNode */
/* Needed for exprNode */
#include "exprpriv.h"
#include "exprpriv.h"
void
*
exprAllocMem
(
size_t
size
);
void
*
exprAllocMem
(
size_t
size
);
void
exprFreeMem
(
void
*
data
);
void
exprFreeMem
(
void
*
data
);
exprNode
*
exprAllocNodes
(
size_t
count
);
exprNode
*
exprAllocNodes
(
size_t
count
);
#endif
/* __BAVII_EXPRMEM_H */
#endif
/* __BAVII_EXPRMEM_H */
src/mod/applications/mod_expr/exprobj.c
浏览文件 @
89ecc939
差异被折叠。
点击展开。
src/mod/applications/mod_expr/exprpars.c
浏览文件 @
89ecc939
差异被折叠。
点击展开。
src/mod/applications/mod_expr/exprpriv.h
浏览文件 @
89ecc939
差异被折叠。
点击展开。
src/mod/applications/mod_expr/exprutil.c
浏览文件 @
89ecc939
差异被折叠。
点击展开。
src/mod/applications/mod_expr/exprval.c
浏览文件 @
89ecc939
差异被折叠。
点击展开。
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论