Re: Parser

2006-11-17 Thread Mikey

First, as far as Jeanne's status goes, I have several (three?  four?)
of the Waite Group's books on HC/HT still sitting on one of my
bookshelves...somewhere.  Jeanne's contributions to Tricks of the
HyperTalk Masters were invaluable in my ability to finish my Senior
year Independent Research project and ultimately get my TA ride for
grad school, my internship, and my first consulting gig.

Please reread last post.  I am not arguing that RR is better or worse
than HC (in this thread anyway).  The post specifically refutes
Jeanne's argument that the syntax permitted in HT is wrong.  It would
seem to me that if y'all thought the syntax was a mistake then it
should have been addressed somewhere.  As it is, I don't recall seeing
anything from The Big Three that would, but then again, there were
only tens of thousands of pages written on HC and HT, and I can't
remember all of them...

I'm also not arguing that the language shouldn't evolve.  I am
bemoaning the fact that the syntax is more rigid in some areas.
However, the syntax issues are just an annoyance compared to some of
the bugs in the IDE.

For all of that, it's still light years better than having to use C++ every day.
--
On the first day, God created the heavens and the Earth
On the second day, God created the oceans.
On the third day, God put the animals on hold for a few hours,
  and did a little diving.
And God said, This is good.
___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Parser

2006-11-17 Thread Richard Gaskin

Mikey wrote:

I'm also not arguing that the language shouldn't evolve.  I am
bemoaning the fact that the syntax is more rigid in some areas.


It may be helpful to remember two things as you encounter Rev's slightly 
more rigid syntax relative to HyperCard's:


1. It's a heckuva lot less rigid than C or even Java.

2. It's never done without unquestionably significant benefit to 
performance.


While noble efforts have been made to support even HC-specific 
constructs like marked cards, as well as most of the flexibility of 
xTalks in general, the few areas where Transcript is less forgiving 
represent in each case a very well-thought-out decision to take 
advantage of an opportunity for optimization.


The result is an engine that offers what is arguably the best 
performance of any xTalk, often by several times and sometimes by a few 
orders of magnitude.


So yes, using Transcript effectively means acquiring a very modest level 
of coding discipline over what was required with HyperTalk, but the 
benefits far outweigh the effort.


--
 Richard Gaskin
 Managing Editor, revJournal
 ___
 Rev tips, tutorials and more: http://www.revJournal.com
___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Parser

2006-11-16 Thread Chipp Walters

Mikey,

Try Googling:
Jeanne Devoto HyperCard

You may see she has more to say on the subject than even Danny.


At 5:21 PM -0500 11/15/2006, Mikey wrote:


Since HT was the original root of this tree, I think it's a little
unreasonable to say that it's incorrect or a mistake, unless Bill
Atkinson or Dan WInkler say so.  However for the sake of argument, I
would at least consider the same criticism from Danny Goodman.



___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Parser

2006-11-16 Thread J. Landman Gay

Chipp Walters wrote:

Mikey,

Try Googling:
Jeanne Devoto HyperCard

You may see she has more to say on the subject than even Danny.


Heh. :) When I was working with the HC team at Apple, creating the test 
engine for the (theoretical) HC 3.0, we used the book that Jeanne 
co-authored as a reference.


--
Jacqueline Landman Gay | [EMAIL PROTECTED]
HyperActive Software   | http://www.hyperactivesw.com
___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Parser

2006-11-15 Thread Jeanne A. E. DeVoto

At 9:54 AM -0600 11/14/2006, Ken Ray wrote:

 (and that the is anal-required)


For properties, yes, but most functions have a () alternative.



All functions, actually. (A few built-in functions won't take the 
the form; all of them have a () form. And of course custom 
functions require ().)


As for properties: correct syntax for all xTalk variants I know of is 
to precede the property name with the. An expression such as get 
hilite of me is not correct HyperTalk. It's true that HyperTalk is 
looser about this particular mistake (and others) than Transcript - 
I'm not sure about SuperTalk - but that doesn't mean it was right 
in HyperCard. HyperCard is forgiving about a number of syntax 
mistakes, which is good (because the script can be executed anyway) 
yet bad (because it promotes the development of bad habits).


