1 #include <Config/Parser.oh>
2 #include <Object.oh>
3 #include <LongStrings.oh>
4 #include <OS/Path.oh>
5 #include <XML/UnicodeCodec/Latin1.oh>
6 static void Config_Parser__InitBuilder(Config_Parser__Builder b);
7 static Config_Parser__Builder Config_Parser__NewBuilder(void);
8 static void Config_Parser__InitNode(Config_Parser__Node node, Config_Parser__Element parent, XML_Locator__Locator l, struct XML_Locator__Position *pos, RT0__Struct pos__tag);
9 static void Config_Parser__InitElement(Config_Parser__Element e, Config_Parser__Element parent, struct XML_Locator__Position *pos, RT0__Struct pos__tag, XML_UnicodeBuffer__CharArray name, XML_Builder__AttributeList attrList);
10 static Config_Parser__Element Config_Parser__NewElement(Config_Parser__Element parent, struct XML_Locator__Position *pos, RT0__Struct pos__tag, XML_UnicodeBuffer__CharArray name, XML_Builder__AttributeList attrList);
11 static void Config_Parser__InitCharData(Config_Parser__CharData charData, Config_Parser__Element parent, XML_Locator__Locator l, XML_UnicodeBuffer__CharArray str);
12 static Config_Parser__CharData Config_Parser__NewCharData(Config_Parser__Element parent, XML_Locator__Locator l, XML_UnicodeBuffer__CharArray str);
13
14 /* run-time meta data */
15 static RT0__ModuleDesc _mid;
16 RT0__StructDesc _td_Config_Parser__String = { (RT0__Struct[]){&RT0__longchar}, NULL, NULL, &_mid, (OOC_CHAR8*)"String", 2, 1, (1<<RT0__flagAtomic), RT0__strOpenArray };
17 RT0__StructDesc _td_Config_Parser__Element = { (RT0__Struct[]){&_td_Config_Parser__ElementDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Element", 8, -1, 0, RT0__strPointer };
18 RT0__StructDesc _td_Config_Parser__Node = { (RT0__Struct[]){&_td_Config_Parser__NodeDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Node", 8, -1, 0, RT0__strPointer };
19 RT0__StructDesc _td_Config_Parser__NodeDesc = { (RT0__Struct[]){&_td_Config_Parser__NodeDesc}, (void*[]){(void*)Config_Parser__NodeDesc_IsWhitespace,(void*)Config_Parser__NodeDesc_HasNoElementContent,(void*)Config_Parser__NodeDesc_IsEmpty,(void*)Config_Parser__NodeDesc_GetCharDataContent}, NULL, &_mid, (OOC_CHAR8*)"NodeDesc", 48, 0, 0, RT0__strRecord };
20 RT0__StructDesc _td_Config_Parser__CharData = { (RT0__Struct[]){&_td_Config_Parser__CharDataDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"CharData", 8, -1, 0, RT0__strPointer };
21 RT0__StructDesc _td_Config_Parser__CharDataDesc = { (RT0__Struct[]){&_td_Config_Parser__NodeDesc,&_td_Config_Parser__CharDataDesc}, (void*[]){(void*)Config_Parser__NodeDesc_IsWhitespace,(void*)Config_Parser__NodeDesc_HasNoElementContent,(void*)Config_Parser__NodeDesc_IsEmpty,(void*)Config_Parser__NodeDesc_GetCharDataContent}, NULL, &_mid, (OOC_CHAR8*)"CharDataDesc", 56, 1, 0, RT0__strRecord };
22 RT0__StructDesc _td_Config_Parser__ElementDesc = { (RT0__Struct[]){&_td_Config_Parser__NodeDesc,&_td_Config_Parser__ElementDesc}, (void*[]){(void*)Config_Parser__NodeDesc_IsWhitespace,(void*)Config_Parser__NodeDesc_HasNoElementContent,(void*)Config_Parser__NodeDesc_IsEmpty,(void*)Config_Parser__NodeDesc_GetCharDataContent}, NULL, &_mid, (OOC_CHAR8*)"ElementDesc", 80, 1, 0, RT0__strRecord };
23 RT0__StructDesc _td_Config_Parser__Builder = { (RT0__Struct[]){&_td_Config_Parser__BuilderDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Builder", 8, -1, 0, RT0__strPointer };
24 RT0__StructDesc _td_Config_Parser__BuilderDesc = { (RT0__Struct[]){&_td_XML_Builder__BuilderDesc,&_td_Config_Parser__BuilderDesc}, (void*[]){(void*)Config_Parser__BuilderDesc_SetLocator,(void*)Config_Parser__BuilderDesc_SetErrorListener,(void*)XML_Builder__BuilderDesc_StartDocument,(void*)XML_Builder__BuilderDesc_EndDocument,(void*)XML_Builder__BuilderDesc_StartDTD,(void*)XML_Builder__BuilderDesc_EndDTD,(void*)Config_Parser__BuilderDesc_StartElement,(void*)Config_Parser__BuilderDesc_EndElement,(void*)Config_Parser__BuilderDesc_Attribute,(void*)XML_Builder__BuilderDesc_NamespaceDeclaration,(void*)Config_Parser__BuilderDesc_AttributesDone,(void*)XML_Builder__BuilderDesc_SkippedEntity,(void*)Config_Parser__BuilderDesc_Characters,(void*)XML_Builder__BuilderDesc_StartCDATA,(void*)XML_Builder__BuilderDesc_EndCDATA,(void*)XML_Builder__BuilderDesc_StartEntity,(void*)XML_Builder__BuilderDesc_EndEntity,(void*)XML_Builder__BuilderDesc_EntityDecl,(void*)XML_Builder__BuilderDesc_Notation,(void*)XML_Builder__BuilderDesc_ProcessingInstruction,(void*)XML_Builder__BuilderDesc_Comment}, NULL, &_mid, (OOC_CHAR8*)"BuilderDesc", 80, 1, 0, RT0__strRecord };
25 RT0__StructDesc _td_Config_Parser__Parser = { (RT0__Struct[]){&_td_Config_Parser__ParserDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Parser", 8, -1, 0, RT0__strPointer };
26 RT0__StructDesc _td_Config_Parser__ParserDesc = { (RT0__Struct[]){&_td_Config_Parser__ParserDesc}, (void*[]){(void*)Config_Parser__ParserDesc_ParseDocument}, NULL, &_mid, (OOC_CHAR8*)"ParserDesc", 40, 0, 0, RT0__strRecord };
27 RT0__StructDesc _td_Config_Parser__Resolver = { (RT0__Struct[]){&_td_Config_Parser__ResolverDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Resolver", 8, -1, 0, RT0__strPointer };
28 RT0__StructDesc _td_Config_Parser__ResolverDesc = { (RT0__Struct[]){&_td_XML_EntityResolver__ResolverDesc,&_td_Config_Parser__ResolverDesc}, (void*[]){(void*)XML_EntityResolver__ResolverDesc_GetURI}, NULL, &_mid, (OOC_CHAR8*)"ResolverDesc", 0, 1, (1<<RT0__flagAtomic), RT0__strRecord };
29 static RT0__ModuleDesc _mid = { (OOC_CHAR8*)"Config:Parser", (RT0__Struct[]) { &_td_Config_Parser__String, &_td_Config_Parser__Element, &_td_Config_Parser__Node, &_td_Config_Parser__NodeDesc, &_td_Config_Parser__CharData, &_td_Config_Parser__CharDataDesc, &_td_Config_Parser__ElementDesc, &_td_Config_Parser__Builder, &_td_Config_Parser__BuilderDesc, &_td_Config_Parser__Parser, &_td_Config_Parser__ParserDesc, &_td_Config_Parser__Resolver, &_td_Config_Parser__ResolverDesc, NULL }, 0 };
30
OOC_Config_Parser_open(RT0__Module client)31 extern void OOC_Config_Parser_open(RT0__Module client) {
32 if (_mid.openCount == 0) {
33 OOC_Object_open(&_mid);
34 OOC_IO_open(&_mid);
35 OOC_LongStrings_open(&_mid);
36 OOC_OS_Path_open(&_mid);
37 OOC_XML_EntityResolver_open(&_mid);
38 OOC_XML_Builder_open(&_mid);
39 OOC_XML_DTD_open(&_mid);
40 OOC_XML_Error_open(&_mid);
41 OOC_XML_Locator_open(&_mid);
42 OOC_XML_Parser_open(&_mid);
43 OOC_XML_UnicodeCodec_Latin1_open(&_mid);
44 OOC_RT0_open(&_mid);
45 OOC_Object_open(&_mid);
46 OOC_Exception_open(&_mid);
47
48 RT0__RegisterModule(&_mid);
49 OOC_Config_Parser_init();
50 }
51 _mid.openCount++;
52 }
OOC_Config_Parser_close(RT0__Module client)53 extern void OOC_Config_Parser_close(RT0__Module client) {
54 _mid.openCount--;
55 if (_mid.openCount == 0) {
56 OOC_Config_Parser_destroy();
57 RT0__UnregisterModule(&_mid);
58
59 OOC_Object_close(&_mid);
60 OOC_IO_close(&_mid);
61 OOC_LongStrings_close(&_mid);
62 OOC_OS_Path_close(&_mid);
63 OOC_XML_EntityResolver_close(&_mid);
64 OOC_XML_Builder_close(&_mid);
65 OOC_XML_DTD_close(&_mid);
66 OOC_XML_Error_close(&_mid);
67 OOC_XML_Locator_close(&_mid);
68 OOC_XML_Parser_close(&_mid);
69 OOC_XML_UnicodeCodec_Latin1_close(&_mid);
70 OOC_RT0_close(&_mid);
71 OOC_Object_close(&_mid);
72 OOC_Exception_close(&_mid);
73 }
74 }
75
76 /* --- */
77