fbdoc  1.0.1
FreeBASIC documentation tool
fbdoc_emit_lfn.bas
Go to the documentation of this file.
1 
13 
14 #INCLUDE ONCE "fbdoc_options.bi"
15 
16 
17 
24 SUB lfn_CTOR CDECL(BYVAL O AS Options PTR)
25  WITH *O
26  IF 0 = LEN(.LfnPnN) THEN .LfnPnN = .OutPath & LFN_FILE
27  MSG_LINE(.LfnPnN)
28  .Ocha = FREEFILE
29  IF OPEN(.LfnPnN FOR OUTPUT AS #.Ocha) THEN
30  .Ocha = 0
31  MSG_CONT("error (couldn't write)")
32  ELSE
33  PRINT #.Ocha, "+++ List of Function Names +++"
34  MSG_CONT("opened")
35  END IF
36  END WITH
37 END SUB
38 
39 
40 SUB lfn_DTOR CDECL(BYVAL O AS Options PTR)
41  CLOSE O->Ocha
42  MSG_CONT(O->LfnPnN & "written")
43 END SUB
44 
45 
46 
54 SUB lfn_decl_ CDECL(BYVAL P AS Parser PTR)
55  WITH *P '&Parser* P;
56  SELECT CASE AS CONST *.StaTok
57  CASE .TOK_SUB, .TOK_FUNC, .TOK_PROP
58  CASE ELSE : EXIT SUB
59  END SELECT : IF 0 = .NamTok ORELSE 0 = .FunTok THEN EXIT SUB
60  .PtrCount = 0
61  cNam(P)
62  Code(LFN_SEP)
63  END WITH
64 END SUB
65 
66 
67 
74 SUB lfn_class_ CDECL(BYVAL P AS Parser PTR)
75  WITH *P '&Parser* P;
76  IF OPT->AllCallees THEN .parseBlockTyUn(@lfn_decl_())
77  END WITH
78 END SUB
79 
80 
81 
89 SUB lfn_func_ CDECL(BYVAL P AS Parser PTR) ' !!! ToDo member functions
90  WITH *P '&Parser* P;
91  SELECT CASE AS CONST *.StaTok
92  CASE .TOK_SUB, .TOK_FUNC, .TOK_PROP
93  CASE .TOK_CTOR : Code(.SubStr(.NamTok) & ".")
94  CASE ELSE : EXIT SUB
95  END SELECT
96  .PtrCount = 0
97  cNam(P)
98  Code(LFN_SEP)
99  END WITH
100 END SUB
101 
102 
103 
112 SUB lfn_include CDECL(BYVAL P AS Parser PTR)
113  WITH *P '&Parser* P;
114  IF OPT->InTree THEN .Include(TRIM(.SubStr(.NamTok), """"))
115  END WITH
116 END SUB
117 
118 
119 
120 
127 SUB init_lfn(BYVAL Emi AS EmitterIF PTR)
128  WITH *Emi
129  .CTOR_ = @lfn_CTOR()
130  .DTOR_ = @lfn_DTOR()
131 
132  .Clas_ = @lfn_class_()
133  .Unio_ = @lfn_class_()
134  .Func_ = @lfn_func_()
135  .Decl_ = @lfn_decl_()
136  .Incl_ = @lfn_include()
137  END WITH
138 END SUB
139 
140