From 39d77eafe0d0f545aede8511f00d768bbb235ab2 Mon Sep 17 00:00:00 2001 From: Laborratte5 Date: Wed, 17 Jul 2024 21:20:04 +0200 Subject: [PATCH] Implement Alternative Parser --- app/Parser.hs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/Parser.hs b/app/Parser.hs index 5dee86d..5f8f718 100644 --- a/app/Parser.hs +++ b/app/Parser.hs @@ -37,3 +37,9 @@ instance Applicative Parser where Just (rest, f) -> case a rest of Nothing -> Nothing Just (rest', x) -> Just (rest', f x) + +instance Alternative Parser where + empty = Parser $ const Nothing + (<|>) (Parser p1) (Parser p2) = Parser $ \input -> case p1 input of + Nothing -> p2 input + result -> result