TTCN-3 GrammarW.Borgertdebacle@debian.orgThis is the DocBook/XML version of the TTCN-3 BNF taken
from ETSI standard ETSI ES 201 873-1 V2.2.1 (2003-02)
Methods for Testing and Specification (MTS); The
Testing and Test Control Notation version 3; Part 1: TTCN-3 Core
Language0 TTCN moduleTTCN3ModuleTTCN3ModuleKeywordTTCN3ModuleIdBeginChar
[ModuleDefinitionsPart]
[ModuleControlPart]
EndChar [WithStatement]TTCN3ModuleKeyword"module"TTCN3ModuleIdModuleIdentifier
[DefinitiveIdentifier]ModuleIdentifierIdentifierDefinitiveIdentifierDotObjectIdentifierKeyword
"{" DefinitiveObjIdComponentList
"}"DefinitiveObjIdComponentList{DefinitiveObjIdComponent}+DefinitiveObjIdComponentNameForm |DefinitiveNumberForm
|DefinitiveNameAndNumberFormDefinitiveNumberFormNumberDefinitiveNameAndNumberFormIdentifier "("
DefinitiveNumberForm
")"1 Module definitions part - 1.0 GeneralModuleDefinitionsPartModuleDefinitionsListModuleDefinitionsList{ModuleDefinition
[SemiColon]}+ModuleDefinition(TypeDef |ConstDef |TemplateDef
|ModuleParDef |FunctionDef
|SignatureDef |TestcaseDef
|AltstepDef
|ImportDef
|GroupDef
|ExtFunctionDef |ExtConstDef)
[WithStatement]1.1 Typedef definitionsTypeDefTypeDefKeywordTypeDefBodyTypeDefBodyStructuredTypeDef |SubTypeDefTypeDefKeyword"type"StructuredTypeDefRecordDef
|UnionDef
|SetDef |RecordOfDef
|SetOfDef
|EnumDef
|PortDef
|ComponentDefRecordDefRecordKeywordStructDefBodyRecordKeyword"record"StructDefBody(StructTypeIdentifier
[StructDefFormalParList]
|AddressKeyword) BeginChar [StructFieldDef {","
StructFieldDef}]
EndCharStructTypeIdentifierIdentifierStructDefFormalParList"(" StructDefFormalPar {","
StructDefFormalPar}
")"StructDefFormalParFormalValueParStatic semantics:
FormalValuePar
shall resolve to an in parameterStructFieldDefTypeStructFieldIdentifier
[ArrayDef]
[SubTypeSpec]
[OptionalKeyword]StructFieldIdentifierIdentifierOptionalKeyword"optional"UnionDefUnionKeywordUnionDefBodyUnionKeyword"union"UnionDefBody(StructTypeIdentifier
[StructDefFormalParList]
|AddressKeyword) BeginCharUnionFieldDef {","
UnionFieldDef}
EndCharUnionFieldDefTypeStructFieldIdentifier
[ArrayDef]
[SubTypeSpec]SetDefSetKeywordStructDefBodySetKeyword"set"RecordOfDefRecordKeyword [StringLength] OfKeywordStructOfDefBodyOfKeyword"of"StructOfDefBodyType (StructTypeIdentifier
|AddressKeyword)
[SubTypeSpec]SetOfDefSetKeyword
[StringLength]
OfKeywordStructOfDefBodyEnumDefEnumKeyword
(EnumTypeIdentifier
|AddressKeyword)
BeginCharEnumerationListEndCharEnumKeyword"enumerated"EnumTypeIdentifierIdentifierEnumerationListEnumeration
{"," Enumeration}EnumerationEnumerationIdentifier
["(" Number
")"]EnumerationIdentifierIdentifierSubTypeDefType (SubTypeIdentifier
|AddressKeyword)
[ArrayDef]
[SubTypeSpec]SubTypeIdentifierIdentifierSubTypeSpecAllowedValues |StringLengthStatic semantics:
AllowedValues
shall be of the same type as the field being
subtypedAllowedValues"(" ValueOrRange {","
ValueOrRange}
")"ValueOrRangeRangeDef |SingleConstExpressionStatic semantics:
RangeDef production
shall only be used with integer, char, universal char,
charstring, universal charstring or
float based
typesStatic
semantics: When subtyping charstring or universal
charstring range and values shall not be mixed in the same
SubTypeSpecRangeDefLowerBound
".." UpperBoundStringLengthLengthKeyword "("
SingleConstExpression
[".." UpperBound]
")" Static semantics:
StringLength
shall only be used with String types or to limit set of and
record of. SingleConstExpression
and UpperBound
shall evaluate to non-negative integer values (in case of
UpperBound
including infinity)LengthKeyword"length"PortType[GlobalModuleIdDot] PortTypeIdentifierPortDefPortKeywordPortDefBodyPortDefBodyPortTypeIdentifierPortDefAttribsPortKeyword"port"PortTypeIdentifierIdentifierPortDefAttribsMessageAttribs |ProcedureAttribs |MixedAttribsMessageAttribsMessageKeywordBeginChar
{MessageList
[SemiColon]}+
EndCharMessageListDirectionAllOrTypeListDirectionInParKeyword |OutParKeyword
|InOutParKeywordMessageKeyword"message"AllOrTypeListAllKeyword
|TypeListAllKeyword"all"TypeListType {","
Type}ProcedureAttribsProcedureKeywordBeginChar
{ProcedureList
[SemiColon]}+
EndCharProcedureKeyword"procedure"ProcedureListDirectionAllOrSignatureListAllOrSignatureListAllKeyword
|SignatureListSignatureListSignature
{"," Signature}MixedAttribsMixedKeywordBeginChar {MixedList [SemiColon]}+ EndCharMixedKeyword"mixed"MixedListDirectionProcOrTypeListProcOrTypeListAllKeyword
| (ProcOrType {"," ProcOrType})ProcOrTypeSignature
|TypeComponentDefComponentKeywordComponentTypeIdentifierBeginChar
[ComponentDefList]
EndCharComponentKeyword"component"ComponentType[GlobalModuleIdDot] ComponentTypeIdentifierComponentTypeIdentifierIdentifierComponentDefList{ComponentElementDef
[SemiColon]}ComponentElementDefPortInstance |VarInstance
|TimerInstance |ConstDefPortInstancePortKeywordPortTypePortElement {","
PortElement}PortElementPortIdentifier
[ArrayDef]PortIdentifierIdentifier1.2 Constant definitionsConstDefConstKeywordTypeConstListConstListSingleConstDef {","
SingleConstDef}SingleConstDefConstIdentifier
[ArrayDef]
AssignmentCharConstantExpressionStatic semantics: The
Value of the ConstantExpression shall
be of the same type as the stated type for the
constantsConstKeyword"const"ConstIdentifierIdentifier1.3 Template definitionsTemplateDefTemplateKeywordBaseTemplate
[DerivedDef]
AssignmentCharTemplateBodyBaseTemplate(Type |Signature)
TemplateIdentifier ["("
TemplateFormalParList
")"]TemplateKeyword"template"TemplateIdentifierIdentifierDerivedDefModifiesKeywordTemplateRefModifiesKeyword"modifies"TemplateFormalParListTemplateFormalPar {","
TemplateFormalPar}TemplateFormalParFormalValuePar |FormalTemplateParStatic semantics:
FormalValuePar
shall resolve to an in parameterTemplateBodySimpleSpec
|FieldSpecList |ArrayValueOrAttribStatic semantics: Within
TemplateBody the
ArrayValueOrAttrib can
be used for array, record, record of and set of
types.SimpleSpecSingleValueOrAttribFieldSpecList"{"[FieldSpec
{"," FieldSpec}]
"}"FieldSpecFieldReferenceAssignmentCharTemplateBodyFieldReferenceStructFieldRef |ArrayOrBitRef
|ParRefStructFieldRefStructFieldIdentifierParRefSignatureParIdentifierOperational semantics:
SignatureParIdentifier
shall be a formal parameter Identifier from the associated
signature definitionSignatureParIdentifierValueParIdentifierArrayOrBitRef"[" FieldOrBitNumber "]"
Static semantics: ArrayRef
(ArrayOrBitRef?)
shall be optionally used for array types and ASN.1 SET OF and
SEQUENCE OF and TTCN record of and set of. The same notation can
be used for a Bit reference inside an ASN.1 or TTCN bitstring
typeFieldOrBitNumberSingleExpressionStatic semantics:
SingleExpression will
resolve to a value of integer typeSingleValueOrAttribMatchingSymbol [ExtraMatchingAttributes]
|SingleExpression
[ExtraMatchingAttributes]
|TemplateRefWithParListStatic semantics:
VariableIdentifier (accessed
via SingleExpression) may only
be used in inline template definitions to reference variables in
the current scopeArrayValueOrAttrib"{" ArrayElementSpecList
"}"ArrayElementSpecListArrayElementSpec {","
ArrayElementSpec}ArrayElementSpecNotUsedSymbol |TemplateBodyNotUsedSymbolDashMatchingSymbolComplement
|AnyValue
|AnyOrOmit
|ValueOrAttribList |Range |BitStringMatch
|HexStringMatch |OctetStringMatch |CharStringMatch |SubsetMatch
|SupersetMatchExtraMatchingAttributesLengthMatch
|IfPresentMatch |LengthMatchIfPresentMatchBitStringMatch"'" {BinOrMatch} "'" "B"BinOrMatchBin |AnyValue |AnyOrOmitHexStringMatch"'" {HexOrMatch} "'" "H"HexOrMatchHex |AnyValue |AnyOrOmitOctetStringMatch"'" {OctOrMatch} "'" "O"OctOrMatchOct |AnyValue |AnyOrOmitCharStringMatchPatternKeywordCstringPatternKeyword"pattern"ComplementComplementKeywordValueListComplementKeyword"complement"ValueList"(" ConstantExpression {","
ConstantExpression}
")"SubsetMatchSubsetKeywordValueListStatic
semantics: Subset matching shall only be used with
the set of
typeSubsetKeyword"subset"SupersetMatchSupersetKeywordValueListStatic semantics: Superset
matching shall only
be used with the set of typeSupersetKeyword"superset"AnyValue"?"AnyOrOmit"*"ValueOrAttribList"(" TemplateBody {"," TemplateBody}+ ")"LengthMatchStringLengthIfPresentMatchIfPresentKeywordIfPresentKeyword"ifpresent"Range"(" LowerBound
".." UpperBound
")"LowerBoundSingleConstExpression
|MinusInfinityKeywordUpperBoundSingleConstExpression
|InfinityKeywordStatic semantics:
LowerBound and
UpperBound shall
evaluate to types integer, char, universal char or float. In
case LowerBound or
UpperBound
evaluates to types char or universal char, only SingleConstExpression
may be presentInfinityKeyword"infinity"TemplateInstanceInLineTemplateTemplateRefWithParList[GlobalModuleIdDot] TemplateIdentifier
[TemplateActualParList]
|TemplateParIdentifierTemplateRef[GlobalModuleIdDot] TemplateIdentifier
|TemplateParIdentifierInLineTemplate[(Type |Signature)
Colon] [DerivedDefAssignmentChar] TemplateBodyStatic semantics: The type
field may only be omitted when the type is implicitly
unambigousTemplateActualParList"(" TemplateActualPar {","
TemplateActualPar}
")"TemplateActualParTemplateInstanceStatic semantics: When the
corresponding formal parameter is not of template type the
TemplateInstance
production shall resolve to one or more SingleExpressionsTemplateOpsMatchOp |ValueofOpMatchOpMatchKeyword
"(" Expression ","
TemplateInstance")"
Static semantics: The type
of the value returned by the expression must be the same as the
template type and each field of the template shall resolve to a
single valueMatchKeyword"match"ValueofOpValueofKeyword "("
TemplateInstance")"ValueofKeyword"valueof"1.4 Function definitionsFunctionDefFunctionKeywordFunctionIdentifier
"("[FunctionFormalParList]
")" [RunsOnSpec]
[ReturnType]
StatementBlockFunctionKeyword"function"FunctionIdentifierIdentifierFunctionFormalParListFunctionFormalPar {","
FunctionFormalPar}FunctionFormalParFormalValuePar |FormalTimerPar
|FormalTemplatePar |FormalPortParReturnTypeReturnKeywordTypeReturnKeyword"return"RunsOnSpecRunsKeywordOnKeywordComponentTypeRunsKeyword"runs"OnKeyword"on"MTCKeyword"mtc"StatementBlockBeginChar
[FunctionStatementOrDefList]
EndCharFunctionStatementOrDefList{FunctionStatementOrDef
[SemiColon]}+FunctionStatementOrDefFunctionLocalDef |FunctionLocalInst |FunctionStatementFunctionLocalInstVarInstance
|TimerInstanceFunctionLocalDefConstDefFunctionStatementConfigurationStatements
|TimerStatements |CommunicationStatements
|BasicStatements |BehaviourStatements
|VerdictStatements |SUTStatementsFunctionInstanceFunctionRef
"(" [FunctionActualParList]
")"FunctionRef[GlobalModuleIdDot] (FunctionIdentifier
|ExtFunctionIdentifier
) |PreDefFunctionIdentifierPreDefFunctionIdentifierIdentifierStatic semantics: The
Identifier will be
one of the predefined
TTCN-3 Function Identifiers.FunctionActualParListFunctionActualPar {","
FunctionActualPar}FunctionActualParTimerRef |TemplateInstance |Port |ComponentRefStatic semantics: When the
corresponding formal parameter is not of template type the
TemplateInstance
production shall resolve to one or more SingleExpressions i.e.,
equivalent to the Expression
production1.5 Signature definitionsSignatureDefSignatureKeywordSignatureIdentifier
"("[SignatureFormalParList]
")" [ReturnType
|NoBlockKeyword]
[ExceptionSpec]SignatureKeyword"signature"SignatureIdentifierIdentifierSignatureFormalParListSignatureFormalPar {","
SignatureFormalPar}SignatureFormalParFormalValueParExceptionSpecExceptionKeyword "("
ExceptionTypeList
")"ExceptionKeyword"exception"ExceptionTypeListType {","
Type}NoBlockKeyword"noblock"Signature[GlobalModuleIdDot] SignatureIdentifier1.6 Testcase definitionsTestcaseDefTestcaseKeywordTestcaseIdentifier
"("[TestcaseFormalParList]
")" ConfigSpecStatementBlockTestcaseKeyword"testcase"TestcaseIdentifierIdentifierTestcaseFormalParListTestcaseFormalPar {","
TestcaseFormalPar}TestcaseFormalParFormalValuePar |FormalTemplateParConfigSpecRunsOnSpec
[SystemSpec]SystemSpecSystemKeywordComponentTypeSystemKeyword"system"TestcaseInstanceExecuteKeyword "("
TestcaseRef "("
[TestcaseActualParList]
")" ["," TimerValue] ")"ExecuteKeyword"execute"TestcaseRef[GlobalModuleIdDot] TestcaseIdentifierTestcaseActualParListTestcaseActualPar {","
TestcaseActualPar}TestcaseActualParTemplateInstanceStatic semantics: When the
corresponding formal parameter is not of template type the
TemplateInstance
production shall resolve to one or more SingleExpressions i.e.,
equivalent to the Expression production1.7 Altstep definitionsAltstepDefAltstepKeywordAltstepIdentifier
"("[AltstepFormalParList]
")" [RunsOnSpec]
BeginCharAltstepLocalDefListAltGuardListEndCharAltstepKeyword"altstep"AltstepIdentifierIdentifierAltstepFormalParListFunctionFormalParListStatic semantics: all
formal parameter must be value parameters i.e., in
parametersAltstepLocalDefList{AltstepLocalDef
[SemiColon]}AltstepLocalDefVarInstance
|TimerInstance |ConstDefAltstepInstanceAltstepRef "("
[FunctionActualParList]
")"AltstepRef[GlobalModuleIdDot] AltstepIdentifier1.8 Import definitionsImportDefImportKeywordImportFromSpec (AllWithExcepts |
(BeginCharImportSpecEndChar))ImportKeyword"import"AllWithExceptsAllKeyword
[ExceptsDef]ExceptsDefExceptKeywordBeginCharExceptSpecEndCharExceptKeyword"except"ExceptSpec{ExceptElement [SemiColon]}
Static semantics: Any of
the production components (ExceptGroupSpec,
ExceptTypeDefSpec etc.)
may be present only once in the ExceptSpec
productionExceptElementExceptGroupSpec |ExceptTypeDefSpec |ExceptTemplateSpec
|ExceptConstSpec |ExceptTestcaseSpec
|ExceptAltstepSpec |ExceptFunctionSpec
|ExceptSignatureSpec
|ExceptModuleParSpecExceptGroupSpecGroupKeyword
(ExceptGroupRefList
|AllKeyword)ExceptTypeDefSpecTypeDefKeyword (TypeRefList |AllKeyword)ExceptTemplateSpecTemplateKeyword
(TemplateRefList |AllKeyword)ExceptConstSpecConstKeyword
(ConstRefList
|AllKeyword)ExceptTestcaseSpecTestcaseKeyword
(TestcaseRefList |AllKeyword)ExceptAltstepSpecAltstepKeyword (AltstepRefList |AllKeyword)ExceptFunctionSpecFunctionKeyword
(FunctionRefList |AllKeyword)ExceptSignatureSpecSignatureKeyword
(SignatureRefList |AllKeyword)ExceptModuleParSpecModuleParKeyword
(ModuleParRefList |AllKeyword)ImportSpec{ImportElement [SemiColon]}ImportElementImportGroupSpec |ImportTypeDefSpec |ImportTemplateSpec
|ImportConstSpec |ImportTestcaseSpec
|ImportAltstepSpec |ImportFunctionSpec
|ImportSignatureSpec
|ImportModuleParSpecImportFromSpecFromKeywordModuleId
[RecursiveKeyword]ModuleIdGlobalModuleId [LanguageSpec]
Static semantics:
LanguageSpec may
only be omitted if the referenced module contains TTCN-3
notationLanguageKeyword"language"LanguageSpecLanguageKeywordFreeTextGlobalModuleIdModuleIdentifier
[DotObjectIdentifierValue]RecursiveKeyword"recursive"ImportGroupSpecGroupKeyword
(GroupRefList
|AllGroupsWithExcept)GroupRefListFullGroupIdentifier
{"," FullGroupIdentifier}AllGroupsWithExceptAllKeyword
[ExceptKeywordGroupRefList]FullGroupIdentifierGroupIdentifier
{DotGroupIdentifier}
[ExceptsDef]ExceptGroupRefListExceptFullGroupIdentifier
{"," ExceptFullGroupIdentifier}ExceptFullGroupIdentifierGroupIdentifier
{DotGroupIdentifier}ImportTypeDefSpecTypeDefKeyword (TypeRefList |AllTypesWithExcept)TypeRefListTypeDefIdentifier {","
TypeDefIdentifier}AllTypesWithExceptAllKeyword
[ExceptKeywordTypeRefList]TypeDefIdentifierStructTypeIdentifier
|EnumTypeIdentifier
|PortTypeIdentifier
|ComponentTypeIdentifier
|SubTypeIdentifierImportTemplateSpecTemplateKeyword
(TemplateRefList |AllTemplsWithExcept)TemplateRefListTemplateIdentifier {","
TemplateIdentifier}AllTemplsWithExceptAllKeyword
[ExceptKeywordTemplateRefList]ImportConstSpecConstKeyword
(ConstRefList
|AllConstsWithExcept)ConstRefListConstIdentifier {","
ConstIdentifier}AllConstsWithExceptAllKeyword
[ExceptKeywordConstRefList]ImportAltstepSpecAltstepKeyword (AltstepRefList |AllAltstepsWithExcept)AltstepRefListAltstepIdentifier {","
AltstepIdentifier}AllAltstepsWithExceptAllKeyword
[ExceptKeywordAltstepRefList]ImportTestcaseSpecTestcaseKeyword
(TestcaseRefList |AllTestcasesWithExcept)TestcaseRefListTestcaseIdentifier {","
TestcaseIdentifier}AllTestcasesWithExceptAllKeyword
[ExceptKeywordTestcaseRefList]ImportFunctionSpecFunctionKeyword
(FunctionRefList |AllFunctionsWithExcept)FunctionRefListFunctionIdentifier {","
FunctionIdentifier}AllFunctionsWithExceptAllKeyword
[ExceptKeywordFunctionRefList]ImportSignatureSpecSignatureKeyword
(SignatureRefList |AllSignaturesWithExcept)SignatureRefListSignatureIdentifier
{"," SignatureIdentifier}AllSignaturesWithExceptAllKeyword
[ExceptKeywordSignatureRefList]ImportModuleParSpecModuleParKeyword
(ModuleParRefList |AllModuleParWithExcept)ModuleParRefListModuleParIdentifier
{"," ModuleParIdentifier}AllModuleParWithExceptAllKeyword
[ExceptKeywordModuleParRefList]1.9 Group definitionsGroupDefGroupKeywordGroupIdentifierBeginChar
[ModuleDefinitionsPart]
EndCharGroupKeyword"group"GroupIdentifierIdentifier1.10 External function definitionsExtFunctionDefExtKeywordFunctionKeywordExtFunctionIdentifier
"("[FunctionFormalParList]
")" [ReturnType]ExtKeyword"external"ExtFunctionIdentifierIdentifier1.11 External constant definitionsExtConstDefExtKeywordConstKeywordTypeExtConstIdentifierExtConstIdentifierIdentifier1.12 Module parameter definitionsModuleParDefModuleParKeyword "{"
ModuleParList
"}"ModuleParKeyword"modulepar"ModuleParListModulePar
{SemiColonModulePar}ModuleParModuleParTypeModuleParIdentifier
[AssignmentCharConstantExpression] {","
ModuleParIdentifier
[AssignmentCharConstantExpression]}
Static semantics: The
Value of the ConstantExpression shall
be of the same type as the stated type for the
ParameterModuleParTypeTypeModuleParIdentifierIdentifier2 Control part - 2.0 GeneralModuleControlPartControlKeywordBeginCharModuleControlBodyEndChar [WithStatement] [SemiColon]ControlKeyword"control"ModuleControlBody[ControlStatementOrDefList]ControlStatementOrDefList{ControlStatementOrDef
[SemiColon]}+ControlStatementOrDefFunctionLocalInst |ControlStatement |FunctionLocalDefControlStatementTimerStatements |BasicStatements |BehaviourStatements
|SUTStatements2.1 Variable instantiationVarInstanceVarKeywordTypeVarListVarListSingleVarInstance {","
SingleVarInstance}SingleVarInstanceVarIdentifier [ArrayDef] [AssignmentCharVarInitialValue]VarInitialValueExpressionVarKeyword"var"VarIdentifierIdentifierVariableRef(VarIdentifier |ValueParIdentifier)
[ExtendedFieldReference]2.2 Timer instantiationTimerInstanceTimerKeywordTimerListTimerListSingleTimerInstance{","
SingleTimerInstance}SingleTimerInstanceTimerIdentifier
[ArrayDef]
[AssignmentCharTimerValue]TimerKeyword"timer"TimerIdentifierIdentifierTimerValueExpressionStatic semantics: When
Expression resolves
to SingleExpression it must
resolve to a value of type float. Expression shall only resolves
to CompoundExpression in
the initialiation in default timer value assignment for timer
arraysTimerRefTimerIdentifier
[ArrayOrBitRef]
|TimerParIdentifier
[ArrayOrBitRef]2.3 Component operationsConfigurationStatementsConnectStatement |MapStatement
|DisconnectStatement
|UnmapStatement |DoneStatement
|StartTCStatement |StopTCStatementConfigurationOpsCreateOp |SelfOp |SystemOp |MTCOp |RunningOpCreateOpComponentTypeDotCreateKeywordSystemOpSystemKeywordSelfOp"self"MTCOpMTCKeywordDoneStatementComponentIdDotDoneKeywordComponentIdComponentIdentifier
| (AnyKeyword
|AllKeyword)
ComponentKeywordDoneKeyword"done"RunningOpComponentIdDotRunningKeywordRunningKeyword"running"CreateKeyword"create"ConnectStatementConnectKeywordPortSpecConnectKeyword"connect"PortSpec"(" PortRef ","
PortRef ")"PortRefComponentRefColonPortComponentRefComponentIdentifier
|SystemOp
|SelfOp |MTCOpDisconnectStatementDisconnectKeywordPortSpecDisconnectKeyword"disconnect"MapStatementMapKeywordPortSpecMapKeyword"map"UnmapStatementUnmapKeywordPortSpecUnmapKeyword"unmap"StartTCStatementComponentIdentifierDotStartKeyword "(" FunctionInstance ")"
Static semantics: the
Function instance may only have in parametersStatic semantics: the
Function instance shall not
have timer parametersStartKeyword"start"StopTCStatementStopKeyword
|ComponentIdentifierDotStopKeyword |AllKeywordComponentKeywordDotStopKeywordComponentIdentifierVariableRef
|FunctionInstanceStatic semantics: the
variable associated with VariableRef or the Return type
associated with FunctionInstance must be
of component type2.4 Port operationsPort(PortIdentifier |PortParIdentifier)
[ArrayOrBitRef]CommunicationStatementsSendStatement |CallStatement
|ReplyStatement |RaiseStatement
|ReceiveStatement |TriggerStatement |GetCallStatement |GetReplyStatement |CatchStatement
|CheckStatement |ClearStatement
|StartStatement |StopStatementSendStatementPortDotPortSendOpPortSendOpSendOpKeyword "("
SendParameter
")" [ToClause]SendOpKeyword"send"SendParameterTemplateInstanceToClauseToKeywordAddressRefToKeyword"to"AddressRefVariableRef
|FunctionInstanceStatic semantics:
VariableRef and
FunctionInstance return
must be of address or component typeCallStatementPortDotPortCallOp [PortCallBody]PortCallOpCallOpKeyword "("
CallParameters
")" [ToClause]CallOpKeyword"call"CallParametersTemplateInstance [","
CallTimerValue]
Static semantics: only out
parameters may be omitted or specified with a matching
attributeCallTimerValueTimerValue
|NowaitKeywordStatic semantics: Value must
be of type floatNowaitKeyword"nowait"PortCallBodyBeginCharCallBodyStatementListEndCharCallBodyStatementList{CallBodyStatement
[SemiColon]}+CallBodyStatementCallBodyGuardStatementBlockCallBodyGuardAltGuardCharCallBodyOpsCallBodyOpsGetReplyStatement |CatchStatementReplyStatementPortDotPortReplyOpPortReplyOpReplyKeyword
"(" TemplateInstance
[ReplyValue]")"
[ToClause]ReplyKeyword"reply"ReplyValueValueKeywordExpressionRaiseStatementPortDotPortRaiseOpPortRaiseOpRaiseKeyword
"(" Signature ","
TemplateInstance ")"
[ToClause]RaiseKeyword"raise"ReceiveStatementPortOrAnyDotPortReceiveOpPortOrAnyPort |AnyKeywordPortKeywordPortReceiveOpReceiveOpKeyword ["("
ReceiveParameter ")"]
[FromClause]
[PortRedirect]
Static semantics: the
PortRedirect
option may only be present if the ReceiveParameter option is
also presentReceiveOpKeyword"receive"ReceiveParameterTemplateInstanceFromClauseFromKeywordAddressRefFromKeyword"from"PortRedirectPortRedirectSymbol
(ValueSpec
[SenderSpec]
|SenderSpec)PortRedirectSymbol"->"ValueSpecValueKeywordVariableRefValueKeyword"value"SenderSpecSenderKeywordVariableRefStatic semantics: VariableRef must be of address
or component typeSenderKeyword"sender"TriggerStatementPortOrAnyDotPortTriggerOpPortTriggerOpTriggerOpKeyword ["("
ReceiveParameter ")"]
[FromClause]
[PortRedirect]
Static semantics: the
PortRedirect
option may only be present if the ReceiveParameter option is
also presentTriggerOpKeyword"trigger"GetCallStatementPortOrAnyDotPortGetCallOpPortGetCallOpGetCallOpKeyword ["("
ReceiveParameter ")"]
[FromClause]
[PortRedirectWithParam]
Static semantics: the
PortRedirectWithParam
option may only be present if the ReceiveParameter option is
also presentGetCallOpKeyword"getcall"PortRedirectWithParamPortRedirectSymbolRedirectSpecRedirectSpecValueSpec
[ParaSpec]
[SenderSpec]
|ParaSpec
[SenderSpec]
|SenderSpecParaSpecParaKeywordParaAssignmentListParaKeyword"param"ParaAssignmentList"(" (AssignmentList |VariableList)
")"AssignmentListVariableAssignment {","
VariableAssignment}VariableAssignmentVariableRefAssignmentCharParameterIdentifierStatic semantics: the
ParameterIdentifiers
must be from the corresponding signature
definitionParameterIdentifierValueParIdentifier
|TimerParIdentifier
|TemplateParIdentifier
|PortParIdentifierVariableListVariableEntry {","
VariableEntry}VariableEntryVariableRef
|NotUsedSymbolGetReplyStatementPortOrAnyDotPortGetReplyOpPortGetReplyOpGetReplyOpKeyword ["("
ReceiveParameter
[ValueMatchSpec] ")"]
[FromClause]
[PortRedirectWithParam]
Static semantics: the
PortRedirectWithParam
option may only be present if the ReceiveParameter option is
also presentGetReplyOpKeyword"getreply"ValueMatchSpecValueKeywordTemplateInstanceCheckStatementPortOrAnyDotPortCheckOpPortCheckOpCheckOpKeyword ["("
CheckParameter
")"]CheckOpKeyword"check"CheckParameterCheckPortOpsPresent
|FromClausePresent |RedirectPresentFromClausePresentFromClause
[PortRedirectSymbolSenderSpec]RedirectPresentPortRedirectSymbolSenderSpecCheckPortOpsPresentPortReceiveOp |PortGetCallOp
|PortGetReplyOp |PortCatchOpCatchStatementPortOrAnyDotPortCatchOpPortCatchOpCatchOpKeyword
["("CatchOpParameter ")"]
[FromClause]
[PortRedirect]
Static semantics: the
PortRedirect
option may only be present if the CatchOpParameter option is
also presentCatchOpKeyword"catch"CatchOpParameterSignature ","
TemplateInstance |TimeoutKeywordClearStatementPortOrAllDotPortClearOpPortOrAllPort |AllKeywordPortKeywordPortClearOpClearOpKeywordClearOpKeyword"clear"StartStatementPortOrAllDotPortStartOpPortStartOpStartKeywordStopStatementPortOrAllDotPortStopOpPortStopOpStopKeywordStopKeyword"stop"AnyKeyword"any"2.5 Timer operationsTimerStatementsStartTimerStatement
|StopTimerStatement
|TimeoutStatementTimerOpsReadTimerOp
|RunningTimerOpStartTimerStatementTimerRefDotStartKeyword ["(" TimerValue ")"]StopTimerStatementTimerRefOrAllDotStopKeywordTimerRefOrAllTimerRef |AllKeywordTimerKeywordReadTimerOpTimerRefDotReadKeywordReadKeyword"read"RunningTimerOpTimerRefOrAnyDotRunningKeywordTimeoutStatementTimerRefOrAnyDotTimeoutKeywordTimerRefOrAnyTimerRef |AnyKeywordTimerKeywordTimeoutKeyword"timeout"3 TypeTypePredefinedType |ReferencedTypePredefinedTypeBitStringKeyword |BooleanKeyword
|CharStringKeyword |UniversalCharString
|CharKeyword |UniversalChar
|IntegerKeyword |OctetStringKeyword
|ObjectIdentifierKeyword
|HexStringKeyword |VerdictTypeKeyword
|FloatKeyword |AddressKeyword
|DefaultKeyword |AnyTypeKeywordBitStringKeyword"bitstring"BooleanKeyword"boolean"IntegerKeyword"integer"OctetStringKeyword"octetstring"ObjectIdentifierKeyword"objid"HexStringKeyword"hexstring"VerdictTypeKeyword"verdicttype"FloatKeyword"float"AddressKeyword"address"DefaultKeyword"default"AnyTypeKeyword"anytype"CharStringKeyword"charstring"UniversalCharStringUniversalKeywordCharStringKeywordUniversalKeyword"universal"CharKeyword"char"UniversalCharUniversalKeywordCharKeywordReferencedType[GlobalModuleIdDot] TypeReference [ExtendedFieldReference]TypeReferenceStructTypeIdentifier[TypeActualParList]
|EnumTypeIdentifier
|SubTypeIdentifier |ComponentTypeIdentifierTypeActualParList"(" TypeActualPar {","
TypeActualPar}
")"TypeActualParConstantExpressionArrayDef{"[" ArrayBounds [".." ArrayBounds] "]"}+ArrayBoundsSingleConstExpressionStatic semantics:
ArrayBounds will
resolve to a non negative value of integer
type4 ValueValuePredefinedValue |ReferencedValuePredefinedValueBitStringValue |BooleanValue
|CharStringValue |IntegerValue
|OctetStringValue |ObjectIdentifierValue
|HexStringValue |VerdictTypeValue |EnumeratedValue |FloatValue |AddressValue
|OmitValueBitStringValueBstringBooleanValue"true" | "false"IntegerValueNumberOctetStringValueOstringObjectIdentifierValueObjectIdentifierKeyword
"{" ObjIdComponentList "}"
ReferencedValue must be of type object
identifierObjIdComponentList{ObjIdComponent}+ObjIdComponentNameForm |NumberForm |NameAndNumberFormNumberFormNumber |ReferencedValueStatic semantics:
ReferencedValue must be of
type integer and have a non negative
ValueNameAndNumberFormIdentifier "("
NumberForm
")"NameFormIdentifierHexStringValueHstringVerdictTypeValue"pass" | "fail" | "inconc" | "none"
| "error"EnumeratedValueEnumerationIdentifierCharStringValueCstring |QuadrupleQuadrupleCharKeyword
"(" Group ","
Plane "," Row "," Cell ")"GroupNumberPlaneNumberRowNumberCellNumberFloatValueFloatDotNotation |FloatENotationFloatDotNotationNumberDotDecimalNumberFloatENotationNumber
[DotDecimalNumber] Exponential [Minus] NumberExponential"E"ReferencedValueValueReference [ExtendedFieldReference]ValueReference[GlobalModuleId Dot]
(ConstIdentifier |ExtConstIdentifier)
|ValueParIdentifier
|ModuleParIdentifier
|VarIdentifierNumber(NonZeroNum
{Num}) | "0"NonZeroNum"1" | "2" | "3" | "4" | "5" |
"6" | "7" | "8" | "9"DecimalNumber{Num}+Num"0" |NonZeroNumBstring"'" {Bin} "'"
"B"Bin"0" | "1"Hstring"'" {Hex} "'"
"H"HexNum | "A"
| "B" | "C" | "D" | "E" |
"F"| "a" | "b" | "c" | "d" | "e"
| "f"Ostring"'" {Oct} "'"
"O"OctHexHexCstring""" {Char} """CharReference: A
character defined by the
relevant CharacterString type. For charstring a character from
the character set defined in ISO/IEC
646. For universal
charstring a character from any character set defined in
ISO/IEC 10646IdentifierAlpha{AlphaNum |Underscore}AlphaUpperAlpha
|LowerAlphaAlphaNumAlpha |
NumUpperAlpha"A" | "B" | "C" | "D" | "E" |
"F" | "G" | "H" | "I" | "J" | "K"
| "L" | "M" | "N" | "O" | "P"
| "Q" | "R" | "S" | "T" | "U"
| "V" | "W" | "X" | "Y" |
"Z"LowerAlpha"a" | "b" | "c" | "d" | "e" |
"f" | "g" | "h" | "i" | "j" | "k"
| "l" | "m" | "n" | "o" | "p"
| "q" | "r" | "s" | "t" | "u"
| "v" | "w" | "x" | "y" |
"z"ExtendedAlphaNumReference: A
graphical character from the
BASIC LATIN or from the LATIN-1 SUPPLEMENT character sets
defined in ISO/IEC 10646 (characters from
char (0,0,0,33) to
char (0,0,0,126), from char (0,0,0,161) to char (0,0,0,172) and
from char (0,0,0,174) to char (0,0,0,255)FreeText""" {ExtendedAlphaNum}
"""AddressValue"null"OmitValueOmitKeywordOmitKeyword"omit"5 ParameterizationInParKeyword"in"OutParKeyword"out"InOutParKeyword"inout"FormalValuePar[(InParKeyword |InOutParKeyword |OutParKeyword)]
TypeValueParIdentifierValueParIdentifierIdentifierFormalPortPar[InOutParKeyword]
PortTypeIdentifierPortParIdentifierPortParIdentifierIdentifierFormalTimerPar[InOutParKeyword]
TimerKeywordTimerParIdentifierTimerParIdentifierIdentifierFormalTemplatePar[InParKeyword] TemplateKeywordTypeTemplateParIdentifierTemplateParIdentifierIdentifier6 With statementWithStatementWithKeywordWithAttribListWithKeyword"with"WithAttribList"{" MultiWithAttrib "}"MultiWithAttrib{SingleWithAttrib
[SemiColon]}+SingleWithAttribAttribKeyword [OverrideKeyword]
[AttribQualifier]
AttribSpecAttribKeywordEncodeKeyword |VariationKeyword |DisplayKeyword
|ExtensionKeywordEncodeKeyword"encode"VariationKeyword"variant"DisplayKeyword"display"ExtensionKeyword"extension"OverrideKeyword"override"AttribQualifier"(" DefOrFieldRefList
")"DefOrFieldRefListDefOrFieldRef {","
DefOrFieldRef}DefOrFieldRefDefinitionRef |FieldReference
|AllRef |PredefinedTypeStatic semantics: the
DefOrFieldRef
must refer to a definition or field which is within the module,
group or definition to which the with statement is
associatedDefinitionRefStructTypeIdentifier
|EnumTypeIdentifier
|PortTypeIdentifier
|ComponentTypeIdentifier
|SubTypeIdentifier |ConstIdentifier |TemplateIdentifier
|AltstepIdentifier |TestcaseIdentifier
|FunctionIdentifier
|SignatureIdentifier
|VarIdentifier |TimerIdentifier |PortIdentifier
|ModuleParIdentifier
|FullGroupIdentifierAllRef( GroupKeywordAllKeyword [ExceptKeywordBeginCharGroupRefListEndChar]) | ( TypeDefKeywordAllKeyword [ExceptKeywordBeginCharTypeRefList] EndChar) | ( TemplateKeywordAllKeyword
[ExceptKeywordBeginCharTemplateRefList]
EndChar) | (
ConstKeywordAllKeyword
[ExceptKeywordBeginCharConstRefList]
EndChar) | (
AltstepKeywordAllKeyword
[ExceptKeywordBeginCharAltstepRefList]
EndChar) | (
TestcaseKeywordAllKeyword
[ExceptKeywordBeginCharTestcaseRefList]
EndChar) | (
FunctionKeywordAllKeyword
[ExceptKeywordBeginCharFunctionRefList]
EndChar) | (
SignatureKeywordAllKeyword
[ExceptKeywordBeginCharSignatureRefList]
EndChar) | (
ModuleParKeywordAllKeyword
[ExceptKeywordBeginCharModuleParRefList]
EndChar)AttribSpecFreeText7 Behaviour statementsBehaviourStatementsTestcaseInstance |FunctionInstance |ReturnStatement |AltConstruct
|InterleavedConstruct
|LabelStatement |GotoStatement
|RepeatStatement |DeactivateStatement
|AltstepInstanceStatic semantics:
TestcaseInstance shall not
be called from within an existing executing testcase or function
chain called from a testcase i.e., testcases can only be
instantiated from the control part or from functions directly
called from the control partVerdictStatementsSetLocalVerdictVerdictOpsGetLocalVerdictSetLocalVerdictSetVerdictKeyword "("
SingleExpression ")"
Static semantics:
SingleExpression must
resolve to a value of type verdictStatic semantics: the
SetLocalVerdict shall not
be used to assign the Value errorSetVerdictKeyword"setverdict"GetLocalVerdict"getverdict"SUTStatementsActionKeyword "("
(FreeText |TemplateRefWithParList)
")"ActionKeyword"action"ReturnStatementReturnKeyword [Expression]AltConstructAltKeywordBeginCharAltGuardListEndCharAltKeyword"alt"AltGuardList{GuardStatement
[SemiColon]}+
[ElseStatement
[SemiColon]]GuardStatementAltGuardChar (AltstepInstance |GuardOpStatementBlock)ElseStatement"["ElseKeyword "]" StatementBlockAltGuardChar"[" [BooleanExpression]
"]"GuardOpTimeoutStatement |ReceiveStatement |TriggerStatement |GetCallStatement |CatchStatement
|CheckStatement |GetReplyStatement |DoneStatementStatic semantics:
GuardOp used within
the module control part. May only contain the
timeoutStatementInterleavedConstructInterleavedKeywordBeginCharInterleavedGuardListEndCharInterleavedKeyword"interleave"InterleavedGuardList{InterleavedGuardElement
[SemiColon]}+InterleavedGuardElementInterleavedGuardInterleavedActionInterleavedGuard"[" "]" GuardOpInterleavedActionStatementBlockStatic semantics: the
StatementBlock
may not contain loop statements, goto, activate, deactivate,
stop, return or calls to functionsLabelStatementLabelKeywordLabelIdentifierLabelKeyword"label"LabelIdentifierIdentifierGotoStatementGotoKeywordLabelIdentifierGotoKeyword"goto"RepeatStatement"repeat"ActivateOpActivateKeyword "("
AltstepInstance ")"ActivateKeyword"activate"DeactivateStatementDeactivateKeyword ["("
Expression ")"]
Static semantics:
Expression shall
evaluate to a value of default typeDeactivateKeyword"deactivate"8 Basic statementsBasicStatementsAssignment
|LogStatement |LoopConstruct
|ConditionalConstructExpressionSingleExpression |CompoundExpressionStatic semantics:
Expression shall
not contain Configuration, activate operation or verdict
operations within the module control partCompoundExpressionFieldExpressionList
|ArrayExpressionStatic semantics: Within
CompoundExpression the
ArrayExpression can be used
for Arrays, record, record of and set of
types.FieldExpressionList"{" FieldExpressionSpec
{"," FieldExpressionSpec}
"}"FieldExpressionSpecFieldReferenceAssignmentCharExpressionArrayExpression"{" [ArrayElementExpressionList]
"}"ArrayElementExpressionListNotUsedOrExpression
{"," NotUsedOrExpression}NotUsedOrExpressionExpression
|NotUsedSymbolConstantExpressionSingleConstExpression
|CompoundConstExpressionSingleConstExpressionSingleExpressionStatic semantics:
SingleConstExpression
shall not contain Variables or Module parameters and shall
resolve to a constant Value at compile
timeBooleanExpressionSingleExpressionStatic semantics:
BooleanExpression shall
resolve to a Value of type booleanCompoundConstExpressionFieldConstExpressionList
|ArrayConstExpressionStatic semantics: Within
CompoundConstExpression
the ArrayConstExpression
can be used for Arrays, record, record of and set of
types.FieldConstExpressionList"{" FieldConstExpressionSpec
{"," FieldConstExpressionSpec}
"}"FieldConstExpressionSpecFieldReferenceAssignmentCharConstantExpressionArrayConstExpression"{" [ArrayElementConstExpressionList]
"}"ArrayElementConstExpressionListConstantExpression
{"," ConstantExpression}AssignmentVariableRefAssignmentCharExpressionOperational semantics: The
Expression on the
RHS of Assignment
shall evaluate to an explicit Value of the type of the
LHS.SingleExpressionSimpleExpression
{LogicalOpSimpleExpression}
Operational semantics: If
both SimpleExpressions and the
LogicalOp exist then
the SimpleExpressions shall
evaluate to specific values of compatible
typesSimpleExpression["not"] SubExpressionOperational semantics:
Operands of the not operator shall be of type boolean (TTCN or
ASN.1) or derivatives of type booleanSubExpressionPartialExpression
[RelOpPartialExpression]
Operational semantics: If
both PartialExpressions and
the RelOp exist then the
PartialExpressions shall
evaluate to specific values of compatible
types.Operational
semantics: If RelOp is <,
>, >=, or
<= then each SubExpression shall evaluate
to a specific integer, Enumerated or float Value (these values
can either be TTCN or ASN.1 values)PartialExpressionResult
[ShiftOpResult]
Operational semantics:
Each Result shall resolve to a specific Value. If more than one
Result exists the right-hand operand shall be of type integer
and if the ShiftOp is
<< or >> then the
left-hand operand shall resolve to
either bitstring, hexstring or octetstring type. If the shift op
is <@ or @> then the
left-hand operand shall be of type
bitstring, hexstring, charstring or universal
charstringResultSubResult
{BitOpSubResult}
Operational semantics: If
both SubResults and
the BitOp exist then the
SubResults shall
evaluate to specific values of compatible
typesSubResult["not4b"] ProductOperational semantics: If
the not4b operator exists, the operand shall
be of type
bitstring, octetstring or hexstring.ProductTerm {AddOpTerm} Operational
semantics: Each Term
shall resolve to a specific Value. If more than one
Term exists and the
AddOp resolves to
StringOp then the
terms shall resolve to same type which shall be of bitstring,
hexstring, octetstring, charstring or universal charstring.If
more than one Term
exists and the AddOp
does not resolve to StringOp then the Terms shall both resolve to type
integer or float.TermFactor
{MultiplyOpFactor}
Operational semantics:
Each Factor shall
resolve to a specific Value. If more than one Factor exists then the Factors shall resolve to type
integer or float.Factor[UnaryOp]
PrimaryOperational semantics: The
Primary shall resolve
to a specific Value. If UnaryOp exists and is "not" then
Primary shall resolve
to type boolean if the UnaryOp is + or
- then
Primary shall resolve
to type integer or float. If the UnaryOp resolves to
not4b then the
Primary shall resolve to the type bitstring, hexstring or
octetstring.PrimaryOpCall |Value | "("
SingleExpression
")"ExtendedFieldReference{(Dot (
StructFieldIdentifier
|ArrayOrBitRef |TypeDefIdentifier))
|ArrayOrBitRef }+
Operational semantics: The
TypeDefIdentifier shall
be used only if the type of the VarInstance or ReferencedValue in which
the ExtendedFieldReference
is used is anytype.OpCallConfigurationOps
|VerdictOps |TimerOps |TestcaseInstance
|FunctionInstance
|TemplateOps |ActivateOpAddOp"+" | "-" |StringOpOperational semantics:
Operands of the + or -
operators shall be of type integer or
float (i.e., TTCN or ASN.1 predefined) or derivations of integer
or float (i.e., subrange)MultiplyOp"*" | "/" | "mod" | "rem"
Operational semantics:
Operands of the *, /,
rem or mod operators shall
be of type
integer or float (i.e., TTCN or ASN.1 predefined) or derivations
of integer or float (i.e., subrange).UnaryOp"+" | "-" Operational
semantics: Operands of the + or
- operators
shall be of type integer or float (i.e., TTCN or ASN.1
predefined) or derivations of integer or float (i.e.,
subrange).RelOp"==" | "<" | ">" | "!=" | ">="
| "<=" Operational
semantics: the precedence of the operators is
defined hereBitOp"and4b" | "xor4b" | "or4b"
Operational semantics:
Operands of the and4b,
or4b or xor4b operator
shall be of type
bitstring, hexstring or octetstring (TTCN or ASN.1) or
derivatives of these types.LogicalOp"and" | "xor" | "or"
Operational semantics:
Operands of the and, xor,
or or operators shall be of type boolean
(TTCN or ASN.1) or derivatives of type boolean.Operational semantics: the
precedence of the operators is defined hereStringOp"&" Operational
semantics: Operands of the &
operator shall be
bitstring, hexstring,
octetstring or character stringShiftOp"<<" | ">>" | "<@" |
"@>"LogStatementLogKeyword
"(" [FreeText]
")"LogKeyword"log"LoopConstructForStatement |WhileStatement |DoWhileStatementForStatementForKeyword
"(" InitialSemiColonFinalSemiColonStep ")" StatementBlockForKeyword"for"InitialVarInstance |AssignmentFinalBooleanExpressionStepAssignmentWhileStatementWhileKeyword "("
BooleanExpression ")"
StatementBlockWhileKeyword"while"DoWhileStatementDoKeywordStatementBlockWhileKeyword
"(" BooleanExpression
")"DoKeyword"do"ConditionalConstructIfKeyword
"(" BooleanExpression ")"
StatementBlock
{ElseIfClause}
[ElseClause]IfKeyword"if"ElseIfClauseElseKeywordIfKeyword "(" BooleanExpression ")"
StatementBlockElseKeyword"else"ElseClauseElseKeywordStatementBlock9 Miscellaneous productionsDot"."Dash"-"MinusDashSemiColon";"Colon":"Underscore"_"BeginChar"{"EndChar"}"AssignmentChar":="
TTCN-3 predefined functionsCategoryFunctionKeywordConversion
functionsConvert integer
value to char valueint2charConvert integer
value to universal
char valueint2unicharConvert integer
value to bitstring
valueint2bitConvert integer
value to hexstring
valueint2hexConvert integer
value to octetstring
valueint2octConvert integer
value to charstring
valueint2strConvert integer
value to float valueint2floatConvert float value
to integer valuefloat2intConvert char value to
integer valuechar2intConvert universal
char value to integer valueunichar2intConvert bitstring
value to integer
valuebit2intConvert bitstring
value to hexstring
valuebit2hexConvert bitstring
value to octetstring
valuebit2octConvert bitstring
value to charstring
valuebit2strConvert hexstring
value to integer
valuehex2intConvert hexstring
value to bitstring
valuehex2bitConvert hexstring
value to octetstring
valuehex2octConvert hexstring
value to charstring
valuehex2strConvert octetstring value to integer valueoct2intConvert octetstring value to bitstring valueoct2bitConvert octetstring value to hexstring valueoct2hexConvert octetstring value to charstring valueoct2strConvert charstring value to integer valuestr2intConvert charstring value to octetstring valuestr2octLength/size
functionsReturn the length of a value of any string
typelengthofReturn the number of elements in a record, record of, template, set, set
of or arraysizeofPresence/choice
functionsDetermine if an optional field in a record, record of, template, set or
set of is presentispresentDetermine which choice has been made in a union typeischosenString functionsReturns part of the input string matching the
specified pattern descriptionregexpReturns the specified portion of the input
stringsubstrOther functionsGenerate a random float numberrnd