@@ -23,6 +23,7 @@ import Data.NonEmpty ((:|))
2323import Data.Number (infinity , nan )
2424import Data.Number as Data.Number
2525import Data.String (toUpper )
26+ import Data.String as String
2627import Data.String.CodePoints as SCP
2728import Data.String.CodeUnits (fromCharArray , singleton )
2829import Data.String.CodeUnits as SCU
@@ -34,12 +35,13 @@ import Effect.Console (log, logShow)
3435import Effect.Unsafe (unsafePerformEffect )
3536import Node.Process (lookupEnv )
3637import 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 , (<?>), (<??>), (<~?>))
3839import Parsing.Combinators.Array as Combinators.Array
3940import Parsing.Expr (Assoc (..), Operator (..), buildExprParser )
4041import 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 )
4243import Parsing.String.Basic (intDecimal , letter , noneOfCodePoints , number , oneOfCodePoints , skipSpaces , whiteSpace )
44+ import Parsing.String.Basic as String.Basic
4345import Parsing.String.Replace (breakCap , replace , replaceT , splitCap , splitCapT )
4446import Parsing.Token (TokenParser , makeTokenParser , token , when )
4547import Parsing.Token as Token
@@ -1070,3 +1072,11 @@ main = do
10701072 { actual: lmap parseErrorPosition $ runParser " aa" $ advance consume
10711073 , expected: Left (Position { index: 0 , line: 1 , column: 1 })
10721074 }
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