The C++ parser conforms to the following standard and dialects:
- ISO/IEC 14882:1998 Programming Language C++
- Borland C++
- GCC C++
- Microsoft Visual C++
- Microsoft .NET C++
- Microsoft C++/CLI
The parser supports the complete language including templates and exceptions as well as the extensions of GCC, Borland, and Microsoft. The C++ parser builds a syntax tree and a symbol table and it performs name analysis, except for overloading resolution. Name analysis associates every use of a name with the corresponding declaration. Messages (warning/error) are abstracted. They are reported by procedure calls. The corresponding procedures can be tailored to any needs.
The system includes a C++ preprocessor. The preprocessor also builds a syntax tree and a symbol table. This allows for analysis and transformation of preprocessor directives. The C++ parser and the C++ preprocessor are attached in a way that retains the positions of syntax constructs from the source files in the syntax tree.
References
- ISO/IEC 14882:1998 Programming Language C++
- Borland C++, Version 5.0
- GCC C++, Version 3.3.3
- Microsoft Visual C++ 6.0
- Microsoft .NET C++ 7.0
- ECMA-372, C++/CLI Language Specification, 1st Edition / December 2005