esnacc - ASN.1 compiler which generates C/C++ code suitable for
encoding/decoding BER and PER
] [ -p
] [ -C
] [-T table file
] [-I include directory
] [ -mf
[-l negative number
-a start number
[ASN.1 File List].SH "DESCRIPTION"
is an enhanced version of the Sample Neufeld ASN.1 C Compiler. It
takes ASN.1 formatted sources and produces C or C++ source code for BER encode
and decode routines as well as print and free routines for each type in the
given ASN.1 modules. Alternatively, esnacc can produce type tables that can be
used for table based/intepreted encoding and decoding. The type table based
methods tend to be slower than their C or C++ counterparts, but they usually
use less memory (table size vs. object code)
Most of the 1990 ASN.1 features are parsed although some do not affect the
generated code. Fairly rigorous error checking is performed on the ASN.1
source; any errors detected will be reported (printed to stderr).
Each file in the ASN.1 file list should contain a complete ASN.1 module. ASN.1
modules that use IMPORTS feature will be compiled together. The generated
source files will include each module's header file in command line order.
This means it is important to order the modules from least dependent to most
dependent on the command line to avoid type ordering problems. Currently,
esnacc assumes that each ASN.1 file given on the command line depends on all
of the others from the command line. No attempt is made to only include the
header files from modules referenced in the import list for that module.
If the target language is C, esnacc generates .c and .h files. If the target
language is C++, esnacc generates .cpp and .h files.
Prints a synopsis of esnacc and
Enhanced SNACC was originally written by Michael Sample, but has since been
modified by numerous contributors.
Copyright © 2016 Aaron Conole