Open
Description
🤔 What's the problem you're trying to solve?
In the Reqnroll project https://github.com/reqnroll, I am implementing a Roslyn-based source generator. As this runs as part of the IDE as the user is typing, it's important to keep performance in mind. As such, we'd like to avoid exception-throwing as a mechanism for reporting problems in user syntax, as these will occur frequently as the user authors their feature files.
✨ What's your proposed solution?
I would like a method added to Parser<T>
which can return either a successful parse result or a failure.
A "try" method would be adequate:
public bool TryParse(ITokenScanner tokenScanner, out T result, out List<ParserException> errors)
{
...
}
Alternatively, some kind of "result" type could be used to represent success or failure.
⛏ Have you considered any alternatives or workarounds?
I could not see any other operations exposed by the parser that would support this exception-free model.
📚 Any additional context?
No response
Activity