Subject: IG 6.79 "Cancelling Event Detection" breaks ABNF

From: Troy Cauble <[email-masked]>
Date: Thu, 07 Jun 2001 11:45:32 -0400

Greetings,

IG 6.79 introduces the square brackets in the ABNF syntax below.

   eventsDescriptor     = EventsToken [ EQUAL RequestID LBRKT
                         requestedEvent *( COMMA requestedEvent ) RBRKT ]

and similar changes to "embedFirst" and "eventBufferDescriptor".

The token-only representations for empty descriptors are indistingushable 
from the auditItem tokens in an auditReturnParameter/terminationAudit.

(That is, when parsing a terminationAudit, you can't tell if an 
EventsToken is an empty eventsDescriptor or an auditItem.)

   auditItem            = ( MuxToken / ModemToken / MediaToken /
                           SignalsToken / EventBufferToken /
                           DigitMapToken / StatsToken / EventsToken /
                           ObservedEventsToken / PackagesToken )

   auditReturnParameter = (mediaDescriptor / modemDescriptor /
                           muxDescriptor / eventsDescriptor /
                           signalsDescriptor / digitMapDescriptor /
                     observedEventsDescriptor / eventBufferDescriptor /
                           statisticsDescriptor / packagesDescriptor /
                            errorDescriptor / auditItem )

   terminationAudit     = auditReturnParameter *(COMMA
                        auditReturnParameter)

One fix would be to change the empty descriptor syntax to "Token { }"
or "Token = { }".

   eventsDescriptor     = (EventsToken EQUAL RequestID LBRKT
                         requestedEvent *( COMMA requestedEvent ) RBRKT) /
			   (EventsToken LBRKT RBRKT)

With similar changes for "embedFirst" and "eventBufferDescriptor".

-troy