📄 megaco_text_parser_prev3c.yrl
字号:
notifyReplyBody -> '$empty' : asn1_NOVALUE .serviceChangeRequest -> 'ServiceChangeToken' 'EQUAL' termIDList 'LBRKT' serviceChangeDescriptor 'RBRKT' : make_commandRequest({serviceChangeReq, '$1'}, #'ServiceChangeRequest'{terminationID = '$3', serviceChangeParms = '$5'}) .serviceChangeReply -> 'ServiceChangeToken' 'EQUAL' termIDList serviceChangeReplyBody : {serviceChangeReply, #'ServiceChangeReply'{terminationID = '$3', serviceChangeResult = '$4'}} .serviceChangeReplyBody -> 'LBRKT' errorDescriptor 'RBRKT' : {errorDescriptor, '$2'} .serviceChangeReplyBody -> 'LBRKT' serviceChangeReplyDescriptor 'RBRKT' : {serviceChangeResParms, '$2'} .serviceChangeReplyBody -> '$empty' : {serviceChangeResParms, #'ServiceChangeResParm'{}}.errorDescriptor -> 'ErrorToken' 'EQUAL' errorCode 'LBRKT' errorText 'RBRKT' : #'ErrorDescriptor'{errorCode = '$3', errorText = '$5'} .errorCode -> safeToken : ensure_uint('$1', 0, 999) .errorText -> 'QuotedChars' : value_of('$1') .errorText -> '$empty' : asn1_NOVALUE .transactionID -> safeToken : ensure_uint32('$1') .mId -> domainName : '$1' .mId -> domainAddress : '$1' .mId -> optSep mtpAddress optSep : '$2' .mId -> optSep deviceName optSep : '$2' .domainName -> 'LESSER' safeToken 'GREATER' 'COLON' portNumber optSep : ensure_domainName('$2', '$5') .domainName -> 'LESSER' safeToken 'GREATER' : ensure_domainName('$2', asn1_NOVALUE) .deviceName -> pathName : {deviceName, '$1'} .%% '-' is used for NULL contextcontextID -> safeToken : ensure_contextID('$1') .domainAddress -> 'LSBRKT' daddr 'RSBRKT' 'COLON' portNumber optSep : ensure_domainAddress('$2', '$5') .domainAddress -> 'LSBRKT' daddr 'RSBRKT' : ensure_domainAddress('$2', asn1_NOVALUE) .daddr -> '$empty' : [] .daddr -> 'COLON' daddr : [colon| '$2'] .daddr -> safeToken daddr : ['$1'| '$2'] .portNumber -> safeToken : ensure_uint16('$1') .mtpAddress -> 'MtpAddressToken' : ensure_mtpAddress('$1') .termIDList -> terminationID : ['$1'] .termIDList -> LSBRKT terminationID terminationIDListRepeat RSBRKT : ['$2' | '$3'] .terminationIDList -> 'LBRKT' terminationID terminationIDListRepeat 'RBRKT' : ['$2' | '$3'] .terminationIDListRepeat -> 'COMMA' terminationID terminationIDListRepeat : ['$2'| '$3'] .terminationIDListRepeat -> '$empty' : [] .pathName -> safeToken : ensure_pathName('$1') . terminationID -> safeToken : ensure_terminationID('$1') .mediaDescriptor -> 'MediaToken' 'LBRKT' mediaParm mediaParmList 'RBRKT' : merge_mediaDescriptor(['$3' | '$4']) .mediaParmList -> 'COMMA' mediaParm mediaParmList : ['$2' | '$3'] .mediaParmList -> '$empty' : [] .%% at-most-once per item%% using either streamParms or streamDescriptors but not bothmediaParm -> streamParm : {streamParm, '$1'} .mediaParm -> streamDescriptor : {streamDescriptor, '$1'} .mediaParm -> terminationStateDescriptor : {termState, '$1'} .%% at-most-once .%% Specially treated by the scanner.streamParm -> 'LocalDescriptorToken' : {local, #'LocalRemoteDescriptor'{propGrps = ensure_prop_groups('$1')} } .streamParm -> 'RemoteDescriptorToken' : {remote, #'LocalRemoteDescriptor'{propGrps = ensure_prop_groups('$1')}} .streamParm -> localControlDescriptor : {control, '$1'} .streamParm -> statisticsDescriptor : {statistics, '$1'} .streamDescriptor -> 'StreamToken' 'EQUAL' streamID 'LBRKT' streamParm streamParmList 'RBRKT' : #'StreamDescriptor'{streamID = '$3', streamParms = merge_streamParms(['$5' | '$6'])} .streamParmList -> 'COMMA' streamParm streamParmList : ['$2' | '$3'] .streamParmList -> '$empty' : [] .localControlDescriptor -> 'LocalControlToken' 'LBRKT' localParm localParmList 'RBRKT' : ['$3' | '$4'] .localParmList -> 'COMMA' localParm localParmList : ['$2' | '$3'] .localParmList -> '$empty': [] .terminationStateDescriptor -> 'TerminationStateToken' 'LBRKT' terminationStateParm terminationStateParms 'RBRKT' : merge_terminationStateDescriptor(['$3' | '$4']) .terminationStateParms -> 'COMMA' terminationStateParm terminationStateParms : ['$2' | '$3'] .terminationStateParms -> '$empty' : [] .%% at-most-once per item except for propertyParmlocalParm -> 'ReservedGroupToken' 'EQUAL' onOrOff : {group, '$3'} .localParm -> 'ReservedValueToken' 'EQUAL' onOrOff : {value, '$3'} .localParm -> 'ModeToken' 'EQUAL' streamModes : {mode, '$3'} .localParm -> propertyParm : {prop, '$1'} . onOrOff -> 'OnToken' : true .onOrOff -> 'OffToken' : false . %% at-most-once streamModes -> 'SendonlyToken' : sendOnly .streamModes -> 'RecvonlyToken' : recvOnly .streamModes -> 'SendrecvToken' : sendRecv .streamModes -> 'InactiveToken' : inactive .streamModes -> 'LoopbackToken' : loopBack .propertyParm -> pkgdName parmValue : setelement(#'PropertyParm'.name, '$2', '$1') .parmValue -> 'EQUAL' alternativeValue : '$2' .parmValue -> 'NEQUAL' value : #'PropertyParm'{value = ['$2'], extraInfo = {relation, unequalTo}} .parmValue -> 'LESSER' value : #'PropertyParm'{value = ['$2'], extraInfo = {relation, smallerThan}} .parmValue -> 'GREATER' value : #'PropertyParm'{value = ['$2'], extraInfo = {relation, greaterThan}} .%% OTP-4013%% alternativeValue = ( VALUE / %% LSBRKT VALUE *(COMMA VALUE) RSBRKT /%% LSBRKT VALUE COLON VALUE RSBRKT ) /%% LBRKT VALUE *(COMMA VALUE) RBRKTalternativeValue -> 'LBRKT' value valueList 'RBRKT' : #'PropertyParm'{value = ['$2' | '$3'], extraInfo = {sublist, false}}. % ORalternativeValue -> 'LSBRKT' value 'COLON' value 'RSBRKT' : #'PropertyParm'{value = ['$2', '$4'], extraInfo = {range, true}}.alternativeValue -> 'LSBRKT' value valueList 'RSBRKT' : #'PropertyParm'{value = ['$2' | '$3'], extraInfo = {sublist, true}}. % ANDalternativeValue -> value : #'PropertyParm'{value = ['$1']} .valueList -> 'COMMA' value valueList : ['$2' | '$3'] .valueList -> '$empty' : [] .eventBufferDescriptor -> 'EventBufferToken' : [] .eventBufferDescriptor -> 'EventBufferToken' 'LBRKT' eventSpec eventSpecList 'RBRKT' : ['$3' | '$4'] .eventSpecList -> 'COMMA' eventSpec eventSpecList : ['$2' | '$3'] .eventSpecList -> '$empty' : [] .eventSpec -> observedEvent : merge_eventSpec('$1') .%% at-most-once per item except for propertyParmterminationStateParm -> serviceStates : {serviceState, '$1'} .terminationStateParm -> eventBufferControl : {eventBufferControl, '$1'} .terminationStateParm -> propertyParm : {propertyParm, '$1'} .serviceStates -> 'ServiceStatesToken' 'EQUAL' serviceStatesValue : '$3'.serviceStatesValue -> 'TestToken' : test . serviceStatesValue -> 'OutOfSvcToken' : outOfSvc .serviceStatesValue -> 'InSvcToken' : inSvc .eventBufferControl -> 'BufferToken' 'EQUAL' eventBufferControlValue : '$3' .eventBufferControlValue -> 'OffToken' : off .eventBufferControlValue -> 'LockStepToken' : lockStep .muxDescriptor -> 'MuxToken' 'EQUAL' muxType terminationIDList : #'MuxDescriptor'{muxType = '$3', termList = '$4'} .muxType -> safeToken : ensure_muxType('$1') .streamID -> safeToken : ensure_streamID('$1') .pkgdName -> safeToken : ensure_pkgdName('$1') .eventsDescriptor -> 'EventsToken' : #'EventsDescriptor'{requestID = asn1_NOVALUE, eventList = []} .eventsDescriptor -> 'EventsToken' 'EQUAL' requestID 'LBRKT' requestedEvent requestedEvents 'RBRKT' : #'EventsDescriptor'{requestID = '$3', eventList = ['$5' | '$6']} .requestedEvents -> 'COMMA' requestedEvent requestedEvents : ['$2' | '$3'] .requestedEvents -> '$empty' : [] .requestedEvent -> pkgdName requestedEventBody : setelement(#'RequestedEvent'.pkgdName, '$2', '$1') .requestedEventBody -> 'LBRKT' eventParameter eventParameters 'RBRKT' : merge_eventParameters(['$2' | '$3']) .requestedEventBody -> '$empty' : #'RequestedEvent'{evParList = []} .notifyRegulated -> 'NotifyRegulatedToken' : #'RegulatedEmbeddedDescriptor'{} .notifyRegulated -> 'NotifyRegulatedToken' 'LBRKT' embedWithSig 'RBRKT' : make_RegulatedEmbeddedDescriptor('$3') .notifyRegulated -> 'NotifyRegulatedToken' 'LBRKT' embedNoSig 'RBRKT' : make_RegulatedEmbeddedDescriptor('$3') .notifyBehaviour -> 'NotifyImmediateToken' : {notifyImmediate, 'NULL'} .notifyBehaviour -> 'NeverNotifyToken' : {neverNotify, 'NULL'} .notifyBehaviour -> notifyRegulated : {notifyRegulated, '$1'} . eventParameters -> 'COMMA' eventParameter eventParameters : ['$2' | '$3'] .eventParameters -> '$empty' : [] .%% at-most-once each of embedOrKeepActive , eventDM or eventStreameventParameter -> 'KeepActiveToken' : keepActive .eventParameter -> embedWithSig : '$1'.eventParameter -> embedNoSig : '$1'.eventParameter -> eventDM : '$1'.eventParameter -> eventStreamOrOther : '$1'.eventParameter -> notifyBehaviour : {notifyBehaviour, '$1'}.eventParameter -> 'ResetEventsDescriptorToken' : resetEventsDescriptor .embedWithSig -> 'EmbedToken' 'LBRKT' signalsDescriptor 'COMMA' embedFirst 'RBRKT' : {embed, '$3', '$5'} .embedWithSig -> 'EmbedToken' 'LBRKT' signalsDescriptor 'RBRKT' : {embed, '$3', asn1_NOVALUE} .embedNoSig -> 'EmbedToken' 'LBRKT' embedFirst 'RBRKT' : {embed, asn1_NOVALUE, '$3'} . embedFirst -> 'EventsToken' : #'SecondEventsDescriptor'{requestID = asn1_NOVALUE, eventList = []} .embedFirst -> 'EventsToken' 'EQUAL' requestID 'LBRKT' secondRequestedEvent secondRequestedEvents 'RBRKT' : #'SecondEventsDescriptor'{requestID = '$3', eventList = ['$5' | '$6']} .secondRequestedEvents -> 'COMMA' secondRequestedEvent secondRequestedEvents : ['$2' | '$3'] .secondRequestedEvents -> '$empty' : [] .%% at-most-once of eachsecondRequestedEvent -> pkgdName secondRequestedEventBody : setelement(#'SecondRequestedEvent'.pkgdName, '$2', '$1') .secondRequestedEventBody -> 'LBRKT' secondEventParameter secondEventParameters 'RBRKT' : merge_secondEventParameters(['$2' | '$3']) .secondRequestedEventBody -> '$empty' : #'SecondRequestedEvent'{evParList = []} .secondEventParameters -> 'COMMA' secondEventParameter secondEventParameters : ['$2' | '$3'] .secondEventParameters -> '$empty' : [] .%% at-most-once each of embedOrKeepActive , eventDM or eventStreamsecondEventParameter -> 'KeepActiveToken' : keepActive .secondEventParameter -> embedSig : '$1' .secondEventParameter -> eventDM : '$1' .secondEventParameter -> eventStreamOrOther : '$1' .secondEventParameter -> notifyBehaviour : {notifyBehaviour, '$1'}.secondEventParameter -> 'ResetEventsDescriptorToken' : resetEventsDescriptor .embedSig -> 'EmbedToken' 'LBRKT' signalsDescriptor 'RBRKT' : {second_embed, '$3'} .eventStreamOrOther -> eventParameterName parmValue : select_stream_or_other('$1', '$2') .eventParameterName -> safeToken : ensure_NAME('$1') .%% The DigitMapDescriptorToken is specially treated by the scannereventDM -> 'DigitMapDescriptorToken' : ensure_eventDM('$1') .%% H248S-IG (IGv11)signalsDescriptor -> 'SignalsToken' 'LBRKT' signalParm signalParms 'RBRKT' : ['$3' | '$4'] .signalsDescriptor -> 'SignalsToken' : [] .signalParms -> 'COMMA' signalParm signalParms : [ '$2' | '$3'] .signalParms -> '$empty' : [] .signalParm -> signalList : {seqSigList, '$1'} .
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -