plans for 6.0

Adrian Thurston thurs... at
Sat Apr 7 16:28:43 UTC 2007

Hello List Memebers,

Sometime soon I will start working on a 6.0 release. I had thought
version 5 would be the last major release for a long time ... as I did
with 4 and 3. Funny how that never sticks. Anyways, these changes will
not preserve backwards compatibility and consequently will require some
porting effort. Though it should be minimal.

Other stuff will probably creep in, but these are the items which I want
the most. Many thanks to those involved in discussions which lead to
some of these.



Expressions of the form: ( expr1 <: expr2 . expr3 ) sometimes don't
behave as expected. If expr2 contains the empty string then it's
possible for the machine to escape to expr3. This is somewhat
unexpected.  The empty string does count as moving through the right
machine so there should not be an exception for this case. Using the
stronger implementation: ( expr1 $1 %0 . expr2 ) will solve the problem.

Also, there is potential for nondeterminism to persist via the empty
string with the :> and :>> operators. Should also guard against this
using leaving priorities.

fbreak should advance the current char. Depreciate fbreak and add
    fctl_return <expr>;
    fctl_goto <label>;

fbreak should execute the to-state actions of the target state. The
semantics of fbreak should be identical to reaching the end of a buffer

Introduce a new variable "eof" which is a pointer like pe. It gets set
to pe when the input has ended. This would enable eof actions to go into
the main loop, granting them the ability to manipulate p and cs. This
would free us from requiring some eof character to be sent to scanners
to 'flush out' the last token.  Instead an eof action can now execute
scanner pattern actions and backtrack if necessary.

The tokstart/tokend variable should be shortened to ts/te.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 252 bytes
Desc: OpenPGP digital signature
URL: <>

More information about the ragel-users mailing list