分享

Squirrel源码分析

 quasiceo 2014-02-04

Squirrel源码分析--squirrel.h

主要是一些宏和结构体定义。

SQUIRREL_API extern
SQInteger
SQInt32
SQUnsignedInteger
SQHash
SQFloat
SQRawObjectVal
SQBool
SQRESULT

SQObjectType:对象类型,由位域实现

SQObjectValue:对象值,Union实现。可能是以下19种对象之一
typedef union tagSQObjectValue
{
struct SQTable *pTable;
struct SQArray *pArray;
struct SQClosure *pClosure;
struct SQOuter *pOuter;
struct SQGenerator *pGenerator;
struct SQNativeClosure *pNativeClosure;
struct SQString *pString;
struct SQUserData *pUserData;
SQInteger nInteger;
SQFloat fFloat;
SQUserPointer pUserPointer;
struct SQFunctionProto *pFunctionProto;
struct SQRefCounted *pRefCounted;
struct SQDelegable *pDelegable;
struct SQVM *pThread;
struct SQClass *pClass;
struct SQInstance *pInstance;
struct SQWeakRef *pWeakRef;
SQRawObjectVal raw;
}SQObjectValue;


SQObject:对象
typedef struct tagSQObject
{
SQObjectType _type;
SQObjectValue _unVal;
}SQObject;

SQMemberHandle
SQStackInfos:函数调用栈

函数指针:
SQFUNCTION
SQRELEASEHOOK
SQCOMPILERERROR
SQPRINTFUNCTION:打印输出函数
SQDEBUGHOOK
SQWRITEFUNC
SQREADFUNC
SQLEXREADFUNC

SQRegFunction
SQFunctionInfo

Squirrel脚本引擎的API:
vm:虚拟机
compiler:编译器
stack operations:调用栈操作
object creation handling:对象创建处理
object manipulation:对象操作
calls:调用
raw object handling:原始对象处理
GC:垃圾回收
serialization:序列化
mem allocation:内存分配
debug:调式
UTILITY MACRO:工具宏

主要包含以上几种的API,都以 sp_ 开头

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多