43 FUNCTION RepData.add(
BYREF S
AS STRING,
BYREF R
AS STRING)
AS ZSTRING PTR
44 IF S =
"" THEN RETURN 0
45 IF INSTR(S,
ANY !
"\000\001\002")
THEN RETURN @
"undefined char (search)"
46 VAR c =
CHR(1) & S &
CHR(2) :
IF INSTR(5, I, c)
THEN RETURN @
"already defined"
47 *
CAST(
LONG PTR,
SADD(I)) += 1 : I &=
MID(c, 2) &
HEX(
LEN(O) + 4) &
CHR(1)
48 O &=
MKl(0) & R &
CHR(0) :
RETURN 0
62 FUNCTION RepData.rep(
BYREF S
AS STRING)
AS ZSTRING PTR
63 VAR a =
INSTR(I,
CHR(1) & S &
CHR(2)) :
IF a
THEN a +=
LEN(S) + 2
ELSE RETURN SADD(S)
64 VAR e =
INSTR(a, I,
CHR(1)) + 1
65 DIM AS ZSTRING PTR z =
SADD(O) +
VALINT(
"&h" &
MID(I, a, e - a))
66 *
CAST(
LONG PTR, z - 4) += 1 :
RETURN z
81 FUNCTION html_specials(
BYVAL T
AS UBYTE PTR,
BYVAL A
AS INTEGER,
BYVAL L
AS INTEGER)
AS STRING
84 FOR i
AS INTEGER = A
TO A + L - 1
85 SELECT CASE AS CONST T[i]
86 CASE ASC(
"&") : r &=
"&"
87 CASE ASC(
"<") : r &=
"<"
88 CASE ASC(
">") : r &=
">"
89 CASE ASC(
"""") : r &=
"""
90 CASE ELSE : r &=
CHR(T[i])
107 FUNCTION tex_specials(
BYVAL T
AS UBYTE PTR,
BYVAL A
AS INTEGER,
BYVAL L
AS INTEGER)
AS STRING
110 FOR i
AS INTEGER = A
TO A + L - 1
111 SELECT CASE AS CONST T[i]
112 CASE ASC(
"\") : r &=
"\(\backslash\)"
113 CASE ASC(
"#") : r &=
"\#"
114 CASE ASC(
"%") : r &=
"\%"
115 CASE ASC(
"_") : r &=
"\_"
116 CASE ASC(
"{") : r &=
"\{"
117 CASE ASC(
"}") : r &=
"\}"
118 CASE ELSE : r &=
CHR(T[i])
135 FUNCTION xml_specials(
BYVAL T
AS UBYTE PTR,
BYVAL A
AS INTEGER,
BYVAL L
AS INTEGER)
AS STRING
138 FOR i
AS INTEGER = A
TO A + L - 1
139 SELECT CASE AS CONST T[i]
140 CASE ASC(
"&") : r &=
"&"
141 CASE ASC(
"<") : r &=
"<"
142 CASE ASC(
">") : r &=
">"
143 CASE ASC(
"""") : r &=
"""
144 CASE ASC(
"'") : r &=
"'"
145 CASE ASC(
" ") : r &=
"<sp/>"
146 CASE ELSE : r &=
CHR(T[i])
167 FUNCTION html_eol(
BYVAL Symb
AS RepData
PTR,
BYREF Nr
AS INTEGER)
AS STRING
168 IF Nr = 0
THEN RETURN "</div>"
169 VAR r =
"<div class=""line"">", nstr =
RIGHT(
" " & Nr, 5)
171 r &=
"<a name=""l" &
RIGHT(
"0000" & Nr, 5) &
"""></a>"
172 VAR res = Symb->rep(nstr)
173 IF res =
SADD(nstr)
THEN r &=
"<span class=""lineno"">" & nstr _
174 ELSE r &=
"<span class=""lineno"">" & *res
176 r &=
"<span class=""lineno"">" & nstr
179 IF Nr = 2
THEN RETURN r &
"</span> "
180 RETURN !
"</div>" & NL & r &
"</span> "
197 FUNCTION tex_eol(
BYVAL Symb
AS RepData
PTR,
BYREF Nr
AS INTEGER)
AS STRING
198 IF Nr = 0
THEN RETURN ""
200 , nstr =
RIGHT(
"0000" & Nr, 5) _
201 , res =
IIF(Symb, Symb->rep(nstr),
SADD(nstr))
202 IF res =
SADD(nstr)
THEN r &= nstr _
205 IF Nr = 2
THEN RETURN r &
" "
223 FUNCTION xml_eol(
BYVAL Symb
AS RepData
PTR,
BYREF Nr
AS INTEGER)
AS STRING
224 IF Nr = 0
THEN RETURN "</codeline>"
225 VAR r =
"<codeline lineno=""" _
227 , res =
IIF(Symb, Symb->rep(nstr),
SADD(nstr))
228 IF res =
SADD(nstr)
THEN r &= nstr &
""">" _
231 IF Nr = 2
THEN RETURN r
232 RETURN "</codeline>" & NL & r
245 Pars->UserTok =
CAST(
LONG PTR, @
THIS)
261 MSG_END(PROJ_NAME &
" syntax highlighting")
262 Var doxy =
NEW DoxyUDT(Fnam) _
263 , recu =
OPT->InRecursiv _
267 GenHtm = doxy->Flag(GENERATE_HTML)
AND _
268 doxy->Flag(SOURCE_BROWSER)
269 GenTex = doxy->Flag(GENERATE_LATEX)
AND _
270 doxy->Flag(LATEX_SOURCE_CODE)
271 GenXml = doxy->Flag(GENERATE_XML)
AND _
272 doxy->Flag(XML_PROGRAMLISTING)
274 IF GenAny
THEN MSG_CONT(
"parsed") _
275 ELSE MSG_CONT(
"nothing to do") :
EXIT WHILE
277 FbPath = doxy->Tag(INPUT_TAG)
278 OPT->InRecursiv = doxy->Flag(RECURSIVE)
279 OPT->DoCom =
IIF(
OPT->DoCom,
OPT->DoCom _
280 ,
IIF(
LEN(doxy->Tags(STRIP_CODE_COMMENTS)), 1-doxy->Flag(STRIP_CODE_COMMENTS), 0))
282 MSG_LINE(
"FB source " & FbPath)
283 CHDIR(
OPT->StartPath)
284 IF CHDIR(FbPath)
THEN MSG_CONT(
"error (couldn't change directory)") :
EXIT WHILE
287 IF LEN(FbFiles) > 1
THEN MSG_CONT(
"scanned") _
288 ELSE MSG_CONT(
"error (no FB source files)") :
EXIT WHILE
292 InPath =
OPT->
addPath(
OPT->StartPath, doxy->Tag(OUTPUT_DIRECTORY))
294 HtmlPath =
OPT->
addPath(InPath, doxy->Tag(HTML_OUTPUT))
295 HtmlSuff = doxy->Tag(HTML_FILE_EXTENSION)
296 IF 0 =
LEN(HtmlSuff)
THEN HtmlSuff =
".html"
297 OPT->InRecursiv = doxy->Flag(CREATE_SUBDIRS)
298 CHDIR(
OPT->StartPath)
299 MSG_LINE(
"HTML source " &
LEFT(HtmlPath,
LEN(HtmlPath) - 1))
300 IF CHDIR(HtmlPath)
THEN
301 MSG_CONT(
"error (couldn't change directory)")
303 DoxyFiles =
OPT->
scanFiles(
"*_8bas_source" & HtmlSuff,
"") _
306 IF LEN(DoxyFiles) > 1
THEN MSG_CONT(
"scanned") :
do_files() _
307 ELSE MSG_CONT(
"scanned (no files)")
312 TexPath =
OPT->
addPath(InPath, doxy->Tag(LATEX_OUTPUT))
313 MSG_LINE(
"LaTeX source " &
LEFT(TexPath,
LEN(TexPath) - 1))
314 CHDIR(
OPT->StartPath)
315 IF CHDIR(TexPath)
THEN
316 MSG_CONT(
"error (couldn't change directory)")
320 IF LEN(DoxyFiles) > 1
THEN
322 FBDOC_MARK = @
"%%% Syntax-highlighting by fbdoc %%%"
323 KEYW_A = @
"\textcolor{keyword}{"
324 KWTP_A = @
"\textcolor{keywordtype}{"
325 KWFL_A = @
"\textcolor{keywordflow}{"
326 PREP_A = @
"\textcolor{preprocessor}{"
327 CMNT_A = @
"\textcolor{comment}{"
329 QUOT_A = @
"\textcolor{stringliteral}{"""
336 MSG_CONT(
"scanned (no files)")
341 XmlPath =
OPT->
addPath(InPath, doxy->Tag(XML_OUTPUT))
342 MSG_LINE(
"XML source " &
LEFT(XmlPath,
LEN(XmlPath) - 1))
343 CHDIR(
OPT->StartPath)
344 IF CHDIR(XmlPath)
THEN
345 MSG_CONT(
"error (couldn't change directory)")
349 IF LEN(DoxyFiles) > 1
THEN
351 FBDOC_MARK = @
"<!-- Syntax-highlighting by fbdoc -->"
352 KEYW_A = @
"<highlight class=""keyword"">"
353 KWTP_A = @
"<highlight class=""keywordtype"">"
354 KWFL_A = @
"<highlight class=""keywordflow"">"
355 PREP_A = @
"<highlight class=""preprocessor"">"
356 CMNT_A = @
"<highlight class=""comment"">"
357 SPAN_E = @
"</highlight>"
358 QUOT_A = @
"<highlight class=""stringliteral"">"""
359 QUOT_E = @
"""</highlight>"
365 MSG_CONT(
"scanned (no files)")
373 OPT->InRecursiv = recu
374 CHDIR(
OPT->StartPath)
393 VAR a = 1, e = a, l =
LEN(DoxyFiles)
395 e =
INSTR(a + 1, DoxyFiles, !
"\n")
396 VAR in_fnam =
MID(DoxyFiles, a, e - a)
397 Symbols =
NEW RepData
400 IF OPEN(in_fnam &
"_" FOR OUTPUT AS OPT->Ocha)
THEN
401 MSG_CONT(
"error (couldn't write)")
404 IF OPEN(in_fnam
FOR INPUT AS Ifnr)
THEN
405 MSG_CONT(
"error (couldn't read)")
409 VAR fb_nam = prepare(@
THIS)
410 IF ASC(fb_nam) > 3
THEN
411 Pars->File_(FbPath & fb_nam, 0)
412 IF LEN(
Pars->ErrMsg)
THEN MSG_CONT(
Pars->ErrMsg)
ELSE MSG_CONT(
"done")
414 PRINT #OPT->Ocha, LastLine
416 LINE INPUT #Ifnr, LastLine
417 PRINT #OPT->Ocha, LastLine
422 NAME(in_fnam &
"_", in_fnam)
423 IF LEN(
Pars->ErrMsg)
THEN MSG_CONT(
Pars->ErrMsg)
428 SELECT CASE AS CONST ASC(fb_nam)
429 CASE 1 : MSG_CONT(
"error (no source file)")
430 CASE 2 : MSG_CONT(
"error (cannot operate twice)")
431 CASE 3 : MSG_CONT(
"error (end of file)")
454 VAR i = .SrcBgn, start = i
456 SELECT CASE AS CONST Buf[i]
459 IF i <= start
THEN Code(eol(Symbols, LineNo)) : start = i + 1 :
EXIT SELECT
460 Code(
generate_code(Buf, start, i - start) & eol(Symbols, LineNo))
463 IF i >= start
THEN Code(
generate_code(Buf, start, i - start))
466 Code(*QUOT_A & special_chars(Buf, start + 1, i - start - 1) & *QUOT_E)
469 IF i >= start
THEN Code(
generate_code(Buf, start, i - start))
472 IF Buf[start + 1] <>
OPT->JoComm
ORELSE OPT->DoCom
THEN _
473 Code(*CMNT_A & special_chars(Buf, start, i - start) & *SPAN_E)
476 CASE ASC(
"/") :
IF Buf[i + 1] <>
ASC(
"'")
THEN EXIT SELECT
477 IF i >= start
THEN Code(
generate_code(Buf, start, i - start))
480 VAR fl = Buf[i] <>
OPT->JoComm
OR OPT->DoCom
482 SELECT CASE AS CONST Buf[i]
486 IF fl
THEN Code(eol(Symbols, LineNo))
ELSE LineNo += 1
487 start = i + 1 :
EXIT SELECT
489 IF fl
THEN Code(*CMNT_A & special_chars(Buf, start, i - start) & *SPAN_E & eol(Symbols, LineNo))
ELSE LineNo += 1
492 SELECT CASE AS CONST Buf[i + 1]
494 CASE ASC(
"/") : i += 1 :
EXIT DO
499 IF fl
THEN Code(*CMNT_A & special_chars(Buf, start, i - start + 1) & *SPAN_E)
501 SELECT CASE AS CONST Buf[i]
504 CASE ASC(!
"\n") :
IF fl
THEN Code(eol(Symbols, LineNo))
ELSE LineNo += 1
509 WEND :
IF .SrcBgn < i
THEN .SrcBgn = i
524 SELECT CASE AS CONST W[0]
527 CASE "__DATE__" :
RETURN @!
"\004__Date__"
528 CASE "__DATE_ISO__" :
RETURN @!
"\004__Date_Iso__"
529 CASE "__FB_64BIT__" :
RETURN @!
"\004__Fb_64Bit__"
530 CASE "__FB_ARG_EXTRACT__" :
RETURN @!
"\004__Fb_Arg_Extract__"
531 CASE "__FB_ARG_LEFTOF__" :
RETURN @!
"\004__Fb_Arg_Leftof__"
532 CASE "__FB_ARG_RIGHTOF__" :
RETURN @!
"\004__Fb_Arg_Rightof__"
533 CASE "__FB_ARGC__" :
RETURN @!
"\004__Fb_ArgC__"
534 CASE "__FB_ARGV__" :
RETURN @!
"\004__Fb_ArgV__"
535 CASE "__FB_BACKEND__" :
RETURN @!
"\004__Fb_Backend__"
536 CASE "__FB_BIGENDIAN__" :
RETURN @!
"\004__Fb_BigEndian__"
537 CASE "__FB_BUILD_DATE__" :
RETURN @!
"\004__Fb_Build_Date__"
538 CASE "__FB_BUILD_DATE_ISO__" :
RETURN @!
"\004__Fb_Build_Date_Iso__"
539 CASE "__FB_BUILD_SHA1__" :
RETURN @!
"\004__Fb_Build_Sha1__"
540 CASE "__FB_CYGWIN__" :
RETURN @!
"\004__Fb_Cygwin__"
541 CASE "__FB_DARWIN__" :
RETURN @!
"\004__Fb_Darwin__"
542 CASE "__FB_DEBUG__" :
RETURN @!
"\004__Fb_Debug__"
543 CASE "__FB_DOS__" :
RETURN @!
"\004__Fb_Dos__"
544 CASE "__FB_ERR__" :
RETURN @!
"\004__Fb_Err__"
545 CASE "__FB_FPMODE__" :
RETURN @!
"\004__Fb_FpMode__"
546 CASE "__FB_FPU__" :
RETURN @!
"\004__Fb_Fpu__"
547 CASE "__FB_FREEBSD__" :
RETURN @!
"\004__Fb_FreeBsd__"
548 CASE "__FB_GCC__" :
RETURN @!
"\004__Fb_Gcc__"
549 CASE "__FB_GUI__" :
RETURN @!
"\004__Fb_Gui__"
550 CASE "__FB_JOIN__" :
RETURN @!
"\004__Fb_Join__"
551 CASE "__FB_LANG__" :
RETURN @!
"\004__Fb_Lang__"
552 CASE "__FB_LINUX__" :
RETURN @!
"\004__Fb_Linux__"
553 CASE "__FB_MAIN__" :
RETURN @!
"\004__Fb_Main__"
554 CASE "__FB_MIN_VERSION__" :
RETURN @!
"\004__Fb_Min_Version__"
555 CASE "__FB_MT__" :
RETURN @!
"\004__Fb_Mt__"
556 CASE "__FB_NETBSD__" :
RETURN @!
"\004__Fb_NetBsd__"
557 CASE "__FB_OPENBSD__" :
RETURN @!
"\004__Fb_OpenBsd__"
558 CASE "__FB_OPTION_BYVAL__" :
RETURN @!
"\004__Fb_Option_ByVal__"
559 CASE "__FB_OPTION_DYNAMIC__" :
RETURN @!
"\004__Fb_Option_Dynamic__"
560 CASE "__FB_OPTION_ESCAPE__" :
RETURN @!
"\004__Fb_Option_Escape__"
561 CASE "__FB_OPTION_EXPLICIT__" :
RETURN @!
"\004__Fb_Option_Explicit__"
562 CASE "__FB_OPTION_GOSUB__" :
RETURN @!
"\004__Fb_Option_Gosub__"
563 CASE "__FB_OPTION_PRIVATE__" :
RETURN @!
"\004__Fb_Option_Private__"
564 CASE "__FB_OPTIMIZE__" :
RETURN @!
"\004__Fb_Optimize__"
565 CASE "__FB_OUT_DLL__" :
RETURN @!
"\004__Fb_Out_Dll__"
566 CASE "__FB_OUT_EXE__" :
RETURN @!
"\004__Fb_Out_Exe__"
567 CASE "__FB_OUT_LIB__" :
RETURN @!
"\004__Fb_Out_Lib__"
568 CASE "__FB_OUT_OBJ__" :
RETURN @!
"\004__Fb_Out_Obj__"
569 CASE "__FB_PCOS__" :
RETURN @!
"\004__Fb_Pcos__"
570 CASE "__FB_PPC__" :
RETURN @!
"\004__Fb_Ppc__"
571 CASE "__FB_QUOTE__" :
RETURN @!
"\004__Fb_Quote__"
572 CASE "__FB_SIGNATURE__" :
RETURN @!
"\004__Fb_Signature__"
573 CASE "__FB_SSE__" :
RETURN @!
"\004__Fb_Sse__"
574 CASE "__FB_UNIX__" :
RETURN @!
"\004__Fb_Unix__"
575 CASE "__FB_UNIQUEID_PUSH__" :
RETURN @!
"\004__Fb_Uniqueid_Push__"
576 CASE "__FB_UNIQUEID_POP__" :
RETURN @!
"\004__Fb_Uniqueid_Pop__"
577 CASE "__FB_UNIQUEID__" :
RETURN @!
"\004__Fb_Uniqueid__"
578 CASE "__FB_UNQUOTE__" :
RETURN @!
"\004__Fb_Unquote__"
579 CASE "__FB_VECTORIZE__" :
RETURN @!
"\004__Fb_Vectorize__"
580 CASE "__FB_VER_MAJOR__" :
RETURN @!
"\004__Fb_Ver_Major__"
581 CASE "__FB_VER_MINOR__" :
RETURN @!
"\004__Fb_Ver_Minor__"
582 CASE "__FB_VER_PATCH__" :
RETURN @!
"\004__Fb_Ver_Patch__"
583 CASE "__FB_VERSION__" :
RETURN @!
"\004__Fb_Version__"
584 CASE "__FB_WIN32__" :
RETURN @!
"\004__Fb_Win32__"
585 CASE "__FB_XBOX__" :
RETURN @!
"\004__Fb_Xbox__"
586 CASE "__FILE__" :
RETURN @!
"\004__File__"
587 CASE "__FILE_NQ__" :
RETURN @!
"\004__File_Nq__"
588 CASE "__FUNCTION__" :
RETURN @!
"\004__Function__"
589 CASE "__FUNCTION_NQ__" :
RETURN @!
"\004__Function_Nq__"
590 CASE "__LINE__" :
RETURN @!
"\004__Line__"
591 CASE "__PATH__" :
RETURN @!
"\004__Path__"
592 CASE "__TIME__" :
RETURN @!
"\004__Time__"
593 CASE "__FB_X86__" :
RETURN @!
"\004__Fb_X86__"
597 CASE "#ASSERT" :
RETURN @!
"\004#Assert"
598 CASE "#CMDLINE" :
RETURN @!
"\004#Cmdline"
599 CASE "#DEF" :
RETURN @!
"\004#Def"
600 CASE "#DEFINE" :
RETURN @!
"\004#Define"
601 CASE "#ELSE" :
RETURN @!
"\004#Else"
602 CASE "#ELSEIF" :
RETURN @!
"\004#ElseIf"
603 CASE "#ENDIF" :
RETURN @!
"\004#EndIf"
604 CASE "#ENDMACRO" :
RETURN @!
"\004#EndMacro"
605 CASE "#ERROR" :
RETURN @!
"\004#Error"
606 CASE "#IF" :
RETURN @!
"\004#If"
607 CASE "#IFDEF" :
RETURN @!
"\004#IfDef"
608 CASE "#IFNDEF" :
RETURN @!
"\004#IfNDef"
609 CASE "#INCLUDE" :
RETURN @!
"\004#Include"
610 CASE "#INCLIB" :
RETURN @!
"\004#IncLib"
611 CASE "#LANG" :
RETURN @!
"\004#Lang"
612 CASE "#LIBPATH" :
RETURN @!
"\004#LibPath"
613 CASE "#LINE" :
RETURN @!
"\004#Line"
614 CASE "#MACRO" :
RETURN @!
"\004#Macro"
615 CASE "#PRAGMA" :
RETURN @!
"\004#Pragma"
616 CASE "#PRINT" :
RETURN @!
"\004#Print"
617 CASE "#UNDEF" :
RETURN @!
"\004#UnDef"
628 CASE "ABS" :
RETURN @!
"\001Abs"
629 CASE "ABSTRACT" :
RETURN @!
"\001Abstract"
630 CASE "ACCESS" :
RETURN @!
"\001Access"
631 CASE "ACOS" :
RETURN @!
"\001Acos"
632 CASE "ADD" :
RETURN @!
"\001Add"
633 CASE "ALIAS" :
RETURN @!
"\001Alias"
634 CASE "ALLOCATE" :
RETURN @!
"\001Allocate"
635 CASE "ALPHA" :
RETURN @!
"\001Alpha"
636 CASE "AND" :
RETURN @!
"\001And"
637 CASE "ANDALSO" :
RETURN @!
"\001AndAlso"
638 CASE "ANY" :
RETURN @!
"\001Any"
639 CASE "APPEND" :
RETURN @!
"\001Append"
640 CASE "AS" :
RETURN @!
"\002As"
641 CASE "ASC" :
RETURN @!
"\001Asc"
642 CASE "ASIN" :
RETURN @!
"\001Asin"
643 CASE "ASM" :
RETURN @!
"\001Asm"
644 CASE "ASSERT" :
RETURN @!
"\001Assert"
645 CASE "ASSERTWARN" :
RETURN @!
"\001Assertwarn"
646 CASE "ATAN2" :
RETURN @!
"\001Atan2"
647 CASE "ATN" :
RETURN @!
"\001Atn"
651 CASE "BASE" :
RETURN @!
"\001Base"
652 CASE "BEEP" :
RETURN @!
"\001Beep"
653 CASE "BIN" :
RETURN @!
"\001Bin"
654 CASE "BINARY" :
RETURN @!
"\001Binary"
655 CASE "BIT" :
RETURN @!
"\001Bit"
656 CASE "BITRESET" :
RETURN @!
"\001BitReset"
657 CASE "BITSET" :
RETURN @!
"\001BitSet"
658 CASE "BLOAD" :
RETURN @!
"\001Bload"
659 CASE "BOOLEAN" :
RETURN @!
"\001Boolean"
660 CASE "BSAVE" :
RETURN @!
"\001BSave"
661 CASE "BYTE" :
RETURN @!
"\002Byte"
662 CASE "BYREF" :
RETURN @!
"\002ByRef"
663 CASE "BYVAL" :
RETURN @!
"\002ByVal"
667 CASE "CALL" :
RETURN @!
"\001Call"
668 CASE "CALLOCATE" :
RETURN @!
"\001CAllocate"
669 CASE "CALLS" :
RETURN @!
"\001Calls"
670 CASE "CASE" :
RETURN @!
"\001Case"
671 CASE "CAST" :
RETURN @!
"\001Cast"
672 CASE "CBOOL" :
RETURN @!
"\001CBool"
673 CASE "CBYTE" :
RETURN @!
"\001CByte"
674 CASE "CDBL" :
RETURN @!
"\001CDbl"
675 CASE "CDECL" :
RETURN @!
"\001CDecl"
676 CASE "CHAIN" :
RETURN @!
"\001Chain"
677 CASE "CHDIR" :
RETURN @!
"\001ChDir"
678 CASE "CHR" :
RETURN @!
"\001Chr"
679 CASE "CINT" :
RETURN @!
"\001CInt"
680 CASE "CIRCLE" :
RETURN @!
"\001Circle"
681 CASE "CLASS" :
RETURN @!
"\001Class"
682 CASE "CLEAR" :
RETURN @!
"\001Clear"
683 CASE "CLNG" :
RETURN @!
"\001CLng"
684 CASE "CLNGINT" :
RETURN @!
"\001CLngInt"
685 CASE "CLOSE" :
RETURN @!
"\001Close"
686 CASE "CLS" :
RETURN @!
"\001Cls"
687 CASE "COLOR" :
RETURN @!
"\001Color"
688 CASE "COM" :
RETURN @!
"\001Com"
689 CASE "COMMAND" :
RETURN @!
"\001Command"
690 CASE "COMMON" :
RETURN @!
"\002Common"
691 CASE "CONDBROADCAST" :
RETURN @!
"\001CondBroadcast"
692 CASE "CONDCREATE" :
RETURN @!
"\001CondCreate"
693 CASE "CONDDESTROY" :
RETURN @!
"\001CondDestroy"
694 CASE "CONDSIGNAL" :
RETURN @!
"\001CondSignal"
695 CASE "CONDWAIT" :
RETURN @!
"\001CondWait"
696 CASE "CONS" :
RETURN @!
"\001Cons"
697 CASE "CONST" :
RETURN @!
"\002Const"
698 CASE "CONSTRUCTOR" :
RETURN @!
"\001Constructor"
699 CASE "CONTINUE" :
RETURN @!
"\001Continue"
700 CASE "COS" :
RETURN @!
"\001Cos"
701 CASE "CPTR" :
RETURN @!
"\001CPtr"
702 CASE "CSHORT" :
RETURN @!
"\001CShort"
703 CASE "CSIGN" :
RETURN @!
"\001DSign"
704 CASE "CSNG" :
RETURN @!
"\001CSng"
705 CASE "CSRLIN" :
RETURN @!
"\001CsrLin"
706 CASE "CUBYTE" :
RETURN @!
"\001CUbyte"
707 CASE "CUINT" :
RETURN @!
"\001CUInt"
708 CASE "CULNG" :
RETURN @!
"\001CULng"
709 CASE "CULNGINT" :
RETURN @!
"\001CULngInt"
710 CASE "CUNSG" :
RETURN @!
"\001CUnSg"
711 CASE "CURDIR" :
RETURN @!
"\001CurDir"
712 CASE "CUSHORT" :
RETURN @!
"\001CUShort"
713 CASE "CUSTOM" :
RETURN @!
"\001Custom"
714 CASE "CVA_ARG" :
RETURN @!
"\001Cva_Arg"
715 CASE "CVA_COPY" :
RETURN @!
"\001Cva_Copy"
716 CASE "CVA_END" :
RETURN @!
"\001Cva_End"
717 CASE "CVA_LIST" :
RETURN @!
"\001Cva_List"
718 CASE "CVA_START" :
RETURN @!
"\001Cva_Start"
719 CASE "CVD" :
RETURN @!
"\001CvD"
720 CASE "CVI" :
RETURN @!
"\001CvI"
721 CASE "CVL" :
RETURN @!
"\001CvL"
722 CASE "CVLONGINT" :
RETURN @!
"\001CvLongInt"
723 CASE "CVS" :
RETURN @!
"\001CvS"
724 CASE "CVSHORT" :
RETURN @!
"\001CvShort"
728 CASE "DATA" :
RETURN @!
"\001Data"
729 CASE "DATE" :
RETURN @!
"\001Date"
730 CASE "DATEADD" :
RETURN @!
"\001DateAdd"
731 CASE "DATEDIFF" :
RETURN @!
"\001DateDiff"
732 CASE "DATEPART" :
RETURN @!
"\001DatePart"
733 CASE "DATESERIAL" :
RETURN @!
"\001DateSerial"
734 CASE "DATEVALUE" :
RETURN @!
"\001DateValue"
735 CASE "DAY" :
RETURN @!
"\001Day"
736 CASE "DEALLOCATE" :
RETURN @!
"\001DeAllocate"
737 CASE "DECLARE" :
RETURN @!
"\001Declare"
738 CASE "DEFBYTE" :
RETURN @!
"\001DefByte"
739 CASE "DEFDBL" :
RETURN @!
"\001DefDbl"
740 CASE "DEFINED" :
RETURN @!
"\004Defined"
741 CASE "DEFINT" :
RETURN @!
"\001DefInt"
742 CASE "DEFLNG" :
RETURN @!
"\001DefLng"
743 CASE "DEFLONGINT" :
RETURN @!
"\001DefLongInt"
744 CASE "DEFSHORT" :
RETURN @!
"\001DefShort"
745 CASE "DEFSNG" :
RETURN @!
"\001DefSng"
746 CASE "DEFSTR" :
RETURN @!
"\001DefStr"
747 CASE "DEFUBYTE" :
RETURN @!
"\001DefUbyte"
748 CASE "DEFUINT" :
RETURN @!
"\001DefUInt"
749 CASE "DEFULONGINT" :
RETURN @!
"\001DefULongInt"
750 CASE "DEFUSHORT" :
RETURN @!
"\001DefUShort"
751 CASE "DELETE" :
RETURN @!
"\001Delete"
752 CASE "DESTRUCTOR" :
RETURN @!
"\001Destructor"
753 CASE "DIM" :
RETURN @!
"\002Dim"
754 CASE "DIR" :
RETURN @!
"\001Dir"
755 CASE "DO" :
RETURN @!
"\001Do"
756 CASE "DOUBLE" :
RETURN @!
"\002Double"
757 CASE "DRAW" :
RETURN @!
"\001Draw"
758 CASE "DYLIBFREE" :
RETURN @!
"\001DyLibFree"
759 CASE "DYLIBLOAD" :
RETURN @!
"\001DyLibLoad"
760 CASE "DYLIBSYMBOL" :
RETURN @!
"\001DyLibSymbol"
761 CASE "DYNAMIC" :
RETURN @!
"\001Dynamic"
765 CASE "ELSE" :
RETURN @!
"\001Else"
766 CASE "ELSEIF" :
RETURN @!
"\001ElseIf"
767 CASE "ENCODING" :
RETURN @!
"\001Encoding"
768 CASE "END" :
RETURN @!
"\001End"
769 CASE "ENDIF" :
RETURN @!
"\001EndIf"
770 CASE "ENUM" :
RETURN @!
"\001Enum"
771 CASE "ENVIRON" :
RETURN @!
"\001Environ"
772 CASE "EOF" :
RETURN @!
"\001Eof"
773 CASE "EQV" :
RETURN @!
"\001Eqv"
774 CASE "ERASE" :
RETURN @!
"\001Erase"
775 CASE "ERFN" :
RETURN @!
"\001ErFn"
776 CASE "ERL" :
RETURN @!
"\001ErL"
777 CASE "ERMN" :
RETURN @!
"\001ErMn"
778 CASE "ERR" :
RETURN @!
"\001Err"
779 CASE "ERROR" :
RETURN @!
"\001Error"
780 CASE "ESCAPE" :
RETURN @!
"\001Escape"
781 CASE "EXEC" :
RETURN @!
"\001Exec"
782 CASE "EXEPATH" :
RETURN @!
"\001ExePath"
783 CASE "EXPLICIT" :
RETURN @!
"\001Explicit"
784 CASE "EXIT" :
RETURN @!
"\001Exit"
785 CASE "EXP" :
RETURN @!
"\001Exp"
786 CASE "EXPORT" :
RETURN @!
"\001Export"
787 CASE "EXTENDS" :
RETURN @!
"\001Extends"
788 CASE "EXTERN" :
RETURN @!
"\002Extern"
789 CASE "ESCAPE" :
RETURN @!
"\001Escape"
790 CASE "EXPLICIT" :
RETURN @!
"\001Explicit"
794 CASE "FALSE" :
RETURN @!
"\001False"
795 CASE "FB_MEMCOPY" :
RETURN @!
"\001Fb_MemCopy"
796 CASE "FB_MEMCOPYCLEAR" :
RETURN @!
"\001Fb_MemCopyClear"
797 CASE "FB_MEMMOVE" :
RETURN @!
"\001Fb_MemMove"
798 CASE "FBARRAY" :
RETURN @!
"\001FbArray"
799 CASE "FIELD" :
RETURN @!
"\001Field"
800 CASE "FILEATTR" :
RETURN @!
"\001FileAttr"
801 CASE "FILECOPY" :
RETURN @!
"\001FileCopy"
802 CASE "FILEDATETIME" :
RETURN @!
"\001FileDateTime"
803 CASE "FILEEXISTS" :
RETURN @!
"\001FileExists"
804 CASE "FILEFLUSH" :
RETURN @!
"\001FileFlush"
805 CASE "FILELEN" :
RETURN @!
"\001FileLen"
806 CASE "FIX" :
RETURN @!
"\001Fix"
807 CASE "FLIP" :
RETURN @!
"\001Flip"
808 CASE "FOR" :
RETURN @!
"\001For"
809 CASE "FORMAT" :
RETURN @!
"\001Format"
810 CASE "FRAC" :
RETURN @!
"\001Frac"
811 CASE "FRE" :
RETURN @!
"\001Fre"
812 CASE "FREEFILE" :
RETURN @!
"\001FreeFile"
813 CASE "FUNCTION" :
RETURN @!
"\001Function"
817 CASE "GET" :
RETURN @!
"\001Get"
818 CASE "GETJOYSTICK" :
RETURN @!
"\001GetJoyStick"
819 CASE "GETKEY" :
RETURN @!
"\001GetKey"
820 CASE "GETMOUSE" :
RETURN @!
"\001GetMouse"
821 CASE "GOSUB" :
RETURN @!
"\001GoSub"
822 CASE "GOTO" :
RETURN @!
"\001Goto"
826 CASE "HEX" :
RETURN @!
"\001Hex"
827 CASE "HIBYTE" :
RETURN @!
"\001HiByte"
828 CASE "HIWORD" :
RETURN @!
"\001HiWord"
829 CASE "HOUR" :
RETURN @!
"\001Hour"
833 CASE "IF" :
RETURN @!
"\001If"
834 CASE "IIF" :
RETURN @!
"\001IIf"
835 CASE "IMAGECONVERTROW" :
RETURN @!
"\001ImageConvertRow"
836 CASE "IMAGECREATE" :
RETURN @!
"\001ImageCreate"
837 CASE "IMAGEDESTROY" :
RETURN @!
"\001ImageDestroy"
838 CASE "IMAGEINFO" :
RETURN @!
"\001ImageInfo"
839 CASE "IMP" :
RETURN @!
"\001Imp"
840 CASE "IMPLEMENTS" :
RETURN @!
"\001Implements"
841 CASE "IMPORT" :
RETURN @!
"\001Import"
842 CASE "INKEY" :
RETURN @!
"\001InKey"
843 CASE "INP" :
RETURN @!
"\001Inp"
844 CASE "INPUT" :
RETURN @!
"\001Input"
845 CASE "INSTR" :
RETURN @!
"\001InStr"
846 CASE "INSTRREV" :
RETURN @!
"\001InStrRev"
847 CASE "INT" :
RETURN @!
"\001Int"
848 CASE "INTEGER" :
RETURN @!
"\002Integer"
849 CASE "IS" :
RETURN @!
"\001Is"
850 CASE "ISDATE" :
RETURN @!
"\001IsDate"
851 CASE "ISREDIRECTED" :
RETURN @!
"\001IsReDirected"
855 CASE "KILL" :
RETURN @!
"\001Kill"
859 CASE "LBOUND" :
RETURN @!
"\001LBound"
860 CASE "LCASE" :
RETURN @!
"\001LCase"
861 CASE "LEFT" :
RETURN @!
"\001Left"
862 CASE "LEN" :
RETURN @!
"\001Len"
863 CASE "LET" :
RETURN @!
"\001Let"
864 CASE "LIB" :
RETURN @!
"\001Lib"
865 CASE "LIBPATH" :
RETURN @!
"\001LibPath"
866 CASE "LINE" :
RETURN @!
"\001Line"
867 CASE "LOBYTE" :
RETURN @!
"\001LoByte"
868 CASE "LOC" :
RETURN @!
"\001Loc"
869 CASE "LOCAL" :
RETURN @!
"\001Local"
870 CASE "LOCATE" :
RETURN @!
"\001Locate"
871 CASE "LOCK" :
RETURN @!
"\001Lock"
872 CASE "LOF" :
RETURN @!
"\001Lof"
873 CASE "LOG" :
RETURN @!
"\001Log"
874 CASE "LONG" :
RETURN @!
"\002Long"
875 CASE "LONGINT" :
RETURN @!
"\002LongInt"
876 CASE "LOOP" :
RETURN @!
"\001Loop"
877 CASE "LOWORD" :
RETURN @!
"\001LoWord"
878 CASE "LPOS" :
RETURN @!
"\001LPos"
879 CASE "LPRINT" :
RETURN @!
"\001LPrint"
880 CASE "LPT" :
RETURN @!
"\001Lpt"
881 CASE "LSET" :
RETURN @!
"\001LSet"
882 CASE "LTRIM" :
RETURN @!
"\001LTrim"
886 CASE "MID" :
RETURN @!
"\001Mid"
887 CASE "MINUTE" :
RETURN @!
"\001Minute"
888 CASE "MKD" :
RETURN @!
"\001MkD"
889 CASE "MKDIR" :
RETURN @!
"\001MkDir"
890 CASE "MKI" :
RETURN @!
"\001MkI"
891 CASE "MKL" :
RETURN @!
"\001MkL"
892 CASE "MKLONGINT" :
RETURN @!
"\001MKLongInt"
893 CASE "MKS" :
RETURN @!
"\001MkS"
894 CASE "MKSHORT" :
RETURN @!
"\001MkShort"
895 CASE "MOD" :
RETURN @!
"\001Mod"
896 CASE "MONTH" :
RETURN @!
"\001Month"
897 CASE "MONTHNAME" :
RETURN @!
"\001MonthName"
898 CASE "MULTIKEY" :
RETURN @!
"\001MultiKey"
899 CASE "MUTEXCREATE" :
RETURN @!
"\001MutexCreate"
900 CASE "MUTEXDESTROY" :
RETURN @!
"\001MutexDestroy"
901 CASE "MUTEXLOCK" :
RETURN @!
"\001MutexLock"
902 CASE "MUTEXUNLOCK" :
RETURN @!
"\001MutexUnLock"
906 CASE "NAKED" :
RETURN @!
"\001Naked"
907 CASE "NAME" :
RETURN @!
"\001Name"
908 CASE "NAMESPACE" :
RETURN @!
"\001Namespace"
909 CASE "NEW" :
RETURN @!
"\001New"
910 CASE "NEXT" :
RETURN @!
"\001Next"
911 CASE "NOT" :
RETURN @!
"\001Not"
912 CASE "NOW" :
RETURN @!
"\001Now"
913 CASE "NOGOSUB" :
RETURN @!
"\001NoGoSub"
914 CASE "NOKEYWORD" :
RETURN @!
"\001NoKeyWord"
918 CASE "OBJECT" :
RETURN @!
"\001Object"
919 CASE "OCT" :
RETURN @!
"\001Oct"
920 CASE "OFFSETOF" :
RETURN @!
"\001OffsetOf"
921 CASE "ON" :
RETURN @!
"\001On"
922 CASE "ONCE" :
RETURN @!
"\004Once"
923 CASE "OPEN" :
RETURN @!
"\001Open"
924 CASE "OPERATOR" :
RETURN @!
"\001Operator"
925 CASE "OPTION" :
RETURN @!
"\001Option"
926 CASE "OR" :
RETURN @!
"\001Or"
927 CASE "ORELSE" :
RETURN @!
"\001OrElse"
928 CASE "OUT" :
RETURN @!
"\001Out"
929 CASE "OUTPUT" :
RETURN @!
"\001Output"
930 CASE "OVERLOAD" :
RETURN @!
"\001Overload"
931 CASE "OVERRIDE" :
RETURN @!
"\001Override"
932 CASE "OPTION" :
RETURN @!
"\001Option"
936 CASE "PAINT" :
RETURN @!
"\001Paint"
937 CASE "PALETTE" :
RETURN @!
"\001Palette"
938 CASE "PASCAL" :
RETURN @!
"\001Pascal"
939 CASE "PCOPY" :
RETURN @!
"\001PCopy"
940 CASE "PEEK" :
RETURN @!
"\001Peek"
941 CASE "PIPE" :
RETURN @!
"\001Pipe"
942 CASE "PMAP" :
RETURN @!
"\001PMap"
943 CASE "POINT" :
RETURN @!
"\001Point"
944 CASE "POINTCOORD" :
RETURN @!
"\001PointCoord"
945 CASE "POINTER" :
RETURN @!
"\001Pointer"
946 CASE "POKE" :
RETURN @!
"\001Poke"
947 CASE "POS" :
RETURN @!
"\001Pos"
948 CASE "POP" :
RETURN @!
"\001Pop"
949 CASE "PRESERVE" :
RETURN @!
"\001Preserve"
950 CASE "PRESET" :
RETURN @!
"\001PReset"
951 CASE "PRINT" :
RETURN @!
"\001Print"
952 CASE "PRIVATE" :
RETURN @!
"\001Private"
953 CASE "PROCPTR" :
RETURN @!
"\001ProcPtr"
954 CASE "PROPERTY" :
RETURN @!
"\001Property"
955 CASE "PROTECTED" :
RETURN @!
"\001Protected"
956 CASE "PSET" :
RETURN @!
"\001PSet"
957 CASE "PTR" :
RETURN @!
"\002Ptr"
958 CASE "PUBLIC" :
RETURN @!
"\001Public"
959 CASE "PUT" :
RETURN @!
"\001Put"
960 CASE "PUSH" :
RETURN @!
"\001Push"
964 CASE "RANDOM" :
RETURN @!
"\001Random"
965 CASE "RANDOMIZE" :
RETURN @!
"\001Randomize"
966 CASE "READ" :
RETURN @!
"\001Read"
967 CASE "REALLOCATE" :
RETURN @!
"\001ReAllocate"
968 CASE "REDIM" :
RETURN @!
"\001ReDim"
969 CASE "REM" :
RETURN @!
"\001Rem"
970 CASE "RESET" :
RETURN @!
"\001Reset"
971 CASE "RESTORE" :
RETURN @!
"\001ReStore"
972 CASE "RESUME" :
RETURN @!
"\001Resume"
973 CASE "RETURN" :
RETURN @!
"\001Return"
974 CASE "RGB" :
RETURN @!
"\001RGB"
975 CASE "RGBA" :
RETURN @!
"\001RGBA"
976 CASE "RIGHT" :
RETURN @!
"\001Right"
977 CASE "RMDIR" :
RETURN @!
"\001RmDir"
978 CASE "RND" :
RETURN @!
"\001Rnd"
979 CASE "RSET" :
RETURN @!
"\001RSet"
980 CASE "RTRIM" :
RETURN @!
"\001RTrim"
981 CASE "RUN" :
RETURN @!
"\001Run"
985 CASE "SADD" :
RETURN @!
"\001SAdd"
986 CASE "SCOPE" :
RETURN @!
"\001Scope"
987 CASE "SCREEN" :
RETURN @!
"\001Screen"
988 CASE "SCREENCONTROL" :
RETURN @!
"\001ScreenControl"
989 CASE "SCREENCOPY" :
RETURN @!
"\001ScreenCopy"
990 CASE "SCREENEVENT" :
RETURN @!
"\001ScreenEvent"
991 CASE "SCREENGLPROC" :
RETURN @!
"\001ScreenGlProc"
992 CASE "SCREENINFO" :
RETURN @!
"\001ScreenInfo"
993 CASE "SCREENLIST" :
RETURN @!
"\001ScreenList"
994 CASE "SCREENLOCK" :
RETURN @!
"\001ScreenLock"
995 CASE "SCREENPTR" :
RETURN @!
"\001ScreenPtr"
996 CASE "SCREENRES" :
RETURN @!
"\001ScreenRes"
997 CASE "SCREENSET" :
RETURN @!
"\001ScreenSet"
998 CASE "SCREENSYNC" :
RETURN @!
"\001ScreenSync"
999 CASE "SCREENUNLOCK" :
RETURN @!
"\001ScreenUnLock"
1000 CASE "SCRN" :
RETURN @!
"\001Scrn"
1001 CASE "SECOND" :
RETURN @!
"\001Second"
1002 CASE "SEEK" :
RETURN @!
"\001Seek"
1003 CASE "SELECT" :
RETURN @!
"\001Select"
1004 CASE "SETDATE" :
RETURN @!
"\001SetDate"
1005 CASE "SETENVIRON" :
RETURN @!
"\001SetEnviron"
1006 CASE "SETMOUSE" :
RETURN @!
"\001SetMouse"
1007 CASE "SETTIME" :
RETURN @!
"\001SetTime"
1008 CASE "SGN" :
RETURN @!
"\001Sgn"
1009 CASE "SHARED" :
RETURN @!
"\002Shared"
1010 CASE "SHELL" :
RETURN @!
"\001Shell"
1011 CASE "SHL" :
RETURN @!
"\001ShL"
1012 CASE "SHORT" :
RETURN @!
"\002Short"
1013 CASE "SHR" :
RETURN @!
"\001ShR"
1014 CASE "SIN" :
RETURN @!
"\001Sin"
1015 CASE "SINGLE" :
RETURN @!
"\002Single"
1016 CASE "SIZEOF" :
RETURN @!
"\001SizeOf"
1017 CASE "SLEEP" :
RETURN @!
"\001Sleep"
1018 CASE "SPACE" :
RETURN @!
"\001Space"
1019 CASE "SPC" :
RETURN @!
"\001Spc"
1020 CASE "SQR" :
RETURN @!
"\001Sqr"
1021 CASE "STATIC" :
RETURN @!
"\002Static"
1022 CASE "STDCALL" :
RETURN @!
"\001StdCall"
1023 CASE "STEP" :
RETURN @!
"\001Step"
1024 CASE "STICK" :
RETURN @!
"\001Stick"
1025 CASE "STOP" :
RETURN @!
"\001Stop"
1026 CASE "STR" :
RETURN @!
"\001Str"
1027 CASE "STRIG" :
RETURN @!
"\001Strig"
1028 CASE "STRING" :
RETURN @!
"\002String"
1029 CASE "STRPTR" :
RETURN @!
"\001StrPtr"
1030 CASE "SUB" :
RETURN @!
"\001Sub"
1031 CASE "SWAP" :
RETURN @!
"\001Swap"
1032 CASE "SYSTEM" :
RETURN @!
"\001System"
1036 CASE "TAB" :
RETURN @!
"\001Tab"
1037 CASE "TAN" :
RETURN @!
"\001Tan"
1038 CASE "THEN" :
RETURN @!
"\001Then"
1039 CASE "THIS" :
RETURN @!
"\001This"
1040 CASE "THISCALL" :
RETURN @!
"\001ThisCall"
1041 CASE "THREADCALL" :
RETURN @!
"\001ThreadCall"
1042 CASE "THREADCREATE" :
RETURN @!
"\001ThreadCreate"
1043 CASE "THREADDETACH" :
RETURN @!
"\001ThreadDetach"
1044 CASE "THREADSELF" :
RETURN @!
"\001ThreadSelf"
1045 CASE "THREADWAIT" :
RETURN @!
"\001ThreadWait"
1046 CASE "TIME" :
RETURN @!
"\001Time"
1047 CASE "TIMER" :
RETURN @!
"\001Timer"
1048 CASE "TIMESERIAL" :
RETURN @!
"\001TimeSerial"
1049 CASE "TIMEVALUE" :
RETURN @!
"\001TimeValue"
1050 CASE "TO" :
RETURN @!
"\001To"
1051 CASE "TRANS" :
RETURN @!
"\001Trans"
1052 CASE "TRIM" :
RETURN @!
"\001Trim"
1053 CASE "TRUE" :
RETURN @!
"\001True"
1054 CASE "TYPE" :
RETURN @!
"\001Type"
1055 CASE "TYPEOF" :
RETURN @!
"\004TypeOf"
1059 CASE "UBOUND" :
RETURN @!
"\001UBound"
1060 CASE "UBYTE" :
RETURN @!
"\002UByte"
1061 CASE "UCASE" :
RETURN @!
"\001UCase"
1062 CASE "UINTEGER" :
RETURN @!
"\002UInteger"
1063 CASE "ULONG" :
RETURN @!
"\002ULong"
1064 CASE "ULONGINT" :
RETURN @!
"\002ULongInt"
1065 CASE "UNION" :
RETURN @!
"\001Union"
1066 CASE "UNLOCK" :
RETURN @!
"\001Unlock"
1067 CASE "UNSIGNED" :
RETURN @!
"\002UnSigned"
1068 CASE "UNTIL" :
RETURN @!
"\001Until"
1069 CASE "USHORT" :
RETURN @!
"\002UShort"
1070 CASE "USING" :
RETURN @!
"\001Using"
1074 CASE "VA_ARG" :
RETURN @!
"\001Va_Arg"
1075 CASE "VA_FIRST" :
RETURN @!
"\001Va_First"
1076 CASE "VA_NEXT" :
RETURN @!
"\001Va_Next"
1077 CASE "VAL" :
RETURN @!
"\001Val"
1078 CASE "VAL64" :
RETURN @!
"\001Val64"
1079 CASE "VALINT" :
RETURN @!
"\001ValInt"
1080 CASE "VALLNG" :
RETURN @!
"\001ValLng"
1081 CASE "VALUINT" :
RETURN @!
"\001ValUInt"
1082 CASE "VALULNG" :
RETURN @!
"\001ValULng"
1083 CASE "VAR" :
RETURN @!
"\002Var"
1084 CASE "VARPTR" :
RETURN @!
"\001VarPtr"
1085 CASE "VIEW" :
RETURN @!
"\001View"
1086 CASE "VIRTUAL" :
RETURN @!
"\001Virtual"
1090 CASE "WAIT" :
RETURN @!
"\001Wait"
1091 CASE "WBIN" :
RETURN @!
"\001WBin"
1092 CASE "WCHR" :
RETURN @!
"\001WChr"
1093 CASE "WEEKDAY" :
RETURN @!
"\001WeekDay"
1094 CASE "WEEKDAYNAME" :
RETURN @!
"\001WeekDayName"
1095 CASE "WEND" :
RETURN @!
"\001Wend"
1096 CASE "WHEX" :
RETURN @!
"\001WHex"
1097 CASE "WHILE" :
RETURN @!
"\001While"
1098 CASE "WIDTH" :
RETURN @!
"\001Width"
1099 CASE "WINDOW" :
RETURN @!
"\001Window"
1100 CASE "WINDOWTITLE" :
RETURN @!
"\001WindowTitle"
1101 CASE "WINPUT" :
RETURN @!
"\001WInput"
1102 CASE "WITH" :
RETURN @!
"\001With"
1103 CASE "WOCT" :
RETURN @!
"\001WOct"
1104 CASE "WRITE" :
RETURN @!
"\001Write"
1105 CASE "WSPACE" :
RETURN @!
"\001WSpace"
1106 CASE "WSTR" :
RETURN @!
"\001WStr"
1107 CASE "WSTRING" :
RETURN @!
"\002WString"
1111 CASE "XOR" :
RETURN @!
"\001Xor"
1115 CASE "YEAR" :
RETURN @!
"\001Year"
1119 CASE "ZSTRING" :
RETURN @!
"\002ZString"
1121 END SELECT :
RETURN 0
1139 #MACRO GET_WORD_TYPE()
1140 VAR word =
MID(*T, start + 1, size)
1141 VAR res =
IIF(Symbols, Symbols->rep(word),
cast(
zstring ptr,
SADD(word)))
1142 IF res =
SADD(word)
THEN
1144 res = word_type(word)
1145 typ =
IIF(res,
ASC(*res), FB_CODE)
1147 SELECT CASE AS CONST OPT->CaseMode
1148 CASE OPT->CASE_LOWER :
MID(*T, start + 1, size) =
LCASE(word)
1149 CASE OPT->CASE_MIXED :
MID(*T, start + 1, size) =
MID(*res, 2, size)
1150 CASE OPT->CASE_UPPER :
MID(*T, start + 1, size) = word
1153 typ =
CAST(
INTEGER, res)
1172 VAR size = 0, start = -1, last = -1, typ = last, blcks =
""
1173 FOR i
AS INTEGER = A
TO A + L - 1
1174 SELECT CASE AS CONST T[i]
1175 CASE ASC(
"0")
TO ASC(
"9")
1176 IF size
THEN size += 1
1183 CASE ASC(
"#"),
ASC(
"_"),
ASC(
"A")
TO ASC(
"Z"),
ASC(
"a")
TO ASC(
"z")
1184 size += 1 :
IF size = 1
THEN start = i
1188 IF typ <> last
THEN blcks &=
MKI(typ) &
MKI(i - size) : last = typ
1192 SELECT CASE AS CONST T[i]
1194 IF last = FB_KEYW
THEN EXIT SELECT
1195 blcks &=
MKI(FB_KEYW) &
MKI(i) : last = FB_KEYW
1196 CASE ASC(!
"\t"),
ASC(!
"\v"),
ASC(
" ")
1197 IF i > A
ANDALSO typ < FB_SYMB
THEN EXIT SELECT
1198 blcks &=
MKI(FB_CODE) &
MKI(i) : last = FB_CODE
1200 IF last = FB_CODE
THEN EXIT SELECT
1201 blcks &=
MKI(FB_CODE) &
MKI(i) : last = FB_CODE
1208 IF typ <> last
THEN blcks &=
MKI(typ) &
MKI(A + L - size)
1210 blcks &=
MKI(-1) &
MKI(A + L)
1213 , p =
CAST(
INTEGER PTR,
SADD(blcks)) _
1214 , n = (
LEN(blcks) \
SIZEOF(
INTEGER)) - 3
1215 FOR i
AS INTEGER = 0
TO n
STEP 2
1216 VAR l = p[i + 3] - p[i + 1]
1218 SELECT CASE AS CONST p[i]
1219 CASE FB_KEYW : r &= *KEYW_A & special_chars(T, p[i + 1], l) & *SPAN_E
1220 CASE FB_KWTP : r &= *KWTP_A & special_chars(T, p[i + 1], l) & *SPAN_E
1221 CASE FB_KWFL : r &= *KWFL_A & special_chars(T, p[i + 1], l) & *SPAN_E
1222 CASE FB_PREP : r &= *PREP_A & special_chars(T, p[i + 1], l) & *SPAN_E
1223 CASE FB_CODE : r &= special_chars(T, p[i + 1], l)
1224 CASE ELSE : r &=
PEEK(
ZSTRING, p[i])
1249 VAR p =
INSTR(FbFiles, Nam)
1251 SELECT CASE AS CONST FbFiles[p - 2]
1252 CASE ASC(NL) :
RETURN Nam
1254 VAR pp =
INSTRREV(FbFiles, NL, p) + 1
1255 RETURN MID(FbFiles, pp, p - pp +
LEN(Nam))
1257 p =
INSTR(p +
LEN(Nam), FbFiles, Nam)
1275 VAR pa = 0, fb_nam =
""
1277 IF EOF(.Ifnr)
THEN RETURN CHR(3)
ELSE LINE INPUT #.Ifnr, .LastLine
1278 pa =
INSTR(.LastLine,
"<div class=""line""><a name=""l00001""") :
IF pa
THEN EXIT DO
1279 Code(.LastLine & NL)
1280 pa =
INSTR(.LastLine,
"<div class=""title"">")
1283 VAR pe =
INSTR(pa, .LastLine,
"</div>")
1284 fb_nam = .searchPathNam(
MID(.LastLine, pa, pe - pa))
1285 IF 0 =
LEN(fb_nam)
THEN RETURN CHR(1)
1288 Code(
LEFT(.LastLine, pa - 1) & NL)
1289 Code(*.FBDOC_MARK & NL)
1292 pa =
INSTR(pa + 1, .LastLine,
"<a class=""code""")
1294 VAR pe =
INSTR(pa + 14, .LastLine,
"</a>"), pp =
INSTRREV(.LastLine,
">", pe - 1) + 1
1295 VAR word =
MID(.LastLine, pp, pe - pp)
1296 VAR res = .Symbols->
add(word,
MID(.LastLine, pa, pe - pa + 4))
1297 pa =
INSTR(pa + 1, .LastLine,
"<a class=""code""")
1299 IF EOF(.Ifnr)
THEN RETURN CHR(3)
ELSE LINE INPUT #.Ifnr, .LastLine
1300 LOOP UNTIL LEFT(.LastLine, 6) =
"</div>"
1301 IF EOF(.Ifnr)
THEN RETURN CHR(3)
ELSE RETURN fb_nam
1318 IF EOF(.Ifnr)
THEN RETURN CHR(3)
ELSE LINE INPUT #.Ifnr, .LastLine
1319 Code(.LastLine & NL)
1320 VAR p1 =
INSTR(.LastLine,
"\section{") _
1321 , p2 =
INSTR(p1 + 10, .LastLine,
"}") _
1324 FOR i
AS INTEGER = p1 + 8
TO p2 - 2
1325 IF .LastLine[i] =
ASC(
"\")
THEN
1326 SELECT CASE AS CONST .LastLine[i + 1]
1327 CASE ASC(
"+"),
ASC(
"-"),
ASC(
"/") : i += 1 :
CONTINUE FOR
1328 CASE ASC(
"_") :
CONTINUE FOR
1331 fb_nam &=
CHR(.LastLine[i])
1333 fb_nam = .searchPathNam(fb_nam) :
IF 0 =
LEN(fb_nam)
THEN RETURN CHR(1)
1336 IF EOF(.Ifnr)
THEN RETURN CHR(3)
ELSE LINE INPUT #.Ifnr, .LastLine
1337 Code(.LastLine & NL)
1338 LOOP UNTIL .LastLine =
"\begin{DoxyCode}"
1340 IF EOF(.Ifnr)
THEN RETURN CHR(3)
ELSE LINE INPUT #.Ifnr, .LastLine
1341 IF .LastLine = *.FBDOC_MARK
THEN RETURN CHR(2)
1342 Code(*.FBDOC_MARK & NL)
1345 VAR pa =
INSTR(.LastLine,
"\hyper")
1347 pa =
INSTR(14, .LastLine,
"\hyperlink{")
1348 var pm =
INSTR(pa + 10, .LastLine,
"}{") + 2 _
1349 , pe =
INSTR(pm, .LastLine,
"}") _
1350 , t =
LEFT(.LastLine, pa - 2) &
MID(.LastLine, pm, pe - pm + 1)
1351 .Symbols->
add(
MID(.LastLine, pm, pe - pm), t)
1352 pa =
INSTR(pe + 1, .LastLine,
"\hyperlink{")
1355 VAR pm =
INSTR(pa + 11, .LastLine,
"}{") + 2 _
1356 , pe =
INSTR(pm, .LastLine,
"}") + 1 _
1358 FOR i
AS INTEGER = pm - 1
TO pe - 3
1359 IF .LastLine[i] <>
ASC(
"\")
THEN word &=
CHR(.LastLine[i])
1361 .Symbols->
add(word,
MID(.LastLine, pa, pe - pa))
1362 pa =
INSTR(pe, .LastLine,
"\hyperlink{")
1364 IF EOF(.Ifnr)
THEN RETURN CHR(3)
ELSE LINE INPUT #.Ifnr, .LastLine
1365 LOOP UNTIL .LastLine =
"\end{DoxyCode}" :
RETURN fb_nam
1384 IF EOF(.Ifnr)
THEN RETURN CHR(3)
ELSE LINE INPUT #.Ifnr, .LastLine
1385 Code(.LastLine & NL)
1386 IF INSTR(.LastLine,
"<programlisting>")
THEN EXIT DO
1387 VAR pa =
INSTR(.LastLine,
"<compoundname>")
1390 VAR pe =
INSTR(pa, .LastLine,
"</compoundname>")
1391 fb_nam = .searchPathNam(
MID(.LastLine, pa, pe - pa))
1392 IF 0 =
LEN(fb_nam)
THEN RETURN CHR(1)
1396 IF EOF(.Ifnr)
THEN RETURN CHR(3)
ELSE LINE INPUT #.Ifnr, .LastLine
1397 IF .LastLine = *.FBDOC_MARK
THEN RETURN CHR(2)
1398 Code(*.FBDOC_MARK & NL)
1400 VAR word =
"", pm =
INSTR(.LastLine,
"refid=""")
1402 VAR pa =
INSTRREV(.LastLine,
"<", pm - 1)
1403 pm =
INSTR(pm + 8, .LastLine,
">")
1404 IF MID(.LastLine, pa, 5) =
"<ref " THEN
1405 VAR pe =
INSTR(pm + 1, .LastLine,
"</ref>")
1407 .Symbols->
add(
MID(.LastLine, pm, pe - pm),
MID(.LastLine, pa, pe - pa + 6))
1410 pm =
INSTR(pa + 1, .LastLine,
"lineno=""") + 8
1411 .Symbols->
add(
MID(.LastLine, pm,
INSTR(pm + 1, .LastLine,
"""") - pm), _
1412 MID(.LastLine, pa, pe - pa))
1415 IF EOF(.Ifnr)
THEN RETURN CHR(3)
ELSE LINE INPUT #.Ifnr, .LastLine
1416 LOOP UNTIL INSTR(.LastLine,
"</programlisting>")
1417 IF EOF(.Ifnr)
THEN RETURN CHR(3)
ELSE RETURN fb_nam
1431 IF 0 = .UserTok
THEN
1433 IF 0 =
OPT->InTree
THEN .Po = .Fin
1439 IF .GenAny
THEN .LineNo = 1
ELSE .
Pars = P
1440 Code(.eol(.Symbols, .LineNo))
1452 SUB synt_exit
CDECL(
BYVAL P
AS Parser PTR)
1454 .generate_all(
SADD(P->Buf), P->Fin)
1456 IF OPT->Level > 0
THEN EXIT SUB
1458 Code(.eol(.Symbols, 0) & NL)
1459 IF 0 = .GenAny
THEN DELETE P->UserTok : P->UserTok = 0
1477 SUB synt_incl
CDECL(
BYVAL P
AS Parser PTR)
1479 VAR fnam =
TRIM(P->SubStr(P->NamTok),
"""")
1480 fnam = .special_chars(
SADD(fnam), 0,
LEN(fnam))
1481 VAR res =
IIF(.Symbols, .Symbols->rep(fnam),
SADD(fnam))
1483 IF res =
SADD(fnam)
THEN
1484 .generate_all(
SADD(P->Buf), P->NamTok[1])
1486 VAR i =
INSTR(*res, fnam) _
1487 , j = i +
LEN(fnam) _
1488 , a = P->StaTok[1] - 1 _
1489 , l = P->NamTok[1] - a
1490 .generate_all(
SADD(P->Buf), a)
1492 & *.QUOT_A &
LEFT(*res, i - 1) & fnam &
MID(*res, j) & *.QUOT_E)
1494 P->SrcBgn = P->NamTok[1] + P->NamTok[2]
1514 SUB synt_func
CDECL(
BYVAL P
AS Parser PTR)
1516 VAR t = P->NamTok, nam = P->SubStr(t)
1518 SELECT CASE AS CONST *P->FunTok
1519 CASE P->TOK_CTOR : t += 3 :
IF OPT->Types =
OPT->FB_STYLE
THEN nam &=
"::" & nam
1520 CASE P->TOK_DTOR : t += 3 :
IF OPT->Types =
OPT->FB_STYLE
THEN nam &=
"::~" & nam
1524 SELECT CASE AS CONST *t
1525 CASE P->TOK_DOT :
IF OPT->Types =
OPT->FB_STYLE
THEN nam &=
"::" ELSE nam &=
"."
1526 CASE P->TOK_WORD : nam &= P->SubStr(t)
1527 CASE ELSE :
EXIT WHILE
1531 nam = .special_chars(
SADD(nam), 0,
LEN(nam))
1532 VAR res =
IIF(.Symbols, .Symbols->rep(nam),
SADD(nam))
1533 IF res =
SADD(nam)
THEN EXIT SUB
1535 .generate_all(
SADD(P->Buf), P->Tk1[1])
1537 VAR i =
INSTR(*res, nam) _
1538 , j = i +
LEN(nam) _
1539 , a =
IIF(P->DivTok, P->DivTok[1], P->StaTok[1]) _
1540 , l = P->NamTok[1] - a
1541 P->SrcBgn = *(t - 2) + *(t - 1)
1542 nam = .special_chars(
SADD(P->Buf), a + l, P->SrcBgn - P->NamTok[1])
1544 &
LEFT(*res, i - 1) & nam &
MID(*res, j))
1556 SUB init_syntax(
BYVAL Emi
AS EmitterIF
PTR)
1559 .Exit_ = @synt_exit()
1560 .Incl_ = @synt_incl()
1561 .Func_ = @synt_func()