On Tue, Jul 04, 2006 at 12:57:16PM -0700, Allison Randal wrote: > ------ > > token start { ^<emptyline>*$ } > > regex emptyline { ^^ $$ \n } > > token ws { [<sp> | \t]* } > > ------
The above grammar doesn't have a "grammar" statement; as a result the regexes are being installed into the '' namespace. > If I match this against a string of 7 newlines, it returns 7 <emptyline> > matches, and each match is a single newline. This is the behavior I want > for newlines. I tried it with a grammar statement and it seems to work: ---- $ cat ar.pg grammar XYZ; token start { ^<emptyline>*$ } rule emptyline { ^^ $$ \n } token ws { [<sp> | \t]* } $ ./parrot compilers/pge/pgc.pir ar.pg >ar.pir $ cat xyz.pir .sub main :main load_bytecode 'PGE.pbc' load_bytecode 'ar.pir' load_bytecode 'dumper.pbc' load_bytecode 'PGE/Dumper.pbc' $P0 = find_global 'XYZ', 'start' $P1 = $P0("\n\n\n\n\n\n\n", 'grammar' => 'XYZ') '_dumper'($P1) .end $ ./parrot xyz.pir "VAR1" => PMC 'XYZ' => "\n\n\n\n\n\n\n" @ 0 { <emptyline> => ResizablePMCArray (size:7) [ PMC 'XYZ' => "\n" @ 0, PMC 'XYZ' => "\n" @ 1, PMC 'XYZ' => "\n" @ 2, PMC 'XYZ' => "\n" @ 3, PMC 'XYZ' => "\n" @ 4, PMC 'XYZ' => "\n" @ 5, PMC 'XYZ' => "\n" @ 6 ] } $ ----- Pm