X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=doc%2Fyaz-asncomp-man.xml;fp=doc%2Fyaz-asncomp-man.xml;h=f39207fd4255f13098639248ecb668a94a70274e;hb=c6e47cbbff56f39f6d81b079ebaeac41d793d4d9;hp=0000000000000000000000000000000000000000;hpb=c71d717ada2a9ef730d527f161eb5ba9aa641a9f;p=yaz-moved-to-github.git diff --git a/doc/yaz-asncomp-man.xml b/doc/yaz-asncomp-man.xml new file mode 100644 index 0000000..f39207f --- /dev/null +++ b/doc/yaz-asncomp-man.xml @@ -0,0 +1,254 @@ + + + + + yaz-asncomp + 1 + + + + yaz-asncomp + YAZ ASN.1 compiler + + + + + yaz-asncomp + + + + + + + + + filename + + + + DESCRIPTION + + yaz-asncomp is an ASN.1 compiler that + reads an ASN.1 specification in filename + 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 DEFINISIONS 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 consists 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 prefix 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 + module. + + + + 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 to 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. + + + + +