⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 megaco_text_parser_prev3b.yrl

📁 OTP是开放电信平台的简称
💻 YRL
📖 第 1 页 / 共 5 页
字号:
    'AuditValueToken'    'AuthToken'    'BothToken'                       %% v3     'BothwayToken'    'BriefToken'    'BufferToken'    'COLON'    'COMMA'    'ContextAttrToken'                %% v3     'ContextAuditToken'    'ContextListToken'                %% v3     'CtxToken'    'DelayToken'    'DigitMapToken'    'DigitMapDescriptorToken'    'DirectionToken'                  %% v3     'DiscardToken'    'DisconnectedToken'    'DurationToken'    'EQUAL'    'EmbedToken'    'EmergencyToken'    'EmergencyOffToken'    'ErrorToken'    'EventBufferToken'    'EventsToken'    'ExternalToken'                   %% v3     'FailoverToken'    'ForcedToken'    'GREATER'    'GracefulToken'    'H221Token'    'H223Token'    'H226Token'    'HandOffToken'    'IEPSToken'                       %% v3    'ImmAckRequiredToken'    'InSvcToken'    'InactiveToken'    'InternalToken'                   %% v3     'InterruptByEventToken'    'InterruptByNewSignalsDescrToken'    'IsolateToken'    'KeepActiveToken'    'LBRKT'    'LESSER'    'LSBRKT'    'LocalControlToken'    'LocalDescriptorToken'    'LockStepToken'    'LoopbackToken'    'MediaToken'    %% 'MegacopToken'    'MethodToken'    'MgcIdToken'    'ModeToken'    'ModemToken'    'ModifyToken'    'MoveToken'    'MtpAddressToken'    'MuxToken'    'NEQUAL'    'NotifyCompletionToken'    'NotifyToken'    'Nx64Token'  %% v2    'ObservedEventsToken'    'OffToken'    'OnToken'    'OnOffToken'    'OnewayToken'    'OtherReasonToken'    'OutOfSvcToken'    'PackagesToken'    'PendingToken'    'PriorityToken'    'ProfileToken'    'QuotedChars'    'RBRKT'    'RSBRKT'    'ReasonToken'    'RecvonlyToken'    'RemoteDescriptorToken'    'ReplyToken'    'RequestIDToken'                  %% v3     'ReservedGroupToken'    'ReservedValueToken'    'ResponseAckToken'    'RestartToken'    'SEP'    'SafeChars'    'SendonlyToken'    'SendrecvToken'    'ServiceChangeAddressToken'    'ServiceChangeToken'    'ServiceChangeIncompleteToken'    'ServiceStatesToken'    'ServicesToken'    'SignalListToken'    'SignalTypeToken'    'SignalsToken'    'StatsToken'    'StreamToken'    'SubtractToken'    'SynchISDNToken'    'TerminationStateToken'    'TestToken'    'TimeOutToken'    'TimeStampToken'    'TopologyToken'    'TransToken'    'V18Token'    'V22Token'    'V22bisToken'    'V32Token'    'V32bisToken'    'V34Token'    'V76Token'    'V90Token'    'V91Token'    'VersionToken'    endOfMessage.%%----------------------------------------------------------------------%% Root symbol%%----------------------------------------------------------------------Rootsymbol megacoMessage.%%----------------------------------------------------------------------%% The grammar%%----------------------------------------------------------------------%% megacoMessage        = LWSP [authenticationHeader SEP ] message%% authenticationHeader = AuthToken EQUAL SecurityParmIndex COLON%%                        SequenceNum COLON AuthData%%                      %% SecurityParmIndex    = "0x" 8(HEXDIG)%% SequenceNum          = "0x" 8(HEXDIG)%% AuthData             = "0x" 24*64(HEXDIG)%% message              = MegacopToken SLASH version SEP mId SEP messageBody%% version              = 1*2(DIGIT) .megacoMessage        -> optSep authenticationHeader message endOfMessage                            : #'MegacoMessage'{authHeader = '$2', mess = '$3'} .optSep               -> 'SEP'    : sep .optSep               -> '$empty' : no_sep .authenticationHeader -> 'AuthToken' 'EQUAL' safeToken 'COLON'                            safeToken 'COLON' safeToken optSep                            : ensure_auth_header('$3', '$5', '$7') .authenticationHeader -> '$empty' : asn1_NOVALUE .message              -> safeToken mId messageBody : ensure_message('$1', '$2', '$3') .messageBody          -> errorDescriptor : {messageError, '$1'} .messageBody          -> transactionList : {transactions, '$1'} .transactionList      -> transactionItem : ['$1'] .transactionList      -> transactionItem transactionList : ['$1' | '$2'] .transactionItem      -> transactionRequest      : {transactionRequest,     '$1'} .transactionItem      -> transactionReply        : {transactionReply,       '$1'}.transactionItem      -> transactionPending      : {transactionPending,     '$1'} .transactionItem      -> transactionResponseAck  : {transactionResponseAck, '$1'} .transactionResponseAck -> 'ResponseAckToken'                          'LBRKT' transactionAck transactionAckList 'RBRKT' : ['$3' | '$4'] .transactionAckList   -> 'COMMA' transactionAck transactionAckList : ['$2' | '$3'] .transactionAckList   -> '$empty' : [] .transactionAck       -> safeToken : ensure_transactionAck('$1') .transactionPending   -> 'PendingToken' 'EQUAL' transactionID 'LBRKT' 'RBRKT'                            : #'TransactionPending'{transactionId = ensure_transactionID('$3') } .transactionRequest   -> 'TransToken'                         'LBRKT'  actionRequest actionRequestList 'RBRKT'                            : #'TransactionRequest'{transactionId = asn1_NOVALUE,                                                    actions = ['$3' | '$4']} .transactionRequest   -> 'TransToken' 'EQUAL'                         'LBRKT'  actionRequest actionRequestList 'RBRKT'                            : #'TransactionRequest'{transactionId = asn1_NOVALUE,                                                    actions = ['$4' | '$5']} .transactionRequest   -> 'TransToken' 'EQUAL' transactionID                        'LBRKT'  actionRequest actionRequestList 'RBRKT'                            : #'TransactionRequest'{transactionId = ensure_transactionID('$3'),                                                    actions = ['$5' | '$6']} .actionRequestList    -> 'COMMA' actionRequest actionRequestList : ['$2' | '$3'] .actionRequestList    -> '$empty' : [] .actionRequest        -> 'CtxToken' 'EQUAL' contextID                        'LBRKT' actionRequestBody 'RBRKT'                        : merge_action_request('$3', '$5') .actionRequestBody    -> actionRequestItem actionRequestItems : ['$1' | '$2'] .    actionRequestItems   -> 'COMMA' actionRequestItem actionRequestItems                          : ['$2' | '$3'] .actionRequestItems   -> '$empty' : [] .%% actionRequestItem    -> contextProperties : '$1' .actionRequestItem    -> contextProperty : {contextProp,    '$1'} .actionRequestItem    -> contextAudit    : {contextAudit,   '$1'} .actionRequestItem    -> commandRequest  : {commandRequest, '$1'} .%% contextProperties     -> contextProperty contextPropertyList : %%                          merge_context_request(#'ContextRequest'{}, ['$1' | '$2']) .%% contextPropertyList   -> 'COMMA' contextProperty contextPropertyList : ['$2' | '$3' ] .%% contextPropertyList   -> '$empty' : [] .%% at-most-oncecontextProperty      -> topologyDescriptor    : {topology,    '$1'}.contextProperty      -> priority              : {priority,    '$1'}. contextProperty      -> 'EmergencyToken'      : {emergency,   true}.contextProperty      -> 'EmergencyOffToken'   : {emergency,   false}.contextProperty      -> iepsValue             : {iepsCallind, '$1'} .  contextProperty      -> contextAttrDescriptor : '$1' .contextAttrDescriptor -> 'ContextAttrToken' 'LBRKT' propertyParms 'RBRKT' :                          {contextProp, '$3'}.contextAttrDescriptor -> 'ContextAttrToken' 'LBRKT' contextIdList 'RBRKT' :                          {contextList, '$3'}.contextIdList -> 'ContextListToken' 'EQUAL'                  'LBRKT' contextID contextIDs 'RBRKT' : ['$4' | '$5'] .contextIDs -> 'COMMA' contextID contextIDs : ['$2' | '$3'] .contextIDs -> '$empty' : [] .    contextAudit -> 'ContextAuditToken' 'LBRKT' indAudcontextAttrDescriptor 'RBRKT'                : merge_context_attr_audit_request(                         #'ContextAttrAuditRequest'{}, '$3') .indAudcontextAttrDescriptor -> 'ContextAttrToken'                                'LBRKT' contextAuditProperty                                        contextAuditProperties 'RBRKT'                                : ['$3' | '$4'] .contextAuditProperties -> 'COMMA' contextAuditProperty contextAuditProperties                            : ['$2' | '$3'] .contextAuditProperties -> '$empty' : [] .%% at-most-once .contextAuditProperty -> 'TopologyToken'  : topologyAudit .contextAuditProperty -> 'EmergencyToken' : emergencyAudit .contextAuditProperty -> 'PriorityToken'  : priorityAudit .contextAuditProperty -> 'IEPSToken'      : iepsCallind .contextAuditProperty -> pkgdName         : {prop, '$1'} .commandRequest       -> ammRequest             : '$1'.commandRequest       -> subtractRequest        : '$1'.commandRequest       -> auditRequest           : '$1'.commandRequest       -> notifyRequest          : '$1'.commandRequest       -> serviceChangeRequest   : '$1'.transactionReply     -> 'ReplyToken' 'EQUAL' transactionID 			    'LBRKT'			        optImmAckRequired transactionReplyBody                            'RBRKT'			    : #'TransactionReply'{transactionId     = '$3',						  immAckRequired    = '$5',						  transactionResult = '$6'} .optImmAckRequired    -> 'ImmAckRequiredToken' 'COMMA' : 'NULL' .optImmAckRequired    -> '$empty' : asn1_NOVALUE .     transactionReplyBody -> errorDescriptor              : {transactionError, '$1'} .transactionReplyBody -> actionReply actionReplyList  : {actionReplies, ['$1' | '$2']} .actionReplyList      -> 'COMMA' actionReply actionReplyList  : ['$2' | '$3'] .actionReplyList      -> '$empty' : [] .actionReply          -> 'CtxToken' 'EQUAL' contextID                         'LBRKT' actionReplyBody 'RBRKT' :                         setelement(#'ActionReply'.contextId, '$5', '$3') .actionReplyBody      -> errorDescriptor :                          #'ActionReply'{errorDescriptor = '$1'} .actionReplyBody      -> commandReplys commandReplyList :                         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' terminationID 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'} .

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -