1.2 Status and roadmap

1.2.1 Status

FParsec has been in development for several years and can now be considered “stable”.

Version 1.0 of FParsec was released on 19 July 2012.

Note

Although FParsec has rather comprehensive unit tests (with code coverage close to 100% for many components), it likely still contains bugs. If you want to use FParsec in a production environment, you need to test your parsers thoroughly.

1.2.2 Future development

There are no firm plans for any major new features yet.

One goal for the future development of FParsec is to support a more declarative parser definition syntax without compromising on FParsec’s performance or language‐integrated nature.

For example, it would be nice if FParsec provided a way to automatically create optimized lexer functions from a series of typed regular expressions and associated mapping functions, ideally at compile time. Using such a feature could maybe look similar to

let lexer : Parser<AstNode, 'u> = 
    lex ["regex-with-1-capture-group", (fun x -> AstNode1(x))
         "regex-with-2-capture-groups", (fun x y -> AstNode2(x, y))
         (* ... *)]