blob: d09fe5bec09df8854313e79e575dabde3c6fd542 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Limitations - Packrat Docs</title>
<link href="default.css" rel="stylesheet">
</head>
<body>
<h2>Limitations</h2>
<a href="index.html">Return to Contents</a>
<h4>Recognisers</h4>
<p>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.</p>
<h4>Cyclic Grammars</h4>
<p>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.</p>
<h4>Generics</h4>
<p>This library makes very heavy use of generics. If your Ada compiler has any issues
handling generics then you may experience suboptimal performance.</p>
<h4>Parse Graph Data Structure</h4>
<p>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.</p>
<h4>Piecewise Parsing</h4>
<p>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.</p>
<h4>Error Recovery</h4>
<p>While error messages can be informative, there is currently no consideration given to
being able to recover from an error and continue parsing.</p>
</body>
</html>
|