develooper Front page | perl.perl6.compiler | Postings from November 2004

Re: s/P6GE/PGE/g

Thread Previous
From:
Nick Glencross
Date:
November 23, 2004 02:09
Subject:
Re: s/P6GE/PGE/g
Message ID:
41A27CB6.8050005@glencros.demon.co.uk
Patrick,

What you've done works really well! I like the way that things have 
really come together (especially the way that the compiler interface works).

Two little quirks: In demo.pir. glob seems be having a problem with Returns:

pge $ ../../parrot demo.pir

input "rule <pattern>", "glob <pattern>", "pir",
target string, "trace", or "next"
trace
Tracing for new patterns is now on

input "rule <pattern>", "glob <pattern>", "pir",
target string, "trace", or "next"
glob fred

input "rule <pattern>", "glob <pattern>", "pir",
target string, "trace", or "next"
fred
"fred\n" <1>
fail
match failed

I would have thought that it general the trailing Return should be 
chopped off before being passed into the compile, although p5re_compile 
certainly copes with it, so perhaps so should glob.

I know that it's still early days for the harness, but you get a Null 
PMC if you haven't supplied a rule before a string to match, and if you 
enter rule without a pattern you get "Label 'R3' is already defined". (I 
know that in the grand scheme of things these are low down on your list!)

I may get a mo to supply a patch for these if you like...

Well done!

Nick

Patrick R. Michaud wrote:

>As of a few minutes ago, the "Perl 6 Grammar Engine" has been
>renamed to the "Parrot/Perl Grammar Engine" (PGE).  All of the associated
>files and symbols have been likewise renamed, and some things have
>been moved around to more closely follow Parrot guidelines.
>
>The README file in compilers/pge has been updated as well, and it
>tries to explain most of what needs to be known to work with PGE.
>
>Some of the highlights of recent changes:
>
> -  To load PGE into the Parrot interpreter, use
>
>        load_bytecode "library/PGE.pir"
>
> -  PGE subroutines and modules now live in the "PGE" namespace.
>
> -  Several pattern-matching language compilers are provided with PGE:
>
>        "p6rule"  - Perl 6 rules syntax
>        "glob"    - Wildcard globs ( ? = any single character, * = 0+ chars )
>        "p5re"    - Perl 5 regular expression syntax
>
>    All of these are still "under development".  To access one of these
>    compilers:
>
>        .local pmc p6rule_compile
>        find_global p6rule_compile, "PGE", "p6rule"
>
> -  The beginnings of a test suite are in t/p6rules.  More tests
>    are greatly desired -- please feel free to contribute some!  
>    Good sources for test ideas are the existing test suites in 
>    Perl 5, Damian's Perl6::Rules, etc.
>
> -  The :, ::, and ::: backtracking operators have been implemented
>    (but need more testing).
>
> -  The demo.pir program is a bit more robust, and allows patterns in
>    p6rule, glob, or p5 syntax to be entered.
>
> -  PGE now includes a "trace execution" option so that we can see the
>    steps being performed during a match.  Hopefully this will be useful
>    in identifying and evaluating potential optimizations for the engine.
>    (Yes, it also shows that some parts of the engine are not as efficient
>    as they could be--we'll get there soon!)
>
>Questions, comments, suggestions can be sent to perl6-compiler@perl.org.
>
>Thanks!
>
>Pm
>
>
>  
>


Thread Previous


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About