Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
3 lines (2 sloc) 45.8 KB
<?xml version="1.0" encoding="UTF-8"?>
<bgf:grammar xmlns:bgf="http://planet-sl.org/bgf" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"><bgf:production><nonterminal>String</nonterminal><bgf:expression><value>string</value></bgf:expression></bgf:production><bgf:production><nonterminal>Integer</nonterminal><bgf:expression><value>int</value></bgf:expression></bgf:production><bgf:production><nonterminal>Boolean</nonterminal><bgf:expression><choice><bgf:expression><terminal>true</terminal></bgf:expression><bgf:expression><terminal>false</terminal></bgf:expression></choice></bgf:expression></bgf:production><bgf:production><nonterminal>LocatedElement</nonterminal><bgf:expression><nonterminal>Program</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>LocatedElement</nonterminal><bgf:expression><nonterminal>Service</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>LocatedElement</nonterminal><bgf:expression><nonterminal>Session</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>LocatedElement</nonterminal><bgf:expression><nonterminal>MethodName</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>LocatedElement</nonterminal><bgf:expression><nonterminal>Branch</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>LocatedElement</nonterminal><bgf:expression><nonterminal>TypeExpression</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>LocatedElement</nonterminal><bgf:expression><nonterminal>Declaration</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>LocatedElement</nonterminal><bgf:expression><nonterminal>StructureProperty</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>LocatedElement</nonterminal><bgf:expression><nonterminal>FunctionCall</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>LocatedElement</nonterminal><bgf:expression><nonterminal>Statement</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>LocatedElement</nonterminal><bgf:expression><nonterminal>SelectMember</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>LocatedElement</nonterminal><bgf:expression><nonterminal>Expression</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>LocatedElement</nonterminal><bgf:expression><nonterminal>MessageField</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>LocatedElement</nonterminal><bgf:expression><nonterminal>Constant</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>LocatedElement</nonterminal><bgf:expression><nonterminal>Response</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Program</nonterminal><bgf:expression><selectable><selector>service</selector><bgf:expression><nonterminal>Service</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>Service</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>name</selector><bgf:expression><nonterminal>String</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>declarations</selector><bgf:expression><nonterminal>Declaration</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>sessions</selector><bgf:expression><nonterminal>Session</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>Session</nonterminal><bgf:expression><nonterminal>Registration</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Session</nonterminal><bgf:expression><nonterminal>Dialog</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Session</nonterminal><bgf:expression><nonterminal>Event</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Session</nonterminal><bgf:expression><nonterminal>Method</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Registration</nonterminal><bgf:expression><sequence><bgf:expression><plus><bgf:expression><selectable><selector>declarations</selector><bgf:expression><nonterminal>Declaration</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>sessions</selector><bgf:expression><nonterminal>Session</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>Dialog</nonterminal><bgf:expression><sequence><bgf:expression><plus><bgf:expression><selectable><selector>declarations</selector><bgf:expression><nonterminal>Declaration</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>methods</selector><bgf:expression><nonterminal>Method</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>Event</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>eventId</selector><bgf:expression><nonterminal>String</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>declarations</selector><bgf:expression><nonterminal>Declaration</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>methods</selector><bgf:expression><nonterminal>Method</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>Method</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>type</selector><bgf:expression><nonterminal>TypeExpression</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>direction</selector><bgf:expression><nonterminal>Direction</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>methodName</selector><bgf:expression><nonterminal>MethodName</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>arguments</selector><bgf:expression><nonterminal>Argument</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>statements</selector><bgf:expression><nonterminal>Statement</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>branches</selector><bgf:expression><nonterminal>Branch</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>Argument</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>type</selector><bgf:expression><nonterminal>TypeExpression</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>initExp</selector><bgf:expression><nonterminal>Expression</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>MethodName</nonterminal><bgf:expression><nonterminal>SIPMethodName</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>MethodName</nonterminal><bgf:expression><nonterminal>ControlMethodName</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>SIPMethodName</nonterminal><bgf:expression><selectable><selector>name</selector><bgf:expression><nonterminal>SIPMethod</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>ControlMethodName</nonterminal><bgf:expression><selectable><selector>name</selector><bgf:expression><nonterminal>ControlMethod</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>Branch</nonterminal><bgf:expression><nonterminal>DefaultBranch</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Branch</nonterminal><bgf:expression><nonterminal>NamedBranch</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Branch</nonterminal><bgf:expression><plus><bgf:expression><selectable><selector>statements</selector><bgf:expression><nonterminal>Statement</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></bgf:production><bgf:production><nonterminal>DefaultBranch</nonterminal><bgf:expression><sequence><bgf:expression><plus><bgf:expression><selectable><selector>statements</selector><bgf:expression><nonterminal>Statement</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>NamedBranch</nonterminal><bgf:expression><plus><bgf:expression><selectable><selector>name</selector><bgf:expression><nonterminal>String</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></bgf:production><bgf:production><nonterminal>TypeExpression</nonterminal><bgf:expression><nonterminal>SimpleType</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>TypeExpression</nonterminal><bgf:expression><nonterminal>SequenceType</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>TypeExpression</nonterminal><bgf:expression><nonterminal>DefinedType</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>SimpleType</nonterminal><bgf:expression><selectable><selector>type</selector><bgf:expression><nonterminal>PrimitiveType</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>SequenceType</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>modifier</selector><bgf:expression><nonterminal>Modifier</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>type</selector><bgf:expression><nonterminal>PrimitiveType</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>size</selector><bgf:expression><nonterminal>Integer</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>DefinedType</nonterminal><bgf:expression><selectable><selector>typeName</selector><bgf:expression><nonterminal>String</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>Declaration</nonterminal><bgf:expression><nonterminal>VariableDeclaration</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Declaration</nonterminal><bgf:expression><nonterminal>FunctionDeclaration</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Declaration</nonterminal><bgf:expression><nonterminal>StructureDeclaration</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>VariableDeclaration</nonterminal><bgf:expression><nonterminal>Argument</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>VariableDeclaration</nonterminal><bgf:expression><nonterminal>WhenHeader</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>VariableDeclaration</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>type</selector><bgf:expression><nonterminal>TypeExpression</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>initExp</selector><bgf:expression><nonterminal>Expression</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>FunctionDeclaration</nonterminal><bgf:expression><nonterminal>RemoteFunctionDeclaration</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>FunctionDeclaration</nonterminal><bgf:expression><nonterminal>LocalFunctionDeclaration</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>RemoteFunctionDeclaration</nonterminal><bgf:expression><selectable><selector>functionLocation</selector><bgf:expression><nonterminal>FunctionLocation</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>LocalFunctionDeclaration</nonterminal><bgf:expression><plus><bgf:expression><selectable><selector>statements</selector><bgf:expression><nonterminal>Statement</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></bgf:production><bgf:production><nonterminal>StructureDeclaration</nonterminal><bgf:expression><plus><bgf:expression><selectable><selector>properties</selector><bgf:expression><nonterminal>Argument</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></bgf:production><bgf:production><nonterminal>StructureProperty</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>name</selector><bgf:expression><nonterminal>String</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>type</selector><bgf:expression><nonterminal>TypeExpression</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>FunctionCall</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>function</selector><bgf:expression><nonterminal>FunctionDeclaration</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>parameters</selector><bgf:expression><nonterminal>Expression</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>Statement</nonterminal><bgf:expression><nonterminal>CompoundStat</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Statement</nonterminal><bgf:expression><nonterminal>SetStat</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Statement</nonterminal><bgf:expression><nonterminal>DeclarationStat</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Statement</nonterminal><bgf:expression><nonterminal>ReturnStat</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Statement</nonterminal><bgf:expression><nonterminal>IfStat</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Statement</nonterminal><bgf:expression><nonterminal>WhenStat</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Statement</nonterminal><bgf:expression><nonterminal>ForeachStat</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Statement</nonterminal><bgf:expression><nonterminal>SelectStat</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Statement</nonterminal><bgf:expression><nonterminal>FunctionCallStat</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Statement</nonterminal><bgf:expression><nonterminal>ContinueStat</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Statement</nonterminal><bgf:expression><nonterminal>BreakStat</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Statement</nonterminal><bgf:expression><nonterminal>PushStat</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>CompoundStat</nonterminal><bgf:expression><plus><bgf:expression><selectable><selector>statements</selector><bgf:expression><nonterminal>Statement</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></bgf:production><bgf:production><nonterminal>SetStat</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>target</selector><bgf:expression><nonterminal>Place</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>setValue</selector><bgf:expression><nonterminal>Expression</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>DeclarationStat</nonterminal><bgf:expression><selectable><selector>declaration</selector><bgf:expression><nonterminal>Declaration</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>ReturnStat</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>returnedValue</selector><bgf:expression><nonterminal>Expression</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>branch</selector><bgf:expression><nonterminal>NamedBranch</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>IfStat</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>condition</selector><bgf:expression><nonterminal>Expression</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>thenStatements</selector><bgf:expression><nonterminal>Statement</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>elseStatements</selector><bgf:expression><nonterminal>Statement</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>WhenStat</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>idExp</selector><bgf:expression><nonterminal>Variable</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>whenHeaders</selector><bgf:expression><nonterminal>WhenHeader</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>statements</selector><bgf:expression><nonterminal>Statement</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>elseStatements</selector><bgf:expression><nonterminal>Statement</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>ForeachStat</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>iteratorName</selector><bgf:expression><nonterminal>String</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>sequenceExp</selector><bgf:expression><nonterminal>Expression</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>statements</selector><bgf:expression><nonterminal>Statement</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>SelectStat</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>matchedExp</selector><bgf:expression><nonterminal>Expression</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>selectCases</selector><bgf:expression><nonterminal>SelectCase</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression><bgf:expression><selectable><selector>selectDefault</selector><bgf:expression><nonterminal>SelectDefault</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>FunctionCallStat</nonterminal><bgf:expression><selectable><selector>functionCall</selector><bgf:expression><nonterminal>FunctionCall</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>ContinueStat</nonterminal><bgf:expression><epsilon/></bgf:expression></bgf:production><bgf:production><nonterminal>BreakStat</nonterminal><bgf:expression><epsilon/></bgf:expression></bgf:production><bgf:production><nonterminal>PushStat</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>target</selector><bgf:expression><nonterminal>Place</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>pushedValue</selector><bgf:expression><nonterminal>Expression</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>WhenHeader</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>headerId</selector><bgf:expression><nonterminal>String</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>value</selector><bgf:expression><nonterminal>Constant</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>SelectMember</nonterminal><bgf:expression><nonterminal>SelectDefault</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>SelectMember</nonterminal><bgf:expression><nonterminal>SelectCase</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>SelectDefault</nonterminal><bgf:expression><sequence><bgf:expression><plus><bgf:expression><selectable><selector>statements</selector><bgf:expression><nonterminal>Statement</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>SelectCase</nonterminal><bgf:expression><plus><bgf:expression><selectable><selector>values</selector><bgf:expression><nonterminal>Constant</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></bgf:production><bgf:production><nonterminal>Expression</nonterminal><bgf:expression><nonterminal>ConstantExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Expression</nonterminal><bgf:expression><nonterminal>OperatorExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Expression</nonterminal><bgf:expression><nonterminal>ForwardExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Expression</nonterminal><bgf:expression><nonterminal>WithExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Expression</nonterminal><bgf:expression><nonterminal>BlockExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Expression</nonterminal><bgf:expression><nonterminal>ReasonExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Expression</nonterminal><bgf:expression><nonterminal>BODYExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Expression</nonterminal><bgf:expression><nonterminal>RequestURIExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Expression</nonterminal><bgf:expression><nonterminal>PopExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Expression</nonterminal><bgf:expression><nonterminal>FunctionCallExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Expression</nonterminal><bgf:expression><nonterminal>Place</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>ConstantExp</nonterminal><bgf:expression><selectable><selector>value</selector><bgf:expression><nonterminal>Constant</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>OperatorExp</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>opName</selector><bgf:expression><nonterminal>String</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>leftExp</selector><bgf:expression><nonterminal>Expression</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>rightExp</selector><bgf:expression><nonterminal>Expression</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>ForwardExp</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>isParallel</selector><bgf:expression><nonterminal>Boolean</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>exp</selector><bgf:expression><nonterminal>Expression</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>WithExp</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>exp</selector><bgf:expression><nonterminal>Expression</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>msgFields</selector><bgf:expression><nonterminal>MessageField</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>BlockExp</nonterminal><bgf:expression><selectable><selector>exp</selector><bgf:expression><nonterminal>Expression</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>ReasonExp</nonterminal><bgf:expression><epsilon/></bgf:expression></bgf:production><bgf:production><nonterminal>BODYExp</nonterminal><bgf:expression><epsilon/></bgf:expression></bgf:production><bgf:production><nonterminal>RequestURIExp</nonterminal><bgf:expression><epsilon/></bgf:expression></bgf:production><bgf:production><nonterminal>PopExp</nonterminal><bgf:expression><selectable><selector>source</selector><bgf:expression><nonterminal>Place</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>FunctionCallExp</nonterminal><bgf:expression><selectable><selector>functionCall</selector><bgf:expression><nonterminal>FunctionCall</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>Place</nonterminal><bgf:expression><nonterminal>SIPHeaderPlace</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Place</nonterminal><bgf:expression><nonterminal>VariablePlace</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>SIPHeaderPlace</nonterminal><bgf:expression><selectable><selector>header</selector><bgf:expression><nonterminal>SIPHeader</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>VariablePlace</nonterminal><bgf:expression><nonterminal>PropertyCallPlace</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>VariablePlace</nonterminal><bgf:expression><nonterminal>Variable</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>PropertyCallPlace</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>propName</selector><bgf:expression><nonterminal>String</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>source</selector><bgf:expression><nonterminal>VariablePlace</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>Variable</nonterminal><bgf:expression><selectable><selector>source</selector><bgf:expression><nonterminal>Declaration</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>MessageField</nonterminal><bgf:expression><nonterminal>ReasonMessageField</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>MessageField</nonterminal><bgf:expression><nonterminal>HeadedMessageField</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>ReasonMessageField</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>exp</selector><bgf:expression><nonterminal>Expression</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>HeadedMessageField</nonterminal><bgf:expression><selectable><selector>headerId</selector><bgf:expression><nonterminal>String</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>Constant</nonterminal><bgf:expression><nonterminal>BooleanConstant</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Constant</nonterminal><bgf:expression><nonterminal>IntegerConstant</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Constant</nonterminal><bgf:expression><nonterminal>StringConstant</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Constant</nonterminal><bgf:expression><nonterminal>URIConstant</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Constant</nonterminal><bgf:expression><nonterminal>SequenceConstant</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Constant</nonterminal><bgf:expression><nonterminal>ResponseConstant</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>BooleanConstant</nonterminal><bgf:expression><selectable><selector>value</selector><bgf:expression><nonterminal>Boolean</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>IntegerConstant</nonterminal><bgf:expression><selectable><selector>value</selector><bgf:expression><nonterminal>Integer</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>StringConstant</nonterminal><bgf:expression><selectable><selector>value</selector><bgf:expression><nonterminal>String</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>URIConstant</nonterminal><bgf:expression><selectable><selector>uri</selector><bgf:expression><nonterminal>String</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>SequenceConstant</nonterminal><bgf:expression><plus><bgf:expression><selectable><selector>values</selector><bgf:expression><nonterminal>Constant</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></bgf:production><bgf:production><nonterminal>ResponseConstant</nonterminal><bgf:expression><selectable><selector>response</selector><bgf:expression><nonterminal>Response</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>Response</nonterminal><bgf:expression><nonterminal>SuccessResponse</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Response</nonterminal><bgf:expression><nonterminal>ErrorResponse</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>SuccessResponse</nonterminal><bgf:expression><selectable><selector>successKind</selector><bgf:expression><nonterminal>SuccessKind</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>ErrorResponse</nonterminal><bgf:expression><nonterminal>ClientErrorResponse</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>ErrorResponse</nonterminal><bgf:expression><nonterminal>GlobalErrorResponse</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>ErrorResponse</nonterminal><bgf:expression><nonterminal>RedirectionErrorResponse</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>ErrorResponse</nonterminal><bgf:expression><nonterminal>ServerErrorResponse</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>ErrorResponse</nonterminal><bgf:expression><choice><bgf:expression><nonterminal>ClientErrorResponse</nonterminal></bgf:expression><bgf:expression><nonterminal>GlobalErrorResponse</nonterminal></bgf:expression><bgf:expression><nonterminal>RedirectionErrorResponse</nonterminal></bgf:expression><bgf:expression><nonterminal>ServerErrorResponse</nonterminal></bgf:expression></choice></bgf:expression></bgf:production><bgf:production><nonterminal>ClientErrorResponse</nonterminal><bgf:expression><selectable><selector>errorKind</selector><bgf:expression><nonterminal>ClientErrorKind</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>GlobalErrorResponse</nonterminal><bgf:expression><selectable><selector>errorKind</selector><bgf:expression><nonterminal>GlobalErrorKind</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>RedirectionErrorResponse</nonterminal><bgf:expression><selectable><selector>errorKind</selector><bgf:expression><nonterminal>RedirectionErrorKind</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>ServerErrorResponse</nonterminal><bgf:expression><selectable><selector>errorKind</selector><bgf:expression><nonterminal>ServerErrorKind</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>Direction</nonterminal><bgf:expression><choice><bgf:expression><selectable><selector>inout</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>in</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>out</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression></choice></bgf:expression></bgf:production><bgf:production><nonterminal>SIPMethod</nonterminal><bgf:expression><choice><bgf:expression><selectable><selector>ACK</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>BYE</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>CANCEL</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>INVITE</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>NOTIFY</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>OPTIONS</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>REACK</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>REGISTER</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>REINVITE</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>REREGISTER</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>RESUBSCRIBE</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>SUBSCRIBE</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression></choice></bgf:expression></bgf:production><bgf:production><nonterminal>ControlMethod</nonterminal><bgf:expression><choice><bgf:expression><selectable><selector>deploy</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>undeploy</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>uninvite</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>unregister</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>unsubscribe</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression></choice></bgf:expression></bgf:production><bgf:production><nonterminal>PrimitiveType</nonterminal><bgf:expression><choice><bgf:expression><selectable><selector>void</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>bool</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>int</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>request</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>response</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>string</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>time</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>uri</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression></choice></bgf:expression></bgf:production><bgf:production><nonterminal>Modifier</nonterminal><bgf:expression><choice><bgf:expression><selectable><selector>LIFO</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>FIFO</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression></choice></bgf:expression></bgf:production><bgf:production><nonterminal>FunctionLocation</nonterminal><bgf:expression><choice><bgf:expression><selectable><selector>remote</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>local</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression></choice></bgf:expression></bgf:production><bgf:production><nonterminal>SIPHeader</nonterminal><bgf:expression><choice><bgf:expression><selectable><selector>CALL_ID</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>CONTACT</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>CSEQ</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>EVENT</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>FROM</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>MAX_FORWARDS</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>SUBSCRIPTION_STATE</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>TO</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>VIA</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression></choice></bgf:expression></bgf:production><bgf:production><nonterminal>SuccessKind</nonterminal><bgf:expression><choice><bgf:expression><selectable><selector>OK</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>ACCEPTED</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression></choice></bgf:expression></bgf:production><bgf:production><nonterminal>ClientErrorKind</nonterminal><bgf:expression><choice><bgf:expression><selectable><selector>ADDRESS_INCOMPLETE</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>AMBIGUOUS</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>BAD_EXTENSION</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>BAD_REQUEST</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>BUSY_HERE</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>CALL_OR_TRANSACTION_DOES_NOT_EXIST</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>EXTENSION_REQUIRED</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>FORBIDDEN</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>GONE</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>INTERVAL_TOO_BRIEF</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>LOOP_DETECTED</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>METHOD_NOT_ALLOWED</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>NOT_ACCEPTABLE_HERE</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>NOT_ACCEPTABLE</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>NOT_FOUND</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>PAYMENT_REQUIRED</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>PROXY_AUTHENTICATION_REQUIRED</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>REQUESTURI_TOO_LONG</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>REQUEST_ENTITY_TOO_LARGE</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>REQUEST_PENDING</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>REQUEST_TERMINATED</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>REQUEST_TIMEOUT</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>TEMPORARILY_UNAVAILABLE</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>TOO_MANY_HOPS</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>UNAUTHORIZED</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>UNDECIPHERABLE</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>UNSUPPORTED_MEDIA_TYPE</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>UNSUPPORTED_URI_SCHEME</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression></choice></bgf:expression></bgf:production><bgf:production><nonterminal>GlobalErrorKind</nonterminal><bgf:expression><choice><bgf:expression><selectable><selector>BUSY_EVERYWHERE</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>DECLINE</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>DOES_NOT_EXIST_ANYWHERE</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>NOT_ACCEPTABLE</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression></choice></bgf:expression></bgf:production><bgf:production><nonterminal>RedirectionErrorKind</nonterminal><bgf:expression><choice><bgf:expression><selectable><selector>ALTERNATIVE_SERVICE</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>MOVED_PERMANENTLY</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>MOVED_TEMPORARILY</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>MULTIPLE_CHOICES</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>USE_PROXY</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression></choice></bgf:expression></bgf:production><bgf:production><nonterminal>ServerErrorKind</nonterminal><bgf:expression><choice><bgf:expression><selectable><selector>BAD_GATEWAY</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>MESSAGE_TOO_LARGE</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>NOT_IMPLEMENTED</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>SERVER_INTERNAL_ERROR</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>SERVER_TIMEOUT</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>SERVICE_UNAVAILABLE</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>VERSION_NOT_SUPPORTED</selector><bgf:expression><epsilon/></bgf:expression></selectable></bgf:expression></choice></bgf:expression></bgf:production></bgf:grammar>