{-E}&{\small Stop after the parsing stage and print the reconstructed ASN.1
{\ttfamily-E}&{\small Stop after the parsing stage and print the reconstructed ASN.1
specification code to the standard output.}\\
specification code to the standard output.}\\
{-F}&{\small Used together with -E, instructs the compiler to stop after
{\ttfamily -F}&{\small Used together with \texttt{-E}, instructs the compiler to stop after
the ASN.1 syntax tree fixing stage and dump the reconstructed ASN.1
the ASN.1 syntax tree fixing stage and dump the reconstructed ASN.1
specification to the standard output.}\\
specification to the standard output.}\\
{-P}&{\small Dump the compiled output to the standard output instead of
{\ttfamily-P}&{\small Dump the compiled output to the standard output instead of
creating the target language files on disk.}\\
creating the target language files on disk.}\\
{-R}&{\small Restrict the compiler to generate only the ASN.1 tables, omitting the usual support code.}\\
{\ttfamily-R}&{\small Restrict the compiler to generate only the ASN.1 tables, omitting the usual support code.}\\
{-S}~\emph{<directory>}&{\small Use the specified directory with ASN.1 skeleton files.}\\
{\ttfamily -S~\emph{<directory>}}&{\small Use the specified directory with ASN.1 skeleton files.}\\
{-X}&{\small Generate the XML DTD for the specified ASN.1 modules.}\\\\
{\ttfamily-X}&{\small Generate the XML DTD for the specified ASN.1 modules.}\\\\
\textbf{Warning Options}&\textbf{Description}\\
\textbf{Warning Options}&\textbf{Description}\\
\midrule
\midrule
{-Werror}&{\small Treat warnings as errors; abort if any warning is produced.}\\
{\ttfamily -Werror}&{\small Treat warnings as errors; abort if any warning is produced.}\\
{-Wdebug-lexer}&{\small Enable lexer debugging during the ASN.1 parsing stage.}\\
{\ttfamily -Wdebug-lexer}&{\small Enable lexer debugging during the ASN.1 parsing stage.}\\
{-Wdebug-fixer}&{\small Enable ASN.1 syntax tree fixer debugging during the
{\ttfamily -Wdebug-fixer}&{\small Enable ASN.1 syntax tree fixer debugging during the fixing stage.}\\
fixing stage.}\\
{\ttfamily -Wdebug-compiler}&{\small Enable debugging during the actual compile time.}\\\\
{-Wdebug-compiler}&{\small Enable debugging during the actual compile time.}\\\\
\textbf{Language Options}&\textbf{Description}\\
\textbf{Language Options}&\textbf{Description}\\
\midrule
\midrule
{-fbless-SIZE}&{\small Allow SIZE() constraint for INTEGER, ENUMERATED, and other
{\ttfamily -fbless-SIZE}&{\small Allow SIZE() constraint for INTEGER, ENUMERATED, and other types for which this constraint is normally prohibited by the standard.
types for which this constraint is normally prohibited by the standard.
This is a violation of an ASN.1 standard and compiler may fail to produce the meaningful code.}\\
This is a violation of an ASN.1 standard and compiler may fail to
{\ttfamily -fcompound-names}&{\small Use complex names for C structures. Using complex names prevents
produce the meaningful code.}\\
{-fcompound-names}&{\small Use complex names for C structures. Using complex names prevents
name clashes in case the module reuses the same identifiers in multiple
name clashes in case the module reuses the same identifiers in multiple
contexts.}\\
contexts.}\\
{-findirect-choice}&{\small When generating code for a CHOICE type, compile the CHOICE
{\ttfamily-findirect-choice}&{\small When generating code for a CHOICE type, compile the CHOICE
members as indirect pointers instead of declaring them inline. Consider
members as indirect pointers instead of declaring them inline. Consider
using this option together with \textbf{-fno-include-deps}
using this option together with \texttt{-fno-include-deps}
to prevent circular references. }\\
to prevent circular references.}\\
{-fknown-extern-type=}\emph{<name>}&{\small Pretend the specified type is known. The compiler will assume
{\ttfamily -fincludes-quoted}&{\small Generate \#include lines in "double" instead of <angle> quotes.}\\
{\ttfamily -fknown-extern-type=\emph{<name>}}&{\small Pretend the specified type is known. The compiler will assume
the target language source files for the given type have been provided
the target language source files for the given type have been provided
manually. }\\
manually. }\\
{-fno-constraints}&{\small Do not generate ASN.1 subtype constraint checking code. This
{\ttfamily -fline-refs}&{\small Include ASN.1 module's line numbers in generated code comments.}\\
{\ttfamily -fno-constraints}&{\small Do not generate ASN.1 subtype constraint checking code. This
may produce a shorter executable.}\\
may produce a shorter executable.}\\
{-fno-include-deps}&{\small Do not generate courtesy \#include lines for non-critical
{\ttfamily -fno-include-deps}&{\small Do not generate courtesy \#include lines for non-critical dependencies.}\\
dependencies.}\\
{\ttfamily -funnamed-unions}&{\small Enable unnamed unions in the definitions of target language's structures.}\\
{-funnamed-unions}&{\small Enable unnamed unions in the definitions of target language's structures.}\\
{\ttfamily -fwide-types}&{\small Use the wide integer types (INTEGER\_t, REAL\_t) instead of machine's native data types (long, double). }\\\\
{-fwide-types}&{\small Use the wide integer types (INTEGER\_t, REAL\_t) instead of machine's native data types (long, double). }\\\\
{-gen-PER}&{\small Generate Packed Encoding Rules (PER) support code.}\\
{\ttfamily -gen-PER}&{\small Generate the Packed Encoding Rules (PER) support code.}\\
{-pdu=}\emph{auto}&{\small Generate PDU tables by discovering Protocol Data Units automatically. Also accepts a special keyword \emph{all} or a particular type to be used as a PDU.}\\\\
{\ttfamily -pdu=\{\textbf{all}|\textbf{auto}|\emph{Type}\}}&{\small Create a PDU table for specified types, or discover the Protocol Data Units automatically.
In case of \texttt{-pdu=\textbf{all}}, all ASN.1 types defined in all modules wil form a PDU table. In case of \texttt{-pdu=\textbf{auto}}, all types not referenced by any other type will form a PDU table. If \texttt{\emph{Type}} is an ASN.1 type identifier, it is added to a PDU table. The last form may be specified multiple times.}\\\\
\textbf{Output Options}&\textbf{Description}\\
\textbf{Output Options}&\textbf{Description}\\
\midrule
\midrule
{-print-constraints}&{\small When -EF are also specified, this option forces the compiler
{\ttfamily -print-constraints}&{\small When \texttt{-EF} are also specified, this option forces the compiler
to explain its internal understanding of subtype constraints.}\\
to explain its internal understanding of subtype constraints.}\\