43
43
%%----------------------------------------------------------------------
45
45
%%----------------------------------------------------------------------
46
%% Number of expected shift/reduce warnings
47
%% This is ugly but...
48
%%----------------------------------------------------------------------
53
%%----------------------------------------------------------------------
47
55
%%----------------------------------------------------------------------
448
456
transactionPending -> 'PendingToken' 'EQUAL' transactionID 'LBRKT' 'RBRKT'
449
457
: #'TransactionPending'{transactionId = ensure_transactionID('$3') } .
459
%% OTP-4359: We have the first two rule's in order to be able
460
%% to handle chapter 8.1.1 in RFC3525
451
461
transactionRequest -> 'TransToken'
452
462
'LBRKT' actionRequest actionRequestList 'RBRKT'
453
463
: #'TransactionRequest'{transactionId = asn1_NOVALUE,
471
481
actionRequestItems -> 'COMMA' actionRequestItem actionRequestItems : ['$2' | '$3'] .
472
482
actionRequestItems -> '$empty' : [] .
474
actionRequestItem -> contextProperty : '$1'.
484
actionRequestItem -> contextProperty : '$1' .
475
485
actionRequestItem -> contextAudit : '$1' .
476
actionRequestItem -> commandRequest : '$1'.
486
actionRequestItem -> commandRequest : '$1' .
479
489
contextProperty -> topologyDescriptor : {topology, '$1'}.
480
490
contextProperty -> priority : {priority, '$1'}.
481
491
contextProperty -> 'EmergencyToken' : {emergency, true}.
492
contextProperty -> 'EmergencyOffToken' : {emergency, false}.
483
494
contextAudit -> 'ContextAuditToken'
484
495
'LBRKT' contextAuditProperty contextAuditProperties 'RBRKT'
496
: {contextAudit, ['$3' | '$4']} .
487
498
contextAuditProperties -> 'COMMA' contextAuditProperty contextAuditProperties
488
499
: ['$2' | '$3'] .
544
555
%Add Move and Modify have the same request parameter
545
556
ammRequest -> ammToken 'EQUAL' terminationID ammRequestBody :
557
Descs = merge_AmmRequest_descriptors('$4', []),
546
558
make_commandRequest('$1',
547
559
#'AmmRequest'{terminationID = ['$3'],
548
descriptors = '$4'}) .
560
descriptors = Descs}) .
550
562
ammToken -> 'AddToken' : {addReq, '$1'} .
551
563
ammToken -> 'MoveToken' : {moveReq, '$1'} .
561
573
ammParameter -> mediaDescriptor : {mediaDescriptor, '$1'}.
562
ammParameter -> modemDescriptor : {modemDescriptor, '$1'}.
574
ammParameter -> modemDescriptor : {modemDescriptor, deprecated}.
563
575
ammParameter -> muxDescriptor : {muxDescriptor, '$1'}.
564
576
ammParameter -> eventsDescriptor : {eventsDescriptor, '$1'}.
565
577
ammParameter -> eventBufferDescriptor : {eventBufferDescriptor, '$1'}.
588
600
optAuditDescriptor -> 'LBRKT' auditDescriptor 'RBRKT' : '$2'.
589
601
optAuditDescriptor -> '$empty' : asn1_NOVALUE .
591
auditRequest -> 'AuditValueToken' 'EQUAL' terminationID optAuditDescriptor
592
: make_commandRequest({auditValueRequest, '$1'},
593
#'AuditRequest'{terminationID = '$3',
594
auditDescriptor = '$4'}) .
595
auditRequest -> 'AuditCapToken' 'EQUAL' terminationID optAuditDescriptor
596
: make_commandRequest({auditCapRequest, '$1'},
597
#'AuditRequest'{terminationID = '$3',
598
auditDescriptor = '$4'}) .
603
auditRequest -> 'AuditValueToken' 'EQUAL'
604
terminationID optAuditDescriptor :
605
make_commandRequest({auditValueRequest, '$1'},
606
#'AuditRequest'{terminationID = '$3',
607
auditDescriptor = '$4'}) .
608
auditRequest -> 'AuditCapToken' 'EQUAL'
609
terminationID optAuditDescriptor :
610
make_commandRequest({auditCapRequest, '$1'},
611
#'AuditRequest'{terminationID = '$3',
612
auditDescriptor = '$4'}) .
600
614
auditReply -> 'AuditValueToken' 'EQUAL' 'CtxToken' contextTerminationAudit
601
615
: {auditValueReply, '$4'} .
625
639
auditReturnParameterList -> 'COMMA' auditReturnParameter auditReturnParameterList : ['$2' | '$3'] .
626
640
auditReturnParameterList -> '$empty' : [] .
628
%% at-most-once except errorDescriptor
629
642
auditReturnParameter -> mediaDescriptor : {mediaDescriptor, '$1'} .
630
auditReturnParameter -> modemDescriptor : {modemDescriptor, '$1'} .
643
auditReturnParameter -> modemDescriptor.
631
644
auditReturnParameter -> muxDescriptor : {muxDescriptor, '$1'} .
632
645
auditReturnParameter -> eventsDescriptor : {eventsDescriptor, '$1'} .
633
646
auditReturnParameter -> signalsDescriptor : {signalsDescriptor, '$1'} .
733
746
indAudlocalControlDescriptor -> 'LocalControlToken'
734
'LBRKT' indAudlocalParm 'RBRKT' :
735
merge_indAudLocalControlDescriptor('$3') .
747
'LBRKT' indAudlocalParm indAudlocalParmList 'RBRKT' :
748
merge_indAudLocalControlDescriptor(['$3'| '$4']) .
750
indAudlocalParmList -> 'COMMA' indAudlocalParm indAudlocalParmList : ['$2'| '$3'] .
751
indAudlocalParmList -> '$empty' : [] .
737
753
%% at-most-once per item
739
755
indAudlocalParm -> safeToken : ensure_indAudLocalParm('$1') .
865
878
deviceName -> pathName : {deviceName, '$1'} .
880
%% '-' is used for NULL context
867
881
contextID -> safeToken : ensure_contextID('$1') .
869
883
domainAddress -> 'LSBRKT' daddr 'RSBRKT' 'COLON' portNumber optSep
1208
1222
requestID -> safeToken : ensure_requestID('$1') .
1210
modemDescriptor -> 'ModemToken' 'EQUAL' modemType optPropertyParms :
1211
#'ModemDescriptor'{mtl = ['$3'],
1214
%% at-most-once of each modem type exept for extensionParameter
1224
%% Deprecated as of Corr 1
1225
modemDescriptor -> 'ModemToken' 'EQUAL' modemType optPropertyParms .
1215
1226
modemDescriptor -> 'ModemToken' 'LSBRKT' modemType modemTypeList 'RSBRKT'
1217
#'ModemDescriptor'{mtl = ['$3' | '$4'],
1220
modemTypeList -> 'COMMA' modemType modemTypeList : ['$2' | '$3'] .
1221
modemTypeList -> '$empty' : [] .
1228
modemTypeList -> 'COMMA' modemType modemTypeList.
1229
modemTypeList -> '$empty'.
1230
modemType -> safeToken.
1223
optPropertyParms -> 'LBRKT' propertyParm propertyParms 'RBRKT' : ['$2' | '$3'] .
1232
optPropertyParms -> 'LBRKT' propertyParm propertyParms 'RBRKT' :
1224
1234
optPropertyParms -> '$empty' : [] .
1226
1236
propertyParms -> 'COMMA' propertyParm propertyParms : ['$2' | '$3'] .
1229
1239
% parmName -> safeToken : ensure_NAME('$1') .
1231
modemType -> safeToken : ensure_modemType('$1').
1233
1241
%% The DigitMapDescriptorToken is specially treated by the scanner
1234
1242
digitMapDescriptor -> 'DigitMapDescriptorToken' :
1235
1243
ensure_DMD('$1') .
1237
%% ; at most of either serviceChangeAddress or serviceChangeMgcId but not both
1245
%% each parameter at-most-once, except auditItem
1246
%% at most one of either serviceChangeAddress or serviceChangeMgcId but
1247
%% not both. serviceChangeMethod and serviceChangeReason are REQUIRED
1238
1248
serviceChangeDescriptor -> 'ServicesToken'
1239
1249
'LBRKT' serviceChangeParm
1240
1250
serviceChangeParms 'RBRKT' :
1363
1373
safeToken -> 'DurationToken' : make_safe_token('$1') .
1364
1374
safeToken -> 'EmbedToken' : make_safe_token('$1') .
1365
1375
safeToken -> 'EmergencyToken' : make_safe_token('$1') .
1376
safeToken -> 'EmergencyOffToken' : make_safe_token('$1') .
1366
1377
safeToken -> 'ErrorToken' : make_safe_token('$1') .
1367
1378
%% v2-safeToken -> 'EventBufferToken' : make_safe_token('$1') .
1368
1379
%% v2-safeToken -> 'EventsToken' : make_safe_token('$1') .
1435
1446
safeToken -> 'TerminationStateToken' : make_safe_token('$1') .
1436
1447
safeToken -> 'TestToken' : make_safe_token('$1') .
1437
1448
safeToken -> 'TimeOutToken' : make_safe_token('$1') .
1449
safeToken -> 'TimeStampToken' : make_safe_token('$1') .
1438
1450
safeToken -> 'TopologyToken' : make_safe_token('$1') .
1439
1451
safeToken -> 'TransToken' : make_safe_token('$1') .
1440
1452
safeToken -> 'V18Token' : make_safe_token('$1') .