aboutsummaryrefslogtreecommitdiff
path: root/Sil/Util/Parser.icl
diff options
context:
space:
mode:
Diffstat (limited to 'Sil/Util/Parser.icl')
-rw-r--r--Sil/Util/Parser.icl5
1 files changed, 4 insertions, 1 deletions
diff --git a/Sil/Util/Parser.icl b/Sil/Util/Parser.icl
index e730313..154a989 100644
--- a/Sil/Util/Parser.icl
+++ b/Sil/Util/Parser.icl
@@ -1,6 +1,6 @@
implementation module Sil.Util.Parser
-from StdFunc import iter
+from StdFunc import iter, o
import StdList
import StdOverloaded
@@ -140,6 +140,9 @@ where
item :: a -> Parser a a | ==, name, toString a
item a = satisfy ((==) a) <#> name a
+anyItem :: ([a] -> Parser a a) | ==, name, toString a
+anyItem = foldr (<|>) empty o map item
+
list :: [a] -> Parser a [a] | ==, name, toString a
list as = mapM item as