📄 megaco_text_parser_prev3a.yrl
字号:
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') .%% terminationIDList -> LBRKT terminationID *(COMMA terminationID) RBRKT .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-onc .%% 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' serviceState : '$3' .serviceState -> 'TestToken' : test . serviceState -> 'OutOfSvcToken' : outOfSvc .serviceState -> 'InSvcToken' : inSvc .eventBufferControl -> 'BufferToken' 'EQUAL' eventBufferControlState : '$3' .eventBufferControlState -> 'OffToken' : off .eventBufferControlState -> '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 = []} .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'.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' .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'} .signalParm -> signalRequest : {signal, '$1'} .signalRequest -> signalName 'LBRKT' sigParameter sigParameters 'RBRKT' : merge_signalRequest('$1', ['$3' | '$4']).signalRequest -> signalName : merge_signalRequest('$1', []).sigParameters -> 'COMMA' sigParameter sigParameters : ['$2' | '$3'] .sigParameters -> '$empty' : [] .%% sigParameter = sigStream / sigSignalType / sigDuration / sigOther / %% notifyCompletion / KeepActiveToken / %% direction / sigRequestID%% sigStream = StreamToken EQUAL StreamID %% sigOther = sigParameterName parmValue %% sigParameterName = NAME %% sigSignalType = SignalTypeToken EQUAL signalType %% signalType = (OnOffToken / TimeOutToken / BriefToken) %% sigDuration = DurationToken EQUAL UINT16 %% notifyCompletion = NotifyCompletionToken EQUAL (LBRKT %% notificationReason *(COMMA notificationReason) %% RBRKT) %% %% notificationReason = ( TimeOutToken / InterruptByEventToken / %% InterruptByNewSignalsDescrToken / %% OtherReasonToken ) %% sigDirection = DirectionToken EQUAL direction%% sigRequestID = RequestIDToken EQUAL RequestIDsigParameter -> 'StreamToken' 'EQUAL' streamID : {stream, '$3'}.sigParameter -> 'SignalTypeToken' 'EQUAL' signalType : {signal_type, '$3'} .sigParameter -> 'DurationToken' 'EQUAL' safeToken : {duration, ensure_uint16('$3')} .sigParameter -> 'NotifyCompletionToken' 'EQUAL' 'LBRKT' notificationReason notificationReasons 'RBRKT' : {notify_completion, ['$4' | '$5']} .sigParameter -> 'KeepActiveToken' : keepActive .sigParameter -> 'DirectionToken' 'EQUAL' direction : {direction, '$3'} .sigParameter -> 'RequestIDToken' 'EQUAL' requestID : {requestId, '$3'} .sigParameter -> safeToken parmValue : {other, ensure_NAME('$1'), '$2'}.signalType -> 'OnOffToken' : onOff.signalType -> 'TimeOutToken' : timeOut.signalType -> 'BriefToken' : brief.direction -> 'ExternalToken' : external .direction -> 'InternalToken' : internal .direction -> 'BothToken' : both .notificationReasons -> 'COMMA' notificationReason notificationReasons : ['$2' | '$3'] .notificationReasons -> '$empty' : [] .notificationReason -> 'TimeOutToken' : onTimeOut .notificationReason -> 'InterruptByEventToken' : onInterruptByEvent .notificationReason -> 'InterruptByNewSignalsDescrToken' : onInterruptByNewSignalDescr .notificationReason -> 'OtherReasonToken' : otherReason .
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -