IBM
Contents Index Previous Next



The TTCN-MP Syntax Productions in BNF


TTCN Specification

  1. TTCN_Specification ::= TTCN_Module | Package | Suite

TTCN Module

  1. TTCN_Module ::= $TTCN_Module TTCN_ModuleId TTCN_ModuleOverviewPart [TTCN_ModuleImportPart] [DeclarationsPart] [ConstraintsPart] [DynamicPart] $End_TTCN_Module
  2. TTCN_ModuleId ::= $TTCN_ModuleId TTCN_ModuleIdentifier
  3. TTCN_ModuleIdentifier ::= Identifier

The Module Overview

  1. TTCN_ModuleOverviewPart ::= $TTCN_ModuleOverviewPart TTCN_ModuleExports [TTCN_ModuleStructure] [TestCaseIndex] [TestStepIndex] [DefaultIndex] $End_TTCN_ModuleOverviewPart

Module Exports

  1. TTCN_ModuleExports ::= $Begin_TTCN_ModuleExports TTCN_ModuleId [TTCN_ModuleRef] [TTCN_ModuleObjective] [StandardsRef] [PICSref] [PIXITref] [TestMethods] [Comment] ExportedObjects [Comment] $End_ModuleExports
  2. TTCN_ModuleRef ::= $TTCN_ModuleRef BoundedFreeText
  3. TTCN_ModuleObjective ::= $TTCN_ModuleObjective BoundedFreeText
  4. ExportedObjects ::= $ExportedObjects {ExportedObject} $End_ExportedObjects
  5. ExportedObject ::= $ExportedObject ObjectId ObjectType [SourceInfo] [Comment] $End_ExportedObject
  6. ObjectId ::= $ObjectId ObjectIdentifier
  7. ObjectIdentifier ::= Identifier | ObjectTypeReference
  8. ObjectTypeReference ::= Identifier '[' Identifier ']'
  9. ObjectType ::= $ObjectType ObjectPredefinedType
  10. ObjectPredefinedType ::= SimpleType_Object | StructType_Object | ASN1_Type_Object | TS_Op_Object | TS_Proc_Object | TS_Par_Object | SelectExpr_Object | TS_Const_Object | TS_Var_Object | TC_Var_Object | PCO_Type_Object | PCO_Object | CP_Object | Timer_Object | TComp_Object | TCompConfig_Object | TTCN_ASP_Type_Object | ASN1_ASP_Type_Object | TTCN_PDU_Type_Object | ASN1_PDU_Type_Object | TTCN_CM_Type_Object | ASN1_CM_Type_Object | EncodingRule_Object | EncodingVariation_Object | InvalidFieldEncoding_Object | Alias_Object | StructTypeConstraint_Object | ASN1TypeConstraint_Object | TTCN_ASP_Constraint_Object | ASN1_ASP_Constraint_Object | TTCN_PDU_Constraint_Object | ASN1_PDU_Constraint_Object | TTCN_CM_Constraint_Object | ASN1_CM_Constraint_Object | TestCase_Object | TestStep_Object | Default_Object | NamedNumber_Object | Enumeration_Object
  11. SourceInfo ::= $SourceInfo (SourceIdentifier | ObjectDirective)
  12. SourceIdentifier ::= SuiteIdentifier | TTCN_ModuleIdentifier | PackageIdentifier
  13. ObjectDirective ::= '-' | OMIT | EXTERNAL

TTCN Module Structure

  1. TTCN_ModuleStructure ::= $Begin_TTCN_ModuleStructure Structure&Objectives [Comment] $End_TTCN_ModuleStructure

TTCN Module Import Part

  1. TTCN_ModuleImportPart ::= $TTCN_ModuleImportPart [ExternalObjects] [ImportDeclarations] $End_TTCN_ModuleImportPart

External Objects

  1. ExternalObjects ::= $Begin_ExternalObjects {ExternalObject}+ [Comment] $End_ExternalObjects
  2. ExternalObject ::= $ExternalObject ExternalObjectId ObjectType [Comment] $End_ExternalObject
  3. ExternalObjectId ::= $ExternalObjectId ExternalObjectIdentifier
  4. ExternalObjectIdentifier ::= ObjectIdentifier | TS_OpId&ParList | ConsId&ParList | TestStepId&ParList

Import Declarations

  1. ImportDeclarations ::= $ImportDeclarations {Imports}+ $End_ImportDeclarations
  2. Imports ::= $Begin_Imports SourceId [SourceRef] [StandardsRef] [Comment] ImportedObjects [Comment] $End_Imports
  3. SourceId ::= $SourceId SourceIdentifier
  4. SourceRef ::= $SourceRef BoundedFreeText
  5. ImportedObjects ::= $ImportedObjects {ImportedObject}+ $End_ImportedObjects
  6. ImportedObject ::= $ImportedObject ObjectId ObjectType [SourceInfo] [Comment] $End_ImportedObject

Source Package

  1. Package ::= $Package PackageId PackageExports PackageImports $End_Package
  2. PackageId ::= $PackageId PackageIdentifier
  3. PackageIdentifier ::= Identifier

Package exports

  1. PackageExports ::= $Begin_PackageExports PackageId [Comment] PackageExportedObjects [Comment] $End_PackageExports
  2. PackageExportedObjects ::= $PackageExportedObjects {PackageExportedObject}+ $End_PackageExportedObjects
  3. PackageExportedObject ::= $PackageExportedObject ObjectId ObjectType [SourceInfo] [Comment] $End_PackageExportedObject

Package imports and renames

  1. PackageImports ::= $PackageImports {PackageImport} $End_PackageImports

Package Import

  1. PackageImport ::= $Begin_PackageImport SourceId [Comment] PackageImportedObjects [Comment] $End_PackageImport
  2. PackageImportedObjects ::= $PackageImportedObjects {PackageImportedObject}+ $End_PackageImportedObjects
  3. PackageImportObject ::= $PackageImportObject ObjectId ObjectType [NewObjectDef] [NewObjectId] [Comment] $End_PackageImportObject
  4. NewObjectDef ::= $NewObjectDef (NewObjectIdentifier | ObjectDirective)
  5. NewObjectId ::= $NewObjectId NewObjectIdentifier
  6. NewObjectIdentifier ::= ObjectIdentifier

Test suite

  1. Suite ::= $Suite SuiteId SuiteOverviewPart [ImportPart] DeclarationsPart ConstraintsPart DynamicPart $End_Suite
  2. SuiteId ::= $SuiteId SuiteIdentifier
  3. SuiteIdentifier ::= Identifier

The Test Suite Overview

  1. SuiteOverviewPart ::= $SuiteOverviewPart [TestSuiteIndex] SuiteStructure [TestCaseIndex] [TestStepIndex] [DefaultIndex] $End_SuiteOverviewPart

Test Suite Index

  1. TestSuiteIndex ::= $Begin_TestSuiteIndex {ObjectInfo} [Comment] $End_TestSuiteIndex

The Imported Object Info

  1. ObjectInfo ::= $ObjectInfo ObjectId ObjectType SourceId OrigObjectId [PageNum] [Comment] $End_ObjectInfo
  2. PageNum ::= $PageNum PageNumber
  3. PageNumber ::= Number
  4. OrigObjectId ::= $OrigObjectId ObjectIdentifier

