1 #include <OOC/Doc/Input/Texinfo.oh>
2 #include <Ascii.oh>
3 #include <CharClass.oh>
4 #include <IntStr.oh>
5 #include <Out.oh>
6 #include <Msg.oh>
7 #include <Channel.oh>
8 #include <TextRider.oh>
9 #include <StdChannels.oh>
10 #include <Strings.oh>
11 #include <OOC/Scanner/InputBuffer.oh>
12 #include <OOC/Scanner.oh>
13 #include <OOC/Doc/Decoration.oh>
14 #include <OOC/Doc/TextBuffer.oh>
15 typedef OOC_INT8 OOC_Doc_Input_Texinfo__Id;
16 #define OOC_Doc_Input_Texinfo__class1Low 0
17 #define OOC_Doc_Input_Texinfo__cmdAtGlyph 0
18 #define OOC_Doc_Input_Texinfo__cmdLeftBrace 1
19 #define OOC_Doc_Input_Texinfo__cmdRightBrace 2
20 #define OOC_Doc_Input_Texinfo__class1High 2
21 #define OOC_Doc_Input_Texinfo__class2Low 3
22 #define OOC_Doc_Input_Texinfo__cmdBullet 3
23 #define OOC_Doc_Input_Texinfo__cmdDots 4
24 #define OOC_Doc_Input_Texinfo__cmdMinus 5
25 #define OOC_Doc_Input_Texinfo__cmdResult 6
26 #define OOC_Doc_Input_Texinfo__class2High 6
27 #define OOC_Doc_Input_Texinfo__class3Low 7
28 #define OOC_Doc_Input_Texinfo__cmdAsIs 7
29 #define OOC_Doc_Input_Texinfo__cmdCite 8
30 #define OOC_Doc_Input_Texinfo__cmdCode 9
31 #define OOC_Doc_Input_Texinfo__cmdCommand 10
32 #define OOC_Doc_Input_Texinfo__cmdDfn 11
33 #define OOC_Doc_Input_Texinfo__cmdEmph 12
34 #define OOC_Doc_Input_Texinfo__cmdFile 13
35 #define OOC_Doc_Input_Texinfo__cmdKbd 14
36 #define OOC_Doc_Input_Texinfo__cmdSamp 15
37 #define OOC_Doc_Input_Texinfo__cmdStrong 16
38 #define OOC_Doc_Input_Texinfo__cmdUrl 17
39 #define OOC_Doc_Input_Texinfo__cmdVar 18
40 #define OOC_Doc_Input_Texinfo__cmdOberonModule 19
41 #define OOC_Doc_Input_Texinfo__cmdOberonConst 20
42 #define OOC_Doc_Input_Texinfo__cmdOberonField 21
43 #define OOC_Doc_Input_Texinfo__cmdOberonParam 22
44 #define OOC_Doc_Input_Texinfo__cmdOberonProc 23
45 #define OOC_Doc_Input_Texinfo__cmdOberonType 24
46 #define OOC_Doc_Input_Texinfo__cmdOberonVar 25
47 #define OOC_Doc_Input_Texinfo__cmdEmail 26
48 #define OOC_Doc_Input_Texinfo__cmdUref 27
49 #define OOC_Doc_Input_Texinfo__class3High 27
50 #define OOC_Doc_Input_Texinfo__class3Args 26
51 #define OOC_Doc_Input_Texinfo__class4Low 28
52 #define OOC_Doc_Input_Texinfo__cmdExample 28
53 #define OOC_Doc_Input_Texinfo__cmdItemize 29
54 #define OOC_Doc_Input_Texinfo__cmdEnumerate 30
55 #define OOC_Doc_Input_Texinfo__cmdNoIndent 31
56 #define OOC_Doc_Input_Texinfo__cmdPreCond 32
57 #define OOC_Doc_Input_Texinfo__cmdPostCond 33
58 #define OOC_Doc_Input_Texinfo__cmdTable 34
59 #define OOC_Doc_Input_Texinfo__cmdEnd 35
60 #define OOC_Doc_Input_Texinfo__cmdItem 36
61 #define OOC_Doc_Input_Texinfo__cmdItemX 37
62 #define OOC_Doc_Input_Texinfo__class4High 37
63 #define OOC_Doc_Input_Texinfo__cmdUnknown 38
64 #define OOC_Doc_Input_Texinfo__cmdEmDash 39
65 #define OOC_Doc_Input_Texinfo__cmdLeftQuot 40
66 #define OOC_Doc_Input_Texinfo__cmdRightQuot 41
67 #define OOC_Doc_Input_Texinfo__cmdText 42
68 #define OOC_Doc_Input_Texinfo__cmdOpeningBrace 43
69 #define OOC_Doc_Input_Texinfo__cmdClosingBrace 44
70 #define OOC_Doc_Input_Texinfo__cmdArgSeparator 45
71 #define OOC_Doc_Input_Texinfo__cmdEndOfText 46
72 typedef struct OOC_Doc_Input_Texinfo__CommandDesc *OOC_Doc_Input_Texinfo__Command;
73 typedef struct OOC_Doc_Input_Texinfo__CommandDesc {
74   OOC_INT8 id;
75   OOC_INT8 _class;
76   OOC_CHAR8 name[16];
77   OOC_INT8 argLow;
78   OOC_INT8 argHigh;
79 } OOC_Doc_Input_Texinfo__CommandDesc;
80 typedef struct OOC_Doc_Input_Texinfo__TokenDesc *OOC_Doc_Input_Texinfo__Token;
81 typedef struct OOC_Doc_Input_Texinfo__TokenDesc {
82   OOC_Doc_Input_Texinfo__Token next;
83   OOC_CHAR8 bol;
84   OOC_INT8 id;
85   OOC_CHAR8 __pad10;
86   OOC_CHAR8 __pad11;
87   OOC_INT32 pos;
88   OOC_INT32 line;
89   OOC_INT32 column;
90   OOC_Scanner_InputBuffer__CharArray str;
91 } OOC_Doc_Input_Texinfo__TokenDesc;
92 static OOC_INT8 OOC_Doc_Input_Texinfo__class1[256];
93 static OOC_Doc_Input_Texinfo__Command OOC_Doc_Input_Texinfo__cmdList[38];
94 static OOC_Scanner_InputBuffer__CharArray OOC_Doc_Input_Texinfo__emptyString;
95 #define OOC_Doc_Input_Texinfo__unknownCommand 1
96 #define OOC_Doc_Input_Texinfo__expectedLeftBrace 2
97 #define OOC_Doc_Input_Texinfo__expectedRightBrace 3
98 #define OOC_Doc_Input_Texinfo__junkAfterText 4
99 #define OOC_Doc_Input_Texinfo__junkAtEndOfLine 5
100 #define OOC_Doc_Input_Texinfo__invalidItemMark 6
101 #define OOC_Doc_Input_Texinfo__notAtBeginningOfLine 7
102 #define OOC_Doc_Input_Texinfo__expectedEnd 8
103 #define OOC_Doc_Input_Texinfo__lonelyLeftBrace 9
104 #define OOC_Doc_Input_Texinfo__lonelyRightBrace 10
105 #define OOC_Doc_Input_Texinfo__wrongNumberOfArgs 11
106 #define OOC_Doc_Input_Texinfo__expectedMarkupCommand 12
107 #define OOC_Doc_Input_Texinfo__invalidEnumStart 13
108 static OOC_Doc_Input_Texinfo__ErrorContext OOC_Doc_Input_Texinfo__texinfoContext;
109 static OOC_Doc_Input_Texinfo__Token OOC_Doc_Input_Texinfo__Tokenize(OOC_Scanner_SymList__Symbol sym, OOC_Scanner_InputBuffer__CharArray str, OOC_Error__List errList);
110 static void OOC_Doc_Input_Texinfo__WriteTokens(Channel__Channel ch, OOC_Doc_Input_Texinfo__Token t);
111 static void OOC_Doc_Input_Texinfo__Init(void);
112 
113 /* run-time meta data */
114 static RT0__ModuleDesc _mid;
115 RT0__StructDesc _td_OOC_Doc_Input_Texinfo__Command = { (RT0__Struct[]){&_td_OOC_Doc_Input_Texinfo__CommandDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Command", 8, -1, 0, RT0__strPointer };
116 RT0__StructDesc _td_OOC_Doc_Input_Texinfo__CommandDesc = { (RT0__Struct[]){&_td_OOC_Doc_Input_Texinfo__CommandDesc}, (void*[]){}, NULL, &_mid, (OOC_CHAR8*)"CommandDesc", 20, 0, (1<<RT0__flagAtomic), RT0__strRecord };
117 RT0__StructDesc _td_OOC_Doc_Input_Texinfo__3263 = { (RT0__Struct[]){&RT0__char}, NULL, NULL, &_mid, NULL, 16, 16, (1<<RT0__flagAtomic), RT0__strArray };
118 RT0__StructDesc _td_OOC_Doc_Input_Texinfo__Token = { (RT0__Struct[]){&_td_OOC_Doc_Input_Texinfo__TokenDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Token", 8, -1, 0, RT0__strPointer };
119 RT0__StructDesc _td_OOC_Doc_Input_Texinfo__TokenDesc = { (RT0__Struct[]){&_td_OOC_Doc_Input_Texinfo__TokenDesc}, (void*[]){}, NULL, &_mid, (OOC_CHAR8*)"TokenDesc", 32, 0, 0, RT0__strRecord };
120 RT0__StructDesc _td_OOC_Doc_Input_Texinfo__3625 = { (RT0__Struct[]){&RT0__shortint}, NULL, NULL, &_mid, NULL, 256, 256, (1<<RT0__flagAtomic), RT0__strArray };
121 RT0__StructDesc _td_OOC_Doc_Input_Texinfo__3659 = { (RT0__Struct[]){&_td_OOC_Doc_Input_Texinfo__Command}, NULL, NULL, &_mid, NULL, 304, 38, 0, RT0__strArray };
122 RT0__StructDesc _td_OOC_Doc_Input_Texinfo__ErrorContext = { (RT0__Struct[]){&_td_OOC_Doc_Input_Texinfo__ErrorContextDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"ErrorContext", 8, -1, 0, RT0__strPointer };
123 RT0__StructDesc _td_OOC_Doc_Input_Texinfo__ErrorContextDesc = { (RT0__Struct[]){&_td_Msg__ContextDesc,&_td_OOC_Error__ContextDesc,&_td_OOC_Doc_Input_Texinfo__ErrorContextDesc}, (void*[]){(void*)OOC_Doc_Input_Texinfo__ErrorContextDesc_GetTemplate,(void*)OOC_Error__ContextDesc_BaseTemplate}, NULL, &_mid, (OOC_CHAR8*)"ErrorContextDesc", 8, 2, 0, RT0__strRecord };
124 RT0__StructDesc _td_OOC_Doc_Input_Texinfo__4315 = { (RT0__Struct[]){&RT0__longchar}, NULL, NULL, &_mid, NULL, 256, 128, (1<<RT0__flagAtomic), RT0__strArray };
125 RT0__StructDesc _td_OOC_Doc_Input_Texinfo__5703 = { (RT0__Struct[]){&RT0__char}, NULL, NULL, &_mid, NULL, 16, 16, (1<<RT0__flagAtomic), RT0__strArray };
126 RT0__StructDesc _td_OOC_Doc_Input_Texinfo__7232 = { (RT0__Struct[]){&RT0__char}, NULL, NULL, &_mid, NULL, 1, 1, (1<<RT0__flagAtomic), RT0__strOpenArray };
127 RT0__StructDesc _td_OOC_Doc_Input_Texinfo__11964 = { (RT0__Struct[]){&RT0__char}, NULL, NULL, &_mid, NULL, 1, 1, (1<<RT0__flagAtomic), RT0__strOpenArray };
128 RT0__StructDesc _td_OOC_Doc_Input_Texinfo__15626 = { (RT0__Struct[]){&RT0__char}, NULL, NULL, &_mid, NULL, 1, 1, (1<<RT0__flagAtomic), RT0__strOpenArray };
129 RT0__StructDesc _td_OOC_Doc_Input_Texinfo__17817 = { (RT0__Struct[]){&RT0__char}, NULL, NULL, &_mid, NULL, 2, 2, (1<<RT0__flagAtomic), RT0__strArray };
130 RT0__StructDesc _td_OOC_Doc_Input_Texinfo__17960 = { (RT0__Struct[]){&RT0__char}, NULL, NULL, &_mid, NULL, 1, 1, (1<<RT0__flagAtomic), RT0__strOpenArray };
131 RT0__StructDesc _td_OOC_Doc_Input_Texinfo__24039 = { (RT0__Struct[]){&RT0__char}, NULL, NULL, &_mid, NULL, 1, 1, (1<<RT0__flagAtomic), RT0__strOpenArray };
132 RT0__StructDesc _td_OOC_Doc_Input_Texinfo__25525 = { (RT0__Struct[]){&RT0__char}, NULL, NULL, &_mid, NULL, 2, 2, (1<<RT0__flagAtomic), RT0__strArray };
133 RT0__StructDesc _td_OOC_Doc_Input_Texinfo__27314 = { (RT0__Struct[]){&RT0__char}, NULL, NULL, &_mid, NULL, 2, 2, (1<<RT0__flagAtomic), RT0__strArray };
134 RT0__StructDesc _td_OOC_Doc_Input_Texinfo__30651 = { (RT0__Struct[]){&RT0__char}, NULL, NULL, &_mid, NULL, 2, 2, (1<<RT0__flagAtomic), RT0__strArray };
135 RT0__StructDesc _td_OOC_Doc_Input_Texinfo__34261 = { (RT0__Struct[]){&RT0__char}, NULL, NULL, &_mid, NULL, 1, 1, (1<<RT0__flagAtomic), RT0__strOpenArray };
136 static RT0__ModuleDesc _mid = { (OOC_CHAR8*)"OOC:Doc:Input:Texinfo", (RT0__Struct[]) { &_td_OOC_Doc_Input_Texinfo__Command, &_td_OOC_Doc_Input_Texinfo__CommandDesc, &_td_OOC_Doc_Input_Texinfo__Token, &_td_OOC_Doc_Input_Texinfo__TokenDesc, &_td_OOC_Doc_Input_Texinfo__ErrorContext, &_td_OOC_Doc_Input_Texinfo__ErrorContextDesc, NULL }, 0 };
137 
OOC_OOC_Doc_Input_Texinfo_open(RT0__Module client)138 extern void OOC_OOC_Doc_Input_Texinfo_open(RT0__Module client) {
139   if (_mid.openCount == 0) {
140     OOC_Ascii_open(&_mid);
141     OOC_CharClass_open(&_mid);
142     OOC_IntStr_open(&_mid);
143     OOC_Out_open(&_mid);
144     OOC_Msg_open(&_mid);
145     OOC_Channel_open(&_mid);
146     OOC_TextRider_open(&_mid);
147     OOC_StdChannels_open(&_mid);
148     OOC_Strings_open(&_mid);
149     OOC_OOC_Error_open(&_mid);
150     OOC_OOC_Scanner_InputBuffer_open(&_mid);
151     OOC_OOC_Scanner_open(&_mid);
152     OOC_OOC_Scanner_SymList_open(&_mid);
153     OOC_OOC_Doc_open(&_mid);
154     OOC_OOC_Doc_Decoration_open(&_mid);
155     OOC_OOC_Doc_TextBuffer_open(&_mid);
156     OOC_RT0_open(&_mid);
157     OOC_Object_open(&_mid);
158     OOC_Exception_open(&_mid);
159 
160     RT0__RegisterModule(&_mid);
161     OOC_OOC_Doc_Input_Texinfo_init();
162   }
163   _mid.openCount++;
164 }
OOC_OOC_Doc_Input_Texinfo_close(RT0__Module client)165 extern void OOC_OOC_Doc_Input_Texinfo_close(RT0__Module client) {
166   _mid.openCount--;
167   if (_mid.openCount == 0) {
168     OOC_OOC_Doc_Input_Texinfo_destroy();
169     RT0__UnregisterModule(&_mid);
170 
171     OOC_Ascii_close(&_mid);
172     OOC_CharClass_close(&_mid);
173     OOC_IntStr_close(&_mid);
174     OOC_Out_close(&_mid);
175     OOC_Msg_close(&_mid);
176     OOC_Channel_close(&_mid);
177     OOC_TextRider_close(&_mid);
178     OOC_StdChannels_close(&_mid);
179     OOC_Strings_close(&_mid);
180     OOC_OOC_Error_close(&_mid);
181     OOC_OOC_Scanner_InputBuffer_close(&_mid);
182     OOC_OOC_Scanner_close(&_mid);
183     OOC_OOC_Scanner_SymList_close(&_mid);
184     OOC_OOC_Doc_close(&_mid);
185     OOC_OOC_Doc_Decoration_close(&_mid);
186     OOC_OOC_Doc_TextBuffer_close(&_mid);
187     OOC_RT0_close(&_mid);
188     OOC_Object_close(&_mid);
189     OOC_Exception_close(&_mid);
190   }
191 }
192 
193 /* --- */
194