summaryrefslogtreecommitdiff
path: root/doc/limits.html
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>