Test Suite Structure

  1. SuiteStructure ::= $Begin_SuiteStructure SuiteId StandardsRef PICSref PIXITref TestMethods [Comment] Structure&Objectives [Comment] $End_SuiteStructure
  2. StandardsRef ::= $StandardsRef BoundedFreeText
  3. PICSref ::= $PICSref BoundedFreeText
  4. PIXITref ::= $PIXITref BoundedFreeText
  5. TestMethods ::= $TestMethods BoundedFreeText
  6. Comment ::= $Comment [BoundedFreeText]
  7. Structure&Objectives ::= $Structure&Objectives {Structure&Objective} $End_Structure&Objectives
  8. Structure&Objective ::= $Structure&Objective TestGroupRef SelExprId Objective $End_Structure&Objective
  9. SelExprId ::= $SelectExprId [SelectExprIdentifier]

Test Case Index

  1. TestCaseIndex ::= $Begin_TestCaseIndex {CaseIndex} [Comment] $End_TestCaseIndex
  2. CaseIndex ::= $CaseIndex TestGroupRef TestCaseId SelExprId Description $End_CaseIndex
  3. Description ::= $Description BoundedFreeText

Test Step Index

  1. TestStepIndex ::= $Begin_TestStepIndex {StepIndex} [Comment] $End_TestStepIndex
  2. StepIndex ::= $StepIndex TestStepRef TestStepId Description $End_StepIndex

Default Index

  1. DefaultIndex ::= $Begin_DefaultIndex {DefIndex} [Comment] $End_DefaultIndex
  2. DefIndex ::= $DefIndex DefaultRef DefaultId Description $End_DefIndex

The Import Part

  1. ImportPart ::= $ImportPart ImportDeclarations $End_ImportPart

The Declarations Part

  1. DeclarationsPart ::= $DeclarationsPart Definitions Parameterization&Selection Declarations ComplexDefinitions $End_DeclarationsPart

Definitions

  1. Definitions ::= [TS_TypeDefs] [EncodingDefs] [TS_OpDefs] [TS_ProcDefs]

Test Suite Type Definitions

  1. TS_TypeDefs ::= $TS_TypeDefs [SimpleTypeDefs] [StructTypeDefs] [ASN1_TypeDefs] [ASN1_TypeRefs] $End_TS_TypeDefs

Simple Type Definitions

  1. SimpleTypeDefs ::= $Begin_SimpleTypeDefs {SimpleTypeDef}+ [Comment] $End_SimpleTypeDefs
  2. SimpleTypeDef ::= $SimpleTypeDef SimpleTypeId SimpleTypeDefinition [PDU_FieldEncoding] [Comment] $End_SimpleTypeDef
  3. SimpleTypeId ::= $SimpleTypeId SimpleTypeIdentifier
  4. SimpleTypeIdentifier ::= Identifier
  5. SimpleTypeDefinition ::= $SimpleTypeDefinition Type&Restriction
  6. Type&Restriction ::= Type [Restriction]
  7. Restriction ::= LengthRestriction | IntegerRange | SimpleValueList
  8. LengthRestriction ::= SingleTypeLength | RangeTypeLength
  9. SingleTypeLength ::= "["Number "]"
  10. RangeTypeLength ::= "[" LowerTypeBound To UpperTypeBound "]"
  11. IntegerRange ::= "(" LowerTypeBound To UpperTypeBound ")"
  12. LowerTypeBound ::= [Minus] Number | Minus INFINITY
  13. UpperTypeBound ::= [Minus] Number | INFINITY
  14. To ::= TO | ".."
  15. SimpleValueList ::= "(" [Minus] LiteralValue {Comma [Minus] LiteralValue} ")"

Structured Type Definitions

  1. StructTypeDefs ::= $StructTypeDefs {StructTypeDef}+ $End_StructTypeDefs
  2. StructTypeDef ::= $Begin_StructTypeDef StructId [EncVariationId] [Comment] ElemDcls [Comment] $End_StructTypeDef
  3. StructId ::= $StructId StructId&FullId
  4. StructId&FullId ::= StructIdentifier [FullIdentifier]
  5. FullIdentifier ::= "(" BoundedFreeText ")"
  6. StructIdentifier ::= Identifier
  7. ElemDcls ::= $ElemDcls {ElemDcl}+ $End_ElemDcls
  8. ElemDcl ::= $ElemDcl ElemId ElemType [PDU_FieldEncoding] [Comment] $End_ElemDcl
  9. ElemId ::= $ElemId ElemId&FullId
  10. ElemId&FullId ::= ElemIdentifier [FullIdentifier]
  11. ElemIdentifier ::= Identifier
  12. ElemType ::= $ElemType Type&Attributes

ASN.1 Type Definitions

  1. ASN1_TypeDefs ::= $ASN1_TypeDefs {ASN1_TypeDef}+ $End_ASN1_TypeDefs
  2. ASN1_TypeDef ::= $Begin_ASN1_TypeDef ASN1_TypeId [EncVariationId] [Comment] ASN1_TypeDefinition [Comment] $End_ASN1_TypeDef
  3. ASN1_TypeId ::= $ASN1_TypeId ASN1_TypeId&FullId
  4. ASN1_TypeId&FullId ::= ASN1_TypeIdentifier [FullIdentifier]
  5. ASN1_TypeIdentifier ::= Identifier
  6. ASN1_TypeDefinition ::= $ASN1_TypeDefinition ASN1_Type&LocalTypes $End_ASN1_TypeDefinition
  7. ASN1_Type&LocalTypes ::= ASN1_Type {ASN1_LocalType}
  8. ASN1_Type ::= ASN1_main_Type [ASN1_Encoding]
  9. ASN1_LocalType ::= TypeAssignment

ASN.1 Type Definitions by Reference

  1. ASN1_TypeRefs ::= $Begin_ASN1_TypeRefs {ASN1_TypeRef}+ [Comment] $End_ASN1_TypeRefs
  2. ASN1_TypeRef ::= $ASN1_TypeRef ASN1_TypeId ASN1_TypeReference ASN1_ModuleId [EncVariationId] [Comment] [ASN1_TypeDefinition] $End_ASN1_TypeRef
  3. ASN1_TypeReference ::= $ASN1_TypeReference TypeReference
  4. TypeReference ::= typereference
  5. ASN1_ModuleId ::= $ASN1_ModuleId ModuleIdentifier
  6. ModuleIdentifier ::= moduleidentifier

Test Suite Operation Definitions

  1. TS_OpDefs ::= $TS_OpDefs {TS_OpDef}+ $End_TS_OpDefs
  2. TS_OpDef ::= $Begin_TS_OpDef TS_OpId TS_OpResult [Comment] TS_OpDescription [Comment] $End_TS_OpDef
  3. TS_OpId ::= $TS_OpId TS_OpId&ParList
  4. TS_OpId&ParList ::= TS_OpIdentifier [FormalParList]
  5. TS_OpIdentifier ::= Identifier
  6. TS_OpResult ::= $TS_OpResult TypeOrPDU
  7. TS_OpDescription ::= $TS_OpDescription BoundedFreeText

