fb-doc
0.4.0
FreeBASIC documentation tool
fbdoc_parser.bi
Go to the documentation of this file.
1
9
10
#INCLUDE ONCE
"
fbdoc_emitters.bi
"
11
12
#IF __FB_OUT_DLL__
OR
DEFINED
(__FB_DOC_PLUGIN__)
13
14
#DEFINE
Code(_T_) P->
writeOut
(_T_)
15
#PRINT
compiling __FB_DOC_PLUGIN__
16
'&/*
17
#ELSE
18
#DEFINE
Code(_T_)
PRINT
#OPT->Ocha, _T_;
19
'&*/
20
#ENDIF
21
22
23
'&typedef Parser* Parser_PTR; //!< Doxygen internal (ignore this).
24
46
TYPE
Parser
47
Public
:
48
49
58
ENUM
ParserTokens
59
MSG_STOP
= -1
60
MSG_ERROR
61
TOK_EOS
62
TOK_BRCLO
63
TOK_COMMA
64
65
TOK_KLOPN
66
TOK_KLCLO
67
TOK_DOT
68
TOK_MEOP
69
TOK_3DOT
70
TOK_QUOTE
71
TOK_LATTE
72
TOK_BROPN
73
TOK_EQUAL
74
75
TOK_ABST
76
TOK_ALIA
77
TOK_AS
78
TOK_BYRE
79
TOK_BYVA
80
TOK_CAST
81
TOK_CDEC
82
TOK_CLAS
83
TOK_COMM
84
TOK_CONS
85
TOK_DECL
86
TOK_DEFI
87
TOK_DIM
88
TOK_END
89
TOK_ENUM
90
TOK_EXDS
91
TOK_EMAC
92
TOK_EXRN
93
TOK_EXPO
94
TOK_INCL
95
TOK_LIB
96
TOK_MACR
97
TOK_WITH
98
TOK_NAMS
99
TOK_ONCE
100
TOK_OVER
101
TOK_PASC
102
TOK_PRIV
103
TOK_PROT
104
TOK_RDIM
105
TOK_PTR
106
TOK_PEEK
107
TOK_PUBL
108
TOK_SCOP
109
TOK_SHAR
110
TOK_PRES
111
TOK_STAT
112
TOK_STCL
113
TOK_TYPE
114
TOK_UNIO
115
TOK_VAR
116
TOK_VIRT
117
118
TOK_FUNC
119
TOK_FILD
120
TOK_OPER
121
TOK_PROP
122
TOK_SUB
123
TOK_CTOR
124
TOK_DTOR
125
126
TOK_BYTE
127
TOK_DOUB
128
TOK_INT
129
TOK_LONG
130
TOK_LINT
131
TOK_STRI
132
TOK_SHOR
133
TOK_SING
134
TOK_UBYT
135
TOK_ULNG
136
TOK_ULIN
137
TOK_UINT
138
TOK_USHO
139
TOK_WSTR
140
TOK_ZSTR
141
TOK_ANY
142
TOK_WORD
143
144
TOK_COMSL
145
TOK_COMML
146
END ENUM
147
148
154
AS STRING
_
155
InPath
=
""
_
156
,
Fnam
_
157
,
Buf
_
158
,
ErrMsg
_
159
,
Tok
_
160
,
BlockNam
161
162
163
164
165
182
AS LONG PTR
_
183
StaTok
, _
184
NamTok
, _
185
DimTok
, _
186
IniTok
, _
187
BitTok
, _
188
TypTok
, _
189
ShaTok
, _
190
PtrTok
, _
191
Co1Tok
, _
192
Co2Tok
, _
193
FunTok
, _
194
CalTok
, _
195
AliTok
, _
196
As_Tok
, _
197
ParTok
, _
198
By_Tok
, _
199
DivTok
, _
200
Tk1
, _
201
EndTok
, _
202
UserTok
203
204
205
206
213
AS LONG
_
214
Po
, _
215
Fin
, _
216
PtrCount
, _
217
SrcBgn
, _
218
LineNo
, _
219
LevelCount
, _
220
InTree
, _
221
ListCount
222
223
224
225
DECLARE CONSTRUCTOR
(
BYVAL AS
EmitterIF
PTR
)
226
227
237
DECLARE SUB
File_
(
BYREF AS STRING
,
BYVAL AS INTEGER
)
238
DECLARE SUB
StdIn
()
239
DECLARE SUB
Include
(
BYVAL AS STRING
)
240
DECLARE SUB
writeOut
(
BYREF AS STRING
)
241
242
243
251
DECLARE PROPERTY
CurTok
()
AS LONG PTR
252
DECLARE PROPERTY
BitIni
()
AS STRING
253
DECLARE PROPERTY
SubStr
()
AS STRING
254
DECLARE PROPERTY
SubStr
(
BYVAL AS LONG PTR
)
AS STRING
255
256
257
265
DECLARE SUB
parseListNam
(
BYVAL AS
EmitFunc)
266
DECLARE SUB
parseListNamTyp
(
BYVAL AS
EmitFunc)
267
DECLARE SUB
parseListPara
(
BYVAL AS
EmitFunc)
268
DECLARE SUB
parseBlockEnum
(
BYVAL AS
EmitFunc)
269
DECLARE SUB
parseBlockTyUn
(
BYVAL AS
EmitFunc)
270
271
272
Private
:
273
274
280
ENUM
EoS_Modi
281
TO_END_BLOCK
282
TO_END
283
TO_EOL
284
TO_COLON
285
END ENUM
286
287
293
AS LONG
_
294
ToLast
295
296
AS LONG PTR
_
297
Tk
, _
298
A
, _
299
L
300
301
AS
EmitterIF
PTR
Emit
302
303
304
305
315
DECLARE SUB
pre_parse
()
316
DECLARE PROPERTY
USubStr
()
AS STRING
317
DECLARE FUNCTION
getToken
()
AS INTEGER
318
DECLARE FUNCTION
tokenize
(
BYVAL AS
EoS_Modi
)
AS INTEGER
319
DECLARE FUNCTION
Errr
(
BYREF AS STRING
)
AS INTEGER
320
321
DECLARE FUNCTION
demuxNam
(
BYVAL AS INTEGER
=
TOK_WORD
,
BYVAL AS INTEGER
= 0)
AS INTEGER
322
DECLARE FUNCTION
demuxTyp
(
BYVAL AS INTEGER
= 0)
AS INTEGER
323
DECLARE FUNCTION
demuxDecl
()
AS INTEGER
324
325
DECLARE FUNCTION
skipOverColon
()
AS INTEGER
326
DECLARE FUNCTION
skipOverBrclo
()
AS INTEGER
327
DECLARE FUNCTION
skipOverComma
()
AS INTEGER
328
329
DECLARE FUNCTION
VAR_
()
AS INTEGER
330
DECLARE FUNCTION
TYPE_
()
AS INTEGER
331
DECLARE FUNCTION
ENUM_
()
AS INTEGER
332
DECLARE FUNCTION
UNION_
()
AS INTEGER
333
DECLARE FUNCTION
FUNCTION_
()
AS INTEGER
334
DECLARE FUNCTION
DECLARE_
()
AS INTEGER
335
DECLARE FUNCTION
INCLUDE_
()
AS INTEGER
336
DECLARE FUNCTION
DEFINE_
()
AS INTEGER
337
DECLARE FUNCTION
MACRO_
()
AS INTEGER
338
339
340
END TYPE
341
342
343
351
#MACRO
SCAN_QUOTE(
Buf
,
Po
)
352
VAR
esc =
IIF
(
Po
,
IIF
(
Buf
[
Po
- 1] =
ASC
(
"!"
), 1, 0), 0)
353
DO
354
Po
+= 1
355
SELECT CASE
AS CONST
Buf
[
Po
]
356
CASE 0
,
ASC
(!
"\n"
) :
Po
-= 1 :
EXIT DO
357
CASE ASC
(
"\"
) :
IF
esc
THEN
Po
+= 1
358
CASE ASC
(
""""
) :
IF
Buf
[
Po
+ 1] =
ASC
(
""""
)
THEN
Po
+= 1
ELSE EXIT DO
359
END SELECT
360
LOOP
361
#ENDMACRO
362
363
364
372
#MACRO
SCAN_SL_COMM(
Buf
,
Po
)
373
DO
374
Po
+= 1
375
SELECT CASE
AS CONST
Buf
[
Po
]
376
CASE 0
,
ASC
(!
"\n"
) :
EXIT DO
377
END SELECT
378
LOOP
379
#ENDMACRO
380
src
bas
fbdoc_parser.bi
Generated on Tue Nov 22 2016 17:50:33 for fb-doc by
1.8.11