While this package can be used to construct recognisers easily, this would likely
+ not be very efficient compared to a library more specialised for that purpose.

+
+

Cyclic Grammars

+

Grammars that have cycles in them will be treated as any other form of left recursion
+ and eventually be curtailed. This means that the resulting parse graph will not have
+ any cycles. If you want a cyclic grammar to result in a cyclic result, then this library
+ is not what you are after.

+
+

Generics

+

This library makes very heavy use of generics. If your Ada compiler has any issues
+ handling generics then you may experience suboptimal performance.

+
+

Parse Graph Data Structure

+

In order to keep the parse graph to polynomial space complexity, it is a specialised
+ data structure and is not the same thing as a more standard directed graph.

+
+

Piecewise Parsing

+

Due to the possibility of incomplete parses, in the worst case using piecewise parsing
+ can result in the lexer or parser holding the entire input in memory before returning a
+ result.

+
+

Error Recovery

+

While error messages can be informative, there is currently no consideration given to
+ being able to recover from an error and continue parsing.