This HTML version of ABNF is automatically generated using the abnf2html $Revision: 1.4 $ tool provided by Inet Technologies, Inc. written by Brian Bidulock. The protocol syntax is presented in ABNF according to RFC 2234 and RFC 822. This version of ABNF is for informational purposes only. It is intended as a tool to help read the ABNF. Errors may have been introduced in translating to HTML.
This ABNF browser was generated from file <mockup_bnf.txt> on Tue Jul 20 17:07:27 CEDT 2004 .This file consists of:
The productions for the ABNF specification are provided below.
Rule Name | Production or Comment | |
---|---|---|
= | TTCN3ModuleKeyword TTCN3ModuleId BeginChar [ModuleDefinitionsPart] [ModuleControlPart] EndChar [WithStatement] [SemiColon] | |
= | "module" | |
= | ModuleIdentifier [DefinitiveIdentifier] | |
= | Identifier | |
= | Dot ObjectIdentifierKeyword "{" DefinitiveObjIdComponentList "}" | |
= | 1*DefinitiveObjIdComponent | |
= | NameForm | DefinitiveNumberForm | DefinitiveNameAndNumberForm | |
= | Number | |
= | Identifier "(" DefinitiveNumberForm ")" | |
= | ModuleDefinitionsList | |
= | 1*( ModuleDefinition ) [SemiColon] | |
= | ( TypeDef | ConstDef | TemplateDef | ModuleParDef | FunctionDef | SignatureDef | TestcaseDef | AltstepDef | ImportDef | GroupDef | ExtFunctionDef | ExtConstDef ) [WithStatement] | |
= | TypeDefKeyword TypeDefBody | |
= | StructuredTypeDef | SubTypeDef | |
= | "type" | |
= | RecordDef | UnionDef | SetDef | RecordOfDef | SetOfDef | EnumDef | PortDef | ComponentDef | |
= | RecordKeyword StructDefBody | |
= | "record" | |
= | ( StructTypeIdentifier [StructDefFormalParList] | AddressKeyword ) BeginChar [StructFieldDef *( "," StructFieldDef )] EndChar | |
= | Identifier | |
= | "(" StructDefFormalPar *( "," StructDefFormalPar ) ")" | |
= | FormalValuePar | |
; STATIC SEMANTICS - FormalValuePar shall resolve to an in parameter | ||
= | Type StructFieldIdentifier [ArrayDef] [SubTypeSpec] [OptionalKeyword] | |
= | Identifier | |
= | "optional" | |
= | UnionKeyword UnionDefBody | |
= | "union" | |
= | ( StructTypeIdentifier [StructDefFormalParList] | AddressKeyword ) BeginChar UnionFieldDef *( "," UnionFieldDef ) EndChar | |
= | Type StructFieldIdentifier [ArrayDef] [SubTypeSpec] | |
= | SetKeyword StructDefBody | |
= | "set" | |
= | RecordKeyword [StringLength] OfKeyword StructOfDefBody | |
= | "of" | |
= | Type ( StructTypeIdentifier | AddressKeyword ) [SubTypeSpec] | |
= | SetKeyword [StringLength] OfKeyword StructOfDefBody | |
= | EnumKeyword ( EnumTypeIdentifier | AddressKeyword ) BeginChar EnumerationList EndChar | |
= | "enumerated" | |
= | Identifier | |
= | Enumeration *( "," Enumeration ) | |
= | EnumerationIdentifier ["(" [Minus] Number ")"] | |
= | Identifier | |
= | Type ( SubTypeIdentifier | AddressKeyword ) [ArrayDef] [SubTypeSpec] | |
= | Identifier | |
= | AllowedValues | StringLength | |
; STATIC SEMANTICS - AllowedValues shall be of the same type as the field being subtyped | ||
= | "(" ValueOrRange *( "," ValueOrRange ) ")" | |
= | RangeDef | ConstantExpression | |
; STATIC SEMANTICS - RangeDef production shall only be used with integer, charstring, universal charstring or float based types | ||
; STATIC SEMANTICS - When subtyping charstring or universal charstring range and values shall not be mixed in the same SubTypeSpec | ||
= | LowerBound ".." UpperBound | |
= | LengthKeyword "(" 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) | ||
= | "length" | |
= | [GlobalModuleId Dot] PortTypeIdentifier | |
= | PortKeyword PortDefBody | |
= | PortTypeIdentifier PortDefAttribs | |
= | "port" | |
= | Identifier | |
= | MessageAttribs | ProcedureAttribs | MixedAttribs | |
= | MessageKeyword BeginChar 1*( MessageList [SemiColon] ) EndChar | |
= | Direction AllOrTypeList | |
= | InParKeyword | OutParKeyword | InOutParKeyword | |
= | "message" | |
= | AllKeyword | TypeList | |
= | "all" | |
= | Type *( "," Type ) | |
= | ProcedureKeyword BeginChar 1*( ProcedureList [SemiColon] ) EndChar | |
= | "procedure" | |
= | Direction AllOrSignatureList | |
= | AllKeyword | SignatureList | |
= | Signature *( "," Signature ) | |
= | MixedKeyword BeginChar 1*( MixedList [SemiColon] ) EndChar | |
= | "mixed" | |
= | Direction ProcOrTypeList | |
= | AllKeyword | ( ProcOrType *( "," ProcOrType ) ) | |
= | Signature | Type | |
= | ComponentKeyword ComponentTypeIdentifier BeginChar [ComponentDefList] EndChar | |
= | "component" | |
= | [GlobalModuleId Dot] ComponentTypeIdentifier | |
= | Identifier | |
= | *( ComponentElementDef [SemiColon] ) | |
= | PortInstance | VarInstance | TimerInstance | ConstDef | |
= | PortKeyword PortType PortElement *( "," PortElement ) | |
= | PortIdentifier [ArrayDef] | |
; STATIC SEMANTICS - The Value of ArrayDef must be a one-dimensional array index, if present | ||
= | Identifier | |
= | ConstKeyword Type ConstList | |
= | SingleConstDef *( "," SingleConstDef ) | |
= | ConstIdentifier [ArrayDef] AssignmentChar ConstantExpression | |
; STATIC SEMANTICS - The Value of the ConstantExpression shall be of the same type as the stated type for the constants | ||
= | "const" | |
= | Identifier | |
= | TemplateKeyword BaseTemplate [DerivedDef] AssignmentChar TemplateBody | |
= | ( Type | Signature ) TemplateIdentifier ["(" TemplateFormalParList ")"] | |
= | "template" | |
= | Identifier | |
= | ModifiesKeyword TemplateRef | |
= | "modifies" | |
= | TemplateFormalPar *( "," TemplateFormalPar ) | |
= | FormalValuePar | FormalTemplatePar | |
; STATIC SEMANTICS - FormalValuePar shall resolve to an in parameter | ||
= | SimpleSpec | FieldSpecList | ArrayValueOrAttrib | |
; STATIC SEMANTICS - Within TeplateBody the ArrayValueOrAttrib can be used for array, record, record of and set of types. | ||
= | SingleValueOrAttrib | |
= | "{" [FieldSpec *( "," FieldSpec )] "}" | |
= | FieldReference AssignmentChar TemplateBody | |
= | StructFieldRef | ArrayOrBitRef | ParRef | |
; STATIC SEMANTICS - Within FieldReference ArrayOrBitRef can be used in modified templates only | ||
= | StructFieldIdentifier | PredefinedType | TypeReference | |
; STATIC SEMANTICS - PredefinedType and TypeReference shall be used for anytype value notation only. PredefinedType shall not be AnyTypeKeyword. | ||
= | SignatureParIdentifier | |
; OPERATIONAL SEMANTICS - SignatureParIdentifier shall be a formal parameter Identifier from the associated signature definition | ||
= | ValueParIdentifier | |
= | "[" FieldOrBitNumber "]" | |
; STATIC SEMANTICS - ArrayRef shall be optionally used for array types and ASN.1 SET OF and SEQUENCE OF and TTCN-3 record of and set of. The same notation can be used for a Bit reference inside an ASN.1 or TTCN-3 bitstring type | ||
= | SingleExpression | |
; STATIC SEMANTICS - SingleExpression will resolve to a value of integer type | ||
= | MatchingSymbol [ExtraMatchingAttributes] | SingleExpression [ExtraMatchingAttributes] | TemplateRefWithParList | |
; STATIC SEMANTIC - VariableIdentifier (accessed via singleExpression) may only be used in in-line template definitions to reference variables in the current scope | ||
= | "{" ArrayElementSpecList "}" | |
= | ArrayElementSpec *( "," ArrayElementSpec ) | |
= | NotUsedSymbol | TemplateBody | |
= | Dash | |
= | Complement | AnyValue | AnyOrOmit | ValueOrAttribList | Range | BitStringMatch | HexStringMatch | OctetStringMatch | CharStringMatch | SubsetMatch | SupersetMatch | PermutationMatch | |
= | PermutationKeyword ValueList | |
= | "permutation" | |
= | LengthMatch | IfPresentMatch | LengthMatch IfPresentMatch | |
= | "'" *( BinOrMatch ) "'" "B" | |
= | Bin | AnyValue | AnyOrOmit | |
= | "'" *( HexOrMatch ) "'" "H" | |
= | Hex | AnyValue | AnyOrOmit | |
= | "'" *( OctOrMatch ) "'" "O" | |
= | Oct | AnyValue | AnyOrOmit | |
= | PatternKeyword Cstring | |
= | "pattern" | |
= | ComplementKeyword ValueList | |
= | "complement" | |
= | "(" ConstantExpression *( "," ConstantExpression ) ")" | |
= | SubsetKeyword ValueList | |
; STATIC SEMANTIC - Subset matching shall only be used with the set of type | ||
= | "subset" | |
= | SupersetKeyword ValueList | |
; STATIC SEMANTIC - Superset matching shall only be used with the set of type | ||
= | "superset" | |
= | "?" | |
= | "*" | |
= | "(" TemplateBody 1*( "," TemplateBody ) ")" | |
= | StringLength | |
= | IfPresentKeyword | |
= | "ifpresent" | |
= | "(" LowerBound ".." UpperBound ")" | |
= | SingleConstExpression | Minus InfinityKeyword | |
= | SingleConstExpression | InfinityKeyword | |
; STATIC SEMANTICS - LowerBound and UpperBound shall evaluate to types integer, charstring, universal charstring or float. In case LowerBound or UpperBound evaluates to types charstring or universal charstring, only SingleConstExpression may be present and the string length shall be 1 | ||
= | "infinity" | |
= | InLineTemplate | |
= | [GlobalModuleId Dot] TemplateIdentifier [TemplateActualParList] | TemplateParIdentifier | |
= | [GlobalModuleId Dot] TemplateIdentifier | TemplateParIdentifier | |
= | [( Type | Signature ) Colon] [DerivedRefWithParList AssignmentChar] TemplateBody | |
; STATIC SEMANTICS - The type field may only be omitted when the type is implicitly unambigous | ||
= | ModifiesKeyword TemplateRefWithParList | |
= | "(" TemplateActualPar *( "," TemplateActualPar ) ")" | |
= | TemplateInstance | |
; STATIC SEMANTICS - When the corresponding formal parameter is not of template type the TemplateInstance production shall resolve to one or more SingleExpressions | ||
= | MatchOp | ValueofOp | |
= | MatchKeyword "(" 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 value | ||
= | "match" | |
= | ValueofKeyword "(" TemplateInstance ")" | |
= | "valueof" | |
= | FunctionKeyword FunctionIdentifier "(" [FunctionFormalParList] ")" [RunsOnSpec] [ReturnType] StatementBlock | |
= | "function" | |
= | Identifier | |
= | FunctionFormalPar *( "," FunctionFormalPar ) | |
= | FormalValuePar | FormalTimerPar | FormalTemplatePar | FormalPortPar | |
= | ReturnKeyword Type | |
= | "return" | |
= | RunsKeyword OnKeyword ComponentType | |
= | "runs" | |
= | "on" | |
= | "mtc" | |
= | BeginChar [FunctionStatementOrDefList] EndChar | |
= | 1*( FunctionStatementOrDef [SemiColon] ) | |
= | FunctionLocalDef | FunctionLocalInst | FunctionStatement | |
= | VarInstance | TimerInstance | |
= | ConstDef | |
= | ConfigurationStatements | TimerStatements | CommunicationStatements | BasicStatements | BehaviourStatements | VerdictStatements | SUTStatements | |
= | FunctionRef "(" [FunctionActualParList] ")" | |
= | [GlobalModuleId Dot] ( FunctionIdentifier | ExtFunctionIdentifier ) | PreDefFunctionIdentifier | |
= | Identifier | |
; STATIC SEMANTICS - The Identifier will be one of the pre-defined TTCN-3 Function Identifiers from Annex C of this document | ||
= | FunctionActualPar *( "," FunctionActualPar ) | |
= | TimerRef | TemplateInstance | Port | ComponentRef | |
; STATIC 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 production | ||
= | SignatureKeyword SignatureIdentifier "(" [SignatureFormalParList] ")" [ReturnType | NoBlockKeyword] [ExceptionSpec] | |
= | "signature" | |
= | Identifier | |
= | SignatureFormalPar *( "," SignatureFormalPar ) | |
= | FormalValuePar | |
= | ExceptionKeyword "(" ExceptionTypeList ")" | |
= | "exception" | |
= | Type *( "," Type ) | |
= | "noblock" | |
= | [GlobalModuleId Dot] SignatureIdentifier | |
= | TestcaseKeyword TestcaseIdentifier "(" [TestcaseFormalParList] ")" ConfigSpec StatementBlock | |
= | "testcase" | |
= | Identifier | |
= | TestcaseFormalPar *( "," TestcaseFormalPar ) | |
= | FormalValuePar | FormalTemplatePar | |
= | RunsOnSpec [SystemSpec] | |
= | SystemKeyword ComponentType | |
= | "system" | |
= | ExecuteKeyword "(" TestcaseRef "(" [TestcaseActualParList] ")" ["," TimerValue] ")" | |
= | "execute" | |
= | [GlobalModuleId Dot] TestcaseIdentifier | |
= | TestcaseActualPar *( "," TestcaseActualPar ) | |
= | TemplateInstance | |
; STATIC 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 production | ||
= | AltstepKeyword AltstepIdentifier "(" [AltstepFormalParList] ")" [RunsOnSpec] BeginChar AltstepLocalDefList AltGuardList EndChar | |
= | "altstep" | |
= | Identifier | |
= | FunctionFormalParList | |
; STATIC SEMANTICS - altsteps that are activated as defaults shall only have in parameters, port parameters, or timer parameters | ||
; STATIC SEMANTICS -altsteps that are only invoked as an alternative in an alt statement or as stand-alone statement in a TTCN-3 behaviour description may have in, out and inout parameters. | ||
= | *( AltstepLocalDef [SemiColon] ) | |
= | VarInstance | TimerInstance | ConstDef | |
= | AltstepRef "(" [FunctionActualParList] ")" | |
; STATIC SEMANTICS - all timer instances in FunctionActualParList shall be declared as component local timers (see also production ComponentElementDef) | ||
= | [GlobalModuleId Dot] AltstepIdentifier | |
= | ImportKeyword ImportFromSpec ( AllWithExcepts | ( BeginChar ImportSpec EndChar ) ) | |
= | "import" | |
= | AllKeyword [ExceptsDef] | |
= | ExceptKeyword BeginChar ExceptSpec EndChar | |
= | "except" | |
= | *( ExceptElement [SemiColon] ) | |
; STATIC SEMANTICS: Any of the production components (ExceptGroupSpec, ExceptTypeDefSpec etc.) may be present only once in the ExceptSpec production | ||
= | ExceptGroupSpec | ExceptTypeDefSpec | ExceptTemplateSpec | ExceptConstSpec | ExceptTestcaseSpec | ExceptAltstepSpec | ExceptFunctionSpec | ExceptSignatureSpec | ExceptModuleParSpec | |
= | GroupKeyword ( ExceptGroupRefList | AllKeyword ) | |
= | TypeDefKeyword ( TypeRefList | AllKeyword ) | |
= | TemplateKeyword ( TemplateRefList | AllKeyword ) | |
= | ConstKeyword ( ConstRefList | AllKeyword ) | |
= | TestcaseKeyword ( TestcaseRefList | AllKeyword ) | |
= | AltstepKeyword ( AltstepRefList | AllKeyword ) | |
= | FunctionKeyword ( FunctionRefList | AllKeyword ) | |
= | SignatureKeyword ( SignatureRefList | AllKeyword ) | |
= | ModuleParKeyword ( ModuleParRefList | AllKeyword ) | |
= | *( ImportElement [SemiColon] ) | |
= | ImportGroupSpec | ImportTypeDefSpec | ImportTemplateSpec | ImportConstSpec | ImportTestcaseSpec | ImportAltstepSpec | ImportFunctionSpec | ImportSignatureSpec | ImportModuleParSpec | |
= | FromKeyword ModuleId [RecursiveKeyword] | |
= | GlobalModuleId [LanguageSpec] | |
; STATIC SEMANTICS - LanguageSpec may only be omitted if the referenced module contains TTCN-3 notation | ||
= | "language" | |
= | LanguageKeyword FreeText | |
= | ModuleIdentifier [Dot ObjectIdentifierValue] | |
= | "recursive" | |
= | GroupKeyword ( GroupRefListWithExcept | AllGroupsWithExcept ) | |
= | FullGroupIdentifier *( "," FullGroupIdentifier ) | |
= | FullGroupIdentifierWithExcept *( "," FullGroupIdentifierWithExcept ) | |
= | AllKeyword [ExceptKeyword GroupRefList] | |
= | GroupIdentifier *( Dot GroupIdentifier ) | |
= | GroupIdentifier *( Dot GroupIdentifier ) [ExceptsDef] | |
= | ExceptFullGroupIdentifier *( "," ExceptFullGroupIdentifier ) | |
= | GroupIdentifier *( Dot GroupIdentifier ) | |
= | TypeDefKeyword ( TypeRefList | AllTypesWithExcept ) | |
= | TypeDefIdentifier *( "," TypeDefIdentifier ) | |
= | AllKeyword [ExceptKeyword TypeRefList] | |
= | StructTypeIdentifier | EnumTypeIdentifier | PortTypeIdentifier | ComponentTypeIdentifier | SubTypeIdentifier | |
= | TemplateKeyword ( TemplateRefList | AllTemplsWithExcept ) | |
= | TemplateIdentifier *( "," TemplateIdentifier ) | |
= | AllKeyword [ExceptKeyword TemplateRefList] | |
= | ConstKeyword ( ConstRefList | AllConstsWithExcept ) | |
= | ConstIdentifier *( "," ConstIdentifier ) | |
= | AllKeyword [ExceptKeyword ConstRefList] | |
= | AltstepKeyword ( AltstepRefList | AllAltstepsWithExcept ) | |
= | AltstepIdentifier *( "," AltstepIdentifier ) | |
= | AllKeyword [ExceptKeyword AltstepRefList] | |
= | TestcaseKeyword ( TestcaseRefList | AllTestcasesWithExcept ) | |
= | TestcaseIdentifier *( "," TestcaseIdentifier ) | |
= | AllKeyword [ExceptKeyword TestcaseRefList] | |
= | FunctionKeyword ( FunctionRefList | AllFunctionsWithExcept ) | |
= | FunctionIdentifier *( "," FunctionIdentifier ) | |
= | AllKeyword [ExceptKeyword FunctionRefList] | |
= | SignatureKeyword ( SignatureRefList | AllSignaturesWithExcept ) | |
= | SignatureIdentifier *( "," SignatureIdentifier ) | |
= | AllKeyword [ExceptKeyword SignatureRefList] | |
= | ModuleParKeyword ( ModuleParRefList | AllModuleParWithExcept ) | |
= | ModuleParIdentifier *( "," ModuleParIdentifier ) | |
= | AllKeyword [ExceptKeyword ModuleParRefList] | |
= | GroupKeyword GroupIdentifier BeginChar [ModuleDefinitionsPart] EndChar | |
= | "group" | |
= | Identifier | |
= | ExtKeyword FunctionKeyword ExtFunctionIdentifier "(" [FunctionFormalParList] ")" [ReturnType] | |
= | "external" | |
= | Identifier | |
= | ExtKeyword ConstKeyword Type ExtConstIdentifier | |
= | Identifier | |
= | ModuleParKeyword "{" ModuleParList "}" | |
= | "modulepar" | |
= | ModulePar *( SemiColon ModulePar ) | |
= | ModuleParType ModuleParIdentifier [AssignmentChar ConstantExpression] *( "," ModuleParIdentifier [AssignmentChar ConstantExpression] ) | |
; STATIC SEMANTICS - The Value of the ConstantExpression shall be of the same type as the stated type for the Parameter | ||
= | Type | |
; STATIC SEMANTICS - Type shall not be of component, default or any types. Type shall only resolve to address type if a definition for the address type is defined within the module | ||
= | Identifier | |
= | ControlKeyword BeginChar ModuleControlBody EndChar [WithStatement] [SemiColon] | |
= | "control" | |
= | [ControlStatementOrDefList] | |
= | 1*( ControlStatementOrDef [SemiColon] ) | |
= | FunctionLocalInst | ControlStatement | FunctionLocalDef | |
= | TimerStatements | BasicStatements | BehaviourStatements | SUTStatements | |
= | VarKeyword Type VarList | |
= | SingleVarInstance *( "," SingleVarInstance ) | |
= | VarIdentifier [ArrayDef] [AssignmentChar VarInitialValue] | |
= | Expression | |
= | "var" | |
= | Identifier | |
= | ( VarIdentifier | ValueParIdentifier ) [ExtendedFieldReference] | |
= | TimerKeyword TimerList | |
= | SingleTimerInstance *( "," SingleTimerInstance ) | |
= | TimerIdentifier [ArrayDef] [AssignmentChar TimerValue] | |
= | "timer" | |
= | Identifier | |
= | Expression | |
; STATIC 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 arrays | ||
= | TimerIdentifier [ArrayOrBitRef] | TimerParIdentifier [ArrayOrBitRef] | |
= | ConnectStatement | MapStatement | DisconnectStatement | UnmapStatement | DoneStatement | StartTCStatement | StopTCStatement | |
= | CreateOp | SelfOp | SystemOp | MTCOp | RunningOp | |
= | ComponentType Dot CreateKeyword | |
= | SystemKeyword | |
= | "self" | |
= | MTCKeyword | |
= | ComponentId Dot DoneKeyword | |
= | ComponentIdentifier | ( AnyKeyword | AllKeyword ) ComponentKeyword | |
= | "done" | |
= | ComponentId Dot RunningKeyword | |
= | "running" | |
= | "create" | |
= | ConnectKeyword PortSpec | |
= | "connect" | |
= | "(" PortRef "," PortRef ")" | |
= | ComponentRef Colon Port | |
= | ComponentIdentifier | SystemOp | SelfOp | MTCOp | |
= | DisconnectKeyword PortSpec | |
= | "disconnect" | |
= | MapKeyword PortSpec | |
= | "map" | |
= | UnmapKeyword PortSpec | |
= | "unmap" | |
= | ComponentIdentifier Dot StartKeyword "(" FunctionInstance ")" | |
; STATIC SEMANTICS the Function instance may only have in parameters | ||
; STATIC SEMANTICS the Function instance shall not have timer parameters | ||
= | "start" | |
= | StopKeyword | ComponentIdentifierOrLiteral Dot StopKeyword | AllKeyword ComponentKeyword Dot StopKeyword | |
= | ComponentIdentifier | MTCOp | SelfOp | |
= | VariableRef | FunctionInstance | |
; STATIC SEMANTICS the variable associated with VariableRef or the Return type associated with FunctionInstance must be of component type | ||
= | ( PortIdentifier | PortParIdentifier ) [ArrayOrBitRef] | |
= | SendStatement | CallStatement | ReplyStatement | RaiseStatement | ReceiveStatement | TriggerStatement | GetCallStatement | GetReplyStatement | CatchStatement | CheckStatement | ClearStatement | StartStatement | StopStatement | |
= | Port Dot PortSendOp | |
= | SendOpKeyword "(" SendParameter ")" [ToClause] | |
= | "send" | |
= | TemplateInstance | |
= | ToKeyword AddressRef | |
= | "to" | |
= | VariableRef | FunctionInstance | |
; STATIC SEMANTICS - VariableRef and FunctionInstance return must be of address or component type | ||
= | Port Dot PortCallOp [PortCallBody] | |
= | CallOpKeyword "(" CallParameters ")" [ToClause] | |
= | "call" | |
= | TemplateInstance ["," CallTimerValue] | |
; STATIC SEMANTICS only out parameters may be omited or specified with a matching attribute | ||
= | TimerValue | NowaitKeyword | |
; STATIC SEMANTICS Value must be of type float | ||
= | "nowait" | |
= | BeginChar CallBodyStatementList EndChar | |
= | 1*( CallBodyStatement [SemiColon] ) | |
= | CallBodyGuard StatementBlock | |
= | AltGuardChar CallBodyOps | |
= | GetReplyStatement | CatchStatement | |
= | Port Dot PortReplyOp | |
= | ReplyKeyword "(" TemplateInstance [ReplyValue] ")" [ToClause] | |
= | "reply" | |
= | ValueKeyword Expression | |
= | Port Dot PortRaiseOp | |
= | RaiseKeyword "(" Signature "," TemplateInstance ")" [ToClause] | |
= | "raise" | |
= | PortOrAny Dot PortReceiveOp | |
= | Port | AnyKeyword PortKeyword | |
= | ReceiveOpKeyword ["(" ReceiveParameter ")"] [FromClause] [PortRedirect] | |
; STATIC SEMANTICS: the PortRedirect option may only be present if the ReceiveParameter option is also present | ||
= | "receive" | |
= | TemplateInstance | |
= | FromKeyword AddressRef | |
= | "from" | |
= | PortRedirectSymbol ( ValueSpec [SenderSpec] | SenderSpec ) | |
= | "->" | |
= | ValueKeyword VariableRef | |
= | "value" | |
= | SenderKeyword VariableRef | |
; STATIC SEMANTIC Variable ref must be of address or component type | ||
= | "sender" | |
= | PortOrAny Dot PortTriggerOp | |
= | TriggerOpKeyword ["(" ReceiveParameter ")"] [FromClause] [PortRedirect] | |
; STATIC SEMANTICS: the PortRedirect option may only be present if the ReceiveParameter option is also present | ||
= | "trigger" | |
= | PortOrAny Dot PortGetCallOp | |
= | GetCallOpKeyword ["(" ReceiveParameter ")"] [FromClause] [PortRedirectWithParam] | |
; STATIC SEMANTICS: the PortRedirectWithParam option may only be present if the ReceiveParameter option is also present | ||
= | "getcall" | |
= | PortRedirectSymbol RedirectSpec | |
= | ValueSpec [ParaSpec] [SenderSpec] | ParaSpec [SenderSpec] | SenderSpec | |
= | ParaKeyword ParaAssignmentList | |
= | "param" | |
= | "(" ( AssignmentList | VariableList ) ")" | |
= | VariableAssignment *( "," VariableAssignment ) | |
= | VariableRef AssignmentChar ParameterIdentifier | |
; STATIC SEMANTICS: the parameterIdentifiers must be from the corresponding signature definition | ||
= | ValueParIdentifier | TimerParIdentifier | TemplateParIdentifier | PortParIdentifier | |
= | VariableEntry *( "," VariableEntry ) | |
= | VariableRef | NotUsedSymbol | |
= | PortOrAny Dot PortGetReplyOp | |
= | GetReplyOpKeyword ["(" ReceiveParameter [ValueMatchSpec] ")"] [FromClause] [PortRedirectWithParam] | |
; STATIC SEMANTICS: the PortRedirectWithParam option may only be present if the ReceiveParameter option is also present | ||
= | "getreply" | |
= | ValueKeyword TemplateInstance | |
= | PortOrAny Dot PortCheckOp | |
= | CheckOpKeyword ["(" CheckParameter ")"] | |
= | "check" | |
= | CheckPortOpsPresent | FromClausePresent | RedirectPresent | |
= | FromClause [PortRedirectSymbol SenderSpec] | |
= | PortRedirectSymbol SenderSpec | |
= | PortReceiveOp | PortGetCallOp | PortGetReplyOp | PortCatchOp | |
= | PortOrAny Dot PortCatchOp | |
= | CatchOpKeyword ["(" CatchOpParameter ")"] [FromClause] [PortRedirect] | |
; STATIC SEMANTICS: the PortRedirect option may only be present if the CatchOpParameter option is also present | ||
= | "catch" | |
= | Signature "," TemplateInstance | TimeoutKeyword | |
= | PortOrAll Dot PortClearOp | |
= | Port | AllKeyword PortKeyword | |
= | ClearOpKeyword | |
= | "clear" | |
= | PortOrAll Dot PortStartOp | |
= | StartKeyword | |
= | PortOrAll Dot PortStopOp | |
= | StopKeyword | |
= | "stop" | |
= | "any" | |
= | StartTimerStatement | StopTimerStatement | TimeoutStatement | |
= | ReadTimerOp | RunningTimerOp | |
= | TimerRef Dot StartKeyword ["(" TimerValue ")"] | |
= | TimerRefOrAll Dot StopKeyword | |
= | TimerRef | AllKeyword TimerKeyword | |
= | TimerRef Dot ReadKeyword | |
= | "read" | |
= | TimerRefOrAny Dot RunningKeyword | |
= | TimerRefOrAny Dot TimeoutKeyword | |
= | TimerRef | AnyKeyword TimerKeyword | |
= | "timeout" | |
= | PredefinedType | ReferencedType | |
= | BitStringKeyword | BooleanKeyword | CharStringKeyword | UniversalCharString | IntegerKeyword | OctetStringKeyword | ObjectIdentifierKeyword | HexStringKeyword | VerdictTypeKeyword | FloatKeyword | AddressKeyword | DefaultKeyword | AnyTypeKeyword | |
= | "bitstring" | |
= | "boolean" | |
= | "integer" | |
= | "octetstring" | |
= | "objid" | |
= | "hexstring" | |
= | "verdicttype" | |
= | "float" | |
= | "address" | |
= | "default" | |
= | "anytype" | |
= | "charstring" | |
= | UniversalKeyword CharStringKeyword | |
= | "universal" | |
= | "char" | |
= | [GlobalModuleId Dot] TypeReference [ExtendedFieldReference] | |
= | StructTypeIdentifier [TypeActualParList] | EnumTypeIdentifier | SubTypeIdentifier | ComponentTypeIdentifier | |
= | "(" TypeActualPar *( "," TypeActualPar ) ")" | |
= | ConstantExpression | |
= | 1*( "[" ArrayBounds [".." ArrayBounds] "]" ) | |
= | SingleConstExpression | |
; STATIC SEMANTICS - ArrayBounds will resolve to a non negative value of integer type | ||
= | PredefinedValue | ReferencedValue | |
= | BitStringValue | BooleanValue | CharStringValue | IntegerValue | OctetStringValue | ObjectIdentifierValue | HexStringValue | VerdictTypeValue | EnumeratedValue | FloatValue | AddressValue | OmitValue | |
= | Bstring | |
= | "true" | "false" | |
= | Number | |
= | Ostring | |
= | ObjectIdentifierKeyword "{" ObjIdComponentList "}" | |
; ReferencedValue must be of type object Identifer | ||
= | 1*( ObjIdComponent ) | |
= | NameForm | NumberForm | NameAndNumberForm | |
= | Number | ReferencedValue | |
; STATIC SEMANTICS - referencedValue must be of type integer and have a non negative Value | ||
= | Identifier "(" NumberForm ")" | |
= | Identifier | |
= | Hstring | |
= | "pass" | "fail" | "inconc" | "none" | "error" | |
= | EnumerationIdentifier | |
= | Cstring | Quadruple | |
= | CharKeyword "(" Group "," Plane "," Row "," Cell ")" | |
= | Number | |
= | Number | |
= | Number | |
= | Number | |
= | FloatDotNotation | FloatENotation | |
= | Number Dot DecimalNumber | |
= | Number [Dot DecimalNumber] Exponential [Minus] Number | |
= | "E" | |
= | ValueReference [ExtendedFieldReference] | |
= | [GlobalModuleId Dot] ( ConstIdentifier | ExtConstIdentifier ) | ValueParIdentifier | ModuleParIdentifier | VarIdentifier | |
= | ( NonZeroNum *( Num ) ) | "0" | |
= | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | |
= | 1*( Num ) | |
= | "0" | NonZeroNum | |
= | "'" *( Bin ) "'" "B" | |
= | "0" | "1" | |
= | "'" *( Hex ) "'" "H" | |
= | Num | "A" | "B" | "C" | "D" | "E" | "F" | "a" | "b" | "c" | "d" | "e" | "f" | |
= | "'" *( Oct ) "'" "O" | |
= | Hex Hex | |
= | """ *( Char ) """ | |
= | %x01-7F | |
; REFERENCE - 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 10646 | ||
= | Alpha *( AlphaNum | Underscore ) | |
= | UpperAlpha | LowerAlpha | |
= | Alpha | Num | |
= | "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" | |
= | "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" | |
= | %x00-FF | |
; REFERENCE - 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) | ||
= | """ *( ExtendedAlphaNum ) """ | |
= | "null" | |
= | OmitKeyword | |
= | "omit" | |
= | "in" | |
= | "out" | |
= | "inout" | |
= | [( InParKeyword | InOutParKeyword | OutParKeyword )] Type ValueParIdentifier | |
= | Identifier | |
= | [InOutParKeyword] PortTypeIdentifier PortParIdentifier | |
= | Identifier | |
= | [InOutParKeyword] TimerKeyword TimerParIdentifier | |
= | Identifier | |
= | [InParKeyword] TemplateKeyword Type TemplateParIdentifier | |
= | Identifier | |
= | WithKeyword WithAttribList | |
= | "with" | |
= | "{" MultiWithAttrib "}" | |
= | *( SingleWithAttrib [SemiColon] ) | |
= | AttribKeyword [OverrideKeyword] [AttribQualifier] AttribSpec | |
= | EncodeKeyword | VariationKeyword | DisplayKeyword | ExtensionKeyword | |
= | "encode" | |
= | "variant" | |
= | "display" | |
= | "extension" | |
= | "override" | |
= | "(" DefOrFieldRefList ")" | |
= | DefOrFieldRef *( "," DefOrFieldRef ) | |
= | DefinitionRef | FieldReference | AllRef | PredefinedType | |
; STATIC SEMANTICS: the DefOrFieldRef must refer to a definition or field which is within the module, group or definition to which the with statement is associated | ||
= | StructTypeIdentifier | EnumTypeIdentifier | PortTypeIdentifier | ComponentTypeIdentifier | SubTypeIdentifier | ConstIdentifier | TemplateIdentifier | AltstepIdentifier | TestcaseIdentifier | FunctionIdentifier | SignatureIdentifier | VarIdentifier | TimerIdentifier | PortIdentifier | ModuleParIdentifier | FullGroupIdentifier | |
= | ( GroupKeyword AllKeyword [ExceptKeyword BeginChar GroupRefList EndChar] ) | ( TypeDefKeyword AllKeyword [ExceptKeyword BeginChar TypeRefList EndChar] ) | ( TemplateKeyword AllKeyword [ExceptKeyword BeginChar TemplateRefList EndChar] ) | ( ConstKeyword AllKeyword [ExceptKeyword BeginChar ConstRefList EndChar] ) | ( AltstepKeyword AllKeyword [ExceptKeyword BeginChar AltstepRefList EndChar] ) | ( TestcaseKeyword AllKeyword [ExceptKeyword BeginChar TestcaseRefList EndChar] ) | ( FunctionKeyword AllKeyword [ExceptKeyword BeginChar FunctionRefList EndChar] ) | ( SignatureKeyword AllKeyword [ExceptKeyword BeginChar SignatureRefList EndChar] ) | ( ModuleParKeyword AllKeyword [ExceptKeyword BeginChar ModuleParRefList EndChar] ) | |
= | FreeText | |
= | TestcaseInstance | FunctionInstance | ReturnStatement | AltConstruct | InterleavedConstruct | LabelStatement | GotoStatement | BreakStatement | ContinueStatement | RepeatStatement | DeactivateStatement | AltstepInstance | ActivateOp | |
; STATIC 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 part | ||
; STATIC SEMANTICS - ActivateOp shall not be called from within the module control part | ||
= | SetLocalVerdict | |
= | GetLocalVerdict | |
= | SetVerdictKeyword "(" SingleExpression ")" | |
; STATIC SEMANTICS -SingleExpression must resolve to a value of type verdict | ||
; STATIC SEMANTICS - the SetLocalVerdict shall not be used to assign the Value error | ||
= | "setverdict" | |
= | "getverdict" | |
= | ActionKeyword "(" [FreeText] ")" | |
= | "action" | |
= | ReturnKeyword [Expression] | |
= | AltKeyword BeginChar AltGuardList EndChar | |
= | "alt" | |
= | *( GuardStatement [SemiColon] ) [ElseStatement [SemiColon]] | |
= | AltGuardChar ( AltstepInstance [StatementBlock] | GuardOp StatementBlock ) | |
= | "[" ElseKeyword "]" StatementBlock | |
= | "[" [BooleanExpression] "]" | |
= | TimeoutStatement | ReceiveStatement | TriggerStatement | GetCallStatement | CatchStatement | CheckStatement | GetReplyStatement | DoneStatement | |
; STATIC SEMANTICS - GuardOp used within the module control part. May only contain the timeoutStatement | ||
= | InterleavedKeyword BeginChar InterleavedGuardList EndChar | |
= | "interleave" | |
= | 1*( InterleavedGuardElement [SemiColon] ) | |
= | InterleavedGuard InterleavedAction | |
= | "[" "]" GuardOp | |
= | StatementBlock | |
; STATIC SEMANTICS - the StatementBlock may not contain loop statements, goto, activate, deactivate, stop, return or calls to functions | ||
= | LabelKeyword LabelIdentifier | |
= | "label" | |
= | Identifier | |
= | GotoKeyword LabelIdentifier | |
= | "goto" | |
= | "break" | |
= | "continue" | |
= | "repeat" | |
= | ActivateKeyword "(" AltstepInstance ")" | |
= | "activate" | |
= | DeactivateKeyword ["(" Expression ")"] | |
; STATIC SEMANTICS expression shall evaluate to a value of default type | ||
= | "deactivate" | |
= | Assignment | LogStatement | LoopConstruct | ConditionalConstruct | |
= | SingleExpression | CompoundExpression | |
; STATIC SEMANTICS - Expression shall not contain Configuration, activate operation or verdict operations within the module control part | ||
= | FieldExpressionList | ArrayExpression | |
; STATIC SEMANTICS - Within CompoundExpression the ArrayExpression can be used for Arrays, record, record of and set of types. | ||
= | "{" FieldExpressionSpec *( "," FieldExpressionSpec ) "}" | |
= | FieldReference AssignmentChar Expression | |
= | "{" [ArrayElementExpressionList] "}" | |
= | NotUsedOrExpression *( "," NotUsedOrExpression ) | |
= | Expression | NotUsedSymbol | |
= | SingleConstExpression | CompoundConstExpression | |
= | SingleExpression | |
; STATIC SEMANTICS - SingleConstExpression shall not contain Variables or Module parameters and shall resolve to a constant Value at compile time | ||
= | SingleExpression | |
; STATIC SEMANTICS - BooleanExpression shall resolve to a Value of type Boolean | ||
= | FieldConstExpressionList | ArrayConstExpression | |
; STATIC SEMANTICS - Within CompoundConstExpression the ArrayConstExpression can be used for Arrays, record, record of and set of types. | ||
= | "{" FieldConstExpressionSpec *( "," FieldConstExpressionSpec ) "}" | |
= | FieldReference AssignmentChar ConstantExpression | |
= | "{" [ArrayElementConstExpressionList] "}" | |
= | ConstantExpression *( "," ConstantExpression ) | |
= | VariableRef AssignmentChar Expression | |
; OPERATIONAL SEMANTICS - The Expression on the RHS of Assignment shall evaluate to an explicit Value of the type of the LHS. | ||
= | XorExpression *( "or" XorExpression ) | |
; OPERATIONAL SEMANTICS - If more than one XorExpression exists, then the XorExpressions shall evaluate to specific values of compatible types | ||
= | AndExpression *( "xor" AndExpression ) | |
; OPERATIONAL SEMANTICS - If more than one AndExpression exists, then the AndExpressions shall evaluate to specific values of compatible types | ||
= | NotExpression *( "and" NotExpression ) | |
; OPERATIONAL SEMANTICS - If more than one NotExpression exists, then the NotExpressions shall evaluate to specific values of compatible types | ||
= | ["not"] EqualExpression | |
; OPERATIONAL SEMANTICS - Operands of the not operator shall be of type boolean (TTCN or ASN.1) or derivatives of type Boolean. | ||
= | RelExpression *( EqualOp RelExpression ) | |
; OPERATIONAL SEMANTICS - If more than one RelExpression exists, then the RelExpressions shall evaluate to specific values of compatible types | ||
= | ShiftExpression *( RelOp ShiftExpression ) | |
; OPERATIONAL SEMANTICS - If both ShiftExpressions exist, then each ShiftExpression shall evaluate to a specific integer, Enumerated or float Value (these values can either be TTCN or ASN.1 values) or derivatives of these types | ||
= | BitOrExpression *( ShiftOp BitOrExpression ) | |
; 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 or derivatives and if the shift op is '<<' or '>>' then the left-hand operand shall resolve to either bitstring, hexstring or octetstring type or derivatives of these types. If the shift op is '<@' or '@>' then the left-hand operand shall be of type bitstring, hexstring, charstring or universal charstring or derivatives of these types | ||
= | BitXorExpression *( "or4b" BitXorExpression ) | |
; OPERATIONAL SEMANTICS - If more than one BitXorExpression exists, then the BitXorExpressions shall evaluate to specific values of compatible types | ||
= | BitAndExpression *( "xor4b" BitAndExpression ) | |
; OPERATIONAL SEMANTICS - If more than one BitAndExpression exists, then the BitAndExpressions shall evaluate to specific values of compatible types | ||
= | BitNotExpression *( "and4b" BitNotExpression ) | |
; OPERATIONAL SEMANTICS - If more than one BitNotExpression exists, then the BitNotExpressions shall evaluate to specific values of compatible types | ||
= | ["not4b"] AddExpression | |
; OPERATIONAL SEMANTICS - If the not4b operator exists, the operand shall be of type bitstring, octetstring or hexstring or derivatives of these types. | ||
= | MulExpression *( AddOp MulExpression ) | |
; OPERATIONAL SEMANTICS - Each MulExpression shall resolve to a specific Value. If more than one MulExpression exists and the AddOp resolves to StringOp then the MulExpressions shall resolve to same type which shall be of bitstring, hexstring, octetstring, charstring or universal charstring or derivatives of these types. If more than one MulExpression exists and the AddOp does not resolve to StringOp then the MulExpression shall both resolve to type integer or float or derivatives of these types. | ||
= | UnaryExpression *( MultiplyOp UnaryExpression ) | |
; OPERATIONAL SEMANTICS - Each UnaryExpression shall resolve to a specific Value. If more than one UnaryExpression exists then the UnaryExpressions shall resolve to type integer or float or derivatives of these types. | ||
= | [UnaryOp] Primary | |
; OPERATIONAL SEMANTICS - Primary shall resolve to a specific Value of type integer or float or derivatives of these types | ||
= | OpCall | Value | "(" SingleExpression ")" | |
= | 1*( ( Dot ( StructFieldIdentifier | ArrayOrBitRef | TypeDefIdentifier ) ) | ArrayOrBitRef ) | |
; OPERATIONAL SEMANTIC: The TypeDefIdentifier shall be used only if the type of the VarInstance or ReferencedValue in wich the ExtendedFieldReference is used is anytype. | ||
= | ConfigurationOps | VerdictOps | TimerOps | TestcaseInstance | FunctionInstance | TemplateOps | ActivateOp | |
= | "+" | "-" | StringOp | |
; OPERATIONAL SEMANTICS - Operands of the "+" or "-" operators shall be of type integer or float(i.e., TTCN-3 or ASN.1 predefined) or derivations of integer or float (i.e., subrange) | ||
= | "*" | "/" | "mod" | "rem" | |
; OPERATIONAL SEMANTICS - Operands of the "*", "/", rem or mod operators shall be of type integer or float(i.e., TTCN-3 or ASN.1 predefined) or derivations of integer or float (i.e., subrange). | ||
= | "+" | "-" | |
; OPERATIONAL SEMANTICS - Operands of the "+" or "-" operators shall be of type integer or float(i.e., TTCN-3 or ASN.1 predefined) or derivations of integer or float (i.e., subrange). | ||
= | "<" | ">" | ">=" | "<=" | |
; OPERATIONAL SEMANTICS - the precedence of the operators is defined in Table 7 | ||
= | "==" | "!=" | |
= | "&" | |
; OPERATIONAL SEMANTICS - Operands of the string operator shall be bitstring, hexstring, octetstring or character string | ||
= | "<<" | ">>" | "<@" | "@>" | |
= | LogKeyword "(" [FreeText] ")" | |
= | "log" | |
= | ForStatement | WhileStatement | DoWhileStatement | |
= | ForKeyword "(" Initial SemiColon Final SemiColon Step ")" StatementBlock | |
= | "for" | |
= | VarInstance | Assignment | |
= | BooleanExpression | |
= | Assignment | |
= | WhileKeyword "(" BooleanExpression ")" StatementBlock | |
= | "while" | |
= | DoKeyword StatementBlock WhileKeyword "(" BooleanExpression ")" | |
= | "do" | |
= | IfKeyword "(" BooleanExpression ")" StatementBlock *( ElseIfClause ) [ElseClause] | |
= | "if" | |
= | ElseKeyword IfKeyword "(" BooleanExpression ")" StatementBlock | |
= | "else" | |
= | ElseKeyword StatementBlock | |
= | "." | |
= | "-" | |
= | Dash | |
= | ";" | |
= | ":" | |
= | "_" | |
= | "{" | |
= | "}" | |
= | ":=" | |
Following is a cross-reference list for the ABNF. On the left are references to productions, on the right are links to the rules in which those productions are referenced.