1 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
3 <refentry id="yaz-comp">
6 <refentrytitle>yaz-comp</refentrytitle>
7 <manvolnum>1</manvolnum>
11 <refname>yaz-comp</refname>
12 <refpurpose>YAZ ASN.1 compiler</refpurpose>
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>
30 <refsect1><title>DESCRIPTION</title>
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.
38 <title>OPTIONS</title>
40 <varlistentry><term><literal>-v </literal>
44 Makes the ASN.1 compiler print more verbose about the
45 various stages of operations.
50 <varlistentry><term><literal>-c </literal>
51 <replaceable>cfile</replaceable></term>
53 Specifies the name of the C/C++ file with encoders/decoders.
54 </para></listitem></varlistentry>
56 <varlistentry><term><literal>-c </literal>
57 <replaceable>cfile</replaceable></term>
59 Specifies the name of the C/C++ file with encoders/decoders.
60 </para></listitem></varlistentry>
62 <varlistentry><term><literal>-c </literal>
63 <replaceable>cfile</replaceable></term>
65 Specifies the name of the C/C++ file with encoders/decoders.
66 </para></listitem></varlistentry>
68 <varlistentry><term><literal>-h </literal>
69 <replaceable>hfile</replaceable></term>
71 Specifies the name of header file with definitions.
72 </para></listitem></varlistentry>
74 <varlistentry><term><literal>-p </literal>
75 <replaceable>pfile</replaceable></term>
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>
82 <varlistentry><term><literal>-d </literal>
83 <replaceable>dfile</replaceable></term>
85 Specifies the name of a definitions file.
86 </para></listitem></varlistentry>
88 <varlistentry><term><literal>-I </literal>
89 <replaceable>iout</replaceable></term>
91 Specifies first part of directory in which header files
93 </para></listitem></varlistentry>
95 <varlistentry><term><literal>-i </literal>
96 <replaceable>idir</replaceable></term>
98 Specifies second part of directory in which header files
100 </para></listitem></varlistentry>
102 <varlistentry><term><literal>-m </literal>
103 <replaceable>module</replaceable></term>
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>
112 <refsect1><title>DEFINITIONS FILE</title>
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:
121 <literal>set</literal> <replaceable>name</replaceable> <replaceable>value</replaceable>
124 Available variables are:
127 <varlistentry><term><literal>default-prefix</literal></term>
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>
134 <varlistentry><term><literal>prefix(</literal><replaceable>module</replaceable><literal>)</literal></term>
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>
141 <varlistentry><term><literal>filename(</literal><replaceable>module</replaceable><literal>)</literal></term>
143 Specifies filename for C/header file for module
144 <replaceable>module</replaceable>.
145 </para></listitem></varlistentry>
147 <varlistentry><term><literal>init(</literal><replaceable>module</replaceable><literal>,h)</literal></term>
149 Code fragment to be put in first part of public header for module
150 <replaceable>module</replaceable>.
151 </para></listitem></varlistentry>
153 <varlistentry><term><literal>body(</literal><replaceable>module</replaceable><literal>,h)</literal></term>
155 Code fragment to be put in last part of public header for module
156 <replaceable>module</replaceable> (trailer).
157 </para></listitem></varlistentry>
159 <varlistentry><term><literal>init(</literal><replaceable>module</replaceable><literal>,c)</literal></term>
161 Code fragment to be put in first part of C encoder/decoder for
162 module <replaceable>module</replaceable>.
163 </para></listitem></varlistentry>
165 <varlistentry><term><literal>body(</literal><replaceable>module</replaceable><literal>,c)</literal></term>
167 Code fragment to be put in last part of C encoder/decoder for
168 module <replaceable>module</replaceable> (trailer).
169 </para></listitem></varlistentry>
171 <varlistentry><term><literal>map(</literal><replaceable>module</replaceable><literal>,</literal><replaceable>name</replaceable><literal>)</literal></term>
173 Maps ASN.1 type in module <replaceable>module</replaceable>
174 of <replaceable>name</replaceable> to value.
175 </para></listitem></varlistentry>
177 <varlistentry><term><literal>membermap(</literal><replaceable>module</replaceable><literal>,</literal><replaceable>name</replaceable><literal>,</literal><replaceable>member</replaceable><literal>)</literal></term>
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>
184 <varlistentry><term><literal>unionmap(</literal><replaceable>module</replaceable><literal>,</literal><replaceable>name</replaceable><literal>,</literal><replaceable>member</replaceable><literal>)</literal></term>
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>
195 <refsect1><title>FILES</title>
197 <filename>/usr/share/yaz/z39.50/z.tcl</filename>
200 <filename>/usr/share/yaz/z39.50/*.asn</filename>
203 <refsect1><title>SEE ALSO</title>
206 <refentrytitle>yaz</refentrytitle>
207 <manvolnum>7</manvolnum></citerefentry>
210 Section "Generic server" in the YAZ manual.
215 <!-- Keep this comment at the end of the file
220 sgml-minimize-attributes:nil
221 sgml-always-quote-attributes:t
224 sgml-parent-document:nil
225 sgml-local-catalogs: nil
226 sgml-namecase-general:t