@@ -23,6 +23,7 @@ import Data.NonEmpty ((:|))
23
23
import Data.Number (infinity , nan )
24
24
import Data.Number as Data.Number
25
25
import Data.String (toUpper )
26
+ import Data.String as String
26
27
import Data.String.CodePoints as SCP
27
28
import Data.String.CodeUnits (fromCharArray , singleton )
28
29
import Data.String.CodeUnits as SCU
@@ -34,12 +35,13 @@ import Effect.Console (log, logShow)
34
35
import Effect.Unsafe (unsafePerformEffect )
35
36
import Node.Process (lookupEnv )
36
37
import Parsing (ParseError (..), ParseState (..), Parser , ParserT , Position (..), consume , fail , getParserT , initialPos , parseErrorMessage , parseErrorPosition , position , region , runParser )
37
- import Parsing.Combinators (advance , between , chainl , chainl1 , chainr , chainr1 , choice , empty , endBy , endBy1 , lookAhead , many , many1 , many1Till , many1Till_ , manyIndex , manyTill , manyTill_ , notFollowedBy , optionMaybe , sepBy , sepBy1 , sepEndBy , sepEndBy1 , skipMany , skipMany1 , try , (<?>), (<??>), (<~?>))
38
+ import Parsing.Combinators (advance , between , chainl , chainl1 , chainr , chainr1 , choice , empty , endBy , endBy1 , lookAhead , many , many1 , many1Till , many1Till_ , manyIndex , manyTill , manyTill_ , notFollowedBy , optionMaybe , replicateA , sepBy , sepBy1 , sepEndBy , sepEndBy1 , skipMany , skipMany1 , try , (<?>), (<??>), (<~?>))
38
39
import Parsing.Combinators.Array as Combinators.Array
39
40
import Parsing.Expr (Assoc (..), Operator (..), buildExprParser )
40
41
import Parsing.Language (haskellDef , haskellStyle , javaStyle )
41
- import Parsing.String (anyChar , anyCodePoint , anyTill , char , eof , match , regex , rest , satisfy , string , takeN )
42
+ import Parsing.String (anyChar , anyCodePoint , anyTill , char , eof , match , parseErrorHuman , regex , rest , satisfy , string , takeN )
42
43
import Parsing.String.Basic (intDecimal , letter , noneOfCodePoints , number , oneOfCodePoints , skipSpaces , whiteSpace )
44
+ import Parsing.String.Basic as String.Basic
43
45
import Parsing.String.Replace (breakCap , replace , replaceT , splitCap , splitCapT )
44
46
import Parsing.Token (TokenParser , makeTokenParser , token , when )
45
47
import Parsing.Token as Token
@@ -1070,3 +1072,11 @@ main = do
1070
1072
{ actual: lmap parseErrorPosition $ runParser " aa" $ advance consume
1071
1073
, expected: Left (Position { index: 0 , line: 1 , column: 1 })
1072
1074
}
1075
+
1076
+ log " \n TESTS error messages\n "
1077
+ do
1078
+ let input = " 12345six789"
1079
+ -- case runParser input (manyIndex 9 9 \_ -> String.Basic.digit) of
1080
+ case runParser input (replicateA 9 String.Basic .digit) of
1081
+ Right (_ :: Array Char ) -> pure unit
1082
+ Left err -> log $ String .joinWith " \n " $ parseErrorHuman input 20 err
0 commit comments