Revision history for Parse-Gnaw
0.20 2008-11-16
First version, released on an unsuspecting world.
Took the package "Gnaw" and renamed it "Parse::Gnaw".
Massive rewrite to a state-machine based design.
Massive changes to reduce the amount of text used
to define grammmars. Still need to do some major
work on text markers so they're more stable.
Currently have some problems when we try something
like
get(sub{print'x'}, a('alice', 'bob'))
This is a BETA release.
0.24 2008-11-20
Recoded the markers so that they are unique elements
in the text linked list. adding a marker inserts a
new element into the linked list. This allows
different functions to keep their markers as needed.
Finally got the "get" function working for complex
grammars with many "get" calls.
Created a "c" function which is a "capture" function.
It is a simplified version of "get" in that the user
does not have to provide a variable.
0.26 2008-11-20
changed the "get" function so that callbacks can return
a string and the return string will be used to replace
the original text. return undef and no text will be changed.
Created a "modify" top level function which is like
"match", but with the write protect turned off.
if "get" changes the text, "modify" will write the
new text back to the original variable.
Created a generic callback taht will receive committed
text. set it to undef to do nothing. Set it to a
callback that will append committed text to a variable.
Could eventually create a callback that will take
text and write it to a file or something.
added a subroutine which will flush uncommitted text
to the above mentioned subroutine so that the text
after the matched portion still gets into the variable.
created a "swap" function which looks like perls
=~s/// function. Basically "swap" is a wrapper
that uses modify and get to implement its functionality.
Added some more tests and updated the POD.
0.29 2008-11-29
add the "flush" and "sip" functions to get/put text from/to
a file or stream or whatever. Keep cleaning up POD.
Need to implement remaining functionality in the
"not implemented" list.
0.30 2008-11-29 plus
add the "bb" and "BB" instructions to detect word boundaries.
added test to verify 'bb' instruction. passes.
0.31 2008-11-30
add the "end" function (end of text position assertion).
add the "az" function (equivalent to =~ m/\A ... \Z/)
add large chunks of text to the "extensions" section in POD.
Hopefully extensions are explained sufficiently that folks
can create their own without too many questions.
0.34 2008-12-03
The "noskip" function has been implemented. It was coded
to be a generic function really to handle any kind of
"skip" function we want. The "noskip" function was really
an extension of this generic function.
0.36 2008-12-05
add the "skipnow" function. works now.
rename the "identifier" function to "id" function.
Add the "token" function.
Add some more tests.
0.40 2009-01-07
add slideshow directory