.\" Automatically generated by Pandoc 1.16.0.2
.\"
.ad l
.TH "asn1c" "1" "2016\-01\-23" "ASN.1 Compiler" "Version 0.9.28"
.nh \" Turn off hyphenation by default.
.SH NAME
.PP
asn1c \-\- the ASN.1 Compiler
.SH SYNOPSIS
.PP
asn1c [\f[B]\-E\f[] [\f[B]\-F\f[]] | \f[B]\-P\f[] | \f[B]\-R\f[]]
.PD 0
.P
.PD
[\f[B]\-S\f[]\f[I]dir\f[]] [\f[B]\-X\f[]]
.PD 0
.P
.PD
[\f[B]\-W\f[]\f[I]debug\-\f[]...] [\f[B]\-f\f[]\f[I]option\f[]]
[\f[B]\-gen\-\f[]\f[I]option\f[]]
[\f[B]\-pdu\f[]={\f[B]all\f[]|\f[B]auto\f[]|\f[I]Type\f[]}]
.PD 0
.P
.PD
[\f[B]\-print\-\f[]\f[I]option\f[]]
.PD 0
.P
.PD
\f[I]input\-filenames\f[]...
.SH DESCRIPTION
.PP
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.
.SH OPTIONS
.SS Stage Selection Options
.TP
.B \-E
Run the parsing stage only.
Print the reconstructed ASN.1 text.
.RS
.RE
.TP
.B \-F
Used together with \f[B]\-E\f[], instructs the compiler to stop after
the ASN.1 syntax tree fixing stage and dump the reconstructed ASN.1
specification to the standard output.
.RS
.RE
.TP
.B \-P
Dump the compiled output to the standard output instead of creating the
target language files on disk.
.RS
.RE
.TP
.B \-R
Restrict the compiler to generate only the ASN.1 tables, omitting the
usual support code.
.RS
.RE
.TP
.B \-S \f[I]directory\f[]
Use the specified directory with ASN.1 skeleton files.
.RS
.RE
.TP
.B \-X
Generate an XML DTD schema for the specified ASN.1 files.
.RS
.RE
.SS Warning Options
.TP
.B \-Werror
Treat warnings as errors; abort if any warning is produced.
.RS
.RE
.TP
.B \-Wdebug\-lexer
Enable lexer debugging during the ASN.1 parsing stage.
.RS
.RE
.TP
.B \-Wdebug\-fixer
Enable ASN.1 syntax tree fixer debugging during the fixing stage.
.RS
.RE
.TP
.B \-Wdebug\-compiler
Enable debugging during the actual compile time.
.RS
.RE
.SS Language Options
.TP
.B \-fbless\-SIZE
Allow \f[C]SIZE()\f[] constraint for \f[C]INTEGER\f[],
\f[C]ENUMERATED\f[], 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.
.RS
.RE
.TP
.B \-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).
.RS
.RE
.TP
.B \-findirect\-choice
When generating code for a \f[C]CHOICE\f[] type, compile the
\f[C]CHOICE\f[] members as indirect pointers instead of declaring them
inline.
Consider using this option together with \f[B]\-fno\-include\-deps\f[]
to prevent circular references.
.RS
.RE
.TP
.B \-fincludes\-quoted
Refer to header files in \f[C]#include\f[]s using
\f[B]"\f[]double\f[B]"\f[] instead of \f[B]<\f[]angle\f[B]>\f[] quotes.
.RS
.RE
.TP
.B \-fknown\-extern\-type=\f[I]name\f[]
Pretend the specified type is known.
The compiler will assume the target language source files for the given
type have been provided manually.
.RS
.RE
.TP
.B \-fline\-refs
Include ASN.1 module\[aq]s line numbers in generated code comments.
.RS
.RE
.TP
.B \-fno\-constraints
Do not generate ASN.1 subtype constraint checking code.
This may make a shorter executable.
.RS
.RE
.TP
.B \-fno\-include\-deps
Do not generate courtesy #include lines for non\-critical type
dependencies.
Helps prevent namespace collisions.
.RS
.RE
.TP
.B \-funnamed\-unions
Enable unnamed unions in the definitions of target language\[aq]s
structures.
.RS
.RE
.TP
.B \-fwide\-types
Use the unbounded size data types (\f[C]INTEGER_t\f[],
\f[C]ENUMERATED_t\f[], \f[C]REAL_t\f[]) by default, instead of using the
native machine\[aq]s data types (long, double).
.RS
.RE
.SS Codecs Generation Options
.TP
.B \-gen\-PER
Generate the Packed Encoding Rules (PER) support code.
.RS
.RE
.TP
.B \-pdu={all|auto|\f[I]Type\f[]}
Create a PDU table for specified types, or discover Protocol Data Units
automatically.
In case of \f[B]\-pdu=all\f[], all ASN.1 types defined in all modules
will form a PDU table.
In case of \f[B]\-pdu=auto\f[], all types not referenced by any other
type will form a PDU table.
If \f[I]Type\f[] is an ASN.1 type identifier, the identifier is added to
the generated PDU table.
The last form may be specified multiple times to add any number of PDUs.
.RS
.RE
.SS Output Options
.TP
.B \-print\-constraints
When \f[B]\-EF\f[] options are also specified, this option forces the
compiler to explain its internal understanding of subtype constraints.
.RS
.RE
.TP
.B \-print\-lines
Generate "\f[C]\-\-\ #line\f[]" comments in \f[B]\-E\f[] output.
.RS
.RE
.SH SEE ALSO
.PP
\f[C]unber\f[](1), \f[C]enber\f[](1).
.SH AUTHORS
Lev Walkin <vlm@lionet.info>.
