aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/parcom.cr6
-rw-r--r--src/parcom/flunk.cr12
2 files changed, 12 insertions, 6 deletions
diff --git a/src/parcom.cr b/src/parcom.cr
index 028f596..5ce8ebe 100644
--- a/src/parcom.cr
+++ b/src/parcom.cr
@@ -81,12 +81,6 @@ module Parcom
end
end
- class Flunk(T, V) < Parser(T, V)
- def parse(tokens) : Result(T, V)
- raise ParserFail.new("Flunk: parsing failed")
- end
- end
-
class AnyToken(T) < Parser(T, T)
def parse(tokens : Tokens(T)) : Result(T, T)
if tokens.empty?
diff --git a/src/parcom/flunk.cr b/src/parcom/flunk.cr
new file mode 100644
index 0000000..00a0bd6
--- /dev/null
+++ b/src/parcom/flunk.cr
@@ -0,0 +1,12 @@
+require "./parser.cr"
+
+module Parcom
+ # `Flunk` is a `Parser` that always fails.
+ class Flunk(T, V) < Parser(T, V)
+ # Always raises `ParserFail`
+ def parse(tokens) : Result(T, V)
+ raise ParserFail.new("Flunk: parsing failed")
+ end
+ end
+end
+