-Ragel 6.0 Features
-==================
+Guard against including a ragel file more than once (newsgroup).
-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.
+Line numbers in included files refer to the master file. This needs to be
+fixed -- from Manoj.
-Also, there is potential for nondeterminism to persist via the empty string
-with the :> and :>> operators. Should also guard against this using leaving
-priorities.
+Remove old action embedding and condition setting syntax.
fbreak should advance the current char. Depreciate fbreak and add
fctl_break;
fctl_return <expr>;
fctl_goto <label>;
+This is needed for better support of pull scanners.
-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 block.
+Eliminate tokend, replace it with the marker variable and add ftokend/ftoklen.
-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.
+Add the accept action embedding operator: like eof but only for states that end
+up final. Add the combined pending/accept action. This becomes a good idea when
+eof action execution is moved into the main loop.
-The tokstart/tokend variable should be shortened to ts/te.
-
-================
-END 6.0 Features
+Add a prefix operator which sets every state final.
Minimization should remove a condition when the character allows both
the positive and negative sense of the condition. This happens in:
Should be possible to include scanner definitions in another scanner.
-Need a "write entry name;" feature.
-
-Should be possible to embed the negative sense of a condition.
+Need an "entry name;" feature, causing name to get written out with the other
+entry points in the data.
Possibly bring back the old semantics of > in a new operator, or allow it to be
defined somehow.
The |> guarded operator and the <| guarded operator need to be added.
-The fixed size stack is a problem for manual recursion of unlimited depth.
-
An option to turn off the removal of duplicate actions might be useful for
analyzing unintentional nondeterminism.