You could develop an xTalk that drops the before properties, but 
then you have a serious name-collision problem shaping up, so I'm not 
sure that's such a hot idea. It's only four characters, and it makes 
the reference unambiguous.

--
jeanne a. e. devoto ~ [EMAIL PROTECTED]
http://www.jaedworks.com
___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Parser

2006-11-15 Thread Mikey

 An expression such as get
hilite of me is not correct HyperTalk. It's true that HyperTalk is
looser about this particular mistake (and others) than Transcript -


Since HT was the original root of this tree, I think it's a little
unreasonable to say that it's incorrect or a mistake, unless Bill
Atkinson or Dan WInkler say so.  However for the sake of argument, I
would at least consider the same criticism from Danny Goodman.
___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Parser

2006-11-15 Thread Kay C Lan

On 11/16/06, Jeanne wrote:


  An expression such as get
 hilite of me is not correct HyperTalk. It's true that HyperTalk is
 looser about this particular mistake (and others) than Transcript -



On 11/16/06, Mikey [EMAIL PROTECTED] replied:

Since HT was the original root of this tree, I think it's a little

unreasonable to say that it's incorrect or a mistake, unless Bill
Atkinson or Dan WInkler say so.



Hmmm.  As neither Bill or Dan are pruning, watering or even sitting under
that tree anymore it's all seems to be personal perception of history.

Today though, IMHO, the HyperCard tree is looking really really sick and
it's roots, well they're shriveled up and I don't expect to see any new
growth (v3.0) in my life time.

What I do know is someone thoughtfully removed the 'best' branches off the
HC tree and grafted them onto some new roots - Rev. The Rev tree is similar
to the HC tree, but not the same. The Rev tree is easy to work with, but not
as easy as the HC tree. IMHO the Rev tree is looking very healthy, it's
roots are strong and seem to be able to produce new growth on a regular
basis (might just be able to hold my breath until 2.7.5 arrives:-) There's a
whole heap of additional branches on the Rev tree that weren't on the old HC
tree - DB support, xplatform, etc. Unfortunately with so much growth some of
the fruit produced is inedible - there's bugs. Fortunately a new husbandman
has been hired (Bill) specifically to reduce the bug population.

They're different, you can spend your time trying to make Rev be HC, or you
can learn to think Rev - I suggest you choose the latter as it won't take
too long:-)
___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Parser

2006-11-15 Thread Jeanne A. E. DeVoto

At 5:21 PM -0500 11/15/2006, Mikey wrote:

  An expression such as get
 hilite of me is not correct HyperTalk. It's true that HyperTalk is
 looser about this particular mistake (and others) than Transcript -


Since HT was the original root of this tree, I think it's a little
unreasonable to say that it's incorrect or a mistake, unless Bill
Atkinson or Dan WInkler say so.  However for the sake of argument, I
would at least consider the same criticism from Danny Goodman.



From Danny Goodman, but not from me? Mikey, you're hurting my feelings. ;-)
--
jeanne a. e. devoto ~ [EMAIL PROTECTED]
http://www.jaedworks.com
___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Parser

2006-11-14 Thread Jim Ault



On 11/14/06 7:30 AM, Mikey [EMAIL PROTECTED] wrote:

 Is the parsing code for the script editor available somewhere?  I'm
 betting the answer is no, but I thought I'd ask.
 
 The fact that comment double-dash can't terminate a keyword (and that
 the is anal-required) is something I would like to address as long
 as I'm playing around.

I always use a space before my comment characters, so I have not discovered
this quirk.  The one quirk I have to watch out for is:

--on mouseup
--   do something useful
--end mouseUp
= and now the script parser does not ignore the 'on', yet won't run the
script either.  
--o n mouseUp  ##does work
--   do something useful
--e nd mouseUp

This technique does work:

/*
on mouseup
   do something useful
end mouseUp 
*/

(and that the is anal-required)
Now here you are going to run into a significant difficulty.  The xTalk
object model and syntax is based on using 'the' as part of many references.
If this bothers you, then you are probably going to do quite a bit of
wrestling with xTalk coding to either save keystrokes, or make your code
look more concise, or have xTalk look more like another language. I think
most everyone starts off thinking 'why so verbose?'

