|
TTCN3Module
|
::= |
TTCN3ModuleKeyword TTCN3ModuleId [ ModuleParList ] BeginChar [ ModuleDefinitionsPart ] [ ModuleControlPart ] EndChar [ WithStatement ] [ SemiColon ]
|
|
TTCN3ModuleKeyword
|
::= |
"module"
|
|
TTCN3ModuleId
|
::= |
ModuleIdentifier [ DefinitiveIdentifier ]
|
|
ModuleIdentifier
|
::= |
Identifier
|
|
DefinitiveIdentifier
|
::= |
Dot ObjectIdentifierKeyword "{" DefinitiveObjIdComponentList "}"
|
|
DefinitiveObjIdComponentList
|
::= |
{ DefinitiveObjIdComponent }+
|
|
DefinitiveObjIdComponent
|
::= |
NameForm | DefinitiveNumberForm | DefinitiveNameAndNumberForm
|
|
DefinitiveNumberForm
|
::= |
Number
|
|
DefinitiveNameAndNumberForm
|
::= |
Identifier "(" DefinitiveNumberForm ")"
|
|
ModuleParList
|
::= |
"(" ModulePar { "," ModulePar } ")"
|
|
ModulePar
|
::= |
[ InParKeyword ] ModuleParType ModuleParIdentifier [ AssignmentChar ConstantExpression ]
|
|
ModuleParType
|
::= |
Type
|
|
ModuleParIdentifier
|
::= |
Identifier
|
|
ModuleDefinitionsPart
|
::= |
ModuleDefinitionsList
|
|
ModuleDefinitionsList
|
::= |
{ ModuleDefinition [ SemiColon ] }+
|
|
ModuleDefinition
|
::= |
( TypeDef | ConstDef | TemplateDef | FunctionDef | SignatureDef | TestcaseDef | NamedAltDef | ImportDef | GroupDef | ExtFunctionDef | ExtConstDef ) [ WithStatement ]
|
|
TypeDef
|
::= |
TypeDefKeyword TypeDefBody
|
|
TypeDefBody
|
::= |
StructuredTypeDef | SubTypeDef
|
|
TypeDefKeyword
|
::= |
"type"
|
|
StructuredTypeDef
|
::= |
RecordDef | UnionDef | SetDef | RecordOfDef | SetOfDef | EnumDef | PortDef | ComponentDef
|
|
RecordDef
|
::= |
RecordKeyword StructDefBody
|
|
RecordKeyword
|
::= |
"record"
|
|
StructDefBody
|
::= |
( StructTypeIdentifier [ StructDefFormalParList ] | AddressKeyword ) BeginChar [ StructFieldDef { "," StructFieldDef } ] EndChar
|
|
StructTypeIdentifier
|
::= |
Identifier
|
|
StructDefFormalParList
|
::= |
"(" StructDefFormalPar { "," StructDefFormalPar } ")"
|
|
StructDefFormalPar
|
::= |
FormalValuePar | FormalTypePar
|
|
StructFieldDef
|
::= |
Type StructFieldIdentifier [ ArrayDef ] [ SubTypeSpec ] [ OptionalKeyword ]
|
|
StructFieldIdentifier
|
::= |
Identifier
|
|
OptionalKeyword
|
::= |
"optional"
|
|
UnionDef
|
::= |
UnionKeyword UnionDefBody
|
|
UnionKeyword
|
::= |
"union"
|
|
UnionDefBody
|
::= |
( StructTypeIdentifier [ StructDefFormalParList ] | AddressKeyword ) BeginChar UnionFieldDef { "," UnionFieldDef } EndChar
|
|
UnionFieldDef
|
::= |
Type StructFieldIdentifier [ ArrayDef ] [ SubTypeSpec ]
|
|
SetDef
|
::= |
SetKeyword StructDefBody
|
|
SetKeyword
|
::= |
"set"
|
|
RecordOfDef
|
::= |
RecordKeyword OfKeyword [ StringLength ] StructOfDefBody
|
|
OfKeyword
|
::= |
"of"
|
|
StructOfDefBody
|
::= |
Type ( StructTypeIdentifier | AddressKeyword ) [ SubTypeSpec ]
|
|
SetOfDef
|
::= |
SetKeyword OfKeyword [ StringLength ] StructOfDefBody
|
|
EnumDef
|
::= |
EnumKeyword ( EnumTypeIdentifier | AddressKeyword ) BeginChar NamedValueList EndChar
|
|
EnumKeyword
|
::= |
"enumerated"
|
|
EnumTypeIdentifier
|
::= |
Identifier
|
|
NamedValueList
|
::= |
NamedValue { "," NamedValue }
|
|
NamedValue
|
::= |
NamedValueIdentifier [ "(" Number ")" ]
|
|
NamedValueIdentifier
|
::= |
Identifier
|
|
SubTypeDef
|
::= |
Type ( SubTypeIdentifier | AddressKeyword ) [ ArrayDef ] [ SubTypeSpec ]
|
|
SubTypeIdentifier
|
::= |
Identifier
|
|
SubTypeSpec
|
::= |
AllowedValues | StringLength
|
|
AllowedValues
|
::= |
"(" ValueOrRange { "," ValueOrRange } ")"
|
|
ValueOrRange
|
::= |
IntegerRangeDef | SingleConstExpression
|
|
IntegerRangeDef
|
::= |
LowerBound ".." UpperBound
|
|
StringLength
|
::= |
LengthKeyword "(" SingleConstExpression [ ".." UpperBound ] ")"
|
|
LengthKeyword
|
::= |
"length"
|
|
PortType
|
::= |
[ GlobalModuleId Dot ] PortTypeIdentifier
|
|
PortDef
|
::= |
PortKeyword PortDefBody
|
|
PortDefBody
|
::= |
PortTypeIdentifier PortDefAttribs
|
|
PortKeyword
|
::= |
"port"
|
|
PortTypeIdentifier
|
::= |
Identifier
|
|
PortDefAttribs
|
::= |
MessageAttribs | ProcedureAttribs | MixedAttribs
|
|
MessageAttribs
|
::= |
MessageKeyword BeginChar { MessageList [ SemiColon ] }+ EndChar
|
|
MessageList
|
::= |
Direction AllOrTypeList
|
|
Direction
|
::= |
InParKeyword | OutParKeyword | InOutParKeyword
|
|
MessageKeyword
|
::= |
"message"
|
|
AllOrTypeList
|
::= |
AllKeyword | TypeList
|
|
AllKeyword
|
::= |
"all"
|
|
TypeList
|
::= |
Type { "," Type }
|
|
ProcedureAttribs
|
::= |
ProcedureKeyword BeginChar { ProcedureList [ SemiColon ] }+ EndChar
|
|
ProcedureKeyword
|
::= |
"procedure"
|
|
ProcedureList
|
::= |
Direction AllOrSignatureList
|
|
AllOrSignatureList
|
::= |
AllKeyword | SignatureList
|
|
SignatureList
|
::= |
Signature { "," Signature }
|
|
MixedAttribs
|
::= |
MixedKeyword BeginChar { MixedList [ SemiColon ] }+ EndChar
|
|
MixedKeyword
|
::= |
"mixed"
|
|
MixedList
|
::= |
Direction ProcOrTypeList
|
|
ProcOrTypeList
|
::= |
AllKeyword | ( ProcOrType { "," ProcOrType } )
|
|
ProcOrType
|
::= |
Signature | Type
|
|
ComponentDef
|
::= |
ComponentKeyword ComponentTypeIdentifier BeginChar [ ComponentDefList ] EndChar
|
|
ComponentKeyword
|
::= |
"component"
|
|
ComponentType
|
::= |
[ GlobalModuleId Dot ] ComponentTypeIdentifier
|
|
ComponentTypeIdentifier
|
::= |
Identifier
|
|
ComponentDefList
|
::= |
{ ComponentElementDef [ SemiColon ] }+
|
|
ComponentElementDef
|
::= |
PortInstance | VarInstance | TimerInstance | ConstDef
|
|
PortInstance
|
::= |
PortKeyword PortType PortElement { "," PortElement }
|
|
PortElement
|
::= |
PortIdentifier [ ArrayDef ]
|
|
PortIdentifier
|
::= |
Identifier
|
|
ConstDef
|
::= |
ConstKeyword Type ConstList
|
|
ConstList
|
::= |
SingleConstDef { "," SingleConstDef }
|
|
SingleConstDef
|
::= |
ConstIdentifier [ ArrayDef ] AssignmentChar ConstantExpression
|
|
ConstKeyword
|
::= |
"const"
|
|
ConstIdentifier
|
::= |
Identifier
|
|
TemplateDef
|
::= |
TemplateKeyword BaseTemplate [ DerivedDef ] AssignmentChar TemplateBody
|
|
BaseTemplate
|
::= |
( Type | Signature ) TemplateIdentifier [ "(" TemplateFormalParList ")" ]
|
|
TemplateKeyword
|
::= |
"template"
|
|
TemplateIdentifier
|
::= |
Identifier
|
|
DerivedDef
|
::= |
ModifiesKeyword TemplateRef
|
|
ModifiesKeyword
|
::= |
"modifies"
|
|
TemplateFormalParList
|
::= |
TemplateFormalPar { "," TemplateFormalPar }
|
|
TemplateFormalPar
|
::= |
FormalValuePar | FormalTemplatePar
|
|
TemplateBody
|
::= |
SimpleSpec | FieldSpecList | ArrayValueOrAttrib
|
|
SimpleSpec
|
::= |
SingleValueOrAttrib
|
|
FieldSpecList
|
::= |
"{" [ FieldSpec { "," FieldSpec } ] "}"
|
|
FieldSpec
|
::= |
FieldReference AssignmentChar TemplateBody
|
|
FieldReference
|
::= |
RecordRef | ArrayOrBitRef | ParRef
|
|
RecordRef
|
::= |
StructFieldIdentifier
|
|
ParRef
|
::= |
SignatureParIdentifier
|
|
SignatureParIdentifier
|
::= |
ValueParIdentifier
|
|
ArrayOrBitRef
|
::= |
"[" FieldOrBitNumber "]"
|
|
FieldOrBitNumber
|
::= |
SingleExpression
|
|
SingleValueOrAttrib
|
::= |
MatchingSymbol [ ExtraMatchingAttributes ] | SingleExpression [ ExtraMatchingAttributes ] | TemplateRefWithParList
|
|
ArrayValueOrAttrib
|
::= |
"{" ArrayElementSpecList "}"
|
|
ArrayElementSpecList
|
::= |
ArrayElementSpec { "," ArrayElementSpec }
|
|
ArrayElementSpec
|
::= |
NotUsedSymbol | TemplateBody
|
|
NotUsedSymbol
|
::= |
Dash
|
|
MatchingSymbol
|
::= |
Complement | Omit | AnyValue | AnyOrOmit | ValueList | IntegerRange | BitStringMatch | HexStringMatch | OctetStringMatch | CharStringMatch
|
|
BitStringMatch
|
::= |
"'" { BinOrMatch } "'" B
|
|
BinOrMatch
|
::= |
Bin | AnyValue | AnyOrOmit
|
|
HexStringMatch
|
::= |
"'" { HexOrMatch } "'" H
|
|
HexOrMatch
|
::= |
Hex | AnyValue | AnyOrOmit
|
|
OctetStringMatch
|
::= |
"'" { OctOrMatch } "'" O
|
|
OctOrMatch
|
::= |
Oct | AnyValue | AnyOrOmit
|
|
CharStringMatch
|
::= |
PatternKeyword CharStringPattern { StringOp CharStringPattern }
|
|
CharStringPattern
|
::= |
CharStringValue | TemplateRefWithParList
|
|
PatternKeyword
|
::= |
"pattern"
|
|
Complement
|
::= |
ComplementKeyword ( SingleConstExpression | ValueList )
|
|
ComplementKeyword
|
::= |
"complement"
|
|
Omit
|
::= |
OmitKeyword
|
|
OmitKeyword
|
::= |
"omit"
|
|
AnyValue
|
::= |
"?"
|
|
AnyOrOmit
|
::= |
"*"
|
|
ValueList
|
::= |
"(" SingleConstExpression { "," SingleConstExpression }+ ")"
|
|
LengthMatch
|
::= |
StringLength
|
|
IfPresentMatch
|
::= |
IfPresentKeyword
|
|
IfPresentKeyword
|
::= |
"ifpresent"
|
|
IntegerRange
|
::= |
"(" LowerBound ".." UpperBound ")"
|
|
LowerBound
|
::= |
SingleConstExpression | Minus InfinityKeyword
|
|
UpperBound
|
::= |
SingleConstExpression | InfinityKeyword
|
|
InfinityKeyword
|
::= |
"infinity"
|
|
TemplateInstance
|
::= |
InLineTemplate
|
|
TemplateRefWithParList
|
::= |
[ GlobalModuleId Dot ] TemplateIdentifier [ TemplateActualParList ] | TemplateParIdentifier
|
|
TemplateRef
|
::= |
[ GlobalModuleId Dot ] TemplateIdentifier | TemplateParIdentifier
|
|
InLineTemplate
|
::= |
[ ( Type | Signature ) Colon ] [ DerivedDef AssignmentChar ] TemplateBody
|
|
TemplateActualParList
|
::= |
"(" TemplateActualPar { "," TemplateActualPar } ")"
|
|
TemplateActualPar
|
::= |
TemplateInstance
|
|
TemplateOps
|
::= |
MatchOp | ValueofOp
|
|
MatchOp
|
::= |
MatchKeyword "(" Expression "," TemplateInstance ")"
|
|
MatchKeyword
|
::= |
"match"
|
|
ValueofOp
|
::= |
ValueofKeyword "(" TemplateInstance ")"
|
|
ValueofKeyword
|
::= |
"valueof"
|
|
FunctionDef
|
::= |
FunctionKeyword FunctionIdentifier "(" [ FunctionFormalParList ] ")" [ RunsOnSpec ] [ ReturnType ] BeginChar FunctionBody EndChar
|
|
FunctionKeyword
|
::= |
"function"
|
|
FunctionIdentifier
|
::= |
Identifier
|
|
FunctionFormalParList
|
::= |
FunctionFormalPar { "," FunctionFormalPar }
|
|
FunctionFormalPar
|
::= |
FormalValuePar | FormalTimerPar | FormalTemplatePar | FormalPortPar
|
|
ReturnType
|
::= |
ReturnKeyword Type
|
|
ReturnKeyword
|
::= |
"return"
|
|
RunsOnSpec
|
::= |
RunsKeyword OnKeyword ( ComponentType | MTCKeyword )
|
|
RunsKeyword
|
::= |
"runs"
|
|
OnKeyword
|
::= |
"on"
|
|
MTCKeyword
|
::= |
"mtc"
|
|
FunctionBody
|
::= |
[ FunctionStatementOrDefList ]
|
|
FunctionStatementOrDefList
|
::= |
{ FunctionStatementOrDef [ SemiColon ] }+
|
|
FunctionStatementOrDef
|
::= |
FunctionLocalDef | FunctionLocalInst | FunctionStatement
|
|
FunctionLocalInst
|
::= |
VarInstance | TimerInstance
|
|
FunctionLocalDef
|
::= |
ConstDef
|
|
FunctionStatement
|
::= |
ConfigurationStatements | TimerStatements | CommunicationStatements | BasicStatements | BehaviourStatements | VerdictStatements | SUTStatements
|
|
FunctionInstance
|
::= |
FunctionRef "(" [ FunctionActualParList ] ")"
|
|
FunctionRef
|
::= |
[ GlobalModuleId Dot ] FunctionIdentifier
|
|
FunctionActualParList
|
::= |
FunctionActualPar { "," FunctionActualPar }
|
|
FunctionActualPar
|
::= |
TimerRef | TemplateInstance | Port | ComponentRef
|
|
SignatureDef
|
::= |
SignatureKeyword SignatureIdentifier "(" [ SignatureFormalParList ] ")" [ ReturnType ] [ ExceptionSpec ]
|
|
SignatureKeyword
|
::= |
"signature"
|
|
SignatureIdentifier
|
::= |
Identifier
|
|
SignatureFormalParList
|
::= |
SignatureFormalPar { "," SignatureFormalPar }
|
|
SignatureFormalPar
|
::= |
FormalValuePar
|
|
ExceptionSpec
|
::= |
ExceptionKeyword "(" ExceptionTypeList ")"
|
|
ExceptionKeyword
|
::= |
"exception"
|
|
ExceptionTypeList
|
::= |
Type { "," Type }
|
|
Signature
|
::= |
[ GlobalModuleId Dot ] SignatureIdentifier
|
|
TestcaseDef
|
::= |
TestcaseKeyword TestcaseIdentifier "(" [ TestcaseFormalParList ] ")" ConfigSpec BeginChar FunctionBody EndChar
|
|
TestcaseKeyword
|
::= |
"testcase"
|
|
TestcaseIdentifier
|
::= |
Identifier
|
|
TestcaseFormalParList
|
::= |
TestcaseFormalPar { "," TestcaseFormalPar }
|
|
TestcaseFormalPar
|
::= |
FormalValuePar | FormalTemplatePar
|
|
ConfigSpec
|
::= |
RunsOnSpec [ SystemSpec ]
|
|
SystemSpec
|
::= |
SystemKeyword ComponentType
|
|
SystemKeyword
|
::= |
"system"
|
|
TestcaseInstance
|
::= |
ExecuteKeyword "(" TestcaseRef "(" [ TestcaseActualParList ] ")" [ "," TimerValue ] ")"
|
|
ExecuteKeyword
|
::= |
"execute"
|
|
TestcaseRef
|
::= |
[ GlobalModuleId Dot ] TestcaseIdentifier
|
|
TestcaseActualParList
|
::= |
TestcaseActualPar { "," TestcaseActualPar }
|
|
TestcaseActualPar
|
::= |
TemplateInstance
|
|
NamedAltDef
|
::= |
NamedKeyword AltKeyword NamedAltIdentifier "(" [ NamedAltFormalParList ] ")" BeginChar AltGuardList EndChar
|
|
NamedKeyword
|
::= |
"named"
|
|
NamedAltIdentifier
|
::= |
Identifier
|
|
NamedAltFormalParList
|
::= |
NamedAltFormalPar { "," NamedAltFormalPar }
|
|
NamedAltFormalPar
|
::= |
FormalValuePar | FormalTimerPar | FormalTemplatePar | FormalPortPar
|
|
NamedAltInstance
|
::= |
NamedAltRef "(" [ NamedAltActualParList ] ")"
|
|
NamedAltRef
|
::= |
[ GlobalModuleId Dot ] NamedAltIdentifier
|
|
NamedAltActualParList
|
::= |
NamedAltActualPar { "," NamedAltActualPar }
|
|
NamedAltActualPar
|
::= |
TimerRef | TemplateInstance | Port | ComponentRef
|
|
ImportDef
|
::= |
ImportKeyword ImportSpec
|
|
ImportKeyword
|
::= |
"import"
|
|
ImportSpec
|
::= |
ImportAllSpec | ImportGroupSpec | ImportTypeDefSpec | ImportTemplateSpec | ImportConstSpec | ImportTestcaseSpec | ImportNamedAltSpec | ImportFunctionSpec | ImportSignatureSpec
|
|
ImportAllSpec
|
::= |
AllKeyword [ DefKeyword ] ImportFromSpec
|
|
ImportFromSpec
|
::= |
FromKeyword ModuleId [ NonRecursiveKeyword ]
|
|
ModuleId
|
::= |
GlobalModuleId [ LanguageSpec ]
|
|
LanguageKeyword
|
::= |
"language"
|
|
LanguageSpec
|
::= |
LanguageKeyword FreeText
|
|
GlobalModuleId
|
::= |
ModuleIdentifier [ Dot ObjectIdentifierValue ]
|
|
DefKeyword
|
::= |
TypeDefKeyword | ConstKeyword | TemplateKeyword | TestcaseKeyword | FunctionKeyword | SignatureKeyword | NamedKeyword AltKeyword
|
|
NonRecursiveKeyword
|
::= |
"nonrecursive"
|
|
ImportGroupSpec
|
::= |
GroupKeyword GroupIdentifier { "," GroupIdentifier } ImportFromSpec
|
|
ImportTypeDefSpec
|
::= |
TypeDefKeyword TypeDefIdentifier { "," TypeDefIdentifier } ImportFromSpec
|
|
TypeDefIdentifier
|
::= |
StructTypeIdentifier | EnumTypeIdentifier | PortTypeIdentifier | ComponentTypeIdentifier | SubTypeIdentifier
|
|
ImportTemplateSpec
|
::= |
TemplateKeyword TemplateIdentifier { "," TemplateIdentifier } ImportFromSpec
|
|
ImportConstSpec
|
::= |
ConstKeyword ConstIdentifier { "," ConstIdentifier } ImportFromSpec
|
|
ImportTestcaseSpec
|
::= |
TestcaseKeyword TestcaseIdentifier { "," TestcaseIdentifier } ImportFromSpec
|
|
ImportFunctionSpec
|
::= |
FunctionKeyword FunctionIdentifier { "," FunctionIdentifier } ImportFromSpec
|
|
ImportSignatureSpec
|
::= |
SignatureKeyword SignatureIdentifier { "," SignatureIdentifier } ImportFromSpec
|
|
ImportNamedAltSpec
|
::= |
NamedKeyword AltKeyword NamedAltIdentifier { "," NamedAltIdentifier } ImportFromSpec
|
|
GroupDef
|
::= |
GroupKeyword GroupIdentifier BeginChar [ ModuleDefinitionsPart ] EndGroupChar
|
|
GroupKeyword
|
::= |
"group"
|
|
EndGroupChar
|
::= |
"}"
|
|
GroupIdentifier
|
::= |
Identifier
|
|
ExtFunctionDef
|
::= |
ExtKeyword FunctionKeyword ExtFunctionIdentifier "(" [ FunctionFormalParList ] ")" [ ReturnType ]
|
|
ExtKeyword
|
::= |
"external"
|
|
ExtFunctionIdentifier
|
::= |
Identifier
|
|
ExtConstDef
|
::= |
ExtKeyword ConstKeyword Type ExtConstIdentifier
|
|
ExtConstIdentifier
|
::= |
Identifier
|
|
ModuleControlPart
|
::= |
ControlKeyword BeginChar ModuleControlBody EndChar [ WithStatement ] [ SemiColon ]
|
|
ControlKeyword
|
::= |
"control"
|
|
ModuleControlBody
|
::= |
[ ControlStatementOrDefList ]
|
|
ControlStatementOrDefList
|
::= |
{ ControlStatementOrDef [ SemiColon ] }+
|
|
ControlStatementOrDef
|
::= |
FunctionLocalInst | ControlStatement | FunctionLocalDef
|
|
ControlStatement
|
::= |
TimerStatements | BasicStatements | BehaviourStatements | SUTStatements
|
|
VarInstance
|
::= |
VarKeyword Type VarList
|
|
VarList
|
::= |
SingleVarInstance { "," SingleVarInstance }
|
|
SingleVarInstance
|
::= |
VarIdentifier [ ArrayDef ] [ AssignmentChar VarInitialValue ]
|
|
VarInitialValue
|
::= |
Expression
|
|
VarKeyword
|
::= |
"var"
|
|
VarIdentifier
|
::= |
Identifier
|
|
VariableRef
|
::= |
( VarIdentifier | ValueParIdentifier ) [ ExtendedFieldReference ]
|
|
TimerInstance
|
::= |
TimerKeyword TimerIdentifier [ ArrayDef ] [ AssignmentChar TimerValue ]
|
|
TimerKeyword
|
::= |
"timer"
|
|
TimerIdentifier
|
::= |
Identifier
|
|
TimerValue
|
::= |
SingleExpression
|
|
TimerRef
|
::= |
TimerIdentifier [ ArrayOrBitRef ] | TimerParIdentifier [ ArrayOrBitRef ]
|
|
ConfigurationStatements
|
::= |
ConnectStatement | MapStatement | DisconnectStatement | UnmapStatement | DoneStatement | StartTCStatement | StopTCStatement
|
|
ConfigurationOps
|
::= |
CreateOp | SelfOp | SystemOp | MTCOp | RunningOp
|
|
CreateOp
|
::= |
ComponentType Dot CreateKeyword
|
|
SystemOp
|
::= |
"system"
|
|
SelfOp
|
::= |
"self"
|
|
MTCOp
|
::= |
MTCKeyword
|
|
DoneStatement
|
::= |
ComponentId Dot DoneKeyword
|
|
ComponentId
|
::= |
ComponentIdentifier | ( AnyKeyword | AllKeyword ) ComponentKeyword
|
|
DoneKeyword
|
::= |
"done"
|
|
RunningOp
|
::= |
ComponentId Dot RunningKeyword
|
|
RunningKeyword
|
::= |
"running"
|
|
CreateKeyword
|
::= |
"create"
|
|
ConnectStatement
|
::= |
ConnectKeyword PortSpec
|
|
ConnectKeyword
|
::= |
"connect"
|
|
PortSpec
|
::= |
"(" PortRef "," PortRef ")"
|
|
PortRef
|
::= |
ComponentRef Colon Port
|
|
ComponentRef
|
::= |
ComponentIdentifier | SystemOp | SelfOp | MTCOp
|
|
DisconnectStatement
|
::= |
DisconnectKeyword PortSpec
|
|
DisconnectKeyword
|
::= |
"disconnect"
|
|
MapStatement
|
::= |
MapKeyword PortSpec
|
|
MapKeyword
|
::= |
"map"
|
|
UnmapStatement
|
::= |
UnmapKeyword PortSpec
|
|
UnmapKeyword
|
::= |
"unmap"
|
|
StartTCStatement
|
::= |
ComponentIdentifier Dot StartKeyword "(" FunctionInstance ")"
|
|
StartKeyword
|
::= |
"start"
|
|
StopTCStatement
|
::= |
StopKeyword
|
|
ComponentIdentifier
|
::= |
VariableRef | FunctionInstance
|
|
Port
|
::= |
( PortIdentifier | PortParIdentifier ) [ ArrayOrBitRef ]
|
|
CommunicationStatements
|
::= |
SendStatement | CallStatement | ReplyStatement | RaiseStatement | ReceiveStatement | TriggerStatement | GetCallStatement | GetReplyStatement | CatchStatement | CheckStatement | ClearStatement | StartStatement | StopStatement
|
|
SendStatement
|
::= |
Port Dot PortSendOp
|
|
PortSendOp
|
::= |
SendOpKeyword "(" SendParameter ")" [ ToClause ]
|
|
SendOpKeyword
|
::= |
"send"
|
|
SendParameter
|
::= |
TemplateInstance
|
|
ToClause
|
::= |
ToKeyword AddressRef
|
|
ToKeyword
|
::= |
"to"
|
|
AddressRef
|
::= |
VariableRef | FunctionInstance
|
|
CallStatement
|
::= |
Port Dot PortCallOp [ PortCallBody ]
|
|
PortCallOp
|
::= |
CallOpKeyword "(" CallParameters ")" [ ToClause ]
|
|
CallOpKeyword
|
::= |
"call"
|
|
CallParameters
|
::= |
TemplateInstance [ "," CallTimerValue ]
|
|
CallTimerValue
|
::= |
TimerValue | NowaitKeyword
|
|
NowaitKeyword
|
::= |
"nowait"
|
|
PortCallBody
|
::= |
BeginChar CallBodyStatementList EndChar
|
|
CallBodyStatementList
|
::= |
{ CallBodyStatement [ SemiColon ] }+
|
|
CallBodyStatement
|
::= |
CallBodyGuard StatementBlock
|
|
CallBodyGuard
|
::= |
AltGuardChar CallBodyOps
|
|
CallBodyOps
|
::= |
GetReplyStatement | CatchStatement
|
|
ReplyStatement
|
::= |
Port Dot PortReplyOp
|
|
PortReplyOp
|
::= |
ReplyKeyword "(" TemplateInstance [ ReplyValue ] ")" [ ToClause ]
|
|
ReplyKeyword
|
::= |
"reply"
|
|
ReplyValue
|
::= |
ValueKeyword Expression
|
|
RaiseStatement
|
::= |
Port Dot PortRaiseOp
|
|
PortRaiseOp
|
::= |
RaiseKeyword "(" Signature "," TemplateInstance ")" [ ToClause ]
|
|
RaiseKeyword
|
::= |
"raise"
|
|
ReceiveStatement
|
::= |
PortOrAny Dot PortReceiveOp
|
|
PortOrAny
|
::= |
Port | AnyKeyword PortKeyword
|
|
PortReceiveOp
|
::= |
ReceiveOpKeyword [ "(" ReceiveParameter ")" ] [ FromClause ] [ PortRedirect ]
|
|
ReceiveOpKeyword
|
::= |
"receive"
|
|
ReceiveParameter
|
::= |
TemplateInstance
|
|
FromClause
|
::= |
FromKeyword AddressRef
|
|
FromKeyword
|
::= |
"from"
|
|
PortRedirect
|
::= |
PortRedirectSymbol ( ValueSpec [ SenderSpec ] | SenderSpec )
|
|
PortRedirectSymbol
|
::= |
"->"
|
|
ValueSpec
|
::= |
ValueKeyword VariableRef
|
|
ValueKeyword
|
::= |
"value"
|
|
SenderSpec
|
::= |
SenderKeyword VariableRef
|
|
SenderKeyword
|
::= |
"sender"
|
|
TriggerStatement
|
::= |
PortOrAny Dot PortTriggerOp
|
|
PortTriggerOp
|
::= |
TriggerOpKeyword [ "(" ReceiveParameter ")" ] [ FromClause ] [ PortRedirect ]
|
|
TriggerOpKeyword
|
::= |
"trigger"
|
|
GetCallStatement
|
::= |
PortOrAny Dot PortGetCallOp
|
|
PortGetCallOp
|
::= |
GetCallOpKeyword [ "(" ReceiveParameter ")" ] [ FromClause ] [ PortRedirectWithParam ]
|
|
GetCallOpKeyword
|
::= |
"getcall"
|
|
PortRedirectWithParam
|
::= |
PortRedirectSymbol RedirectSpec
|
|
RedirectSpec
|
::= |
ValueSpec [ ParaSpec ] [ SenderSpec ] | ParaSpec [ SenderSpec ] | SenderSpec
|
|
ParaSpec
|
::= |
ParaKeyword ParaAssignmentList
|
|
ParaKeyword
|
::= |
"param"
|
|
ParaAssignmentList
|
::= |
"(" ( AssignmentList | VariableList ) ")"
|
|
AssignmentList
|
::= |
VariableAssignment { "," VariableAssignment }
|
|
VariableAssignment
|
::= |
VariableRef AssignmentChar ParameterIdentifier
|
|
ParameterIdentifier
|
::= |
ValueParIdentifier | TimerParIdentifier | TemplateParIdentifier | PortParIdentifier
|
|
VariableList
|
::= |
VariableEntry { "," VariableEntry }
|
|
VariableEntry
|
::= |
VariableRef | NotUsedSymbol
|
|
GetReplyStatement
|
::= |
PortOrAny Dot PortGetReplyOp
|
|
PortGetReplyOp
|
::= |
GetReplyOpKeyword [ "(" ReceiveParameter [ ValueMatchSpec ] ")" ] [ FromClause ] [ PortRedirectWithParam ]
|
|
GetReplyOpKeyword
|
::= |
"getreply"
|
|
ValueMatchSpec
|
::= |
ValueKeyword TemplateInstance
|
|
CheckStatement
|
::= |
PortOrAny Dot PortCheckOp
|
|
PortCheckOp
|
::= |
CheckOpKeyword [ "(" CheckParameter ")" ]
|
|
CheckOpKeyword
|
::= |
"check"
|
|
CheckParameter
|
::= |
PortReceiveOp | PortGetCallOp | PortGetReplyOp | PortCatchOp | [ FromClause ] [ PortRedirectSymbol SenderSpec ]
|
|
CatchStatement
|
::= |
PortOrAny Dot PortCatchOp
|
|
PortCatchOp
|
::= |
CatchOpKeyword [ "(" CatchOpParameter ")" ] [ FromClause ] [ PortRedirect ]
|
|
CatchOpKeyword
|
::= |
"catch"
|
|
CatchOpParameter
|
::= |
Signature "," TemplateInstance | TimeoutKeyword
|
|
ClearStatement
|
::= |
PortOrAll Dot PortClearOp
|
|
PortOrAll
|
::= |
Port | AllKeyword PortKeyword
|
|
PortClearOp
|
::= |
ClearOpKeyword
|
|
ClearOpKeyword
|
::= |
"clear"
|
|
StartStatement
|
::= |
PortOrAll Dot PortStartOp
|
|
PortStartOp
|
::= |
StartKeyword
|
|
StopStatement
|
::= |
PortOrAll Dot PortStopOp
|
|
PortStopOp
|
::= |
StopKeyword
|
|
StopKeyword
|
::= |
"stop"
|
|
AnyKeyword
|
::= |
"any"
|
|
TimerStatements
|
::= |
StartTimerStatement | StopTimerStatement | TimeoutStatement
|
|
TimerOps
|
::= |
ReadTimerOp | RunningTimerOp
|
|
StartTimerStatement
|
::= |
TimerRef Dot StartKeyword [ "(" TimerValue ")" ]
|
|
StopTimerStatement
|
::= |
TimerRefOrAll Dot StopKeyword
|
|
TimerRefOrAll
|
::= |
TimerRef | AllKeyword TimerKeyword
|
|
ReadTimerOp
|
::= |
TimerRef Dot ReadKeyword
|
|
ReadKeyword
|
::= |
"read"
|
|
RunningTimerOp
|
::= |
TimerRefOrAny Dot RunningKeyword
|
|
TimeoutStatement
|
::= |
TimerRefOrAny Dot TimeoutKeyword
|
|
TimerRefOrAny
|
::= |
TimerRef | AnyKeyword TimerKeyword
|
|
TimeoutKeyword
|
::= |
"timeout"
|
|
Type
|
::= |
PredefinedType | ReferencedType
|
|
PredefinedType
|
::= |
BitStringKeyword | BooleanKeyword | CharStringKeyword | UniversalCharString | CharKeyword | UniversalChar | IntegerKeyword | OctetStringKeyword | ObjectIdentifierKeyword | HexStringKeyword | VerdictKeyword | FloatKeyword | AddressKeyword
|
|
BitStringKeyword
|
::= |
"bitstring"
|
|
BooleanKeyword
|
::= |
"boolean"
|
|
IntegerKeyword
|
::= |
"integer"
|
|
OctetStringKeyword
|
::= |
"octetstring"
|
|
ObjectIdentifierKeyword
|
::= |
"objid"
|
|
HexStringKeyword
|
::= |
"hexstring"
|
|
VerdictKeyword
|
::= |
"verdict"
|
|
FloatKeyword
|
::= |
"float"
|
|
AddressKeyword
|
::= |
"address"
|
|
CharStringKeyword
|
::= |
"charstring"
|
|
UniversalCharString
|
::= |
UniversalKeyword CharStringKeyword
|
|
UniversalKeyword
|
::= |
"universal"
|
|
CharKeyword
|
::= |
"char"
|
|
UniversalChar
|
::= |
UniversalKeyword CharKeyword
|
|
ReferencedType
|
::= |
[ GlobalModuleId Dot ] TypeReference [ ExtendedFieldReference ]
|
|
TypeReference
|
::= |
StructTypeIdentifier [ TypeActualParList ] | EnumTypeIdentifier | SubTypeIdentifier | TypeParIdentifier | ComponentTypeIdentifier
|
|
TypeActualParList
|
::= |
"(" TypeActualPar { "," TypeActualPar } ")"
|
|
TypeActualPar
|
::= |
SingleConstExpression | Type
|
|
ArrayDef
|
::= |
{ "[" ArrayBounds [ ".." ArrayBounds ] "]" }+
|
|
ArrayBounds
|
::= |
SingleConstExpression
|
|
Value
|
::= |
PredefinedValue | ReferencedValue
|
|
PredefinedValue
|
::= |
BitStringValue | BooleanValue | CharStringValue | IntegerValue | OctetStringValue | ObjectIdentifierValue | HexStringValue | VerdictValue | EnumeratedValue | FloatValue | AddressValue
|
|
BitStringValue
|
::= |
Bstring
|
|
BooleanValue
|
::= |
"true" | false
|
|
IntegerValue
|
::= |
Number
|
|
OctetStringValue
|
::= |
Ostring
|
|
ObjectIdentifierValue
|
::= |
ObjectIdentifierKeyword "{" ObjIdComponentList "}"
|
|
ObjIdComponentList
|
::= |
{ ObjIdComponent }+
|
|
ObjIdComponent
|
::= |
NameForm | NumberForm | NameAndNumberForm
|
|
NumberForm
|
::= |
Number | ReferencedValue
|
|
NameAndNumberForm
|
::= |
Identifier NumberForm
|
|
NameForm
|
::= |
Identifier
|
|
HexStringValue
|
::= |
Hstring
|
|
VerdictValue
|
::= |
"pass" | fail | inconc | none | error
|
|
EnumeratedValue
|
::= |
NamedValueIdentifier
|
|
CharStringValue
|
::= |
Cstring | Quadruple | ReferencedValue
|
|
Quadruple
|
::= |
"(" Group "," Plane "," Row "," Cell ")"
|
|
Group
|
::= |
Number
|
|
Plane
|
::= |
Number
|
|
Row
|
::= |
Number
|
|
Cell
|
::= |
Number
|
|
FloatValue
|
::= |
FloatDotNotation | FloatENotation
|
|
FloatDotNotation
|
::= |
Number Dot DecimalNumber
|
|
FloatENotation
|
::= |
Number [ Dot DecimalNumber ] Exponential [ Minus ] Number
|
|
Exponential
|
::= |
E
|
|
ReferencedValue
|
::= |
ValueReference [ ExtendedFieldReference ]
|
|
ValueReference
|
::= |
[ GlobalModuleId Dot ] ConstIdentifier | ExtConstIdentifier | ValueParIdentifier | ModuleParIdentifier | VarIdentifier
|
|
Number
|
::= |
( NonZeroNum { Num } ) | 0
|
|
NonZeroNum
|
::= |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
|
|
DecimalNumber
|
::= |
{ Num }
|
|
Num
|
::= |
0 | NonZeroNum
|
|
Bstring
|
::= |
"'" { Bin } "'" B
|
|
Bin
|
::= |
0 | 1
|
|
Hstring
|
::= |
"'" { Hex } "'" H
|
|
Hex
|
::= |
Num | A | B | C | D | E | F | a | b | c | d | e | f
|
|
Ostring
|
::= |
"'" { Oct } "'" O
|
|
Oct
|
::= |
Hex Hex
|
|
Cstring
|
::= |
""" { Char } """
|
|
Char
|
::= |
|
|
Identifier
|
::= |
Alpha { AlphaNum | Underscore }
|
|
Alpha
|
::= |
UpperAlpha | LowerAlpha
|
|
AlphaNum
|
::= |
Alpha | Num
|
|
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
|
|
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
|
|
ExtendedAlphaNum
|
::= |
|
|
FreeText
|
::= |
""" { ExtendedAlphaNum } """
|
|
AddressValue
|
::= |
"null"
|
|
InParKeyword
|
::= |
"in"
|
|
OutParKeyword
|
::= |
"out"
|
|
InOutParKeyword
|
::= |
"inout"
|
|
FormalValuePar
|
::= |
[ ( InParKeyword | InOutParKeyword | OutParKeyword ) ] Type ValueParIdentifier
|
|
ValueParIdentifier
|
::= |
Identifier
|
|
FormalTypePar
|
::= |
[ InParKeyword ] TypeParIdentifier
|
|
TypeParIdentifier
|
::= |
Identifier
|
|
FormalPortPar
|
::= |
[ InOutParKeyword ] PortTypeIdentifier PortParIdentifier
|
|
PortParIdentifier
|
::= |
Identifier
|
|
FormalTimerPar
|
::= |
[ InOutParKeyword ] TimerKeyword TimerParIdentifier
|
|
TimerParIdentifier
|
::= |
Identifier
|
|
FormalTemplatePar
|
::= |
[ InParKeyword ] TemplateKeyword Type TemplateParIdentifier
|
|
TemplateParIdentifier
|
::= |
Identifier
|
|
WithStatement
|
::= |
WithKeyword WithAttribList
|
|
WithKeyword
|
::= |
"with"
|
|
WithAttribList
|
::= |
"{" MultiWithAttrib "}"
|
|
MultiWithAttrib
|
::= |
{ SingleWithAttrib [ SemiColon ] }+
|
|
SingleWithAttrib
|
::= |
AttribKeyword [ OverrideKeyword ] [ AttribQualifier ] AttribSpec
|
|
AttribKeyword
|
::= |
EncodeKeyword | DisplayKeyword | ExtensionKeyword
|
|
EncodeKeyword
|
::= |
"encode"
|
|
DisplayKeyword
|
::= |
"display"
|
|
ExtensionKeyword
|
::= |
"extension"
|
|
OverrideKeyword
|
::= |
"override"
|
|
AttribQualifier
|
::= |
"(" DefOrFieldRefList ")"
|
|
DefOrFieldRefList
|
::= |
DefOrFieldRef { "," DefOrFieldRef }
|
|
DefOrFieldRef
|
::= |
DefinitionRef | FieldReference
|
|
DefinitionRef
|
::= |
StructTypeIdentifier | EnumTypeIdentifier | PortTypeIdentifier | ComponentTypeIdentifier | SubTypeIdentifier | ConstIdentifier | TemplateIdentifier | NamedAltIdentifier | TestcaseIdentifier | FunctionIdentifier | SignatureIdentifier
|
|
AttribSpec
|
::= |
FreeText
|
|
BehaviourStatements
|
::= |
TestcaseInstance | FunctionInstance | ReturnStatement | AltConstruct | InterleavedConstruct | LabelStatement | GotoStatement | ActivateStatement | DeactivateStatement | NamedAltInstance
|
|
VerdictStatements
|
::= |
SetLocalVerdict
|
|
VerdictOps
|
::= |
GetLocalVerdict
|
|
SetLocalVerdict
|
::= |
SetVerdictKeyword "(" SingleExpression ")"
|
|
SetVerdictKeyword
|
::= |
VerdictKeyword Dot SetKeyword
|
|
GetLocalVerdict
|
::= |
VerdictKeyword Dot GetKeyword
|
|
GetKeyword
|
::= |
"get"
|
|
SUTStatements
|
::= |
SUTAction "(" ( FreeText | TemplateRefWithParList ) ")"
|
|
SUTAction
|
::= |
SUTKeyword Dot ActionKeyword
|
|
SUTKeyword
|
::= |
"sut"
|
|
ActionKeyword
|
::= |
"action"
|
|
ReturnStatement
|
::= |
ReturnKeyword [ Expression ]
|
|
AltConstruct
|
::= |
AltKeyword BeginChar AltGuardList EndChar
|
|
AltKeyword
|
::= |
"alt"
|
|
AltGuardList
|
::= |
{ AltGuardElement [ SemiColon ] }+ [ ElseStatement [ SemiColon ] ]
|
|
AltGuardElement
|
::= |
GuardStatement | ExpandStatement
|
|
GuardStatement
|
::= |
AltGuardChar GuardOp StatementBlock
|
|
ExpandStatement
|
::= |
"[" ExpandKeyword "]" NamedAltInstance
|
|
ElseStatement
|
::= |
"[" ElseKeyword "]" StatementBlock
|
|
ExpandKeyword
|
::= |
"expand"
|
|
AltGuardChar
|
::= |
"[" [ BooleanExpression ] "]"
|
|
GuardOp
|
::= |
TimeoutStatement | ReceiveStatement | TriggerStatement | GetCallStatement | CatchStatement | CheckStatement | GetReplyStatement | DoneStatement
|
|
StatementBlock
|
::= |
BeginChar [ FunctionStatementOrDefList ] EndChar
|
|
InterleavedConstruct
|
::= |
InterleavedKeyword BeginChar InterleavedGuardList EndChar
|
|
InterleavedKeyword
|
::= |
"interleave"
|
|
InterleavedGuardList
|
::= |
{ InterleavedGuardElement [ SemiColon ] }+
|
|
InterleavedGuardElement
|
::= |
InterleavedGuard InterleavedAction
|
|
InterleavedGuard
|
::= |
"[" "]" GuardOp
|
|
InterleavedAction
|
::= |
StatementBlock
|
|
LabelStatement
|
::= |
LabelKeyword LabelIdentifier
|
|
LabelKeyword
|
::= |
"label"
|
|
LabelIdentifier
|
::= |
Identifier
|
|
GotoStatement
|
::= |
GotoKeyword ( LabelIdentifier | AltKeyword )
|
|
GotoKeyword
|
::= |
"goto"
|
|
ActivateStatement
|
::= |
ActivateKeyword "(" NamedAltList ")"
|
|
ActivateKeyword
|
::= |
"activate"
|
|
NamedAltList
|
::= |
NamedAltInstance { "," NamedAltInstance }
|
|
DeactivateStatement
|
::= |
DeactivateKeyword [ "(" NamedAltRefList ")" ]
|
|
DeactivateKeyword
|
::= |
"deactivate"
|
|
NamedAltRefList
|
::= |
NamedAltRef { "," NamedAltRef }
|
|
BasicStatements
|
::= |
Assignment | LogStatement | LoopConstruct | ConditionalConstruct
|
|
Expression
|
::= |
SingleExpression | CompoundExpression
|
|
CompoundExpression
|
::= |
FieldExpressionList | ArrayExpression
|
|
FieldExpressionList
|
::= |
"{" FieldExpressionSpec { "," FieldExpressionSpec } "}"
|
|
FieldExpressionSpec
|
::= |
FieldReference AssignmentChar Expression
|
|
ArrayExpression
|
::= |
"{" [ ArrayElementExpressionList ] "}"
|
|
ArrayElementExpressionList
|
::= |
NotUsedOrExpression { "," NotUsedOrExpression }
|
|
NotUsedOrExpression
|
::= |
Expression | NotUsedSymbol
|
|
ConstantExpression
|
::= |
SingleConstExpression | CompoundConstExpression
|
|
SingleConstExpression
|
::= |
SingleExpression
|
|
BooleanExpression
|
::= |
SingleExpression
|
|
CompoundConstExpression
|
::= |
FieldConstExpressionList | ArrayConstExpression
|
|
FieldConstExpressionList
|
::= |
"{" FieldConstExpressionSpec { "," FieldConstExpressionSpec } "}"
|
|
FieldConstExpressionSpec
|
::= |
FieldReference AssignmentChar ConstantExpression
|
|
ArrayConstExpression
|
::= |
"{" [ ArrayElementConstExpressionList ] "}"
|
|
ArrayElementConstExpressionList
|
::= |
ConstantExpression { "," ConstantExpression }
|
|
Assignment
|
::= |
VariableRef ":=" Expression
|
|
SingleExpression
|
::= |
SimpleExpression { BitOp SimpleExpression }
|
|
SimpleExpression
|
::= |
SubExpression [ RelOp SubExpression ]
|
|
SubExpression
|
::= |
Product [ ShiftOp Product ]
|
|
Product
|
::= |
Term { AddOp Term }
|
|
Term
|
::= |
Factor { MultiplyOp Factor }
|
|
Factor
|
::= |
[ UnaryOp ] Primary
|
|
Primary
|
::= |
OpCall | Value | "(" SingleExpression ")"
|
|
ExtendedFieldReference
|
::= |
{ ( Dot StructFieldIdentifier | ArrayOrBitRef ) }+
|
|
OpCall
|
::= |
ConfigurationOps | VerdictOps | TimerOps | TestcaseInstance | FunctionInstance | TemplateOps
|
|
AddOp
|
::= |
"+" | "-"
|
|
MultiplyOp
|
::= |
"*" | "/" | mod | rem
|
|
UnaryOp
|
::= |
"+" | "-" | not | not4b
|
|
RelOp
|
::= |
"==" | "<" | ">" | "!=" | ">=" | "<="
|
|
BitOp
|
::= |
"and4b" | xor4b | or4b | and | xor | or | StringOp
|
|
StringOp
|
::= |
"&"
|
|
ShiftOp
|
::= |
"<<" | ">>" | "<@" | "@>"
|
|
LogStatement
|
::= |
LogKeyword "(" [ FreeText ] ")"
|
|
LogKeyword
|
::= |
"log"
|
|
LoopConstruct
|
::= |
ForStatement | WhileStatement | DoWhileStatement
|
|
ForStatement
|
::= |
ForKeyword "(" Initial [ SemiColon ] Final [ SemiColon ] Step ")" StatementBlock
|
|
ForKeyword
|
::= |
"for"
|
|
Initial
|
::= |
VarInstance | Assignment
|
|
Final
|
::= |
BooleanExpression
|
|
Step
|
::= |
Assignment
|
|
WhileStatement
|
::= |
WhileKeyword "(" BooleanExpression ")" StatementBlock
|
|
WhileKeyword
|
::= |
"while"
|
|
DoWhileStatement
|
::= |
DoKeyword StatementBlock WhileKeyword "(" BooleanExpression ")"
|
|
DoKeyword
|
::= |
"do"
|
|
ConditionalConstruct
|
::= |
IfKeyword "(" BooleanExpression ")" StatementBlock { ElseIfClause } [ ElseClause ]
|
|
IfKeyword
|
::= |
"if"
|
|
ElseIfClause
|
::= |
ElseKeyword IfKeyword "(" BooleanExpression ")" StatementBlock
|
|
ElseKeyword
|
::= |
"else"
|
|
ElseClause
|
::= |
ElseKeyword StatementBlock
|
|
Dot
|
::= |
"."
|
|
Dash
|
::= |
"-"
|
|
Minus
|
::= |
Dash
|
|
SemiColon
|
::= |
";"
|
|
|