source: default/trunk/de.ugoe.cs.swe.bnftools.ebnf.samples/trunk/ttcn3/package-advanced_parameterization-v1.1.1.bnf @ 5

Last change on this file since 5 was 5, checked in by zeiss, 14 years ago
File size: 4.8 KB
Line 
1grammar ttcn3_advancedparameterization/bnf;
2
3import "ttcn3-4.2.1.bnf"/core;
4
5A.1.6.1.14 Type parameter definitions 
6
71. FormalTypeParList ::= "<" FormalTypePar { "," FormalTypePar } ">"
82. FormalTypePar ::= [ InParKeyword ] [ Type | TypeDefKeyword ] TypeParIdentifier  [ ":=" Type ]
93. TypeParIdentifier ::= Identifier
104. TypeActualParIdentifier ::= Identifier
115. TypeParAssignment ::= TypeActualParIdentifier ":=" TypeActualPar
126. ActualTypeParList ::= ( "<" ActualTypePar { "," ActualTypePar } ">" ) |
13  ("<" ActualTypeParAssignment { "," ActualTypeParAssignment } ">")
147.  ActualTypePar ::= Type | Dash
158. ActualTypeParAssignment ::= TypeActualParIdentifier ":=" ActualTypePar
169. StructDefFormalParList ::= "(" StructDefFormalPar {"," StructDefFormalPar} ")"
1710. StructDefFormalPar ::=  FormalValuePar
18
19
20// modifications
21
2218. StructDefBody ::= (StructTypeIdentifier | AddressKeyword) 
23                      [FormalTypeParList] [StructDefFormalParList]
24                      "{" [StructFieldDef {"," StructFieldDef}] "}"
2534. UnionDefBody ::= (StructTypeIdentifier | AddressKeyword) 
26                     [FormalTypeParList] [StructDefFormalParList]
27                     "{" UnionFieldDef {"," UnionFieldDef} "}"
2840. StructOfDefBody ::= (Type | NestedTypeDef) (StructTypeIdentifier | AddressKeyword) 
29                        [FormalTypeParList] [StructDefFormalParList] [SubTypeSpec]
3042. EnumDef ::= EnumKeyword (EnumTypeIdentifier | AddressKeyword) [StructDefFormalParList]
31                "{" EnumerationList "}"
3248. SubTypeDef ::= Type (SubTypeIdentifier | AddressKeyword) 
33                   [FormalTypeParList] [StructDefFormalParList] [ArrayDef] [SubTypeSpec]
3456. PortType ::= [GlobalModuleId Dot] PortTypeIdentifier [ActualTypeParList] [ TypeActualParList ]
3558. PortDefBody ::= PortTypeIdentifier [FormalTypeParList] [StructDefFormalParList] PortDefAttribs
3679. ComponentDef ::= ComponentKeyword ComponentTypeIdentifier 
37                     [FormalTypeParList] [StructDefFormalParList]
38                     [ExtendsKeyword ComponentType {"," ComponentType}]
39                     "{" [ComponentDefList] "}"
4082. ComponentType ::= [GlobalModuleId Dot] ComponentTypeIdentifier 
41                      [ActualTypeParList] [ TypeActualParList ]
4295. BaseTemplate ::= (Type | Signature) TemplateIdentifier 
43                      [FormalTypeParList] ["(" TemplateFormalParList ")"]
44107. StructFieldRef ::= StructFieldIdentifier| PredefinedType | ReferencedType
45/* STATIC SEMANTICS - PredefinedType and ReferencedType shall be used for anytype value notation
46only. PredefinedType shall not be AnyTypeKeyword.*/
47160. FunctionDef ::= FunctionKeyword FunctionIdentifier [FormalTypeParList]
48                     "("[FunctionFormalParList] ")" [RunsOnSpec] [ReturnType] StatementBlock
49177. FunctionInstance ::= FunctionRef [ActualTypeParList] "(" [FunctionActualParList] ")"
50182. SignatureDef ::= SignatureKeyword SignatureIdentifier [FormalTypeParList]
51                      "("[SignatureFormalParList] ")" [ReturnType | NoBlockKeyword]
52                      [ExceptionSpec]
53191. Signature ::= [GlobalModuleId Dot] SignatureIdentifier [ActualTypeParList]
54192. TestcaseDef ::= TestcaseKeyword TestcaseIdentifier [FormalTypeParList]
55                     "("[TestcaseFormalParList] ")" ConfigSpec 
56                     StatementBlock
57200. TestcaseInstance ::= ExecuteKeyword "(" TestcaseRef [ActualTypeParList] 
58                          "(" [TestcaseActualParList] ")"
59                          ["," TimerValue] ")"
60205. AltstepDef ::= AltstepKeyword AltstepIdentifier [FormalTypeParList]
61                    "("[AltstepFormalParList] ")" [RunsOnSpec]
62                    "{" AltstepLocalDefList AltGuardList "}"
63211. AltstepInstance ::= AltstepRef [ActualTypeParList] "(" [FunctionActualParList] ")"
64456. ReferencedType ::= [GlobalModuleId Dot] TypeReference [TypeActualParList] 
65                        [ExtendedFieldReference]
66457. TypeReference ::= StructTypeIdentifier|
67                       EnumTypeIdentifier |
68                       SubTypeIdentifier |
69                       ComponentTypeIdentifier | 
70                       PortTypeIdentifier
71458. TypeActualParList ::= ( "(" TypeActualPar {"," TypeActualPar} ")" ) |
72   ( "(" TypeParAssignment { "," TypeParAssignment } ")" )
73   
74459. TypeActualPar ::= ConstantExpression | TypeActualParIdentifier
75603. ExtendedFieldReference ::= {((Dot (StructFieldIdentifier | 
76                                        (TypeDefIdentifier [ActualTypeParList][TypeActualParList])))
77                                   | ArrayOrBitRef ) }+
78/* STATIC SEMANTIC - The TypeDefIdentifier shall be used only if the type of the VarInstance or
79ReferencedValue in wich the ExtendedFieldReference is used is anytype.*/
80
Note: See TracBrowser for help on using the repository browser.