Hang in there.  Before long, it will just be part of what you do.

You could build your own library of short hand

function numCds
   return the number of cards
end numCds

function numI string, del
   set the itemDel to del
   return the number of items in string
end numI

Jim Ault
Las Vegas


___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Parser

2006-11-14 Thread Mikey

Jim,

Is there really an xTalk standard?  xTalk is an invention of this
group to describe the various descendants of HyperTalk.  I have never
seen a standard, as the dialects can be somewhat different.  HT
never required the, and to my recollection, neither did SuperCard.
If there is a standard then I want the name of whomever the Keeper
of the Standard is, since the Revolution grammar has some restrictions
that I would like to have addressed.

Generally the the does not get me into trouble, since I tend to not
use abbreivations either, but it does, on occasion.

As for getting used to it, I've been developing in HC since (almost)
day 1, which was just about 20 years ago, and I still have multiple
production systems running on old Quadras that still use it, so I am
working in it frequently.

However, since I have a new fascination with the potential ability to
hack (and therefore fix some of the things in) RR, the quirks and
annoyances of it lead me to ask these sorts of questions.  RR has its
advantages over HC, but it also has nagging issues and bugs that are
still in play.

--
On the first day, God created the heavens and the Earth
On the second day, God created the oceans.
On the third day, God put the animals on hold for a few hours,
  and did a little diving.
And God said, This is good.
___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Parser

2006-11-14 Thread Mikey

I have gotten in the habit of doing this over the last 20 years:

if something then
.
.
.
else--not(something)
.
.
.
end if--something

HC and other tools that I've used since have all figured out that the
keyword ends where the comment begins, and have just inserted the
space.

--
On the first day, God created the heavens and the Earth
On the second day, God created the oceans.
On the third day, God put the animals on hold for a few hours,
  and did a little diving.
And God said, This is good.
___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Parser

2006-11-14 Thread Ken Ray
On 11/14/06 10:38 AM, Mikey [EMAIL PROTECTED] wrote:

 Is there really an xTalk standard?  xTalk is an invention of this
 group to describe the various descendants of HyperTalk.

Actually, it was invented long before this group was around (I remember it
being used during the HyperCard days (even before SuperCard/MetaCard) when
talking about how Asymetrix Toolbook was a variation of the HyperTalk
language.)

 I have never seen a standard, as the dialects can be somewhat different.
 HT never required the, and to my recollection, neither did SuperCard.

Once again, required for *what* - for functions? object properties? global
properties? something else?

AFAIK all variations/expansions of the HyperTalk dialect have their own
pecadillos, even SuperCard. :-)

Ken Ray
Sons of Thunder Software, Inc.
Web site: http://www.sonsothunder.com/
Email: [EMAIL PROTECTED]


___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Parser

2006-11-14 Thread Mikey

Ken,
I believe it's generally for properties.  Functions if I recall
correctly don't require it.  I have to play with it again.

--
On the first day, God created the heavens and the Earth
On the second day, God created the oceans.
On the third day, God put the animals on hold for a few hours,
  and did a little diving.
And God said, This is good.
___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Parser

2006-11-14 Thread Ken Ray
On 11/14/06 9:30 AM, Mikey [EMAIL PROTECTED] wrote:

 Is the parsing code for the script editor available somewhere?  I'm
 betting the answer is no, but I thought I'd ask.

No, this is in the compiled engine AFAIK.
 
 The fact that comment double-dash can't terminate a keyword

Can you give an example of what you mean?

 (and that the is anal-required)

For properties, yes, but most functions have a () alternative. For example:

  put the charToNum of A
  put charToNum(A)


Ken Ray
Sons of Thunder Software, Inc.
Web site: http://www.sonsothunder.com/
Email: [EMAIL PROTECTED]


___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Parser

2006-11-14 Thread Richard Gaskin

Mikey wrote:

Is there really an xTalk standard?


xTalk is a generic term used to describe all of these related 
languages collectively (HyperTalk, SuperTalk, OpenScript, MetaTalk, etc.).


The commonalities among them form a de facto standard, with additional 
weight usually given to HyperTalk in honor of its role as the mother 
tongue.


I have never seen a standard, as the dialects can be somewhat different. 


