[215] in Coldmud discussion meeting

root meeting help first first in chain previous in chain previous next last

Re: match_template() needs help with consistancy

daemon@ATHENA.MIT.EDU (Thu Apr 28 14:59:36 1994 )

Date: Thu, 28 Apr 1994 12:12:03 -0600 (MDT)
From: the Lyncx <BRANDON@cc.usu.edu>
To: coldstuff@MIT.EDU
X-Vms-To: COLDSTUFF

<>> * The user generally doesn't want any processing to get in the way
<>> when it's not necessary; therefore, no processing at all is done on
<>> the last argument.
<
<> This is bad.  It is bad quite simply because it means parsing is
<> handled differently in some cases than in others and it's not always
<> immediately obvious which is which.  Rules should be consistent for
<> the entire match or not exist at all.
<
< I disagree.  For user-level parsing, the primary job of the parser is
< to keep its nose out of the user's business (for examples of parsers
< which forget this rule, see Mush).  Consistency is secondary; the user
< spends a lot of time in the parser and will learn its rules quickly
< enough.

I think Consistency is not secondary, when a user finds that rules apply only
in some circumstances and not others, they instantly begin to think it is
worlds more complex than it is.  By getting a base level of consistancy it is
much easier to comprehend to a beginning user, especially the non-computer
literate type.

<> No, MOO parsing does not function this way (iobjstr quoting is
<> handled exactly the same as dobjstr quoting, the way it should be),
<> nor does anything else that I am familiar with.
<
< You are correct; it is Coolmud's verb-dobj-prep-iobj parsing which
< works the same way as Coldmud's "verb * prep *" template matching.
<
< Here are some examples of user commands which show why I prefer the
< "quote the whole argument or none of it" rule.
<
<	@desc here as A sign on the road says, "Burma Shave."
<	whisper The spy told me, "Ken sent me." to dave
<
< MOO mangles both of these.

This is true, I had not considered it.  How about using some less common
character for specifying what should only be used as a wild match?  This would
be somewhat against norms, but it would be easier.  Perhaps a `text` which is
rarely ever used in writing, I would say ' but its nearly as common as " ...
(i.e.):

     "f * dd * z"    "f `dd f` dd f z"   => ["f", "dd f", "dd", "f", "z"]

Just a thought.