Subject: Re: MEGACO reserved names

From: Brian Rosen <[email-masked]>
Date: Fri, 29 Oct 1999 14:50:09 -0400

While I'm not violently against this, I don't think it
is helpful to do it.  The rule that drives the design of
the parser is that two packages can have the same itemName.
I can declare foo in PackA, and also declare foo in PackB.
PackB/foo and PackA/foo are different.  Your parser has to
deal with this.  That means that the symbols in the symbol
table are lexically dependent on prior parsing.  You get no
advantage out of knowing that DC (the serviceChange reason) can't occur in
togen (as in togen/dc, the C DTMF tone).

Brian

> -----Original Message-----
> From: Abdallah Rayhan [mailto:[email-masked]]
> Sent: Friday, October 29, 1999 11:55 AM
> To: [email-masked]
> Subject: MEGACO reserved names
>
>
> I propose make the following tokens reserved in MEGACO.
> This means that they can not be used as stand alone names, e.g.,
> PackageName = NAME and ItemID = NAME can not use any
> reserved names.
>
> The reason for this is that it would simplify parsing and
> make it easier to
> detect ambiguous and syntactically incorrect expressions.
>
> These names are:
> from DigitMapValue: "T", "S", and "L"
> from digitMapLetter: "A","B","C","D","S","L",
> "K0","K1","K2","S0","S1","S2", and
> "S3"
>
> the rest are,
>
> ActionToken                = ("Action"                | "AN")
> AccumulateToken            = ("Accumulate"            | "AM")
> AddToken                   = ("Add"                   | "A")
> AuditToken                 = ("Audit"                 | "AT")
> AuditCapToken              = ("AuditCapability"       | "AC")
> AuditValueToken            = ("AuditValue"            | "AV")
> AuthToken                  = ("Authentication"        | "AU")
> BothwayToken               = ("Bothway"               | "BW")
> BriefToken                 = ("Brief"                 | "BR")
> BufferedEventHandlingToken = ("BufferedEventHandling" | "BE")
> CtxToken                   = ("Context"               | "C")
> DigitMapToken              = ("DigitMap"              | "DM")
> DiscardToken               = ("Discard"               | "DS")
> DisconnectedToken          = ("Disconnected"          | "DC")
> DelayToken                 = ("Delay"                 | "DL")
> DeleteToken                = ("Delete"                | "DE")
> DurationToken              = ("Duration"              | "DR")
> EmergencyToken             = ("Emergency"             | "EM")
> ErrorToken                 = ("Error"                 | "ER")
> EventsDescriptorToken      = ("Events"                | "E")
> FailoverToken              = ("Failover"              | "FL")
> ForcedToken                = ("Forced"                | "FO")
> GracefulToken              = ("Graceful"              | "GR")
> H221Token                  = ("H221" )
> H223Token                  = ("H223" )
> H226Token                  = ("H226" )
> HandOffToken               = ("HandOff"               | "HO")
> InactiveToken              = ("Inactive"              | "IN")
> IsolateToken               = ("Isolate"               | "IS")
> InSvcToken                 = ("InService"             | "IV")
> KeepActiveToken            = ("KeepActive"            | "KA")
> LocalToken                 = ("Local"                 | "L")
> LocalControlToken          = ("LocalControl"          | "O")
> LoopbackToken              = ("Loopback"              | "LB")
> LoopToken                  = ("Loop"                  | "LP")
> MediaToken                 = ("Media"                 | "M")
> MegacopToken               = ("MEGACO"                | "!")
> MethodToken                = ("Method"                | "MT")
> MgcIdToken                 = ("MgcIdToTry"            | "MG")
> ModeToken                  = ("Mode"                  | "MO")
> ModifyToken                = ("Modify"                | "MF")
> ModemToken                 = ("Modem"                 | "MD")
> MoveToken                  = ("Move"                  | "MV")
> MuxToken                   = ("Mux"                   | "MX")
> NotifyActionToken          = ("NotifyAction"          | "NA")
> NotifyToken                = ("Notify"                | "N")
> ObservedEventsToken        = ("ObservedEvents"        | "OE")
> OnewayToken                = ("Oneway"                | "OW")
> OnOffToken                 = ("OnOff"                 | "OO")
> OutOfSvcToken              = ("OutOfService"          | "OS")
> PackagesToken              = ("Packages"              | "PG")
> PendingToken               = ("Pending"               | "PN")
> PriorityToken              = ("Priority"              | "PR")
> ProcessToken               = ("Process"               | "PC")
> ProfileToken               = ("Profile"               | "PF")
> ReasonToken                = ("Reason"                | "RE")
> RecvonlyToken              = ("ReceiveOnly"           | "RC")
> ReplyToken                 = ("Reply"                 | "P")
> RestartToken               = ("Restart"               | "RS")
> RemoteToken                = ("Remote"                | "R")
> SdpToken                   = ("SDP"                   | "D")
> SignalsDescriptorToken     = ("Signals"               | "SG")
> SignalListToken            = ("SignalList"            | "SL")
> SignalTypeToken            = ("SignalType"            | "SY")
> SendonlyToken              = ("SendOnly"              | "SO")
> SendrecvToken              = ("SendReceive"           | "SR")
> ServicesToken              = ("Services"              | "SV")
> ServiceStatesToken         = ("ServiceStates"         | "SI")
> ServiceChangeToken         = ("ServiceChange"         | "SC")
> ServiceChangeAddressToken  = ("ServiceChangeAddress"  | "AD")
> StatsToken                 = ("Statistics"            | "SA")
> StepToken                  = ("Step"                  | "SP")
> StreamToken                = ("Stream"                | "ST")
> SubtractToken              = ("Subtract"              | "S")
> SynchISDNToken             = ("SynchISDN"             | "SN")
> TagValueToken              = ("TagValue"              | "TV")
> TerminationStateToken      = ("TerminationState"      | "TS")
> TestToken                  = ("Test"                  | "TE")
> TimeOutToken               = ("TimeOut"               | "TO")
> TopologyToken              = ("Topology"              | "TP")
> TransToken                 = ("Transaction"           | "T")
> V18Token                   = ("V18")
> V22Token                   = ("V22")
> V22bisToken                = ("V22b")
> V32Token                   = ("V32")
> V32bisToken                = ("V32b")
> V34Token                   = ("V34")
> V90Token                   = ("V90")
> V91Token                   = ("V91")
>
> regards
> Abdallah Rayhan
>

---

From: Abdallah Rayhan <[email-masked]>
Date: Fri, 29 Oct 1999 15:01:55 -0400

What I want to say is that, you can not use package name called
"ServiceChange" because it is a token. Same thing applies to
ItemName, .e.g, ItemName can not be "Transaction". If two packages
define the same ItemName, then we dont care as long as the package
name is qualified. Package names and item names are not reserved
as far as the grammar/parsing is considered but unique when registered
which is another issue. Packages are similar to libraries where you can have
more than one library with same name. It does not affect the compiler a bit.

Abdallah