From 9c34aac6fd5e891395cb752c23668bf32b6821c9 Mon Sep 17 00:00:00 2001 From: Ayaz Hafiz Date: Mon, 12 Sep 2022 09:02:25 -0400 Subject: [PATCH] Start on parseFormatted --- examples/interactive/cli-platform/Arg.roc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/examples/interactive/cli-platform/Arg.roc b/examples/interactive/cli-platform/Arg.roc index b93b761ece..723cc35577 100644 --- a/examples/interactive/cli-platform/Arg.roc +++ b/examples/interactive/cli-platform/Arg.roc @@ -197,6 +197,15 @@ parse = \@Parser parser, args -> WithConfig parser2 _config -> parse parser2 args +## Like [parse], runs a parser to completion on a list of arguments. +## If the parser fails, a formatted error and help message is returned. +parseFormatted : Parser a, List Str -> Result a Str +parseFormatted = \parser, args -> + when parse parser args is + Ok a -> Ok a + Err e -> + Str.concat (Str.concat (formatHelp parser) "\n\n") (formatError e) + bool : _ -> Parser Bool # TODO: panics if OptConfig annotated bool = \{ long, short ? NotProvided, help ? NotProvided } -> fn = \args ->