Test Suite Operation Procedural Definitions

  1. TS_ProcDefs ::= $TS_ProcDefs {TS_ProcDef}+ $End_TS_ProcDefs
  2. TS_ProcDef ::= $Begin_TS_ProcDef TS_ProcId TS_ProcResult [Comment] TS_ProcDescription [Comment] $End_TS_ProcDef
  3. TS_ProcId ::= $TS_ProcId TS_ProcId&ParList
  4. TS_ProcId&ParList ::= TS_ProcIdentifier [FormalParList]
  5. TS_ProcIdentifier ::= Identifier
  6. TS_ProcResult ::= $TS_ProcResult TypeOrPDU
  7. TS_ProcDescription ::= $TS_ProcDescription TS_OpProcDef $End_TS_ProcDescription
  8. TS_OpProcDef ::= [VarBlock] ProcStatement
  9. VarBlock ::= VAR VarDcls ENDVAR
  10. VarDcls ::= {VarDcl SemiColon}
  11. VarDcl ::= [STATIC] VarIdentifiers Colon TypeOrPDU [Colon Value]
  12. VarIdentifiers ::= VarIdentifier {Comma VarIdentifier}
  13. VarIdentifier ::= Identifier
  14. ProcStatement ::= ReturnValueStatement | Assignment | IfStatement | WhileLoop | CaseStatement | ProcBlock
  15. ReturnValueStatement ::= RETURNVALUE Expression
  16. IfStatement ::= IF Expression THEN {ProcStatement SemiColon}+ [ELSE {ProcStatement SemiColon}+] ENDIF
  17. WhileLoop ::= WHILE Expression DO {ProcStatement SemiColon}+ ENDWHILE
  18. CaseStatement ::= CASE Expression OF {CaseClause SemiColon}+ [ELSE {ProcStatement SemiColon}+] ENDCASE
  19. CaseClause ::= IntegerLabel Colon ProcStatement
  20. IntegerLabel ::= Number | TS_ParIdentifier | TS_ConstIdentifier
  21. ProcBlock ::= BEGIN {ProcStatement SemiColon}+ END

Parameterization and Selection

  1. Parameterization&Selection ::= [TS_ParDcls] [SelectExprDefs]

Test Suite Parameter Declarations

  1. TS_ParDcls ::= $Begin_TS_ParDcls {TS_ParDcl}+ [Comment] $End_TS_ParDcls
  2. TS_ParDcl ::= $TS_ParDcl TS_ParId TS_ParType PICS_PIXITref [Comment] $End_TS_ParDcl
  3. TS_ParId ::= $TS_ParId TS_ParIdentifier
  4. TS_ParIdentifier ::= Identifier
  5. TS_ParType ::= $TS_ParType TypeOrPDU
  6. PICS_PIXITref ::= $PICS_PIXITref BoundedFreeText

Test Case Selection Expression Definitions

  1. SelectExprDefs ::= $Begin_SelectExprDefs {SelectExprDef}+ [Comment] $End_SelectExprDefs
  2. SelectExprDef ::= $SelectExprDef SelectExprId SelectExpr [Comment] $End_SelectExprDef
  3. SelectExprId ::= $SelectExprId SelectExprIdentifier
  4. SelectExprIdentifier ::= Identifier
  5. SelectExpr ::= $SelectExpr SelectionExpression
  6. SelectionExpression ::= Expression

Declarations

  1. Declarations ::= [TS_ConstDcls] [TS_ConstRefs] [TS_VarDcls] [TC_VarDcls] [PCO_TypeDcls] [PCO_Dcls] [CP_Dcls] [TimerDcls] [TCompDcls TCompConfigDcls]

Test Suite Constant Declarations

  1. TS_ConstDcls ::= $Begin_TS_ConstDcls {TS_ConstDcl}+ [Comment] $End_TS_ConstDcls
  2. TS_ConstDcl ::= $TS_ConstDcl TS_ConstId TS_ConstType TS_ConstValue [Comment] $End_TS_ConstDcl
  3. TS_ConstId ::= $TS_ConstId TS_ConstIdentifier
  4. TS_ConstIdentifier ::= Identifier
  5. TS_ConstType ::= $TS_ConstType Type
  6. TS_ConstValue ::= $TS_ConstValue DeclarationValue
  7. DeclarationValue ::= Expression

Test Suite Constant Declarations by Reference

  1. TS_ConstRefs ::= $Begin_TS_ConstRefs {TS_ConstRef}+ [Comment] $End_TS_ConstRefs
  2. TS_ConstRef ::= $TS_ConstRef TS_ConstId TS_ConstType ASN1_ValueReference ASN1_ModuleId [Comment] [ASN1_Value] $End_TS_ConstRef
  3. ASN1_ValueReference ::= $ASN1_ValueReference ValueReference
  4. ValueReference ::= valuereference

Test Suite Variable Declarations

  1. TS_VarDcls ::= $Begin_TS_VarDcls {TS_VarDcl}+ [Comment] $End_TS_VarDcls
  2. TS_VarDcl ::= $TS_VarDcl TS_VarId TS_VarType TS_VarValue [Comment] $End_TS_VarDcl
  3. TS_VarId ::= $TS_VarId TS_VarIdentifier
  4. TS_VarIdentifier ::= Identifier
  5. TS_VarType ::= $TS_VarType TypeOrPDU
  6. TS_VarValue ::= $TS_VarValue [DeclarationValue]

Test Case Variable Declarations

  1. TC_VarDcls ::= $Begin_TC_VarDcls {TC_VarDcl}+ [Comment] $End_TC_VarDcls
  2. TC_VarDcl ::= $TC_VarDcl TC_VarId TC_VarType TC_VarValue [Comment] $End_TC_VarDcl
  3. TC_VarId ::= $TC_VarId TC_VarIdentifier
  4. TC_VarIdentifier ::= Identifier
  5. TC_VarType ::= $TC_VarType TypeOrPDU
  6. TC_VarValue ::= $TC_VarValue [DeclarationValue]

PCO Type Declarations

  1. PCO_TypeDcls ::= $Begin_PCO_TypeDcls {PCO_TypeDcl}+ [Comment] $End_PCO_TypeDcls
  2. PCO_TypeDcl ::= $PCO_TypeDcl PCO_TypeId P_Role [Comment] $End_PCO_TypeDcl
  3. PCO_TypeId ::= $PCO_TypeId PCO_TypeIdentifier
  4. PCO_TypeIdentifier ::= Identifier

PCO Declarations

  1. PCO_Dcls ::= $Begin_PCO_Dcls {PCO_Dcl}+ [Comment] $End_PCO_Dcls
  2. PCO_Dcl ::= $PCO_Dcl PCO_Id PCO_TypeId&MuxValue P_Role [Comment] $End_PCO_Dcl
  3. PCO_Id ::= $PCO_Id PCO_Identifier
  4. PCO_Identifier ::= Identifier
  5. PCO_TypeId&MuxValue ::= $PCO_TypeId PCO_TypeIdentifier ["(" MuxValue ")"]
  6. MuxValue ::= TS_ParIdentifier
  7. P_Role ::= $PCO_Role PCO_Role
  8. PCO_Role ::= UT | LT

