Merge pull request #2216 from jwillemsen/jwi-cxxversionchecks
[ACE_TAO.git] / TAO / TAO_IDL / docs / historical / ROADMAP
blob5da0d83823c7c01c74edae9249c31a92013d5900
1 INTERFACE DEFINITION LANGUAGE SOURCE TREE ROADMAP
2 -===============================================-
4 INTRODUCTION
6 This file provides an overview of the directory structure of the sources
7 for the compiler front end for OMG Interface Definition Language. This will
8 be of use in understanding the source structure and will aid developers of
9 BEs.
11 DIRECTORIES
13 The following directories are present:
15 - idl_specs:  Contains many examples of IDL specifications, including the
16               IDL specifications of several Object Services, and several
17               files that somewhat exhaustively test features of the IDL
18               language
19 - include:    Contains all include (".hh") files
20 - ast:        Contains implementations for all classes comprising
21               the AST internal representation of the input parsed
22 - fe:         Contains the Yacc grammar and Lex specification for
23               the OMG Interface Definition Language, and some utilities
24 - driver:     Contains the main program which drives the compilation
25               process
26 - util:       Contains utility classes used throughout the CFE. These
27               classes may also be of use in writing a BE
28 - narrow:     Contains an implementation of a narrowing mechanism used
29               in the CFE. Since C++ does not provide compiler support
30               for narrowing, this is provided as an explicit service
31 - demo_be:    Contains a demonstration back end which subclasses all
32               the AST classes but adds no functionality
34 NAMING CONVENTIONS
36 The file names start with two or three characters identifying the component
37 to which they belong:
39 - idl_:       This is the prefix for all files which contain global
40               elements of the CFE
41 - ast_:       This is the prefix for all files containing implementations
42               or definitions of the AST
43 - fe_:        This is the prefix for all files belonging to the parser
44 - drv_:       This is the prefix for all files belonging to the compiler
45               driver
46 - utl_:       This prefix is used to identify files belonging to the set of
47               utlities provided with the CFE
48 - nr_:        This prefix identifies files belonging to the narrowing mechanim
49 - be_:        This is the prefix for all files belonging to the back end
51 All C++ files use the ".cc" extension, and all include files have the ".hh"
52 extension. All make files are named Makefile. Each directory contains a
53 make file. Lex input files have the ".ll" extension, and Yacc input files
54 use the ".yy" extension. All files containing IDL specifications have a
55 name ending with the ".idl" suffix.
57 INCLUDE FILE HIERARCHY
59 There are two main include files which must be included in all source
60 files. These are idl.hh and idl_extern.hh. The idl.hh file includes the
61 definitions for all the facilities provided by the CFE. The idl_extern.hh
62 file declares globally accessible data and exported application programmer
63 interface entry points.
65 Each component has an include file for its own. Back end writers will want
66 to modify be.hh and possibly be_extern.hh.
68 COPYRIGHT
70 Copyright 1992, 1993, 1994 Sun Microsystems, Inc.  Printed in the United
71 States of America.  All Rights Reserved.
73 This product is protected by copyright and distributed under the following
74 license restricting its use.
76 The Interface Definition Language Compiler Front End (CFE) is made
77 available for your use provided that you include this license and copyright
78 notice on all media and documentation and the software program in which
79 this product is incorporated in whole or part. You may copy and extend
80 functionality (but may not remove functionality) of the Interface
81 Definition Language CFE without charge, but you are not authorized to
82 license or distribute it to anyone else except as part of a product or
83 program developed by you or with the express written consent of Sun
84 Microsystems, Inc. ("Sun").
86 The names of Sun Microsystems, Inc. and any of its subsidiaries or
87 affiliates may not be used in advertising or publicity pertaining to
88 distribution of Interface Definition Language CFE as permitted herein.
90 This license is effective until terminated by Sun for failure to comply
91 with this license.  Upon termination, you shall destroy or return all code
92 and documentation for the Interface Definition Language CFE.
94 INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES OF
95 ANY KIND INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS
96 FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR ARISING FROM A COURSE OF
97 DEALING, USAGE OR TRADE PRACTICE.
99 INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT
100 ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES
101 TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT.
103 SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH
104 RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY
105 INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF.
107 IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE FOR
108 ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND CONSEQUENTIAL
109 DAMAGES, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
111 Use, duplication, or disclosure by the government is subject to
112 restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in
113 Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR
114 52.227-19.
116 Sun, Sun Microsystems and the Sun logo are trademarks or registered
117 trademarks of Sun Microsystems, Inc.
119 SunSoft, Inc.  
120 2550 Garcia Avenue 
121 Mountain View, California  94043
123 NOTE:
125 SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are
126 trademarks or registered trademarks of Sun Microsystems, Inc.