fb-doc  0.4.0
FreeBASIC documentation tool
fbdoc_emit_gtk.bas
Go to the documentation of this file.
1 
28 
29 #INCLUDE ONCE "fbdoc_options.bi"
30 #INCLUDE ONCE "fbdoc_version.bi"
31 
32 
33 CONST _
34  SINCE = NL & "Since: 0.0", _
35  GTK_START = "/'* ", _
36  GTK_END = NL & _
37  NL & TOFIX & _
38  NL & SINCE & _
39  NL & COMM_END
40 
41 
42 
50 SUB gtk_emit_Name CDECL(BYVAL P AS Parser PTR)
51  WITH *P '&Parser* P;
52  IF .NamTok THEN Code(NL & "@" & P->SubStr(P->NamTok) & ": " & TOFIX)
53  END WITH
54 END SUB
55 
56 
57 
65 SUB gtk_defi_ CDECL(BYVAL P AS Parser PTR)
66  WITH *P '&Parser* P;
67  emit_source(P, .StaTok[1])
68  Code(GTK_START & .SubStr(.NamTok) & ":" & GTK_END)
69  END WITH
70 END SUB
71 
72 
73 
81 SUB gtk_decl_ CDECL(BYVAL P AS Parser PTR)
82  WITH *P '&Parser* P;
83  IF 0 = .ListCount THEN
84  emit_source(P, .Tk1[1])
85  Code(GTK_START & .SubStr(.NamTok) & ":")
86  END IF
87 
88  IF 0 = .FunTok THEN gtk_emit_Name(P) _
89  ELSE IF .ParTok THEN .parseListPara(@gtk_emit_Name())
90 
91  IF *.CurTok > .TOK_EOS THEN EXIT SUB
92  Code(GTK_END)
93 
94  IF 0 = .FunTok THEN EXIT SUB
95  Code("'' " & PROJ_NAME & "-hint: consider to document the functions body instead." & NL)
96  END WITH
97 END SUB
98 
99 
100 
109 SUB gtk_func_ CDECL(BYVAL P AS Parser PTR) ' !!! ToDo member functions
110  WITH *P '&Parser* P;
111  VAR t = .TypTok
112  emit_source(P, .StaTok[1])
113  Code(GTK_START & .SubStr(.NamTok) & ":")
114  IF .ParTok THEN .parseListPara(@gtk_emit_Name())
115 
116  Code( _
117  NL & _
118  NL & TOFIX)
119  IF t THEN Code( _
120  NL & _
121  NL & "Returns: " & TOFIX)
122  Code( SINCE & _
123  NL & COMM_END)
124  END WITH
125 END SUB
126 
127 
128 
136 SUB gtk_emitBlockNames CDECL(BYVAL P AS Parser PTR)
137  WITH *P '&Parser* P;
138  SELECT CASE AS CONST *.Tk1
139  CASE .TOK_PRIV, .TOK_PROT ': .SrcBgn = 0 ' !!! ToDo: hide private?
140  CASE .TOK_PUBL ': .SrcBgn = 1
141  CASE .TOK_CLAS, .TOK_TYPE, .TOK_UNIO
143  CASE .TOK_ENUM
145  CASE ELSE : IF 0 = .NamTok THEN EXIT SUB
146  gtk_emit_Name(P)
147  END SELECT
148  END WITH
149 END SUB
150 
151 
152 
160 SUB gtk_Block CDECL(BYVAL P AS Parser PTR)
161  WITH *P '&Parser* P;
162  emit_source(P, .StaTok[1])
163  Code( GTK_START)
164  IF LEN(.BlockNam) THEN Code(.BlockNam & ":")
165 
166  SELECT CASE AS CONST *.Tk1
167  CASE .TOK_ENUM : .parseBlockEnum(@gtk_emit_Name())
168  CASE ELSE : .parseBlockTyUn(@gtk_emitBlockNames())
169  END SELECT
170 
171  Code(GTK_END)
172  END WITH
173 END SUB
174 
175 
176 
184 SUB gtk_empty CDECL(BYVAL P AS Parser PTR)
185  WITH *P '&Parser* P;
186  Code( GTK_START & _
187  "SECTION: " & TOFIX & _
188  NL & "@short_description: " & TOFIX & _
189  NL & "@title: " & TOFIX & _
190  NL & "@section_id: " & TOFIX & _
191  NL & "@see_also: " & TOFIX & _
192  NL & "@stability: " & TOFIX & _
193  NL & "@include: " & TOFIX & _
194  NL & "@image: " & TOFIX & _
195  GTK_END & _
196  NL)
197  END WITH
198 END SUB
199 
200 
201 
202 
209 SUB init_gtk(BYVAL Emi AS EmitterIF PTR)
210  WITH *Emi
211  .Error_ = @emit_error()
212 
213  .Func_ = @gtk_func_()
214  .Decl_ = @gtk_decl_()
215  .Defi_ = @gtk_defi_()
216  .Enum_ = @gtk_Block()
217  .Unio_ = @gtk_Block()
218  .Clas_ = @gtk_Block()
219  .Init_ = @geany_init()
220  .Exit_ = @geany_exit()
221  .Empty_ = @gtk_empty()
222  END WITH
223 END SUB
224 
225