1 INTERFACE DEFINITION LANGUAGE SOURCE TREE ROADMAP
2 -===============================================-
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
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
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
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
36 The file names start with two or three characters identifying the component
39 - idl_: This is the prefix for all files which contain global
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
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.
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
116 Sun, Sun Microsystems and the Sun logo are trademarks or registered
117 trademarks of Sun Microsystems, Inc.
121 Mountain View, California 94043
125 SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are
126 trademarks or registered trademarks of Sun Microsystems, Inc.