Larry Wall wrote:
> On Tue, Jul 10, 2007 at 04:37:13PM -0700, Dave Whipp wrote:
> : One approach would simply be to edit Perl-6.0.0-STD.pm and add some 
> : markup. To pick a token at random:
> : 
> : =p6explain *
> : An asterix in a version expression matches any version
> : =end
> : token whatever { '*' {*} }
> 
> Indeed, the example you picked indicates how important context
> will be.  There are many different uses of '*', and a p6explain that
> simply lists all the possible meanings will be very nearly useless.

I hope it's not (nearly) useless.
My intention was the following: in most cases the meaning of an operator
is very obvious (for example * as the multiplication operator), there
are just some cases where the meaning is not obvious:
sub foo([EMAIL PROTECTED])

now instead of grep'ping through 16 Synopsis with 24895 lines (with 248
matches in Operator.pod and 189 in Syntax.pod), I'd like to have 2 or
three result pages that list all possible meanings of *. I don't want to
have a full Perl 6 program explained, just the operators/symbols that I
don't know about right now.


> You really need to parse the surrounding text to have any idea what
> the * means.  And a big reason to make the grammar available (including
> all the user-defined bits) is so that nobody ever has to reinvent PPI
> for Perl 6.  A p6 explainer that is sensitive to grammar mutations
> really needs to do its work by annotating an entire compilation unit
> and then making that information available to something resembling
> an IDE.  I realize that's a long term goal.  

Which leads me to the question: how should the data be assembled so that
it could be used in such a way?
Would it be enough to store the name of the token, along with the
description?


Moritz
-- 
Moritz Lenz
http://moritz.faui2k3.org/ |  http://perl-6.de/

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to