Coordination Points Declaration

  1. CP_Dcls ::= $Begin_CP_Dcls {CP_Dcl}+ [Comment] $End_CP_Dcls
  2. CP_Dcl ::= $CP_Dcl CP_Id [Comment] $End_CP_Dcl
  3. CP_Id ::= $CP_Id CP_Identifier
  4. CP_Identifier ::= Identifier

Timer Declarations

  1. TimerDcls ::= $Begin_TimerDcls {TimerDcl}+ [Comment] $End_TimerDcls
  2. TimerDcl ::= $TimerDcl TimerId Duration Unit [Comment] $End_TimerDcl
  3. TimerId ::= $TimerId TimerIdentifier
  4. TimerIdentifier ::= Identifier
  5. Duration ::= $Duration [DeclarationValue]
  6. Unit ::= $Unit TimeUnit
  7. TimeUnit ::= ps | ns | us | ms | s | min

Test Component Declarations

  1. TCompDcls ::= $Begin_TCompDcls {TCompDcl}+ [Comment] $End_TCompDcls
  2. TCompDcl ::= $TCompDcl TCompId TCompRole NumOf PCOs NumOf CPs [Comment] $EndTCompDcl
  3. TCompId ::= $TCompId TCompIdentifier
  4. TCompIdentifier ::= Identifier
  5. TCompRole ::= $TCompRole TC_Role
  6. TC_Role ::= MTC | PTC
  7. NumOf_PCOs ::= $NumOf_PCOs Num_PCOs
  8. Num_PCOs ::= Number
  9. NumOf_Cps ::= $NumOf_CPs Num_CPs
  10. Num_CPs ::= Number

Test Component Configuration Declarations

  1. TCompConfigDcls ::= $TCompConfigDcls {TCompConfigDcl}+ $End_TCompConfigDcls
  2. TCompConfigDcl ::= $Begin_TCompConfigDcl TCompConfigId [Comment] TCompConfigInfos [Comment] $EndTCompConfigDcl
  3. TCompConfigId ::= $TCompConfigId TCompConfigIdentifier
  4. TCompConfigIdentifier ::= Identifier
  5. TCompConfigInfos ::= $TCompConfigInfos {TCompConfigInfo}+ $End_TCompConfigInfos
  6. TCompConfigInfo ::= $TCompConfigInfo TCompUsed PCOs_Used CPs_Used [Comment] $End_TCompConfigInfo
  7. TCompUsed ::= $TCompUsed TCompIdentifier
  8. PCOs_Used ::= $PCOs_Used [PCO_List]
  9. PCO_List ::= PCO_Identifier {Comma PCO_Identifier}
  10. CPs_Used ::= $CPs_Used [CP_List]
  11. CP_List ::= CP_Identifier {Comma CP_Identifier}

ASP, PDU and CM Type Definitions

  1. ComplexDefinitions ::= [ASP_TypeDefs] [PDU_TypeDefs] [CM_TypeDefs] [AliasDefs]

ASP Type Definitions

  1. ASP_TypeDefs ::= $ASP_TypeDefs [TTCN_ASP_TypeDefs] [ASN1_ASP_TypeDefs] [ASN1_ASP_TypeDefsByRef] $End_ASP_TypeDefs

Tabular ASP Type Definitions

  1. TTCN_ASP_TypeDefs ::= $TTCN_ASP_TypeDefs {TTCN_ASP_TypeDef}+ $End_TTCN_ASP_TypeDefs
  2. TTCN_ASP_TypeDef ::= $Begin_TTCN_ASP_TypeDef ASP_Id PCO_Type [Comment] [ASP_ParDcls] [Comment] $End_TTCN_ASP_TypeDef
  3. PCO_Type ::= $PCO_Type [PCO_TypeIdentifier]
  4. ASP_Id ::= $ASP_Id ASP_Id&FullId
  5. ASP_Id&FullId ::= ASP_Identifier [FullIdentifier]
  6. ASP_Identifier ::= Identifier
  7. ASP_ParDcls ::= $ASP_ParDcls {ASP_ParDcl} $End_ASP_ParDcls
  8. ASP_ParDcl ::= $ASP_ParDcl ASP_ParId ASP_ParType [Comment] $End_ASP_ParDcl
  9. ASP_ParId ::= $ASP_ParId ASP_ParIdOrMacro
  10. ASP_ParIdOrMacro ::= ASP_ParId&FullId | MacroSymbol
  11. ASP_ParId&FullId ::= ASP_ParIdentifier [FullIdentifier]
  12. ASP_ParIdentifier ::= Identifier
  13. ASP_ParType ::= $ASP_ParType Type&Attributes

ASN.1 ASP Type Definitions

  1. ASN1_ASP_TypeDefs ::= $ASN1_ASP_TypeDefs {ASN1_ASP_TypeDef} $End_ASN1_ASP_TypeDefs
  2. ASN1_ASP_TypeDef ::= $Begin_ASN1_ASP_TypeDef ASP_Id PCO_Type [Comment] [ASN1_TypeDefinition] [Comment] $End_ASN1_ASP_TypeDef

ASN.1 ASP Type Definitions by Reference

  1. ASN1_ASP_TypeDefsByRef ::= $Begin_ASN1_ASP_TypeDefsByRef {ASN1_ASP_TypeDefByRef}+ [Comment] $End_ASN1_ASP_TypeDefsByRef
  2. ASN1_ASP_TypeDefByRef ::= $ASN1_ASP_TypeDefByRef ASP_Id PCO_Type ASN1_TypeReference ASN1_ModuleId [Comment] [ASN1_TypeDefinition] $End_ASN1_ASP_TypeDefByRef

PDU Type Definitions

  1. PDU_TypeDefs ::= $PDU_TypeDefs [TTCN_PDU_TypeDefs] [ASN1_PDU_TypeDefs] [ASN1_PDU_TypeDefsByRef] $End_PDU_TypeDefs

Tabular PDU Type Definitions

  1. TTCN_PDU_TypeDefs ::= $TTCN_PDU_TypeDefs {TTCN_PDU_TypeDef}+ $End_TTCN_PDU_TypeDefs
  2. TTCN_PDU_TypeDef ::= $Begin_TTCN_PDU_TypeDef PDU_Id PCO_Type [PDU_EncodingId] [EncVariationId] [Comment] [PDU_FieldDcls] [Comment] $End_TTCN_PDU_TypeDef
  3. PDU_Id ::= $PDU_Id PDU_Id&FullId
  4. PDU_Id&FullId ::= PDU_Identifier [FullIdentifier]
  5. PDU_Identifier ::= Identifier
  6. PDU_EncodingId ::= $PDU_EncodingId [EncodingRuleIdentifier]
  7. PDU_FieldDcls ::= $PDU_FieldDcls {PDU_FieldDcl} $End_PDU_FieldDcls
  8. PDU_FieldDcl ::= $PDU_FieldDcl PDU_FieldId PDU_FieldType [PDU_FieldEncoding] [Comment] $End_PDU_FieldDcl
  9. PDU_FieldId ::= $PDU_FieldId PDU_FieldIdOrMacro
  10. PDU_FieldIdOrMacro ::= PDU_FieldId&FullId | MacroSymbol
  11. MacroSymbol ::= "<-"
  12. PDU_FieldId&FullId ::= PDU_FieldIdentifier [FullIdentifier]
  13. PDU_FieldIdentifier ::= Identifier
  14. PDU_FieldType ::= $PDU_FieldType Type&Attributes
  15. Type&Attributes ::= (Type [LengthAttribute]) | PDU
  16. LengthAttribute ::= SingleLength | RangeLength
  17. SingleLength ::= "[" Bound "]"
  18. Bound ::= Number | TS_ParIdentifier | TS_ConstIdentifier
  19. RangeLength ::= "[" LowerBound To UpperBound "]"
  20. LowerBound ::= Bound
  21. UpperBound ::= Bound | INFINITY

ASN.1 PDU Type Definitions

  1. ASN1_PDU_TypeDefs ::= $ASN1_PDU_TypeDefs {ASN1_PDU_TypeDef} $End_ASN1_PDU_TypeDefs
  2. ASN1_PDU_TypeDef ::= $Begin_ASN1_PDU_TypeDef PDU_Id PCO_Type [PDU_EncodingId] [EncVariationId] [Comment] [ASN1_TypeDefinition] [Comment] $End_ASN1_PDU_TypeDef

ASN.1 PDU Type Definitions by Reference

  1. ASN1_PDU_TypeDefsByRef ::= $Begin_ASN1_PDU_TypeDefsByRef {ASN1_PDU_TypeDefByRef}+ [Comment] $End_ASN1_PDU_TypeDefsByRef
  2. ASN1_PDU_TypeDefByRef ::= $ASN1_PDU_TypeDefByRef PDU_Id PCO_Type ASN1_TypeReference ASN1_ModuleId [PDU_EncodingId] [EncVariationId] [Comment] [ASN1_TypeDefinition] $End_ASN1_PDU_TypeDefByRef

CM Type Definitions

  1. CM_TypeDefs ::= $CM_TypeDefs [TTCN_CM_TypeDefs] [ASN1_CM_TypeDefs] $End_CM_TypeDefs

Tabular CM Type Definitions

  1. TTCN_CM_TypeDefs ::= $TTCN_CM_TypeDefs {TTCN_CM_TypeDefs}+ $End_TTCN_CM_TypeDefs
  2. TTCN_CM_TypeDef ::= $Begin_TTCN_CM_TypeDef CM_Id [Comment] [CM_ParDcls] [Comment] $End_TTCN_CM_TypeDef
  3. CM_Id ::= $CM_Id CM_Identifier
  4. CM_Identifier ::= Identifier
  5. CM_ParDcls ::= $CM_ParDcls {CM_ParDcl} $End_CM_ParDcls
  6. CM_ParDcl ::= $CM_ParDcl CM_ParId CM_ParType [Comment] $End_CM_ParDcl
  7. CM_ParId ::= $CM_ParId CM_ParIdOrMacro
  8. CM_ParIdOrMacro ::= CM_ParIdentifier | MacroSymbol
  9. CM_ParIdentifier ::= Identifier
  10. CM_ParType ::= $CM_ParType Type&Attributes

ASN1 CM Type Definitions

  1. ASN1_CM_TypeDefs ::= $ASN1_CM_TypeDefs {ASN1_CM_TypeDefs}+ $End_ASN1_CM_TypeDefs
  2. ASN1_CM_TypeDef ::= $Begin_ASN1_CM_TypeDef CM_Id [Comment] [ASN1_TypeDefinition] [Comment] $End_ASN1_CM_TypeDef

Varieties of Encoding Definition

  1. EncodingDefs ::= $EncodingDefs [EncodingDefinitions] [EncodingVariations] [InvalidFieldEncodingDefs] $End_EncodingDefs

Encoding Definitions

  1. EncodingDefinitions ::= $Begin_EncodingDefinitions {EncodingDefinition}+ [Comment] $End_EncodingDefinitions
  2. EncodingDefinition ::= $EncodingDefinition EncodingRuleId EncodingRef EncodingDefault [Comment] $End_EncodingDefinition
  3. EncodingRuleId ::= $EncodingRuleId EncodingRuleIdentifier
  4. EncodingRuleIdentifier ::= Identifier
  5. EncodingRef ::= $EncodingRef EncodingReference
  6. EncodingReference ::= BoundedFreeText
  7. EncodingDefault ::= $EncodingDefault [DefaultExpression]
  8. DefaultExpression ::= Expression

Encoding Variations

  1. EncodingVariations ::= $EncodingVariations {EncodingVariationSet}+ $End_EncodingVariations
  2. EncodingVariationSet ::= $Begin_EncodingVariationSet EncodingRuleId Encoding_TypeList [Comment] $EncodingVariationList {EncodingVariation}+ $End_EncodingVariationList [Comment] $End_EncodingVariationSet
  3. Encoding_TypeList ::= $Encoding_TypeList [TypeList]
  4. TypeList ::= Type {Comma Type}
  5. EncodingVariation ::= $EncodingVariation EncodingVariationId VariationRef VariationDefault [Comment] $End_EncodingVariation
  6. EncodingVariationId ::= $EncodingVariationId EncVariationId&ParList
  7. EncVariationId&ParList ::= EncVariationIdentifier [FormalParList]
  8. EncVariationIdentifier ::= Identifier
  9. VariationRef ::= $VariationRef VariationReference
  10. VariationReference ::= BoundedFreeText
  11. VariationDefault ::= $VariationDefault [DefaultExpression]

Invalid Encoding Definitions

  1. InvalidFieldEncodingDefs ::= $InvalidFieldEncodingDefs {InvalidFieldEncodingDef}+ $End_InvalidFieldEncodingDefs
  2. InvalidFieldEncodingDef ::= $Begin_InvalidFieldEncodingDef InvalidFieldEncodingId Encoding_TypeList [Comment] InvalidFieldEncodingDefinition [Comment] $End_InvalidFieldEncodingDef
  3. InvalidFieldEncodingId ::= $InvalidFieldEncodingId InvalidFieldEncodingId&ParList
  4. InvalidFieldEncodingId&ParList ::= InvalidFieldEncodingIdentifier [FormalParList]
  5. InvalidFieldEncodingIdentifier ::= Identifier
  6. InvalidFieldEncodingDefinition ::= $InvalidFieldEncodingDefinition TS_OpProcDef $End_InvalidFieldEncodingDefinition

Alias Definitions

  1. AliasDefs ::= $Begin_AliasDefs {AliasDef}+ [Comment] $End_AliasDefs
  2. AliasDef ::= $AliasDef AliasId ExpandedId [Comment] $End_AliasDef
  3. AliasId ::= $AliasId AliasIdentifier
  4. AliasIdentifier ::= Identifier
  5. ExpandedId ::= $ExpandedId Expansion
  6. Expansion ::= ASP_Identifier | PDU_Identifier

The Constraints Part

  1. ConstraintsPart ::= $ConstraintsPart [TS_TypeConstraints] [ASP_Constraints] [PDU_Constraints] [CM_Constraints] $End_ConstraintsPart

Test Suite Type Constraint Declarations

  1. TS_TypeConstraints ::= $TS_TypeConstraints [StructTypeConstraints] [ASN1_TypeConstraints] $End_TS_TypeConstraints

Structured Type Constraint Declarations

  1. StructTypeConstraints ::= $StructTypeConstraints {StructTypeConstraint}+ $End_StructTypeConstraints
  2. StructTypeConstraint ::= $Begin_StructTypeConstraint ConsId StructId DerivPath [EncVariationId] [Comment] ElemValues [Comment] $End_StructTypeConstraint
  3. EncVariationId ::= $EncVariationId [EncVariationCall]
  4. EncVariationCall ::= EncVariationIdentifier [ActualParList]
  5. ElemValues ::= $ElemValues {ElemValue}+ $End_ElemValues
  6. ElemValue ::= $ElemValue ElemId ConsValue [PDU_FieldEncoding] [Comment] $End_ElemValue
  7. PDU_FieldEncoding ::= $PDU_FieldEncoding [PDU_FieldEncodingCall]
  8. PDU_FieldEncodingCall ::= EncVariationCall | InvalidFieldEncodingCall
  9. InvalidFieldEncodingCall ::= InvalidFieldEncodingIdentifier ( ActualParList | "(" ")" )

ASN.1 Type Constraint Declarations

  1. ASN1_TypeConstraints ::= $ASN1_TypeConstraints {ASN1_TypeConstraint}+ $End_ASN1_TypeConstraints
  2. ASN1_TypeConstraint ::= $Begin_ASN1_TypeConstraint ConsId ASN1_TypeId DerivPath [EncVariationId] [Comment] ASN1_ConsValue [Comment] $End_ASN1_TypeConstraint

ASP Constraint Declarations

  1. ASP_Constraints ::= $ASP_Constraints [TTCN_ASP_Constraints] [ASN1_ASP_Constraints] $End_ASP_Constraints

Tabular ASP Constraint Declarations

  1. TTCN_ASP_Constraints ::= $TTCN_ASP_Constraints {TTCN_ASP_Constraint}+ $End_TTCN_ASP_Constraints
  2. TTCN_ASP_Constraint ::= $Begin_TTCN_ASP_Constraint ConsId ASP_Id DerivPath [Comment] [ASP_ParValues] [Comment] $End_TTCN_ASP_Constraint
  3. ASP_ParValues ::= $ASP_ParValues {ASP_ParValue}+ $End_ASP_ParValues
  4. ASP_ParValue ::= $ASP_ParValue ASP_ParId ConsValue [Comment] $End_ASP_ParValue

ASN.1 ASP Constraint Declarations

  1. ASN1_ASP_Constraints ::= $ASN1_ASP_Constraints {ASN1_ASP_Constraint}+ $End_ASN1_ASP_Constraints
  2. ASN1_ASP_Constraint ::= $Begin_ASN1_ASP_Constraint ConsId ASP_Id DerivPath [Comment] [ASN1_ConsValue] [Comment] $End_ASN1_ASP_Constraint

PDU Constraint Declarations

  1. PDU_Constraints ::= $PDU_Constraints [TTCN_PDU_Constraints] [ASN1_PDU_Constraints] $End_PDU_Constraints

Tabular PDU Constraint Declarations

  1. TTCN_PDU_Constraints ::= $TTCN_PDU_Constraints {TTCN_PDU_Constraint}+ $End_TTCN_PDU_Constraints
  2. TTCN_PDU_Constraint ::= $Begin_TTCN_PDU_Constraint ConsId PDU_Id DerivPath [EncRuleId] [EncVariationId] [Comment] [PDU_FieldValues] [Comment] $End_TTCN_PDU_Constraint
  3. EncRuleId ::= $EncRuleId [EncodingRuleIdentifier]
  4. ConsId ::= $ConsId ConsId&ParList
  5. ConsId&ParList ::= ConstraintIdentifier [FormalParList]
  6. ConstraintIdentifier ::= Identifier
  7. DerivPath ::= $DerivPath [DerivationPath]
  8. DerivationPath ::= {ConstraintIdentifier Dot}+
  9. PDU_FieldValues ::= $PDU_FieldValues {PDU_FieldValue}+ $End_PDU_FieldValues
  10. PDU_FieldValue ::= $PDU_FieldValue PDU_FieldId ConsValue [PDU_FieldEncoding] [Comment] $End_PDU_FieldValue
  11. ConsValue ::= $ConsValue ConstraintValue&Attributes
  12. ConstraintValue&Attributes ::= ConstraintValue ValueAttributes
  13. ConstraintValue ::= ConstraintExpression | MatchingSymbol | ConsRef
  14. ConstraintExpression ::= Expression
  15. MatchingSymbol ::= Complement | Omit | AnyValue | AnyOrOmit | ValueList | ValueRange | SuperSet | SubSet | Permutation
  16. Complement ::= COMPLEMENT ValueList
  17. Omit ::= Dash | OMIT
  18. AnyValue ::= "?"
  19. AnyOrOmit ::= "*"
  20. ValueList ::= "(" ConstraintValue&Attributes { Comma ConstraintValue&Attributes }")"
  21. ValueRange ::= "(" ValRange ")"
  22. ValRange ::= (LowerRangeBound To UpperRangeBound)
  23. LowerRangeBound ::= ConstraintExpression | Minus INFINITY
  24. UpperRangeBound ::= ConstraintExpression | INFINITY
  25. SuperSet ::= SUPERSET "(" ConstraintValue&Attributes ")"
  26. SubSet ::= SUBSET "(" ConstraintValue&Attributes ")"
  27. Permutation ::= PERMUTATION ValueList
  28. ValueAttributes ::= [ValueLength] [IF_PRESENT] [ASN1_Encoding]
  29. ASN1_Encoding ::= ENC PDU_FieldEncodingCall
  30. ValueLength ::= SingleValueLength | RangeValueLength
  31. SingleValueLength ::= "[" ValueBound "]"
  32. ValueBound ::= Number | TS_ParIdentifier | TS_ConstIdentifier | FormalParIdentifier
  33. RangeValueLength ::= "[" LowerValueBound To UpperValueBound "]"
  34. LowerValueBound ::= ValueBound
  35. UpperValueBound ::= ValueBound | INFINITY

ASN.1 PDU Constraint Declarations

  1. ASN1_PDU_Constraints ::= $ASN1_PDU_Constraints {ASN1_PDU_Constraint}+ $End_ASN1_PDU_Constraints
  2. ASN1_PDU_Constraint ::= $Begin_ASN1_PDU_Constraint ConsId PDU_Id DerivPath [EncRuleId] [EncVariationId] [Comment] [ASN1_ConsValue] [Comment] $End_ASN1_PDU_Constraint
  3. ASN1_ConsValue ::= $ASN1_ConsValue ConstraintValue&AttributesOrReplace $End_ASN1_ConsValue
  4. ConstraintValue&AttributesOrReplace ::= ConstraintValue&Attributes | Replacement {Comma Replacement}
  5. Replacement ::= (REPLACE ReferenceList BY ConstraintValue&Attributes) | (OMIT ReferenceList)
  6. ReferenceList ::= (ArrayRef | ComponentIdentifier | ComponentPosition) {ComponentReference}

