summaryrefslogtreecommitdiff
path: root/doc/features.html
diff options
context:
space:
mode:
Diffstat (limited to 'doc/features.html')
-rw-r--r--doc/features.html46
1 files changed, 46 insertions, 0 deletions
diff --git a/doc/features.html b/doc/features.html
new file mode 100644
index 0000000..7ebad19
--- /dev/null
+++ b/doc/features.html
@@ -0,0 +1,46 @@
+
+<!DOCTYPE html>
+
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Features - Packrat Docs</title>
+ <link href="default.css" rel="stylesheet">
+ </head>
+
+ <body>
+
+
+ <h2>Features</h2>
+
+ <a href="index.html">Return to Contents</a>
+
+
+ <h4>Lexing and Parsing</h4>
+ <p>Combinators are provided to build both lexers and parsers. Lexing is less flexible
+ as it does not need to incorporate choices, left recursion, or ambiguity.</p>
+
+ <h4>Left Recursion</h4>
+ <p>Any form of left recursive grammar will be parsed correctly, without infinite loops.</p>
+
+ <h4>Ambiguity</h4>
+ <p>All possible valid parses of the input by a constructed grammar will be followed
+ and incorporated into the resulting parse graph.</p>
+
+ <h4>Polynomial Complexity</h4>
+ <p>As per the paper that this library draws most of its ideas from, the worst case complexity
+ involved for both time and space should be polynomial. This has been experimentally confirmed
+ but as of yet no analysis has been done to determine specifics.</p>
+
+ <h4>Error Messages</h4>
+ <p>If there is a lexer or parser error then a message will be sent with the exception that
+ records what symbols were expected and where they were expected.</p>
+
+ <h4>Piecewise Parsing</h4>
+ <p>Both lexers and parsers can have their input fed to them piece by piece instead of all
+ at once.</p>
+
+
+ </body>
+</html>
+