Merge pull request #1844 from jrw972/monterey
[ACE_TAO.git] / TAO / TAO_IDL / docs / README.md
blobf9a0bacbda01029679e16a333b1d1a56fad8e9dd
1 # TAO\_IDL Developer Documentation
3 ## Topics
5 - [Historical Document Describing How to Write a Backend](WRITING_A_BE).
6 - [Creating Annotations for IDLv4](annotations.md)
7 - [Less Relevant Historical Documents from Sun](historical)
9 ## TAO\_IDL Layout
11 TAO\_IDL is broken up into a few different modules, these can be generalized
12 as:
14 - `AST`
15   - "Abstract Syntax Tree"
16   - Nodes representing the Abstract Syntax Tree
17 - `FE`
18   - "Front End"
19   - Parsing functionality that generates the Abstract Syntax Tree.
20   - Among other things, contains the Bison grammar `fe/idl.ypp` and Flex
21     token `fe/idl.ll` files.
22 - `BE`
23   - "Back End"
24   - Transformed Abstract Syntax Tree
25 - `UTL`
26   - "Util"
27   - Utility Classes and Functions.
28   - Contains class for the `idl_global` singleton which is made up of
29     `include/idl_global.h` and `utl/utl_global.cpp`.
30 - `DRV`
31   - "Driver"
32   - The `tao_idl` program it self which drives the other modules.
34 Lacking namespaces for the most part, in TAO\_IDL function and class names
35 generally start with these modules, using the "C" way of emulating namespaces.
37 The modules are broken into these places on the file system:
39 - `include`
40   - Contains the header files for AST, FE, and UTL modules.
41 - `ast`
42   - Contains the source files for AST modules classes.
43 - `fe`
44   - Contains the source files and some header files for the FE module
45 - `be_include`
46   - Contains the header files for the BE module.
47 - `be`
48   - Contains the source files for the BE module.
49 - `driver`
50   - Contains some parts of DRV.
51 - `util`
52   - Contains the souce files for the UTL module.
53 - `narrow`
54   - Leftover from a custom casting system.