📄 megaco_text_parser_prev3c.yrl
字号:
merge_action_reply(['$1' | '$2']) .%% OTP-5085%% This ugly thing is to fool the parser. The errorDescriptor does not%% realy belong here. The merge_action_reply will remove it and put it%% in it's right place later.commandReplyList -> 'COMMA' errorDescriptor : [{error, '$2'}] .commandReplyList -> 'COMMA' commandReplys commandReplyList : ['$2' | '$3'] .commandReplyList -> '$empty' : [] .commandReplys -> serviceChangeReply : {command, '$1'} .commandReplys -> auditReply : {command, '$1'} .commandReplys -> ammsReply : {command, '$1'} .commandReplys -> notifyReply : {command, '$1'} .commandReplys -> contextProperty : {context, '$1'} .%Add Move and Modify have the same request parameterammRequest -> ammToken 'EQUAL' termIDList ammRequestBody : Descs = merge_AmmRequest_descriptors('$4', []), make_commandRequest('$1', #'AmmRequest'{terminationID = '$3', descriptors = Descs}) .ammToken -> 'AddToken' : {addReq, '$1'} .ammToken -> 'MoveToken' : {moveReq, '$1'} .ammToken -> 'ModifyToken' : {modReq, '$1'} .ammRequestBody -> 'LBRKT' ammParameter ammParameters 'RBRKT' : ['$2' | '$3'] .ammRequestBody -> '$empty' : [] .ammParameters -> 'COMMA' ammParameter ammParameters : ['$2' | '$3'] .ammParameters -> '$empty' : [] .%at-most-onceammParameter -> mediaDescriptor : {mediaDescriptor, '$1'}.ammParameter -> modemDescriptor : {modemDescriptor, deprecated}.ammParameter -> muxDescriptor : {muxDescriptor, '$1'}.ammParameter -> eventsDescriptor : {eventsDescriptor, '$1'}.ammParameter -> eventBufferDescriptor : {eventBufferDescriptor, '$1'}.ammParameter -> signalsDescriptor : {signalsDescriptor, '$1'}.ammParameter -> digitMapDescriptor : {digitMapDescriptor, '$1'}.ammParameter -> auditDescriptor : {auditDescriptor, '$1'}.ammParameter -> statisticsDescriptor : {statisticsDescriptor, '$1'}.ammsReply -> ammsToken 'EQUAL' termIDList ammsReplyBody : {'$1', #'AmmsReply'{terminationID = '$3', terminationAudit = '$4'}} .ammsToken -> 'AddToken' : addReply .ammsToken -> 'MoveToken' : moveReply .ammsToken -> 'ModifyToken' : modReply .ammsToken -> 'SubtractToken' : subtractReply .ammsReplyBody -> 'LBRKT' terminationAudit 'RBRKT' : '$2' .ammsReplyBody -> '$empty' : asn1_NOVALUE .subtractRequest -> 'SubtractToken' 'EQUAL' termIDList optAuditDescriptor : SR = #'SubtractRequest'{terminationID = '$3', auditDescriptor = '$4'}, make_commandRequest({subtractReq, '$1'}, SR) . optAuditDescriptor -> 'LBRKT' auditDescriptor 'RBRKT' : '$2'.optAuditDescriptor -> '$empty' : asn1_NOVALUE .auditRequest -> 'AuditValueToken' 'EQUAL' termIDList optAuditDescriptor : make_commandRequest({auditValueRequest, '$1'}, make_auditRequest('$3', '$4')) .auditRequest -> 'AuditCapToken' 'EQUAL' termIDList optAuditDescriptor : make_commandRequest({auditCapRequest, '$1'}, make_auditRequest('$3', '$4')) .auditReply -> 'AuditValueToken' 'EQUAL' 'CtxToken' contextTerminationAudit : {auditValueReply, '$4'} .auditReply -> 'AuditCapToken' 'EQUAL' 'CtxToken' contextTerminationAudit : {auditCapReply, '$4'} .auditReply -> 'AuditValueToken' 'EQUAL' auditOther : {auditValueReply, '$3'} .auditReply -> 'AuditCapToken' 'EQUAL' auditOther : {auditCapReply, '$3'} .contextTerminationAudit -> terminationIDList : {contextAuditResult, '$1'} .contextTerminationAudit -> 'LBRKT' errorDescriptor 'RBRKT' : {error, '$2'} .auditOther -> termIDList : merge_auditOther('$1', []) .auditOther -> termIDList 'LBRKT' terminationAudit 'RBRKT' : merge_auditOther('$1', '$3') . terminationAudit -> auditReturnParameter auditReturnParameterList : merge_terminationAudit(['$1' |'$2' ]) .auditReturnParameterList -> 'COMMA' auditReturnParameter auditReturnParameterList : ['$2' | '$3'] .auditReturnParameterList -> '$empty' : [] .auditReturnParameter -> mediaDescriptor : {mediaDescriptor, '$1'} .auditReturnParameter -> modemDescriptor.auditReturnParameter -> muxDescriptor : {muxDescriptor, '$1'} .auditReturnParameter -> eventsDescriptor : {eventsDescriptor, '$1'} .auditReturnParameter -> signalsDescriptor : {signalsDescriptor, '$1'} .auditReturnParameter -> digitMapDescriptor : {digitMapDescriptor, '$1'} .auditReturnParameter -> observedEventsDescriptor : {observedEventsDescriptor, '$1'} .auditReturnParameter -> eventBufferDescriptor : {eventBufferDescriptor, '$1'} .auditReturnParameter -> statisticsDescriptor : {statisticsDescriptor, '$1'} .auditReturnParameter -> packagesDescriptor : {packagesDescriptor, '$1'} .auditReturnParameter -> errorDescriptor : {errorDescriptor, '$1'} .auditReturnParameter -> auditReturnItem : {auditReturnItem, '$1'} .auditDescriptor -> 'AuditToken' 'LBRKT' auditDescriptorBody 'RBRKT' : merge_auditDescriptor('$3') .auditDescriptorBody -> auditItem auditItemList : ['$1' | '$2'].auditDescriptorBody -> '$empty' : asn1_NOVALUE .auditItemList -> 'COMMA' auditItem auditItemList : ['$2' | '$3'] .auditItemList -> '$empty' : [] . %% IGv11 - begin%% auditReturnItem -> 'MuxToken' : muxToken .auditReturnItem -> 'ModemToken' : modemToken .auditReturnItem -> 'MediaToken' : mediaToken .auditReturnItem -> 'DigitMapToken' : digitMapToken .auditReturnItem -> 'StatsToken' : statsToken .auditReturnItem -> 'ObservedEventsToken' : observedEventsToken .auditReturnItem -> 'PackagesToken' : packagesToken .%% at-most-once, and DigitMapToken and PackagesToken are not allowed %% in AuditCapabilities command auditItem -> auditReturnItem : '$1' .auditItem -> 'SignalsToken' : signalsToken.auditItem -> 'EventBufferToken' : eventBufferToken.auditItem -> 'EventsToken' : eventsToken .auditItem -> indAudterminationAudit : {terminationAudit, '$1'} . % v2%% %% IGv11 - end%% v2 - start%% indAudterminationAudit -> indAudauditReturnParameter indAudterminationAuditList : ['$1' | '$2'] .indAudterminationAuditList -> 'COMMA' indAudauditReturnParameter indAudterminationAuditList : ['$2' | '$3'] .indAudterminationAuditList -> '$empty' : [] . indAudauditReturnParameter -> indAudmediaDescriptor : {indAudMediaDescriptor, '$1'} .indAudauditReturnParameter -> indAudeventsDescriptor : {indAudEventsDescriptor, '$1'} .indAudauditReturnParameter -> indAudsignalsDescriptor : {indAudSignalsDescriptor, '$1'} .indAudauditReturnParameter -> indAuddigitMapDescriptor : {indAudDigitMapDescriptor, '$1'} .indAudauditReturnParameter -> indAudeventBufferDescriptor : {indAudEventBufferDescriptor, '$1'} .indAudauditReturnParameter -> indAudstatisticsDescriptor : {indAudStatisticsDescriptor, '$1'} .indAudauditReturnParameter -> indAudpackagesDescriptor : {indAudPackagesDescriptor, '$1'} . indAudmediaDescriptor -> 'MediaToken' 'LBRKT' indAudmediaParm indAudmediaParms 'RBRKT' : merge_indAudMediaDescriptor(['$3'|'$4']) . %% at-most-once per item%% and either streamParm or streamDescriptor but not both%% indAudmediaParm -> indAudstreamParm : {streamParm, '$1'} .indAudmediaParm -> indAudstreamDescriptor : {streamDescr, '$1'} .indAudmediaParm -> indAudterminationStateDescriptor : {termStateDescr, '$1'} . indAudmediaParms -> 'COMMA' indAudmediaParm indAudmediaParms : ['$2' | '$3'] .indAudmediaParms -> '$empty' : [] .%% at-most-onceindAudstreamParm -> 'RemoteDescriptorToken' : RD = ensure_prop_groups('$1'), #'IndAudStreamParms'{remoteDescriptor = RD} .indAudstreamParm -> 'LocalDescriptorToken' : LD = ensure_prop_groups('$1'), #'IndAudStreamParms'{localDescriptor = LD} .indAudstreamParm -> indAudlocalControlDescriptor : #'IndAudStreamParms'{localControlDescriptor = '$1'} .indAudstreamParm -> indAudstatisticsDescriptor : #'IndAudStreamParms'{statisticsDescriptor = '$1'} .indAudstreamDescriptor -> 'StreamToken' 'EQUAL' streamID 'LBRKT' indAudstreamParm 'RBRKT' : #'IndAudStreamDescriptor'{streamID = '$3', streamParms = '$5'} . indAudlocalControlDescriptor -> 'LocalControlToken' 'LBRKT' indAudlocalParm indAudlocalParmList 'RBRKT' : merge_indAudLocalControlDescriptor(['$3' | '$4']) . indAudlocalParmList -> 'COMMA' indAudlocalParm indAudlocalParmList : ['$2' | '$3'] .indAudlocalParmList -> '$empty' : [] .%% at-most-once per item%% %% propertyparm and streamModes are used only to specify audit selection%% criteria. AND/OR selection logic is specified at context level.%% indAudlocalParm -> 'ReservedGroupToken' : reservedGroupToken .indAudlocalParm -> 'ReservedValueToken' : reservedValueToken .indAudlocalParm -> 'ModeToken' : modeToken .indAudlocalParm -> 'ModeToken' 'EQUAL' streamModes : {mode, {equal, '$3'}} .indAudlocalParm -> 'ModeToken' 'INEQUAL' streamModes : {mode, {inequal,'$3'}} .indAudlocalParm -> propertyParm : {prop, '$1'} .indAudlocalParm -> pkgdName : {name, '$1'} .indAudterminationStateDescriptor -> 'TerminationStateToken' 'LBRKT' indAudterminationStateParm 'RBRKT' : merge_indAudTerminationStateDescriptor('$3') .%% at-most-once per item%%%% at-most-once per item except for propertyParmindAudterminationStateParm -> iaServiceStates : '$1' .indAudterminationStateParm -> 'BufferToken' : bufferToken .indAudterminationStateParm -> propertyParm : {prop, '$1'} .indAudterminationStateParm -> pkgdName : {name, '$1'} .iaServiceStates -> 'ServiceStatesToken' : serviceStatesToken .iaServiceStates -> 'ServiceStatesToken' 'EQUAL' serviceStatesValue : {serviceStates, {equal, '$3'}} .iaServiceStates -> 'ServiceStatesToken' 'INEQUAL' serviceStatesValue : {serviceStates, {inequal, '$3'}} . indAudeventBufferDescriptor -> 'EventBufferToken' 'LBRKT' indAudeventSpec 'RBRKT' : '$3' .indAudeventSpec -> pkgdName optIndAudeventSpecParameter : merge_indAudEventBufferDescriptor('$1','$2') .optIndAudeventSpecParameter -> 'LBRKT' indAudeventSpecParameter 'RBRKT' : '$2' .optIndAudeventSpecParameter -> '$empty' : asn1_NOVALUE .indAudeventSpecParameter -> eventStream : {streamID, '$1'} .indAudeventSpecParameter -> eventParameterName : {eventParameterName, '$1'} . indAudeventsDescriptor -> 'EventsToken' 'LBRKT' indAudrequestedEvent 'RBRKT' : #'IndAudEventsDescriptor'{pkgdName = '$3'} .indAudeventsDescriptor -> 'EventsToken' 'EQUAL' requestID 'LBRKT' indAudrequestedEvent 'RBRKT' : #'IndAudEventsDescriptor'{requestID = '$3', pkgdName = '$5'} . indAudrequestedEvent -> pkgdName : '$1' .indAudsignalsDescriptor -> 'SignalsToken' optIndAudsignalParm : '$2' .optIndAudsignalParm -> 'LBRKT' 'RBRKT' : asn1_NOVALUE .optIndAudsignalParm -> 'LBRKT' indAudsignalParm 'RBRKT' : '$2' .indAudsignalParm -> indAudsignalList : {seqSigList, '$1'} .indAudsignalParm -> signalRequest : {signal, ensure_indAudSignal('$1')} .indAudsignalList -> 'SignalListToken' 'EQUAL' signalListId : #'IndAudSeqSigList'{id = ensure_uint16('$3')} .indAudsignalList -> 'SignalListToken' 'EQUAL' signalListId 'LBRKT' signalListParm 'RBRKT' : #'IndAudSeqSigList'{id = ensure_uint16('$3'), signalList = ensure_indAudSignalListParm('$5')} .%% The DigitMapDescriptorToken is specially treated by the scannerindAuddigitMapDescriptor -> 'DigitMapDescriptorToken' : ensure_IADMD('$1') . indAudstatisticsDescriptor -> 'StatsToken' 'LBRKT' pkgdName 'RBRKT' : #'IndAudStatisticsDescriptor'{statName = '$3'} . indAudpackagesDescriptor -> 'PackagesToken' 'LBRKT' packagesItem 'RBRKT' : merge_indAudPackagesDescriptor('$3') . eventStream -> 'StreamToken' 'EQUAL' streamID : '$3' . %% %% v2 - endnotifyRequest -> 'NotifyToken' 'EQUAL' termIDList 'LBRKT' notifyRequestBody 'RBRKT' : NR = setelement(#'NotifyRequest'.terminationID, '$5', '$3'), make_commandRequest({notifyReq, '$1'}, NR) .notifyRequestBody -> observedEventsDescriptor : #'NotifyRequest'{observedEventsDescriptor = '$1'}.notifyRequestBody -> errorDescriptor : #'NotifyRequest'{errorDescriptor = '$1'}.notifyReply -> 'NotifyToken' 'EQUAL' termIDList notifyReplyBody : {notifyReply, #'NotifyReply'{terminationID = '$3', errorDescriptor = '$4'}} .notifyReplyBody -> 'LBRKT' errorDescriptor 'RBRKT' : '$2'.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -