When I started this blog a year ago, one of the things that I mentioned that I was working on in my spare time was a scanner and parser for the Visual Basic language. It’s kind of been on the back burner, behind things like VB 2005 and the book, but it’s finally gotten complete enough to release! I created a GotDotNet workspace [07/12/2014: The sources are now on GitHub.] for the code, and there’s a binary release there as well.
I’m calling this release a “beta” because although I’ve run my own tests on it, I haven’t subjected it to enough stress to be 100% confident in it. (Keep in mind: this is just a sample that I’ve worked on in my own time. It’s not an official Microsoft thing, so I’m the developer and tester.) If you find bugs, feel free to submit them to the workspace and I’ll see about getting them fixed. If you’d like to contribute something, sign up for the workspace! For now, the parser only supports the language we shipped in VB 2003. As time goes on, I’ll look into extending it for VB 2005.
The goal of the parser, besides being a fun side project in VB for me, is to be available to anyone who might want or need to scan or parse VB code. I’m hoping it will encourage people to write tools that work with VB code, and I have a few ideas of my own… Once I get some more time to spend on other side projects, that is. I’m not holding my breath…
Pingback: Anonymous
Paul, this looks great. Many thanks.
Good stuff Paul, I wasn’t expecting it this soon!
This sounds very cool Paul, thanks! Do you have any sample code that gives examples of calling the VBParser library to scan through files or code snippets that you’d be willing to share?
Pingback: VS Data Team's WebLog
Pingback: VS Data Team's WebLog
Paul:
First, cool parser. Thank you for making it available. Do you have any recomendations for testing a parser such as this? For example, how do you or would you recommend testing the VB.NET expression grammar? Maybe you could recommend a suite of tests as an example or a good technique for ensuring comprehensive testing?
Pingback: overflow
do you have any sample to use ?
Pingback: help.net
Scott: I do have some simple conformance tests for the parser that I didn’t include in the initial beta release because the test harness is kind of rough. I posted a message in the workspace, though, asking if people wanted it anyway, so feel free to discuss it there!
Pingback: Cyrus' Blather
can u share the intermediate object model you generate in this parser?
can u share the schema for the intermediate object model you generate.