parrotcode: implementation of PGE match objects | |
Contents | Compilers |
PGE::Match - implementation of PGE match objects
This file implements match objects returned by the Parrot Grammar Engine.
newfrom(PMC mob [, int from [, string grammar]])
mob
.
If grammar
is specified then the newly created object is an instance of that class,
otherwise if isa mob, 'PGE::Match'
then the new object is the same class as mob
,
otherwise the new object is a 'PGE::Match' object.
The optional from
parameter says how to initialize the $.from
attribute of the new object if it can't start from the current position of mob
.new(PMC src, [ PMC adverbs :slurpy :named ])
src
.
If the grammar
adverb is specified,
then the new Match object is of the given grammar class,
otherwise if src
is an instance of Match
(or a subclass) then that class is used to create the object,
otherwise it uses the class of the invocant.pos
,
p
,
continue
,
or c
adverbs specify where the match object should begin.
If no starting position is given,
the current position of src
is used if it has one,
otherwise the start position is at offset zero.
The from
adverb can be used to initialize the Match's $.from
attribute to a value other than the starting position.rw
adverb causes the invocant to be modified and returned instead of creating a new Match object.new
method returns several values to the caller: the initialized match object,
the target the object is matching against,
a reference to its $.from attribute,
a reference to its $.pos attribute,
the value of pos/p/continue/c
used to initialize the object,
and whether or not a continue flag is set or implied.next()
from([int pos])
to([int pos])
text()
value([pmc value])
_failcut(int cutvalue)
cutvalue
.__get_bool()
__get_integer()
__get_number()
__get_string()
__get_string_keyed_int(int key)
key
,
in string context.
If the Match object contains an array of matches,
a space seperated list of matches is returned.__get_pmc_keyed_int(int key)
key
.
This returns either a single Match object or an array of match objects depending on the rule.get_hash()
get_array()
Patrick Michaud (pmichaud@pobox.com) is the author and maintainer. Patches and suggestions should be sent to the Perl 6 compiler list (perl6-compiler@perl.org).
|