blob: 54c23373809a982886fa4ee2e3270770c872e500 [file] [log] [blame]
.\" 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>.