086c904820229842e1c645bc6aa3964ab22f9321
[robodoc.git] / Source / robodoc.h
1 #ifndef ROBODOC_ROBODOC_H
2 #define ROBODOC_ROBODOC_H
3
4 /*
5 Copyright (C) 1994-2007  Frans Slothouber, Jacco van Weert, Petteri Kettunen,
6 Bernd Koesling, Thomas Aglassinger, Anthon Pang, Stefan Kost, David Druffner,
7 Sasha Vasko, Kai Hofmann, Thierry Pierron, Friedrich Haase, and Gergely Budai.
8
9 This file is part of ROBODoc
10
11 ROBODoc is free software; you can redistribute it and/or modify
12 it under the terms of the GNU General Public License as published by
13 the Free Software Foundation; either version 3 of the License, or
14 (at your option) any later version.
15
16 This program is distributed in the hope that it will be useful,
17 but WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19 GNU General Public License for more details.
20
21 You should have received a copy of the GNU General Public License
22 along with this program.  If not, see <http://www.gnu.org/licenses/>.
23
24 */
25
26 #ifdef HAVE_CONFIG_H
27 #include "config.h"
28 #endif
29
30 #ifndef VERSION
31 #define VERSION "4.99.36"
32 #endif
33
34 #define COMMENT_ROBODOC \
35     "Generated with ROBODoc Version " VERSION " (" __DATE__ ")\n"
36 #define COMMENT_COPYRIGHT\
37     "ROBODoc (c) 1994-2007 by Frans Slothouber and many others.\n"
38
39 // Semaphore bits for actions
40 typedef struct actions_s
41 {
42     // General options
43     int                 do_nosort:1;
44     int                 do_nodesc:1;
45     int                 do_toc:1;
46     int                 do_include_internal:1;
47     int                 do_internal_only:1;
48     int                 do_tell:1;
49     int                 do_index:1;
50     int                 do_nosource:1;
51     int                 do_robo_head:1;
52     int                 do_sections:1;
53     int                 do_lockheader:1;
54     int                 do_footless:1;
55     int                 do_headless:1;
56     int                 do_nopre:1;
57     int                 do_ignore_case_when_linking:1;
58     int                 do_nogenwith:1;
59     int                 do_sectionnameonly:1;
60     int                 do_verbal:1;
61     int                 do_ms_errors:1;
62
63     // Document modes
64     int                 do_singledoc:1;
65     int                 do_multidoc:1;
66     int                 do_singlefile:1;
67     int                 do_one_file_per_header:1;
68     int                 do_no_subdirectories:1;
69
70     // Latex options
71     int                 do_altlatex:1;
72     int                 do_latexparts:1;
73
74     // Syntax coloring
75     int                 do_quotes:1;
76     int                 do_squotes:1;
77     int                 do_line_comments:1;
78     int                 do_block_comments:1;
79     int                 do_keywords:1;
80     int                 do_non_alpha:1;
81
82 } actions_t;
83
84 /* RB_Say modes */
85 #define SAY_DEBUG            (1<<0)
86 #define SAY_INFO             (1<<1)
87
88
89 /* Output Modes */
90
91 /****t* Generator/T_RB_DocType
92  * FUNCTION
93  *   Enumeration for the various output formats that are
94  *   supported by ROBODoc.
95  * NOTES
96  *   These should be prefixed with RB_ 
97  * SOURCE
98  */
99
100 typedef enum
101 {
102     TEST = 1,                   /* Special output mode for testing */
103     ASCII,
104     HTML,
105     LATEX,
106     RTF,
107     TROFF,
108     XMLDOCBOOK,
109     /* SIZE_MODES, */
110     /* Reserved for Future Use */
111     /* ANSI, */
112     /* GNUINFO, */
113     /* XML, */
114     UNKNOWN
115 } T_RB_DocType;
116
117 /*****/
118
119
120 #define USE( x ) ( x = x );
121
122 /* Evil macros !! */
123 #define skip_while(cond) { for (;*cur_char && (cond);cur_char++) ; }
124 #define find_eol   { for (;*cur_char && *cur_char!='\n';cur_char++) ; }
125 #define find_quote { for (;*cur_char && *cur_char!='\"';cur_char++) ; }
126
127 #ifndef FALSE
128 #define FALSE 0
129 #endif
130
131 #ifndef TRUE
132 #define TRUE  1
133 #endif
134
135 /* Prototypes */
136
137 actions_t           No_Actions(
138     void );
139
140 #endif /* ROBODOC_ROBODOC_H */
141