Home > Essentials > DXCore abstract source tree structure

DXCore abstract source tree structure

January 12th, 2011

DXCore supports lots of programming languages provided by the language services in Visual Studio. These services provide language-specific support (such as CSharp, Visual Basic, C++) for editing source code in the integrated development environment (IDE). DXCore includes appropriate source code parsers for these programming languages. When the source code is parsed, DXCore builds an abstract syntax tree (AST) that is a representation of the syntactic structure of the source code of a particular programming language. This abstract syntax tree is unified for all languages supported by IDETools. That’s why it is easy to develop a language-independent feature as a DXCore plug-in – in most cases your feature will be available in all corresponding languages automatically.

The abstract syntax tree is represented by the DXCore language elements. LanguageElement is the main base class for a rich variety of classes which denote a construct occurring in the source code and present a corresponding node in the unified tree. You can see the result parsed source tree using the Expression Lab tool window available via the “DevExpress | Tool Windows | Diagnostics | Expression Lab” menu item in Visual Studio.

All DXCore source code parsers are maintained by a single assembly named “DevExpress.DXCore.Parser”. This assembly can be used for code parsing and code generation (to build language-specific source code). You can use it according to the DevExpress license agreement.

Here is a complete map of LanguageElement class inheritance, excluding some very rarely used language elements. Click on one of the images to open it in full size. Bear in mind that the size of the images is HUGE (~1.5 Mb and ~4k pixels), and you have to scroll it to see the content. Click on the picture once again to close it. You can download these images as a single zip file from this link (2,079,862 bytes).

Linear view:

DXCore LanguageElement inheritance map preview (linear)

Clustered view:

DXCore LanguageElement inheritance map preview (cluster)

Products: DXCore
Versions: 10.2 and up
VS IDEs: any
Updated: Aug/16/2011
ID: D056

Similar Posts:

  1. No comments yet. Be the first and leave a comment!