Yes, there's little point in making a new product which does everything 
exactly the same as an existing product.  SuperCard was the first 
dialect, and since it allowed multiple windows within a single file, had 
integrated color, etc., its language had to extend the original 
HyperTalk.  MetaTalk (which we're using now in Rev under a new name) 
added even more to the object model which required new tokens, and 
introduced new language features like repeat for each, binary tokens, etc.



HT never required the, and to my recollection, neither did SuperCard.


Regardless of what other program have done, in Rev the is required for 
properties.  Many of us got into the habit even when using HC if only to 
make the scripts a tad more readable.   Either way, the habit is easily 
gained with a little practice.


It may help to note why this is required in Rev.  I was talking about 
this with Jacque, and she reminded me of Scott Raney's fetish for 
reducing the branches in the token lookup table.


You've probably noticed that most things in Rev run several times faster 
than in HC.  This is not merely some nifty compiler optimization, it's a 
product of the language design.


By requiring the before accessing properties, the engine can know it 
only needs to look through the tokens for properties and functions, 
whereas HyperCard needs to also look through all variables.


This is just one of a number of places where Rev is slightly less 
flexible than HypeCard, many of which are outlined in Jacque's helpful 
article on converting from HC:

http://www.hyperactivesw.com/mctutorial/index.html

While Rev is a tad more rigid, in practice I think you'll find the 
modest learning curve more than pays for itself with much greater 
performance.




If there is a standard then I want the name of whomever the Keeper
of the Standard is, since the Revolution grammar has some restrictions
that I would like to have addressed.


As a de facto standard there is no single keeper.

As for Rev, if you want to suggest changes the mechanism for logging 
those requests is Bugzilla:

http://support.runrev.com/bugzilla/bugzilla.php

--
 Richard Gaskin
 Fourth World Media Corporation
 ___
 [EMAIL PROTECTED]   http://www.FourthWorld.com
___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Parser

2006-11-14 Thread J. Landman Gay

Mikey wrote:


As for getting used to it, I've been developing in HC since (almost)
day 1, which was just about 20 years ago, and I still have multiple
production systems running on old Quadras that still use it, so I am
working in it frequently.

However, since I have a new fascination with the potential ability to
hack (and therefore fix some of the things in) RR, the quirks and
annoyances of it lead me to ask these sorts of questions.


I've thought for a long time that the people who have the hardest time 
converting over to Revolution are old HC users. Folks who come from 
other backgrounds expect to relearn a lot of stuff. But Rev is so very 
similar to HC in so many ways, that the few things that are different 
make us HC converts very frustrated. We have an unlearning curve. It 
took me months to get over it, because things that I thought should work 
would *almost* work, but they worked a little differently.


But once you get past the unlearning curve, you do start to appreciate 
Rev and eventually you start to realize that if you'd written the engine 
yourself, you might have done it the same way in a lot of cases. For 
example, if  you leave off the thes for properties, the engine has to 
do more work to parse out what you mean. HC was much slower than Rev, 
and a lot of that was due to the forgiving nature of HC's interpreter. 
Rev is less forgiving, but very much faster.


Unquoted literals are another one. HC would accept almost anything as an 
unquoted literal and that slowed it down a lot. Rev isn't so nice about 
it. There are some situations where an unquoted literal will work fine, 
but in general it's a lot more picky about those. The increase in speed 
is the reward.


You'll hit some roadblocks and get mad, but there is only one unlearning 
curve and it only takes a little while.


Regarding hacking the IDE: I'd advise against it. It's a tightly 
integrated system. A better way to implement what you want to do is to 
write your own stack and put the handlers in it that you want to use. 
Then pop your stack into the Plugins folder and set it to activate when 
Rev starts up (the list can help with that if you don't know how.) I did 
that with all the HC Home stack scripts that I wanted to move over to 
Rev. I didn't move them all though. For example, I didn't move the 
message box shortcuts to get into the property inspector, since Rev 
provides multiple ways to open an inspector. But I did move most of my 
custom Home scripts into a plugin where they work just as they did in HC.


--
Jacqueline Landman Gay | [EMAIL PROTECTED]
HyperActive Software   | http://www.hyperactivesw.com
___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution