Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
YAZ-ASNCOMP(1)			    Commands			  YAZ-ASNCOMP(1)

NAME
     yaz-asncomp - YAZ ASN.1 compiler

SYNOPSIS
     yaz-asncomp  [-v] [-c cfile] [-h hfile] [-p pfile] [-d config] [-I include-
		 out] [-i includedir] [-m module] [filename]

DESCRIPTION
     yaz-asncomp is an ASN.1 compiler that reads an ASN.1 specification in file-
     name and produces C/C++ definitions and BER encoders/decoders for it.

     The produced C/C++ code and header files uses the ODR module of  YAZ  which
     is  a library that encodes/decodes/prints BER packages.  yaz-asncomp allows
     you to specify name of resulting source via options. Alternatively, you can
     specify a DEFINITIONS file, which provides customized output to many output
     files - if the ASN.1 specification file consists of many modules.

     This utility is written in Tcl. Any version of Tcl should work.

OPTIONS
     -v
	 Makes the ASN.1 compiler print more verbose about the various stages of
	 operations.

     -c cfile
	 Specifies the name of the C/C++ file with encoders/decoders.

     -h hfile
	 Specifies the name of header file with definitions.

     -p pfile
	 Specifies the name of the a private header file  with	definitions.  By
	 default all definitions are put in header file (option -h).

     -d dfile
	 Specifies the name of a definitions file.

     -I iout
	 Specifies first part of directory in which header files are written.

     -i idir
	 Specifies second part of directory in which header files are written.

     -m module
	 Specifies  that ASN.1 compiler should only process the module given. If
	 this option is not  specified,  all  modules  in  the	ASN.1  file  are
	 processed.

DEFINITIONS FILE
     The  definitions  file is really a Tcl script but follows traditional rules
     for Shell like configuration files. That is # denotes the	beginning  of  a
     comment.  Definitions are line oriented. The definitions files usually con-
     sist of a series of variable assignments of the form:

     set name value

     Available variables are:

     default-prefix
	 Sets prefix for names in the produced output.	The  value  consists  of
	 three tokens: C function prefix, C typedef prefix and preprocessor pre-
	 fix respectively.

     prefix(module)
	 This  value  sets  prefix  values for module module. The value has same
	 form as default-prefix.

     filename(module)
	 Specifies filename for C/header file for module module.

     init(module,h)
	 Code fragment to be put in first part of public header for module  mod-
	 ule.

     body(module,h)
	 Code fragment to be put in last part of public header for module module
	 (trailer).

     init(module,c)
	 Code  fragment  to  be put in first part of C based encoder/decoder for
	 module module.

     body(module,c)
	 Code fragment to be put in last part of  C  based  encoder/decoder  for
	 module module (trailer).

     map(module,name)
	 Maps ASN.1 type in module module of name to value.

     membermap(module,name,member)
	 Maps  member  member  in  SEQUENCE/CHOICE  of	name in module module to
	 value. The value consists of one or two tokens. First token is name  of
	 C preprocessor part. Second token is resulting C member name. If second
	 token	is omitted the value (one token) is both preprocessor part and C
	 struct,union.

     unionmap(module,name,member)
	 Maps member member in CHOICE of name in module module to  value.  Value
	 consists of two or three tokens. The first token is name of the integer
	 in  the union that is used as selector for the union itself. The second
	 token is name of the union. The third token overrides the name  of  the
	 CHOICE member; if omitted the member name is used.

FILES
     /usr/share/yaz/z39.50/z.tcl

     /usr/share/yaz/z39.50/*.asn

SEE ALSO
     yaz(7)

     Section "The ODR Module" in the YAZ manual.

AUTHORS
     Index Data

YAZ 5.35.0			   04/10/2025			  YAZ-ASNCOMP(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=yaz-asncomp&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help