![]() |
![]() |
![]() |
![]() |
![]() |
1. Declaring a constant of built-in type
2. Declaring a constant of referenced type
const ( bitstring | boolean | charstring | universal charstring | integer | octetstring | objid | hexstring | verdicttype | float | address | default | anytype ) const_identifier := single_constant_expression ; |
The const keyword introduces the constant definition.
bitstring denotes an a type whose distinguished values are the ordered sequences of zero, one, or more bits.
boolean is a simple basic type consisting of two distinguished values (namely true or false).
charstring denotes a type whose distinguished values are the ordered sequences of characters of ISO/IEC 646 as described in ITU-T Recommendation T.50.
universal charstring denotes a type whose distinguished values are the ordered sequences of UCS-4 coded representation of ISO/IEC 10646 characters.
integer denotes a a type with distinguished values which are the positive and negative whole numbers, including zero.
octetstring stands for a a type whose distinguished values are the ordered sequences of zero or a positive even number of hexadecimal digits (every pair of digits corresponding to an ordered sequence of eight bits).
objid defines a type whose distinguished values are the set of all object identifiers conforming to clause 6.2 of ITU-T Recommendation X.660.
hexstring defines a type whose distinguished values are the ordered sequences of zero, one, or more hexadecimal digits, each corresponding to an ordered sequence of four bits.
verdicttype defines a type for use with test verdicts consisting of 5 distinguished values.
float defines a type to describe floating-point numbers.
address denotes a user defined type to allow addressing specific entities inside the system under test.
default is a reference to an activated default resulting from an activate operation.
TITAN specific restriction compared to the standard: anytype is not implemented yet.
|
const_identifier is the name used to refer to the constant. Must begin with a letter, may contain letters, numbers and underscore characters.
According to the Naming convention, the following prefixes are recommended:
cl_ for constants declared elsewhere.
single_constant_expression may contain constants and literal values as operands. The result of the expression must correspond to the type of the constant.
const [ module_id [.obj_id ].] type_reference [.field_reference ] const_identifier
:=
|
The const keyword introduces the constant definition.
module_id is needed when the referenced type is defined in another TTCN-3 module and denotes the name of that module.
TITAN specific restriction compared to the standard: objid is not implemented yet; it is discarded when encountered.
|
type_reference refers to an already defined (structured or simple) type.
TITAN specific restriction compared to the standard: field reference can only be used with structured constants defined in the module definition part.
|
const_identifier is the name used to refer to the constant. Must begin with a letter, may contain letters, numbers and underscore characters.
single_constant_expression may contain constants and literal values as operands. The result of the expression must correspond to the type of the constant. Used with simple types.
value_list is a comma-separated list of the constant values between curly brackets. Used with structured types.
TITAN specific restriction compared to the standard: value assignment can only be used with structured constants defined in the module definition part.
|
const type identifier1 := constant_expression1, identifier2 := constant_expression2 ⦠; |
The const keyword introduces the constant definition.
type is one of the built-in types mentioned in paragraph 1 or referenced types mentioned in paragraph 2 .
identifiern is the name used to refer to the nth constant.
constant_expressionn determines the value of the nth constant.
const type const_identifier [ array_index ] := value_list; |
The const keyword introduces the constant definition.
type is one of the built-in types mentioned in paragraph 1 or referenced types mentioned in paragraph 2 .
const_identifier is the name used to refer to the constant. Must begin with a letter, may contain letters, numbers and underscore characters.
array index is a non-negative integer value corresponding to the number of elements in the array.
Alternatively, the lower and upper index values are given joined by two dots.
value_list is a comma-separated list of the constant values between curly brackets.
external const type const_identifier ; |
The external keyword means that the constant is defined in a module other than TTCN-3 or ASN.1 (for example in a module written in C++).
The const keyword introduces the constant definition.
type is one of the built-in types mentioned in paragraph 1 or referenced types mentioned in paragraph 2 .
const_identifier is the name used to refer to the constant. Must begin with a letter, may contain letters, numbers and underscore characters.
const integer c_myConstant := 127;
A constant called c_MyConstant is defined. The constant will have the value one hundred twenty seven.
Example 1b:
const bitstring c_myGarland := '00101101'B;
const bitstring c_myBiggerGarland := c_myGarland & '11000010'B;
Two constants are defined. The one called c_myBiggerGarland will have the binary value 11101111.
type record E_Rec {integer field1, boolean field2}; //defined in Elsewhere
const Elsewhere.E_Rec c_CurrConst := {17, true};
A record called E_Rec have been defined in the TTCN-3 module Elsewhere. In the current module we define a constant named c_CurrConst and assign values to all of its fields. In TITAN, the value notation as shown above may only be used in the module definition part.
Example 2b:
type record G_Rec {float first_field, hexstring last_field};
const G_Rec.last_field c_FuzerConst := 'AA'H;
First we define a record called G_Rec. Then we define a constant named c_FuzerConst derived from the second field of the referred type and assign the hexadecimal value AA to it.
Example 2c:
type record G_Rec {float first_field, hexstring last_field};
const G_Rec c_UeppigConst := {
first_field := 5.77,
last_field := '55'H;
}
First we define a record called G_Rec. Then we define a constant named c_UeppigConst and assign values to both of its fields using assignment notation.
const boolean c_MyConst2 := true, c_MyConst3 := false;
Two constants (c_MyConst2 and c_MyConst3) are declared within one operation.
const boolean c_MinConst[3] := { true, false, false };
The array defined c_MinConst consists of three elements indexed from 0 to 2.
Example 4b:
const boolean c_DinConst[7..9] := { true, false, false };
The array defined c_DinConst consists also of three elements as in the example 4a, but here the indices run from 7 to 9.
external const objid MonConst;
The constant called MonConst (an object identifier) is defined in an external module, e.g. in a module written in C++.
BNF definition of const