Open scabug opened 15 years ago
Imported From: https://issues.scala-lang.org/browse/SI-2420?orig=1 Reporter: @DavidBiesack
@DavidBiesack said: Adriaan Moors adriaan.moors@cs.kuleuven.be said in email
Yep, feel free to file a ticket to request this enhancement and assign it to me so it won't be forgotten.
but I can't find an Adriaan in the list of users
Changed component to Standard Library
The current parser combinators library is flexible but lacks the ability to easily define new combinators. For example, in a grammar that supports JavaTokensParser.wholeNumber and JavaTokensParser.floatingPointNumber literals and an e .. e expression, 1..2 is ambiguous; and 1. is parsed as a floating point literal.
I'm using 2.7.6-final and want to define a new combinator similar to ANTLR's lookahead guard.
Obviously, I can't use => in Scala, but I would like to define something like
which will parse a and b but reset the Input to just after where a was found. In the 2.8 trunk there is a similar guard(Parser) combinator that is used as a<~guard(b) but that is not yet available.
Currently, it is not easy to add new combinators because other parsers/combinators return type Parser which does not see new combinators. I suppose implicits may help, or http://scala.sygneca.com/patterns/pimp-my-library but something built into the framework would be better, if possible.