
Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: §wip/atl/CPL/extracted
Source used for this grammar: Frederic Jouault, CPL 1.0, CPL.ecore, 2006/01/18
Element, CPL, NodeContainer, SubAction, Outgoing, Incoming, NotPresent, Otherwise, SwitchedAddress, SwitchedString, SwitchedLanguage, SwitchedTime, SwitchedPriority, Busy, NoAnswer, Redirection, Failure, Default, Node, Switch, AddressSwitch, StringSwitch, LanguageSwitch, TimeSwitch, PrioritySwitch, Location, SubCall, Action, SignallingAction, Proxy, Redirect, Reject, Boolean, Integer, String), 0 root (—), 3 top (Element, Boolean, Integer), 0 bottom (—).[subActions], [outgoing], [incoming], [id], [contents] 9, [is] 2, [contains] 2, [subDomainOf], [matches], [dtstart], [dtend], [duration], [freq], [until], [count], [interval], [bySecond], [byMinute], [byHour], [byDay], [byMonthDay], [byYearDay], [byWeekNo], [byMonth], [wkst], [bySetPos], [less], [greater], [equal], [field] 2, [subField], [addresses], [strings], [languages], [tzid], [tzurl], [times], [priorities], [url], [priority], [clear], [ref], [timeout], [recurse], [ordering], [busy], [noAnswer], [redirection], [failure], [default], [permanent], [status], [reason].Element ::= CPL
Element ::= NodeContainer
Element ::= Node
CPL ::=
[subActions]::SubAction [outgoing]::Outgoing [incoming]::IncomingNodeContainer ::= SubAction
NodeContainer ::= Outgoing
NodeContainer ::= Incoming
NodeContainer ::= NotPresent
NodeContainer ::= Otherwise
NodeContainer ::= SwitchedAddress
NodeContainer ::= SwitchedString
NodeContainer ::= SwitchedLanguage
NodeContainer ::= SwitchedTime
NodeContainer ::= SwitchedPriority
NodeContainer ::= Busy
NodeContainer ::= NoAnswer
NodeContainer ::= Redirection
NodeContainer ::= Failure
NodeContainer ::= Default
NodeContainer ::= Location
SubAction ::= [id]::String
Outgoing ::= [contents]::Node
Incoming ::= [contents]::Node
NotPresent ::= [contents]::Node
Otherwise ::= [contents]::Node
SwitchedAddress ::= [is]::String [contains]::String [subDomainOf]::String
SwitchedString ::= [is]::String [contains]::String
SwitchedLanguage ::= [matches]::String
SwitchedTime ::= [dtstart]::String [dtend]::String [duration]::String [freq]::String [until]::String [count]::String [interval]::String [bySecond]::String [byMinute]::String [byHour]::String [byDay]::String [byMonthDay]::String [byYearDay]::String [byWeekNo]::String [byMonth]::String [wkst]::String [bySetPos]::String
SwitchedPriority ::= [less]::String [greater]::String [equal]::String
Busy ::= [contents]::Node
NoAnswer ::= [contents]::Node
Redirection ::= [contents]::Node
Failure ::= [contents]::Node
Default ::= [contents]::Node
Node ::= Switch
Node ::= SubCall
Node ::= Action
Node ::= Location
Switch ::= AddressSwitch
Switch ::= StringSwitch
Switch ::= LanguageSwitch
Switch ::= TimeSwitch
Switch ::= PrioritySwitch
AddressSwitch ::=
[field]::String [subField]::String [addresses]::SwitchedAddressStringSwitch ::=
[field]::String [strings]::SwitchedStringLanguageSwitch ::=
[languages]::SwitchedLanguageTimeSwitch ::=
[tzid]::String [tzurl]::String [times]::SwitchedTimePrioritySwitch ::=
[priorities]::SwitchedPriorityLocation ::= [url]::String [priority]::String [clear]::String
SubCall ::= [ref]::String
Action ::= SignallingAction
SignallingAction ::= Proxy
SignallingAction ::= Redirect
SignallingAction ::= Reject
Proxy ::= [timeout]::String [recurse]::String [ordering]::String [busy]::Busy [noAnswer]::NoAnswer [redirection]::Redirection [failure]::Failure [default]::Default
Redirect ::= [permanent]::String
Reject ::= [status]::String [reason]::String
Boolean ::= "true" "false"
Integer ::= integer
String ::= string