summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorJuan Manuel Tomás <jtomas1815@gmail.com>2022-11-12 01:08:18 -0300
committerJuan Manuel Tomás <jtomas1815@gmail.com>2022-11-12 01:08:18 -0300
commitf205d4c5dbd0ccb26cb9020e3ef8ae86d1336403 (patch)
treea0bd616a6dd21191293d631df2cd8e70edb727a1 /README.md
parent94dda7a8e56d6db537e307b1ec3cf59b8d70a629 (diff)
downloadmonparser-f205d4c5dbd0ccb26cb9020e3ef8ae86d1336403.tar.gz
monparser-f205d4c5dbd0ccb26cb9020e3ef8ae86d1336403.zip
Introduce critical failure type
Diffstat (limited to 'README.md')
-rw-r--r--README.md21
1 files changed, 21 insertions, 0 deletions
diff --git a/README.md b/README.md
index 24b5ea6..6705ffd 100644
--- a/README.md
+++ b/README.md
@@ -7,3 +7,24 @@ The goal is to have a good enough parser generator for use in my other personal
# The type of parsers
Parsers are lambdas that receive some *input* and return either a *parsing* or a *failure*.
+
+A *parsing* denotes a successful execution of the parser on the given input.
+
+Failures can be either *normal-failure* or *critical-failure*.
+
+The distinction of failure types allows to discern between an input that needs to be
+parsed with another parser, and a syntax error.
+
+## Interaction with parser control flow
+
+### Choice (either)
+
+- parsing -> exit
+- normal-failure -> continue
+- critical-failure -> exit
+
+### Sequence (comp)
+
+- parsing -> continue
+- normal-failure -> exit
+- critical-failure -> exit