aboutsummaryrefslogtreecommitdiff
path: root/Sil/Util/Parser.icl
diff options
context:
space:
mode:
authorCamil Staps2017-08-13 19:21:43 +0200
committerCamil Staps2017-08-13 19:21:48 +0200
commitbb762e08e950b4d6d16bf0782c3e8d689f28c5dc (patch)
treec01e0dbca3b9761a4fcadcfc34c15d4b5a0a0193 /Sil/Util/Parser.icl
parentcleanup (diff)
Improved compiler interface (#8)
Specifically: - --check, --compile and --generate are implicit, there are --no-* options to disable. - --help added. - --run removed. - Renamed to silc (sil compiler). - Output files are relative to input file.
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