CM Constraint Declarations

  1. CM_Constraints ::= $CM_Constraints [TTCN_CM_Constraints] [ASN1_CM_Constraints] $End_CM_Constraints

Tabular CM Constraint Declaration

  1. TTCN_CM_Constraints ::= $TTCN_CM_Constraints {TTCN_CM_Constraint}+ $End_TTCN_CM_Constraints
  2. TTCN_CM_Constraint ::= $Begin_TTCN_CM_Constraint ConsId CM_Id DerivPath [Comment] [CM_ParValues] [Comment] $End_TTCN_CM_Constraint
  3. CM_ParValues ::= $CM_ParValues {CM_ParValue} $End_CM_ParValues
  4. CM_ParValue ::= $CM_ParValue CM_ParId ConsValue [Comment] $End_CM_ParValue

ASN.1 CM Constraint Declaration

  1. ASN1_CM_Constraints ::= $ASN1_CM_Constraints {ASN1_CM_Constraint}+ $End_ASN1_CM_Constraints
  2. ASN1_CM_Constraint ::= $Begin_ASN1_CM_Constraint ConsId CM_Id DerivPath [Comment] [ASN1_ConsValue] [Comment] $End_ASN1_CM_Constraint

The Dynamic Part

  1. DynamicPart ::= $DynamicPart [TestCases] [TestStepLibrary] [DefaultsLibrary] $End_DynamicPart

Test Cases

  1. TestCases ::= $TestCases {TestGroup | TestCase | CompactTestGroup}+ $End_TestCases
  2. TestGroup ::= $TestGroup TestGroupId [SelExprId] [Objective] {TestGroup | TestCase}+ $End_TestGroup
  3. TestGroupId ::= $TestGroupId TestGroupIdentifier
  4. TestGroupIdentifier ::= Identifier
  5. TestCase ::= $Begin_TestCase TestCaseId TestGroupRef TestPurpose [Configuration] DefaultsRef [Comment] [SelExprId] [Description] BehaviourDescription [Comment] $End_TestCase
  6. TestCaseId ::= $TestCaseId TestCaseIdentifier
  7. TestCaseIdentifier ::= Identifier
  8. TestGroupRef ::= $TestGroupRef TestGroupReference
  9. TestGroupReference ::= [SuiteIdentifier "/"] {TestGroupIdentifier "/"}
  10. TestPurpose ::= $TestPurpose BoundedFreeText
  11. Configuration ::= $Configuration TCompConfigIdentifier
  12. DefaultsRef ::= $DefaultsRef [DefaultRefList]
  13. DefaultRefList ::= DefaultReference {Comma DefaultReference}
  14. DefaultReference ::= DefaultIdentifier [ActualParList]
    1. CompactTestGroup ::= $Begin_CompactTestGroup TestGroupId DefaultsRef [SelExprId] [Objective] {CompactTestCase} $End_CompactTestGroup
    2. CompactTestCase ::= $CompactTestCase TestCaseId TestPurpose TestStepAttachment [Comment] [SelExprId] [Description] $End_CompactTestCase
    3. TestStepAttachment ::= $TestStepAttachment Attach

Test Step Library

  1. TestStepLibrary ::= $TestStepLibrary {TestStepGroup | TestStep}+ $End_TestStepLibrary
  2. TestStepGroup ::= $TestStepGroup TestStepGroupId {TestStepGroup | TestStep}+ $End_TestStepGroup
  3. TestStepGroupId ::= $TestStepGroupId TestStepGroupIdentifier
  4. TestStepGroupIdentifier ::= Identifier
  5. TestStep ::= $Begin_TestStep TestStepId TestStepRef Objective DefaultsRef [Comment] [Description] BehaviourDescription [Comment] $End_TestStep
  6. TestStepId ::= $TestStepId TestStepId&ParList
  7. TestStepId&ParList ::= TestStepIdentifier [FormalParList]
  8. TestStepIdentifier ::= Identifier
  9. TestStepRef ::= $TestStepRef TestStepGroupReference
  10. TestStepGroupReference ::= [SuiteIdentifier "/"] {TestStepGroupIdentifier "/"}
  11. Objective ::= $Objective BoundedFreeText

Default Library

  1. DefaultsLibrary ::= $DefaultsLibrary {DefaultGroup | Default}+ $End_DefaultsLibrary
  2. DefaultGroup ::= $DefaultGroup DefaultGroupId {DefaultGroup | Default}+ $End_DefaultGroup
  3. DefaultGroupId ::= $DefaultGroupId DefaultGroupIdentifier
  4. Default ::= $Begin_Default DefaultId DefaultRef Objective [Comment] [Description] BehaviourDescription [Comment] $End_Default
  5. DefaultRef ::= $DefaultRef DefaultGroupReference
  6. DefaultId ::= $DefaultId DefaultId&ParList
  7. DefaultId&ParList ::= DefaultIdentifier [FormalParList]
  8. DefaultIdentifier ::= Identifier
  9. DefaultGroupReference ::= [SuiteIdentifier "/"] {DefaultGroupIdentifier "/"}
  10. DefaultGroupIdentifier ::= Identifier

Behaviour descriptions

  1. BehaviourDescription ::= $BehaviourDescription RootTree {LocalTree} $End_BehaviourDescription
  2. RootTree ::= {BehaviourLine}+
  3. LocalTree ::= Header {BehaviourLine}+
  4. Header ::= $Header TreeHeader
  5. TreeHeader ::= TreeIdentifier [FormalParList]
  6. TreeIdentifier ::= Identifier
  7. FormalParList ::= "(" FormalPar&Type {SemiColon FormalPar&Type} ")"
  8. FormalPar&Type ::= FormalParIdentifier {Comma FormalParIdentifier} Colon FormalParType
  9. FormalParIdentifier ::= Identifier
  10. FormalParType ::= Type | PCO_TypeIdentifier | PDU | CP | TIMER

Behaviour lines

  1. BehaviourLine ::= $BehaviourLine LabelId Line Cref VerdictId [Comment] $End_BehaviourLine
  2. Line ::= $Line Indentation StatementLine
  3. Indentation ::= "[" Number "]"
  4. LabelId ::= $LabelId [Label]
  5. Label ::= Identifier
  6. Cref ::= $Cref [ConstraintReference]
  7. ConstraintReference ::= ConsRef | FormalParIdentifier | AnyValue
  8. ConsRef ::= ConstraintIdentifier [ActualCrefParList]
  9. ActualCrefParList ::= "(" ActualCrefPar {Comma ActualCrefPar} ")"
  10. ActualCrefPar ::= Value
  11. VerdictId ::= $VerdictId [Verdict]
  12. Verdict ::= Pass | Fail | Inconclusive | Result
  13. Pass ::= PASS | P | "(" PASS ")" | "(" P ")"
  14. Fail ::= FAIL | F | "(" FAIL ")" | "(" F ")"
  15. Inconclusive ::= INCONC | I | "(" INCONC ")" | "(" I ")"
  16. Result ::= R

