• 大小: 436KB
    文件类型: .gz
    金币: 1
    下载: 0 次
    发布日期: 2021-05-11
  • 语言: C/C++
  • 标签: expat  expat-2.0.1  C  

资源简介

Expat 是一个用C语言开发的、用来解析XML文档的开发库,它最初是开源的、Mozilla 项目下的一个XML解析器。

资源截图

代码片段和文件信息

/*
** Copyright (c) 2001-2007 Expat maintainers.
**
** Permission is hereby granted free of charge to any person obtaining
** a copy of this software and associated documentation files (the
** “Software“) to deal in the Software without restriction including
** without limitation the rights to use copy modify merge publish
** distribute sublicense and/or sell copies of the Software and to
** permit persons to whom the Software is furnished to do so subject to
** the following conditions:
** 
** The above copyright notice and this permission notice shall be included
** in all copies or substantial portions of the Software.
** 
** THE SOFTWARE IS PROVIDED “AS IS“ WITHOUT WARRANTY OF ANY KIND
** EXPRESS OR IMPLIED INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
** MERCHANTABILITY FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
** CLAIM DAMAGES OR OTHER LIABILITY WHETHER IN AN ACTION OF CONTRACT
** TORT OR OTHERWISE ARISING FROM OUT OF OR IN CONNECTION WITH THE
** SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/

#include 
#include 

#define LIBNAME “expat.library“
#define LIBPRI 0
#define VERSION 4
#define REVISION 2
#define VSTRING “expat.library 4.2 (2.6.2007)“  /* dd.mm.yyyy */


static const char* __attribute__((used)) verstag = “\0$VER: “ VSTRING;


struct Expatbase {
struct Library libNode;
uint16 pad;
BPTR SegList;
};


struct Expatbase * libInit(struct Expatbase *libbase BPTR seglist struct ExecIFace *ISys);
uint32 libObtain (struct LibraryManagerInterface *Self);
uint32 libRelease (struct LibraryManagerInterface *Self);
struct Expatbase *libOpen (struct LibraryManagerInterface *Self uint32 version);
BPTR libClose (struct LibraryManagerInterface *Self);
BPTR libExpunge (struct LibraryManagerInterface *Self);


static APTR lib_manager_vectors[] = {
libObtain
libRelease
NULL
NULL
libOpen
libClose
libExpunge
NULL
(APTR)-1
};


static struct TagItem lib_managerTags[] = {
{ MIT_Name (uint32)“__library“ }
{ MIT_VectorTable (uint32)lib_manager_vectors }
{ MIT_Version 1 }
{ TAG_END 0 }
};


extern void *main_vectors[];

static struct TagItem lib_mainTags[] = {
{ MIT_Name (uint32)“main“ }
{ MIT_VectorTable (uint32)main_vectors }
{ MIT_Version 1 }
{ TAG_END 0 }
};


static APTR libInterfaces[] = {
lib_managerTags
lib_mainTags
NULL
};


static struct TagItem libCreateTags[] = {
{ CLT_DataSize sizeof(struct Expatbase) }
{ CLT_InitFunc (uint32)libInit }
{ CLT_Interfaces (uint32)libInterfaces }
{ TAG_END 0 }
};


static struct Resident __attribute__((used)) lib_res = {
RTC_MATCHWORD // rt_MatchWord
&lib_res // rt_MatchTag
&lib_res+1 // rt_EndSkip
RTF_NATIVE | RTF_AUTOINIT // rt_Flags
VERSION // rt_Version
NT_LIBRARY // rt_Type
LIBPRI // rt_Pri
LIBNAME // rt_Name
VSTRING // rt_IdString
libCreateTags // rt_Init
};


struct Library *DOS

评论

共有 条评论