compiler - TTCN-3 and ASN.1 to C++ translator
compiler [
-abcdDeEfFghiIjklLMnNpqrRsStuwxXyY0 ] [
-V
verb_level ] [
-J file ] [
-K file ] [
-z file ] [
-o dir ] [
-P
top_level_pdu ] ... [
-Q n ] [
-U
none|type|'number' ] [
-T ] module.ttcn ... [
-A ]
module.asn ... [ - module.ttcn ... module.asn ... ]
or
compiler -v
or
compiler --ttcn2json [
-jf ] [
-T ] module.ttcn ... [
-A ] module.asn ... [
- schema.json ]
This manual page is a quick reference for the TTCN-3 and ASN.1 to C++ (or JSON
schema) compiler of the TTCN-3 Test Executor. It only summarizes the meaning
of all command line options. For more details please consult the
Programmer's Technical Reference for TITAN TTCN-3 Test Executor.
The following options are supported (in alphabetical order):
-
-A file
- Forces the interpretation of file as an ASN.1
module. It is useful when automatic module type detection fails due to
some strange language constructs. The option takes exactly one file name
as argument. The option must be repeated when used with multiple files.
See also: option -T.
- -a
- Force XER in ASN.1 files
- -b
- Disables the generation of BER encoder/decoder
routines for all ASN.1 types.
- -B
- Allows the selected field in a union value to be unbound,
when setting module parameters (legacy behavior). A warning is displayed
whenever a union value receives an unbound selected field and when a union
with an unbound selected field is copied.
- -c
- Write out checksums in case of error
- -d
- Treat ASN.1 SEQUENCE/SET fields with DEFAULT values
as omit in TTCN-3.
- -D
- Disable generation of user and time information comments in
the output C++ code.
- -e
- Enforce legacy handling of encode and variant
attributes.
- -E
- Instructs the variant attribute parser to display warnings
instead of errors for unrecognized/erroneous attributes.
- -f
- Forces the compiler to overwrite the output files
even if they exist or are unchanged.
- -F
- Forces the compiler to generate the full C++ classes for
records of/sets of basic types (i.e. boolean, integer, float, bitstring,
hexstring, octetstring, charstring and unversal charstring). Otherwise
only type aliases to pre-generated classes are generated for these types.
This also disables the type compatibility between records of/sets of basic
types in the Load Test Runtime.
- -g
- The compiler error/warning messages will contain only the
starting line number and column, in a format compatible with th GNU
compiler (gcc). -g takes precedence over -i if both are
specified.
- -h
- Allows unsafe universal charstring to charstring
conversion.
- -i
- The compiler error/warning messages will contain only the
line numbers, the column numbers will remain hidden. This option
provides backward compatibility with the error message format of earlier
versions.
- -I
- Enables real-time testing features.
- -j
- Disables JSON encoder/decoder functions.
-
-J file
- Read a list of input files from the provided file.
- -k
- Enables object-oriented features.
-
-K file
- Enables selective code coverage.
- -l
- Instructs the compiler to generate source file and line
information (i.e. #line directives) into the output C++ code so
that the C++ compiler error messages refer back to the lines of original
TTCN-3 input module.
This option is obsolete and will be removed in future versions as the
compiler does not generate erroneous C++ code because of the full semantic
analysis.
- -L
- Instructs the compiler to add source file and line
source file and line number information into the generated
code to be included in the log during execution.
This option is only a prerequisite for logging the source code information.
Options SourceInfoFormat and LogEntityName have also to be
set appropriately in section [LOGGING] of the run-time
configuration file.
Usage of this option a bit enlarges the size of the generated code and
slightly reduces execution speed. This flag is not recommended when the
TTCN-3 test suite is used for load generation.
- -M
- Allows the use of the value omit in template lists
and complemented template lists (legacy behavior). If set, an omitted
field will match a template list, if the value omit appears in the
list, and it will match a complemented template list, if omit is
not in the list (the ifpresent attribute can still be used for
matching omitted fields). This also affects the ispresent operation
and the present template restriction accordingly.
- -n
- Activates the debugger and generates extra code for storing
debug information.
- -N
- Ignore UNTAGGED encoding instruction on top level unions
(legacy behaviour).
-
-o dir
- The output files (including Test Port skeletons) will be
placed into the directory specified by dir. The current working
directory is the default otherwise.
- -p
- Instructs the compiler only to parse the given
TTCN-3 and ASN.1 modules. This will detect only the syntax errors because
semantic checkings are not performed. The presence of all imported
modules is not necessary thus it is allowed (and recommended) to parse the
modules one-by-one.
All options that influence the code generation are silently ignored when
used together with -p.
Note: This option includes complete syntax checks for TTCN-3 modules,
but in ASN.1 there are some special constructs (e.g. the user-defined
syntaxes) that cannot be even parsed without semantic analysis. So there
is no guarantee that an ASN.1 module is free of syntax errors if it was
analyzed with compiler using the -p flag.
-
-P top_level_pdu...
- Defines a top-level pdu. top_level_pdu must have the
following format: modulename.identifier. If this switch is used,
then only the defined top-level PDU(s) and the referenced assignments are
checked and included in code generation, the other ASN.1 assignments are
skipped.
- -q
-
Quiet mode. Equivalent with -V 0.
- -Qn
-
Quits after n errors.
- -r
- Disables the generation of RAW encoder/decoder
routines for all TTCN-3 types.
- -R
- Use function test runtime (TITAN_RUNTIME_2). The compiler
will generate source code for use with function test runtime.
- -s
- Instructs the compiler to parse the given TTCN-3 and ASN.1
modules and perform semantic analysis on them, but not to
generate C++ output. The list of given modules shall be complete so it is
not allowed to import from a module that is not in the list. All options
that influence the code generation are silently ignored when used together
with -s.
- -S
-
Suppresses context information.
- -t
- Generates Test Port and External Class
skeleton header and source files for all port types and external class
types that can be found in the input TTCN-3 modules. Existing Test Port
and External Class files will not be overwritten unless the -f
option is used.
-
-T file
- Forces the interpretation of file as a TTCN-3
module. See also: option -A.
- -u
- Forces the compiler to do duplicate underscore
characters in all output file names. This option turns on the
compatibility mode with versions 1.1 or earlier.
-
-U none|type|'number'
- Selects code splitting mode for the generated C++ code. The
'number' should be a positive number between 1 and 999999. If the 'number'
is present the files will be sliced into 'number' files.
- -v
- Prints version and license key information and
exits.
-
-V verb_level
- Sets the verbosity bit-mask directly to verb_level
(where verb_level is a decimal value between 0 and 65535).
Meaning of bits:
- 1:
- "NOT SUPPORTED" messages.
- 2:
- WARNING messages.
- 4:
- NOTIFY messages.
- 32|16|8:
- DEBUG messages.
The debug-bits act like a 3-bits-length number, so the debug level has a
value between 0 and 7. It is useful in case of abnormal program
termination.
- -w
- Suppresses all warning messages. Equivalent with
-V 4.
- -x
- Disables the generation of TEXT encoder/decoder
routines for all TTCN-3 types.
- -X
- Disable XER encoder/decoder functions
- -y
- Disable subtype checking
- -Y
- Enforces legacy behaviour of the "out" function
parameters (see refguide).
-
-z file
- Enables profiling and code coverage in the selected TTCN-3
files. The file argument contains a list of TTCN-3 files separated
by new lines. Each TTCN-3 file must be among the compiler's TTCN-3 file
arguments.
- -0
- Disables attribute checks for encvalue and
decvalue. Must be used together with option -s.
- -
- The single dash character as command line argument controls
the selective code generation option. After the list of all TTCN-3
and ASN.1 modules a subset of these files can be given separated by a
dash. This option instructs the compiler to parse all modules, perform the
semantic analysis on the entire module hierarchy, but generate code
only for those modules that are listed after the dash again.
It is not allowed to specify a file name after the dash that was not present
in the list before the dash. If the single dash is not present in the
command line the compiler will generate code for all modules.
- --ttcn2json
- Generates a JSON schema from the types defined in the
specified TTCN-3 and ASN.1 modules. Must always be the first compiler
option. From the previously listed options only -T and -A
can be used, instead the JSON schema generator has options of its
own:
- -j
- Only types that have JSON coding enabled are included in
the schema.
- -f
- The schema only validates types that have a JSON encoding
or decoding method declared.
-
- file
- The single dash character as command line argument
specifies the name of the generated JSON schema file. If it is not
present, then the schema file name is generated from the name of the first
input file (by replacing its suffix with .json or appending
.json to the end of the file).
The compiler exits with a status of zero when no errors were encountered during
its operation. A status of one will be returned if syntax or semantic errors
were detected in the input modules.
- TTCN3_DIR
- The installation directory where the uncompressed binary
package of TTCN-3 Test Executor can be found.
- TTCN3_LICENSE_FILE
- It shall point to the file (NB: not to
its directory) that contains the personalized license key for the current
user or host.
The compiler does not support all constructs of TTCN-3 Core Language and ASN.1.
It reports an error when encountering an unsupported language element. The
detailed list of deficiencies and language extensions can be found in the
referenced documentation.
For trouble reporting use the tool
MHWEB. For TR writers guide please
visit the web page:
http://ttcn.ericsson.se.
- Ericsson document 2/198 17-CRL 113 200
Uen:
- Programmer's Technical Reference for TITAN TTCN-3 Test
Executor
- ETSI Standard ES 201-873-1:
- Testing and Test Control Notation: TTCN-3 Core
Language
- ITU-T Recommendations X.680-683:
- Abstract Syntax Notation One (ASN.1)
This manpage is written by Janos Zoltan Szabo, Ericsson Telecom AB
Copyright (c) 2000-2021 Ericsson Telecom AB
All rights reserved. This program and the accompanying materials are made
available under the terms of the Eclipse Public License v2.0 which accompanies
this distribution, and is available at
https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html