-Verbose embeddings %eof a to $eof(a).
+Guard against including a ragel file more than once (newsgroup).
+
+Line numbers in included files refer to the master file. This needs to be
+fixed -- from Manoj.
+
+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.
+
+Eliminate tokend, replace it with the marker variable and add ftokend/ftoklen.
+
+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.
+
+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:
+test_every_10_chars = ( ( c when test_len ) c{0,9} )**;
+In this example there is non-determinsm that is killed by the priorities, but
+since conditions are expanded before priorities are tested, many transitions
+end up with test_len || !test_len.
+
+Should be possible to include scanner definitions in another scanner.
+
+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.
+
+When priorities are embedded without a name, the name of the current machine is
+used. Perhaps a unique name for each instance of the current machine should be
+used instead. This idea could work well if applied to user-defined embeddings.
+
User defined embeddings <-name(a1,a2,...).
User defined operators expr1 <name> expr2.
should be the empty set (the empty machine). But then would it be invalid in a
regular expression?
-Add an option (probably -L) for turning off line numbers for debugging the
-generated state machine.
-
-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.
-
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.
system's memory. This protection could then be removed by people when someone
is sure they want to use a lot of memory.
-fbreak should advance the current char. Depreciate fbreak and add
- fctl_break;
- fctl_return <expr>;
- fctl_goto <label>;
-
-Should the fbreak functions execute the to-state actions of the target state?
-
-It should be possible to import/export definitions.
If a scanner can be optimized into a pure state machine, maybe permit it to be
referenced as a machine definition. Alternately: inline scanners with an