Manual page for yaz-comp
[yaz-moved-to-github.git] / doc / yaz-comp.sgml
1 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
2 ]>
3 <refentry id="yaz-comp">
4  
5  <refmeta>
6   <refentrytitle>yaz-comp</refentrytitle>
7   <manvolnum>1</manvolnum>
8  </refmeta>
9  
10  <refnamediv>
11   <refname>yaz-comp</refname>
12   <refpurpose>YAZ ASN.1 compiler</refpurpose>
13  </refnamediv>
14  
15  <refsynopsisdiv>
16   <cmdsynopsis>
17    <command>yaz-comp</command>
18    <arg choice="opt"><option>-v</option></arg>
19    <arg choice="opt"><option>-c <replaceable>cfile</replaceable></option></arg>
20    <arg choice="opt"><option>-h <replaceable>hfile</replaceable></option></arg>
21    <arg choice="opt"><option>-p <replaceable>pfile</replaceable></option></arg>
22    <arg choice="opt"><option>-d <replaceable>config</replaceable></option></arg>
23    <arg choice="opt"><option>-I <replaceable>includeout</replaceable></option></arg>
24    <arg choice="opt"><option>-i <replaceable>includedir</replaceable></option></arg>
25    <arg choice="opt"><option>-m <replaceable>module</replaceable></option></arg>
26    <arg choice="opt">asn-file</arg>
27   </cmdsynopsis>
28   
29  </refsynopsisdiv>
30   <refsect1><title>DESCRIPTION</title>
31    <para>
32      <command>yaz-comp</command> is an ASN.1 compiler that
33       reads an ASN.1 specification and produces C/C++ definitions
34        and encoders/decoders for it.
35    </para>
36   </refsect1>
37     <refsect1>
38      <title>OPTIONS</title>
39    <variablelist>
40  <varlistentry><term><literal>-v </literal>
41  </term>
42   <listitem>
43     <para>
44       Makes the ASN.1 compiler print more verbose about the
45       various stages of operations. 
46       </para>
47      </listitem>
48    </varlistentry>
49    
50  <varlistentry><term><literal>-c </literal>
51    <replaceable>cfile</replaceable></term>
52   <listitem><para>
53     Specifies the name of the C/C++ file with encoders/decoders.
54    </para></listitem></varlistentry>
55
56  <varlistentry><term><literal>-c </literal>
57    <replaceable>cfile</replaceable></term>
58   <listitem><para>
59     Specifies the name of the C/C++ file with encoders/decoders.
60    </para></listitem></varlistentry>
61
62  <varlistentry><term><literal>-c </literal>
63    <replaceable>cfile</replaceable></term>
64   <listitem><para>
65     Specifies the name of the C/C++ file with encoders/decoders.
66    </para></listitem></varlistentry>
67
68  <varlistentry><term><literal>-h </literal>
69    <replaceable>hfile</replaceable></term>
70   <listitem><para>
71     Specifies the name of header file with definitions.
72    </para></listitem></varlistentry>
73
74  <varlistentry><term><literal>-p </literal>
75    <replaceable>pfile</replaceable></term>
76   <listitem><para>
77     Specifies the name of the a private header file with
78     definitions. By default all definitions are put
79     in header file (option -h).
80    </para></listitem></varlistentry>
81
82  <varlistentry><term><literal>-d </literal>
83    <replaceable>dfile</replaceable></term>
84   <listitem><para>
85     Specifies the name of a definitions file.
86    </para></listitem></varlistentry>
87
88  <varlistentry><term><literal>-I </literal>
89    <replaceable>iout</replaceable></term>
90   <listitem><para>
91     Specifies first part of directory in which header files
92     are written.
93    </para></listitem></varlistentry>
94
95  <varlistentry><term><literal>-i </literal>
96    <replaceable>idir</replaceable></term>
97   <listitem><para>
98     Specifies second part of directory in which header files
99     are written.
100    </para></listitem></varlistentry>
101
102  <varlistentry><term><literal>-m </literal>
103    <replaceable>module</replaceable></term>
104   <listitem><para>
105     Specifies that ASN.1 compiler should only process the
106     module given. If this option is not specified,
107     all modules in the ASN.1 file are processed.
108    </para></listitem></varlistentry>
109
110    </variablelist>
111   </refsect1>
112   <refsect1><title>DEFINITIONS FILE</title>
113   <para>
114   The definitions file is really a Tcl script but follows
115   traditional rules for Shell like configuration files.
116   That is # denotes the beginning of a comment. Definitions
117   are line oriented. The definitions files usually consists of
118   a series of variable assignments of the form:
119   </para>
120   <para>
121    <literal>set</literal> <replaceable>name</replaceable> <replaceable>value</replaceable>
122   </para>
123   <para>
124   Available variables are:
125   <variablelist>
126
127  <varlistentry><term><literal>default-prefix</literal></term>
128   <listitem><para>
129    Sets prefix for names in the produced output.
130    The value consists of three tokens: C function prefix,
131    C typedef prefix and preprocessor prefix respectively.
132    </para></listitem></varlistentry>
133
134  <varlistentry><term><literal>prefix(</literal><replaceable>module</replaceable><literal>)</literal></term>
135   <listitem><para>
136   This value sets prefix values for module
137   <replaceable>module</replaceable>.
138   The value has same form as <literal>default-prefix</literal>.
139    </para></listitem></varlistentry>
140
141  <varlistentry><term><literal>filename(</literal><replaceable>module</replaceable><literal>)</literal></term>
142   <listitem><para>
143   Specifies filename for C/header file for module
144   <replaceable>module</replaceable>.
145    </para></listitem></varlistentry>
146
147  <varlistentry><term><literal>init(</literal><replaceable>module</replaceable><literal>,h)</literal></term>
148   <listitem><para>
149   Code fragment to be put in first part of public header for module 
150     <replaceable>module</replaceable>.
151    </para></listitem></varlistentry>
152
153  <varlistentry><term><literal>body(</literal><replaceable>module</replaceable><literal>,h)</literal></term>
154   <listitem><para>
155   Code fragment to be put in last part of public header for module 
156     <replaceable>module</replaceable> (trailer).
157    </para></listitem></varlistentry>
158
159  <varlistentry><term><literal>init(</literal><replaceable>module</replaceable><literal>,c)</literal></term>
160   <listitem><para>
161   Code fragment to be put in first part of C encoder/decoder for
162   module <replaceable>module</replaceable>.
163    </para></listitem></varlistentry>
164
165  <varlistentry><term><literal>body(</literal><replaceable>module</replaceable><literal>,c)</literal></term>
166   <listitem><para>
167   Code fragment to be put in last part of C encoder/decoder for
168   module <replaceable>module</replaceable> (trailer).
169    </para></listitem></varlistentry>
170
171  <varlistentry><term><literal>map(</literal><replaceable>module</replaceable><literal>,</literal><replaceable>name</replaceable><literal>)</literal></term>
172   <listitem><para>
173   Maps ASN.1 type in module <replaceable>module</replaceable> 
174   of <replaceable>name</replaceable> to value.
175    </para></listitem></varlistentry>
176
177  <varlistentry><term><literal>membermap(</literal><replaceable>module</replaceable><literal>,</literal><replaceable>name</replaceable><literal>,</literal><replaceable>member</replaceable><literal>)</literal></term>
178   <listitem><para>
179   Maps member <replaceable>member</replaceable> in SEQUENCE of
180   <replaceable>name</replaceable> in module
181   <replaceable>module</replaceable> to value.
182    </para></listitem></varlistentry>
183
184  <varlistentry><term><literal>unionmap(</literal><replaceable>module</replaceable><literal>,</literal><replaceable>name</replaceable><literal>,</literal><replaceable>member</replaceable><literal>)</literal></term>
185   <listitem><para>
186   Maps member <replaceable>member</replaceable> in CHOICE of
187   <replaceable>name</replaceable> in module
188   <replaceable>module</replaceable> to value.
189   Value consists of three tokens.
190    </para></listitem></varlistentry>
191
192   </variablelist>
193   </para>
194   </refsect1>
195   <refsect1><title>FILES</title>
196    <para>
197     <filename>/usr/share/yaz/z39.50/z.tcl</filename>
198    </para>
199    <para>
200     <filename>/usr/share/yaz/z39.50/*.asn</filename>
201    </para>
202   </refsect1>
203   <refsect1><title>SEE ALSO</title>
204    <para>
205     <citerefentry>
206      <refentrytitle>yaz</refentrytitle>
207      <manvolnum>7</manvolnum></citerefentry>
208    </para>
209    <para>
210     Section "Generic server" in the YAZ manual.
211    </para>
212   </refsect1>
213 </refentry>
214
215 <!-- Keep this comment at the end of the file
216 Local variables:
217 mode: sgml
218 sgml-omittag:t
219 sgml-shorttag:t
220 sgml-minimize-attributes:nil
221 sgml-always-quote-attributes:t
222 sgml-indent-step:1
223 sgml-indent-data:t
224 sgml-parent-document:nil
225 sgml-local-catalogs: nil
226 sgml-namecase-general:t
227 End:
228 -->