fb-doc
0.4.0
FreeBASIC documentation tool
fbdoc_main.bas
Go to the documentation of this file.
1
7
8
#INCLUDE ONCE
"
fbdoc_options.bi
"
9
#INCLUDE ONCE
"
fbdoc_version.bi
"
10
#INCLUDE ONCE
"
fbdoc_emit_lfn.bi
"
11
12
13
14
#DEFINE
MSG_HELP _
15
"Command line tool for generating documentation from FreeBASIC source code."
& NL & NL & _
16
"Usage"
& NL & _
17
" "
& FBDOC_BINARY &
" [Options] [file specs]"
& NL & NL & _
18
"Options:"
& NL & _
19
" -h (--help) : print this help text and stop"
& NL & _
20
" -v (--version) : print version information and stop"
& NL & _
21
" none : file in --> STDOUT"
& NL & _
22
" -f (--file-mode) : file in --> file out"
& NL & _
23
" -g (--geany-mode) : STDIN --> STDOUT"
& NL & _
24
" -l (--list-mode) : Doxgfile inputs --> fb-doc.lfn"
& NL & _
25
" -s (--syntax-mode) : scan doxygen output, repair syntax highlighting"
& NL & _
26
" -a (--asterix) : prepend '* ' in ML comments (gtk-doc style)"
& NL & _
27
" -c (--cstyle) : emit real C types"
& NL & _
28
" -d (--doc-comment) : force documentational comments in listings"
& NL & _
29
" -e (--emitter) : specify emitter name"
& NL & _
30
" -o (--outpath) : specify output directory"
& NL & _
31
" -r (--recursiv) : scan input files also in subfolders"
& NL & _
32
" -t (--tree) : scan source tree (follow #INCLUDEs)"
& NL & _
33
"Examples:"
& NL & _
34
" "
& FBDOC_BINARY &
" --geany-mode"
& NL & _
35
" Get input from STDIN, prepend a matching comment block, emit to STDOUT"
& NL & _
36
" (emits gtk-doc templates for ENUM, UNION, TYPE, SUB, FUNCTION, PROPERTY)"
& NL & _
37
" "
& FBDOC_BINARY &
" -f -t MyProject.bas"
& NL & _
38
" Load MyProject.bas from current folder and follow source tree"
& NL & _
39
" emit pseudo C code in ../c_src"
& NL & _
40
"For details see file 'ReadMe.txt' or visit:"
& NL & _
41
" http://www.freebasic.net/forum/viewtopic.php?f=8&t=19810 (en)"
& NL
42
43
44
#DEFINE
MSG_WELCOME _
45
"version "
& PROJ_VERS &
", License GPLv3"
& NL & _
46
" Copyright (C) 2012-"
& PROJ_YEAR &
" by "
& PROJ_MAIL & NL
47
48
49
#DEFINE
MSG_VERSION _
50
" Compiled: "
&
__DATE__
&
", "
&
__TIME__
&
" for "
& _
51
FBDOC_TARGET &
". ("
&
__FB_SIGNATURE__
&
")"
& NL
52
53
#IFDEF __FB_UNIX__
54
55
#DEFINE
FBDOC_TARGET
"UNIX/LINUX"
56
57
#DEFINE
FBDOC_BINARY PROJ_NAME
58
#ELSE
59
'&/*
60
#DEFINE
FBDOC_TARGET
"win/dos"
61
#DEFINE
FBDOC_BINARY PROJ_NAME &
".exe"
62
'&*/
63
#ENDIF
64
65
66
73
'&int main () { /* dummy function and calls for Doxygen */
74
'&Parser.StdIn(); Options.FileModi()
75
76
OPT =
NEW
Options
()
77
WITH
*.OPT
78
IF
.Efnr
THEN
79
SELECT CASE
AS CONST
.parseCLI()
80
CASE
.ERROR_MESSAGE : ERROUT(
"Invalid command line ("
&
MID
(.Errr, 3) &
")"
)
81
CASE
.HELP_MESSAGE : ERROUT(MSG_WELCOME & MSG_HELP)
82
CASE
.VERSION_MESSAGE : ERROUT(MSG_WELCOME & MSG_VERSION)
83
CASE
.GEANY_MODE
84
.InTree = 0
' ignore user setting
85
.Ocha =
FREEFILE
86
OPEN CONS FOR OUTPUT
AS
#.Ocha
87
IF
.EmitIF->CTOR_
THEN
.EmitIF->CTOR_(OPT)
88
.Pars->
StdIn
()
89
IF
.EmitIF->DTOR_
THEN
.EmitIF->DTOR_(OPT)
90
CLOSE
#.Ocha
91
CASE ELSE
92
.
FileModi
()
93
END SELECT
94
DELETE
.EmitIF
95
END IF
96
END WITH
97
98
DELETE
OPT
99
100
'&}
101
src
bas
fbdoc_main.bas
Generated on Tue Nov 22 2016 17:50:33 for fb-doc by
1.8.11