fb-doc  0.4.0
FreeBASIC documentation tool
fbdoc_emit_lfn.bas
Go to the documentation of this file.
1 
13 
14 #INCLUDE ONCE "fbdoc_options.bi"
15 #INCLUDE ONCE "fbdoc_emit_lfn.bi"
16 
17 
18 
19 FUNCTION startLFN(BYREF Path AS STRING) AS INTEGER
20  VAR fnr = FREEFILE
21  IF OPEN(Path & LFN_FILE FOR OUTPUT AS #fnr) THEN RETURN 0
22  PRINT #fnr, "+++ List of Function Names +++"
23  RETURN fnr
24 END FUNCTION
25 
26 
27 'SUB lfn_CTOR CDECL(BYVAL P AS Parser PTR)
28  'IF 0 = Ocha THEN
29  'MSG_LINE(OutPath & LFN_FILE)
30  'Ocha = startLFN(OutPath)
31  'IF 0 = Ocha THEN MSG_END("error (couldn't write)") : EXIT SUB
32  'MSG_END("opened")
33  'END IF
34 'END SUB
35 
36 
37 'SUB lfn_DTOR CDECL(BYVAL P AS Parser PTR)
38 'END SUB
39 
40 
41 
49 SUB lfn_decl_ CDECL(BYVAL P AS Parser PTR)
50  WITH *P '&Parser* P;
51  SELECT CASE AS CONST *.StaTok
52  CASE .TOK_SUB, .TOK_FUNC, .TOK_PROP
53  CASE ELSE : EXIT SUB
54  END SELECT : IF 0 = .NamTok ORELSE 0 = .FunTok THEN EXIT SUB
55  .PtrCount = 0
56  cNam(P)
57  Code(LFN_SEP)
58  END WITH
59 END SUB
60 
61 
62 
69 SUB lfn_class_ CDECL(BYVAL P AS Parser PTR)
70  WITH *P '&Parser* P;
71  IF OPT->AllCallees THEN .parseBlockTyUn(@lfn_decl_())
72  END WITH
73 END SUB
74 
75 
76 
84 SUB lfn_func_ CDECL(BYVAL P AS Parser PTR) ' !!! ToDo member functions
85  WITH *P '&Parser* P;
86  SELECT CASE AS CONST *.StaTok
87  CASE .TOK_SUB, .TOK_FUNC, .TOK_PROP
88  CASE .TOK_CTOR : Code(.SubStr(.NamTok) & ".")
89  CASE ELSE : EXIT SUB
90  END SELECT
91  .PtrCount = 0
92  cNam(P)
93  Code(LFN_SEP)
94  END WITH
95 END SUB
96 
97 
98 
107 SUB lfn_include CDECL(BYVAL P AS Parser PTR)
108  WITH *P '&Parser* P;
109  IF OPT->InTree THEN .Include(TRIM(.SubStr(.NamTok), """"))
110  END WITH
111 END SUB
112 
113 
114 
115 
122 SUB init_lfn(BYVAL Emi AS EmitterIF PTR)
123  WITH *Emi
124  .Clas_ = @lfn_class_()
125  .Unio_ = @lfn_class_()
126  .Func_ = @lfn_func_()
127  .Decl_ = @lfn_decl_()
128  .Incl_ = @lfn_include()
129  END WITH
130 END SUB
131 
132