TTCN statements

  1. StatementLine ::= (Event [Qualifier] [AssignmentList] [TimerOps]) | (Qualifier [AssignmentList] [TimerOps]) | (AssignmentList [TimerOps]) | TimerOps | Construct | ImplicitSend
  2. Event ::= Send | Receive | Otherwise | Timeout | Done
  3. Qualifier ::= "[" Expression "]"
  4. Send ::= [PCO_Identifier | CP_Identifier | FormalParIdentifier] "!" (ASP_Identifier | PDU_Identifier | CM_Identifier)
  5. ImplicitSend ::= "<" IUT "!" (ASP_Identifier | PDU_Identifier) ">"
  6. Receive ::= [PCO_Identifier | CP_Identifier | FormalParIdentifier] "?" (ASP_Identifier | PDU_Identifier | CM_Identifier)
  7. Otherwise ::= [PCO_Identifier | FormalParIdentifier] "?" OTHERWISE
  8. Timeout ::= "?" TIMEOUT [TimerIdentifier | FormalParIdentifier]
  9. Done ::= "?" DONE "(" [TCompIdList] ")"
  10. TCompIdList ::= TCompIdentifier {Comma TCompIdentifier}
  11. Construct ::= GoTo | Attach | Repeat | Return | Activate | Create
  12. Activate ::= ACTIVATE "(" [DefaultRefList] ")"
  13. Return ::= RETURN
  14. Create ::= CREATE "(" CreateList ")"
  15. CreateList ::= CreateTComp {Comma CreateTComp}
  16. CreateTComp ::= TCompIdentifier Colon TreeReference [ActualParList]
  17. GoTo ::= ("->" | GOTO) Label
  18. Attach ::= "+" TreeReference [ActualParList]
  19. Repeat ::= REPEAT TreeReference [ActualParList] UNTIL Qualifier
  20. TreeReference ::= TestStepIdentifier | TreeIdentifier
  21. ActualParList ::= "(" ActualPar {Comma ActualPar} ")"
  22. ActualPar ::= Value | PCO_Identifier | CP_Identifier | TimerIdentifier

Expressions

  1. AssignmentList ::= "(" Assignment {Comma Assignment} ")"
  2. Assignment ::= DataObjectReference ":=" Expression
  3. Expression ::= SimpleExpression [RelOp SimpleExpression]
  4. SimpleExpression ::= Term {AddOp Term}
  5. Term ::= Factor {MultiplyOp Factor}
  6. Factor ::= [UnaryOp] Primary
  7. Primary ::= Value | DataObjectReference | OpCall | SelectExprIdentifier | "(" Expression ")"
  8. DataObjectReference ::= DataObjectIdentifier {ComponentReference}
  9. DataObjectIdentifier ::= TS_ParIdentifier | TS_ConstIdentifier | TS_VarIdentifier | TC_VarIdentifier | FormalParIdentifier | ASP_Identifier | PDU_Identifier | CM_Identifier
  10. ComponentReference ::= RecordRef | ArrayRef | BitRef
  11. RecordRef ::= Dot (ComponentIdentifier | PDU_Identifier | StructIdentifier | ComponentPosition)
  12. ComponentIdentifier ::= ASP_ParIdentifier | PDU_FieldIdentifier | CM_ParIdentifier | ElemIdentifier | ASN1_Identifier
  13. ASN1_Identifier ::= Identifier
  14. ComponentPosition ::= "("Number")"
  15. ArrayRef ::= Dot "[" ComponentNumber "]"
  16. ComponentNumber ::= Expression
  17. BitRef ::= Dot (BitIdentifier | "[" BitNumber "]")
  18. BitIdentifier ::= Identifier
  19. BitNumber ::= Expression
  20. OpCall ::= OpIdentifier ( ActualParList | "(" ")" )
  21. OpIdentifier ::= TS_OpIdentifier | PredefinedOpIdentifier
  22. PredefinedOpIdentifier ::= BIT_TO_INT | HEX_TO_INT | INT_TO_BIT | INT_TO_HEX | IS_CHOSEN | IS_PRESENT | LENGTH_OF | NUMBER_OF_ELEMENT
  23. AddOp ::= "+" | "-" | OR
  24. MultiplyOp ::= "*" | "/" | MOD | AND
  25. UnaryOp ::= "+" | "-" | NOT
  26. RelOp ::= "=" | "<" | ">" | "<>" | ">=" | "<="

Timer operations

  1. TimerOps ::= TimerOp {Comma TimerOp}
  2. TimerOp ::= StartTimer | CancelTimer | ReadTimer
  3. StartTimer ::= START TimerIdentifier [ "(" TimerValue ")"]
  4. CancelTimer ::= CANCEL [TimerIdentifier]
  5. TimerValue ::= Expression
  6. ReadTimer ::= READTIMER TimerIdentifier "(" DataObjectReference")"

Types

  1. TypeOrPDU ::= Type | PDU
  2. Type ::= PredefinedType | ReferenceType

Predefined types

  1. PredefinedType ::= INTEGER | BOOLEAN | BITSTRING | HEXSTRING | OCTETSTRING | R_Type | CharacterString
  2. CharacterString ::= NumericString | PrintableString | TeletexString | VideotexString | VisibleString | IA5String | GraphicString | GeneralString | T61String | ISO646String

Referenced types

  1. ReferenceType ::= TS_TypeIdentifier | ASP_Identifier | PDU_Identifier | CM_Identifier
  2. TS_TypeIdentifier ::= SimpleTypeIdentifier | StructIdentifier | ASN1_TypeIdentifier

Values

  1. Value ::= LiteralValue | ASN1_Value [ASN1_Encoding]
  2. LiteralValue ::= Number | BooleanValue | Bstring | Hstring | Ostring | Cstring | R_Value
  3. Number ::= (NonZeroNum {Num} ) | 0
  4. NonZeroNum ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
  5. Num ::= 0 | NonZeroNum
  6. BooleanValue ::= TRUE | FALSE
  7. Bstring ::= "'" {Bin | Wildcard} "'" B
  8. Bin ::= 0 | 1
  9. Hstring ::= "'" {Hex | Wildcard} "'" H
  10. Hex ::= Num | A | B | C | D | E | F
  11. Ostring ::= "'" {Oct | Wildcard} "'" O
  12. Oct ::= Hex Hex
  13. Cstring ::= """ {Char | Wildcard | "\"} """
  14. Char ::= /* REFERENCE - A character defined by the relevant character string type */
  15. Wildcard ::= AnyOne | AnyOrNone
  16. AnyOne ::= "?"
  17. AnyOrNone ::= "*"
  18. R_Value ::= pass | fail | inconc | none
  19. Identifier ::= Alpha{AlphaNum | Underscore}
  20. Alpha ::= UpperAlpha | LowerAlpha
  21. AlphaNum ::= Alpha | Num
  22. UpperAlpha ::= 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
  23. 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
  24. ExtendedAlphaNum ::= /* REFERENCE - A character from any character set defined in ISO/IEC 10646 */
  25. BoundedFreeText ::= "/*" FreeText "*/"
  26. FreeText ::= {ExtendedAlphaNum}

Miscellaneous productions

  1. Comma ::= ","
  2. Dot ::= "."
  3. Dash ::= "-"
  4. Minus ::= "-"
  5. SemiColon ::= ";"
  6. Colon ::= ":"
  7. Underscore ::= "_"

http://www.ibm.com/rational
Contents Index Previous Next