libicl_private.h
来自「SRI international 发布的OAA框架软件」· C头文件 代码 · 共 89 行
H
89 行
#ifndef _ICLLIB_PRIVATE_H_INCLUDED
#define _ICLLIB_PRIVATE_H_INCLUDED
#ifdef __cplusplus
extern "C" {
#endif
#include <stdlib.h>
#include "libicl.h"
#define ICL_MAGIC_COOKIE 123456
struct iclTerm {
int magic_cookie;
enum ICLType iclType;
void *p;
size_t len;
int refCount;
int glibAlloc;
int hadQuotes;
};
struct iclListType {
struct iclTerm *elt;
struct iclListType *next;
};
struct iclGroupType {
char startChar;
char *separator;
struct iclListType *list;
};
struct iclStructType {
char *name;
int numArgs;
struct iclTerm *args;
};
/****************************************************************************
* Type: A dynamic array
****************************************************************************/
struct dyn_array {
int count;
int allocated;
char **item;
};
typedef struct SOperator_s {
char mName[255];
int mPriority;
} SOperator;
EXTERN char* ICLDATAQSTART;
EXTERN size_t ICLDATAQSTARTLEN;
EXTERN SOperator operators[];
EXTERN char last_separator;
void icl_addChild(ICLTerm* compound, ICLTerm* child);
int icl_toWireString(ICLTerm* t, char** termAsString, size_t* termAsStringLen);
ICLTerm* icl_NewDataQNoCopy(void* data, size_t dataLen);
ICLTerm* icl_NewStrNoCopy(char *s);
ICLTerm* icl_NewVarNoCopy(char *name);
ICLTerm* icl_NewTermFromDataDebug(char* data, size_t len);
EXTERN void icl_stTrim(char* s);
EXTERN int icl_safeStHeadTailPtr(char* tearms, size_t len, char** aterm, size_t* atermLen, char** restTerms, size_t* restTermsLen);
EXTERN void icl_safeStFunctorArgs(char* structure, size_t structLen, char** func, size_t* funcLen, char** args, size_t* argsLen);
EXTERN int icl_stIsOperatorChar(char t);
EXTERN int icl_safeStTerm(char* terems, size_t len, char** aterm, size_t* atermLen, char** restterms, size_t* restTermsLen);
EXTERN void icl_safeStListToTerms(char* s, size_t len, size_t* newLen);
int icl_member_strlist(char *elt,
struct dyn_array strlist,
int incr,
int case_ins);
void icl_free_dyn_list(struct dyn_array* slist);
void icl_append_dyn_array(struct dyn_array *slist, void *str);
int find_first_operator(char* s, char* op);
char icl_stGetLastSeparator();
EXTERN int icl_stIsOperator(char *t);
EXTERN void icl_safeStRemoveQuotes(char *t, size_t len, size_t* newLen);
EXTERN void icl_safeStUndoubleQuotes(char *t, size_t len, size_t* newLen);
#ifdef __cplusplus
}
#endif
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?