Optimized for Visual Studio .NET

The FMS .NET Parser

Our upcoming line of .NET developer tools has very ambitious goals. We set out to design complete solutions to the most common development problems. In order to accomplish these goals, we realized that our products would need to completely understand your .NET code. So we would need a complete .NET parser. But we wanted to go further, so we decided it is important for code analysis to happen in real-time. So we would need a very fast .NET parser. And our solutions would not be the best unless we had 100% complete integration with the IDE you use every day. So our parser would need to hosted within Visual Studio .NET.

FMS: Ten Years of Parsing Technology

FMS has a long history in delivering source code analysis solutions. In 1989 we shipped our first analysis tools for Borland's PAL language. In 1994, we shipped the world's first full VB/Access Basic parser to support Microsoft Access Basic. In 1996 we shipped the first complete code analysis tools for Microsoft's VBA language, and in 1998 we added full support for Visual Basic 6 and all dialects of VBA.

.NET: Let's Start from Scratch

With the advent of .NET, we realized that we would need to start from scratch. .NET's amazing new concept of language parity, IL, CLI and the Common Language Runtime means that traditional parsing solutions aren't up to the job. We needed a parser that was built on .NET for .NET. Starting with the PDC preview version of .NET in May, 2000, we commenced on a long journey with one goal: to create the world's fastest complete third-party .NET source code parser.

This goal dictated that our new parser would need:

  • blazing performance. Our design goals of having real-time code analysis tools told us that the parser would have to be very fast. Our current builds are yielding performance times of roughly 10,000 lines of source code per second.
  • complete support for C# and Visual Basic .NET. These two languages represent where 90% of development work will happen in .NET. Our parser has to handle both with ease.
  • total integration with Visual Studio .NET. The most useful tools are the ones that are instantly available within your IDE.

The result is the FMS .NET parser, the core of all our upcoming .NET developer tools. The FMS .NET parser fully understands C# and Visual Basic .NET code to the lowest level. In fact, the parser is so complete that with a bit of additional work (i.e. an IL generator) we could actually create compiled .NET programs from source code. With fast performance and tight integration with Visual Studio .NET, you can be assured that our .NET developer solutions will offer you radical improvements in productivity and code quality.

Interesting Facts
  • The FMS .NET parser consists of roughly 5,000 lines of C++, 50,000 lines of Visual Basic .NET, and 100,000 lines of C#.
  • Performs true parsing and semantic analysis. Generates a complete symbol tree of entire solutions and projects.
  • Supports every language construct in C# and Visual Basic .NET.
  • Architected to support additional languages in the future, such as Java, J#, and Delphi, based on customer demand.