scala-parser-combinators
scala-parser-combinators copied to clipboard
simple combinator-based parsing for Scala. formerly part of the Scala standard library, now a separate community-maintained module
At the moment the decision of whether or not to skip whitespace in literal and regex (RegexParsers.scala) is made on the basis of whether the skipWhitespace method returns true or...
```given [A, B](using CanEqual[A, A], CanEqual[B, B]): CanEqual[A ~ B, A ~ B] = CanEqual.derived``` This would allow pattern-based productions to compile in the presence of strict equality. Example: https://github.com/lucproglangcourse/expressions-scala/blob/main/src/main/scala/CombinatorParser.scala
## About this PR 📦 Updates [org.scala-lang:scala-library](https://github.com/scala/scala) from `2.13.12` to `2.13.13` 📜 [GitHub Release Notes](https://github.com/scala/scala/releases/tag/v2.13.13) - [Version Diff](https://github.com/scala/scala/compare/v2.13.12...v2.13.13) ## Usage ✅ **Please merge!** I'll automatically update this PR to resolve...
I am writing the parser for first-order conditions. I am using Scala and the scala-parser-combinators library. It works well, but I discovered this issue. Here, I report the clause for...
When `phrase` is applied to successful parse result which has `lastFailure`, it returns only the original failure. I think it would be better to add a message that indicates the...
## About this PR 📦 Updates [org.scala-lang:scala-library](https://github.com/scala/scala) from `2.13.13` to `2.13.14` 📜 [GitHub Release Notes](https://github.com/scala/scala/releases/tag/v2.13.14) - [Version Diff](https://github.com/scala/scala/compare/v2.13.13...v2.13.14) ## Usage ✅ **Please merge!** I'll automatically update this PR to resolve...
When both branches of a `|||` combinator produce a `Failure` as a result, the resulting error message is the one coming from the branch that matched the longest chain. This...
```scala implicit def literal(s: String): Parser[String] = new Parser[String] { def apply(in: Input) = { val source = in.source val offset = in.offset val start = handleWhiteSpace(source, offset) var i...