DragonFly On-Line Manual Pages
ASN1C(1) ASN.1 Compiler ASN1C(1)
NAME
asn1c - ASN.1 Compiler
SYNOPSIS
asn1c [-E [-F] | -P | -R]
[-Sdir] [-X]
[-Wdebug-...] [-foption] [-gen-option] [-pdu={all|auto|Type}]
[-print-option]
infile...
DESCRIPTION
asn1c compiles ASN.1 specifications into a set of target language
(C/C++) encoders and decoders for BER, DER, PER, XER and other encoding
rules.
OPTIONS
Overall Options
-E -F -P -R -S directory -X
Warning Options
-Werror -Wdebug-lexer -Wdebug-fixer -Wdebug-compiler
Language Options
-fbless-SIZE -fcompound-names -findirect-choice
-fknown-extern-type=<name> -fnative-types -fno-constraints -fno-
include-deps -funnamed-unions -fskeletons-copy
Codecs Generation Options
-gen-PER -pdu={all|auto|Type}
Output Options
-print-constraints -print-lines
OVERALL OPTIONS
-E Stop after the parsing stage and print the reconstructed ASN.1
specification code to the standard output.
-F Used together with -E, instructs the compiler to stop after the
ASN.1 syntax tree fixing stage and dump the reconstructed ASN.1
specification to the standard output.
-P Dump the compiled output to the standard output instead of
creating the target language files on disk.
-R Restrict the compiler to generate only the ASN.1 tables,
omitting the usual support code.
-S directory
Use the specified directory with ASN.1 skeleton files.
-X Generate an XML DTD schema for the specified ASN.1 files.
WARNING OPTIONS
-Werror
Treat warnings as errors; abort if any warning is produced.
-Wdebug-lexer
Enable lexer debugging during the ASN.1 parsing stage.
-Wdebug-fixer
Enable ASN.1 syntax tree fixer debugging during the fixing
stage.
-Wdebug-compiler
Enable debugging during the actual compile time.
LANGUAGE OPTIONS
-fbless-SIZE
Allow SIZE() constraint for INTEGER, ENUMERATED, and other types
for which this constraint is normally prohibited by the
standard. This is a violation of ASN.1 standard, and the
compiler may fail to produce a meaningful code.
-fcompound-names
Using this option prevents name collisions in the target source
code by using complex names for target language structures.
(Name collisions may occur if the ASN.1 module reuses the same
identifiers in multiple contexts).
-findirect-choice
When generating code for a CHOICE type, compile the CHOICE
members as indirect pointers instead of declaring them inline.
Consider using this option together with -fno-include-deps to
prevent circular references.
-fknown-extern-type=<name>
Pretend the specified type is known. The compiler will assume
the target language source files for the given type have been
provided manually.
-fnative-types
Use the native machine's data types (int, double) whenever
possible, instead of the compound INTEGER_t, ENUMERATED_t and
REAL_t types.
-fno-constraints
Do not generate ASN.1 subtype constraint checking code. This may
make a shorter executable.
-fno-include-deps
Do not generate courtesy #include lines for non-critical type
dependencies. Helps prevent namespace collisions.
-funnamed-unions
Enable unnamed unions in the definitions of target language's
structures.
-fskeletons-copy
Copy support files (skeletons) rather than symlink them.
CODECS GENERATION OPTIONS
-gen-PER
Generate Packed Encoding Rules (PER) support code.
-pdu={all|auto|Type}
Create a PDU table for specified types, or discover Protocol
Data Units automatically. In case of -pdu=all, all ASN.1 types
defined in all modules will form a PDU table. In case of
-pdu=auto, all types not referenced by any other type will form
a PDU table. If Type is an ASN.1 type identifier, it is added
to a PDU table. The last form may be specified multiple times
to add any number of PDUs.
OUTPUT OPTIONS
-print-constraints
When -EF are also specified, this option forces the compiler to
explain its internal understanding of subtype constraints.
-print-lines
Generate "-- #line" comments in -E output.
SEE ALSO
unber(1), enber(1)
AUTHORS
Lev Walkin <vlm@lionet.info>
ASN.1 Compiler ASN1C(1)