summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL
diff options
context:
space:
mode:
authorgokhale <asgokhale@users.noreply.github.com>1997-05-16 21:18:29 +0000
committergokhale <asgokhale@users.noreply.github.com>1997-05-16 21:18:29 +0000
commit7c0d7057784fe64e20ea02898826ad8d5f78557b (patch)
treefe2d21c37345f02d55b9404aae898f69572ec680 /TAO/TAO_IDL
parent7246bc25ef87fee64e42df48af5574eb3802e3d1 (diff)
downloadATCD-7c0d7057784fe64e20ea02898826ad8d5f78557b.tar.gz
TAO IDL Compiler based on SunSoft's IDL front end version 1.3
Diffstat (limited to 'TAO/TAO_IDL')
-rw-r--r--TAO/TAO_IDL/ANNOUNCEMENT131
-rw-r--r--TAO/TAO_IDL/CHANGES122
-rw-r--r--TAO/TAO_IDL/ChangeLog4
-rw-r--r--TAO/TAO_IDL/INSTALL229
-rw-r--r--TAO/TAO_IDL/Makefile44
-rw-r--r--TAO/TAO_IDL/README233
-rw-r--r--TAO/TAO_IDL/idl_make_vars62
7 files changed, 825 insertions, 0 deletions
diff --git a/TAO/TAO_IDL/ANNOUNCEMENT b/TAO/TAO_IDL/ANNOUNCEMENT
new file mode 100644
index 00000000000..870db6f6006
--- /dev/null
+++ b/TAO/TAO_IDL/ANNOUNCEMENT
@@ -0,0 +1,131 @@
+WHAT:
+
+SunSoft, Inc., Mountain View, California, has placed the source code to
+Project DOE's Interface Definition Language (IDL) compiler front end
+(CFE) on OMG's file server, making the implementation publicly
+available. This release is identified by the version number 1.3.
+
+Project DOE is SunSoft's corporate-wide development effort to integrate
+distributed object technology into the Solaris O/S. OMG (Object Management
+Group) is the industry wide body formed to create specifications for
+distributed object technology. It currently has more than 370 members. OMG
+IDL is part of OMG's CORBA 1.1 specification and provides a standardized
+way for defining object interfaces. OMG IDL forms the basis for distributed
+object interactionin Project DOE.
+
+The SunSoft OMG IDL CFE provides a complete framework for building
+CORBA 1.1-compliant preprocessors for OMG IDL. By using this standard
+implementation, developers of OMG IDL compilers will save many months
+of work and enhance the portability and interoperability of OMG
+IDL-interfaced objects.
+
+The SunSoft OMG IDL CFE allows convenient and fast integration of new back
+ends to the compiler. The release consists of a front end which converts
+OMG IDL to an intermediate format, a compiler framework driver, an example
+implementation of a compiler back end, and a set of protocols for
+interaction between the front and back ends. The SunSoft OMG IDL CFE
+parser uses components generated by yacc and lex.
+
+The SunSoft OMG IDL CFE is designed to allow easy extension of OMG IDL
+without impacting existing back-end implementations. As the CORBA
+specification evolves, any new updates to the IDE CFE will be placed
+by SunSoft on the OMG server.
+
+This release provides a directory with many examples of OMG IDL
+specifications to allow users to become familiar with the process of
+writing OMG IDL code.
+
+For more information send email to idl-cfe@sun.com.
+
+HOW:
+
+The SunSoft OMG IDL CFE is available at no charge through anonymous FTP
+in source form on the OMG file server, omg.org. Please retrieve the
+file OMG_IDL_CFE_1.3.tar.Z from the directory pub/OMG_IDL_CFE_1.3. Please
+let us know who you are if you retrieve the compiler front end using this
+method, by sending email to idl-cfe@sun.com.
+
+You can also retrieve the software by using the OMG mail server program.
+Send email with the subject 'help' to omg_idl@omg.org, and the mail server
+will respond with instructions on how to retrieve the software.
+
+WHEN:
+
+The SunSoft OMG IDL CFE is available now.
+
+CONTACT:
+
+Please let us know who you are if you decide to use this software, and how
+you use it. Please send email to:
+
+ idl-cfe@sun.com
+
+This address can also be used to report problems, bugs, suggestions and
+send general comments.
+
+We ask that if you make extensions or modifications to this source release,
+please make these extensions available to others using the OMG IDL compiler
+front end, by sending the modified sources to the above email address. This
+will help us evaluate your extensions for inclusion in a future version. It
+also ensures your investment in these extensions when new versions of the
+CFE are released.
+
+NOTE:
+
+SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are
+trademarks or registered trademarks of Sun Microsystems, Inc.
+
+COPYRIGHT NOTICE:
+
+Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United
+States of America. All Rights Reserved.
+
+This product is protected by copyright and distributed under the following
+license restricting its use.
+
+The Interface Definition Language Compiler Front End (CFE) is made
+available for your use provided that you include this license and copyright
+notice on all media and documentation and the software program in which
+this product is incorporated in whole or part. You may copy and extend
+functionality (but may not remove functionality) of the Interface
+Definition Language CFE without charge, but you are not authorized to
+license or distribute it to anyone else except as part of a product or
+program developed by you or with the express written consent of Sun
+Microsystems, Inc. ("Sun").
+
+The names of Sun Microsystems, Inc. and any of its subsidiaries or
+affiliates may not be used in advertising or publicity pertaining to
+distribution of Interface Definition Language CFE as permitted herein.
+
+This license is effective until terminated by Sun for failure to comply
+with this license. Upon termination, you shall destroy or return all code
+and documentation for the Interface Definition Language CFE.
+
+INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES OF
+ANY KIND INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS
+FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR ARISING FROM A COURSE OF
+DEALING, USAGE OR TRADE PRACTICE.
+
+INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT
+ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES
+TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT.
+
+SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH
+RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY
+INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF.
+
+IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE FOR
+ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND CONSEQUENTIAL
+DAMAGES, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+Use, duplication, or disclosure by the government is subject to
+restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in
+Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR
+52.227-19.
+
+Sun, Sun Microsystems and the Sun logo are trademarks or registered
+trademarks of Sun Microsystems, Inc.
+
+SunSoft, Inc.
+2550 Garcia Avenue
+Mountain View, California 94043
diff --git a/TAO/TAO_IDL/CHANGES b/TAO/TAO_IDL/CHANGES
new file mode 100644
index 00000000000..ae6fca7bcea
--- /dev/null
+++ b/TAO/TAO_IDL/CHANGES
@@ -0,0 +1,122 @@
+CHANGES WHICH AFFECT BE WRITERS
+-=============================-
+
+INTRODUCTION
+
+This file describes changes that affect BE writers. It contains IMPORTANT
+INFORMATION for BE writers who wish to migrate a BE written to operate with
+release 1.2 to operate with release 1.3. It is likely that not following
+these instructions will result in a compilable but malfunctioning compiler.
+
+AST INHERITANCE CHANGES
+
+The AST has been reorganized so that AST_Union and AST_Exception now
+inherit from AST_Structure. This means that constructors of BE classes
+which inherit from AST_Union or AST_Exception now need to explicitly call
+an initializer for AST_Structure in their init section.
+
+We repeat below the information given in the file WRITING_A_BE, in the
+section entitled "WRITING A BE".
+
+AST_EXCEPTION
+
+The signature for constructors of classes inheriting from AST_Exception
+should now be:
+
+ BE_Exception::BE_Exception(UTL_ScopedName *n,
+ UTL_StrList *p)
+ : AST_Decl(AST_Decl::NT_except, n, p),
+ AST_Structure(AST_Decl::NT_except, n, p),
+ UTL_Scope(AST_Decl::NT_except)
+
+AST_UNION
+
+The signature for constructors of classes inheriting from AST_Union should
+now be:
+
+ BE_Union::BE_Union(AST_ConcreteType *dt,
+ UTL_ScopedName *n,
+ UTL_StrList *p)
+ : AST_Union(dt, n, p),
+ AST_Structure(AST_Decl::NT_union, n, p),
+ AST_Decl(AST_Decl::NT_union, n, p),
+ UTL_Scope(AST_Decl::NT_union)
+
+IDL_BOOL TYPE
+
+To increase portability and reduce dependency of the sources on POSIX
+compliance in targets of ports, IDL now provides its own boolean type which
+is named idl_bool. It provides two truth values, I_TRUE and I_FALSE.
+
+UTL_SCOPEDNAME TYPE
+
+The UTL_ScopedName type is now a list of Identifier nodes; in previous
+releases it used to be a list of String nodes. If your BE constructs scoped
+names this change will prevent recompilation until you modify your
+constructor calls to invoke constructors for Identifier instead of for
+String. The signature of the constructor is:
+
+ Identifier::Identifier(char *, long x=1, long y=0, long z=I_FALSE)
+
+The additional arguments which can be defaulted to the values indicated are
+included for future use.
+
+COPYRIGHT
+
+Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United
+States of America. All Rights Reserved.
+
+This product is protected by copyright and distributed under the following
+license restricting its use.
+
+The Interface Definition Language Compiler Front End (CFE) is made
+available for your use provided that you include this license and copyright
+notice on all media and documentation and the software program in which
+this product is incorporated in whole or part. You may copy and extend
+functionality (but may not remove functionality) of the Interface
+Definition Language CFE without charge, but you are not authorized to
+license or distribute it to anyone else except as part of a product or
+program developed by you or with the express written consent of Sun
+Microsystems, Inc. ("Sun").
+
+The names of Sun Microsystems, Inc. and any of its subsidiaries or
+affiliates may not be used in advertising or publicity pertaining to
+distribution of Interface Definition Language CFE as permitted herein.
+
+This license is effective until terminated by Sun for failure to comply
+with this license. Upon termination, you shall destroy or return all code
+and documentation for the Interface Definition Language CFE.
+
+INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES OF
+ANY KIND INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS
+FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR ARISING FROM A COURSE OF
+DEALING, USAGE OR TRADE PRACTICE.
+
+INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT
+ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES
+TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT.
+
+SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH
+RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY
+INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF.
+
+IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE FOR
+ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND CONSEQUENTIAL
+DAMAGES, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+Use, duplication, or disclosure by the government is subject to
+restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in
+Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR
+52.227-19.
+
+Sun, Sun Microsystems and the Sun logo are trademarks or registered
+trademarks of Sun Microsystems, Inc.
+
+SunSoft, Inc.
+2550 Garcia Avenue
+Mountain View, California 94043
+
+NOTE:
+
+SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are
+trademarks or registered trademarks of Sun Microsystems, Inc.
diff --git a/TAO/TAO_IDL/ChangeLog b/TAO/TAO_IDL/ChangeLog
new file mode 100644
index 00000000000..229ea395947
--- /dev/null
+++ b/TAO/TAO_IDL/ChangeLog
@@ -0,0 +1,4 @@
+Fri May 16 16:01:19 1997 Aniruddha Gokhale <gokhale@mambo.cs.wustl.edu>
+
+ *
+
diff --git a/TAO/TAO_IDL/INSTALL b/TAO/TAO_IDL/INSTALL
new file mode 100644
index 00000000000..6fcaa710042
--- /dev/null
+++ b/TAO/TAO_IDL/INSTALL
@@ -0,0 +1,229 @@
+INTERFACE DEFINITION LANGUAGE INSTALLATION GUIDE
+-==============================================-
+
+INTRODUCTION
+
+This file describes the installation process for OMG_IDL_CFE version 1.3.
+This file explains how to:
+
+- install the source code
+- modify the sources to customize them for different configurations
+- modify the sources to implement your own back end
+
+TESTED CONFIGURATIONS
+
+This release has been tested and is believed to operate correctly on:
+- SunPro Sparcworks 2.x and 3.0 on SunOS 4.1.x
+- SunPro Sparcworks 2.x and 3.0 on Solaris 2.3
+- g++ 2.5.8 on SunOS 4.1.x
+- g++ 2.5.8 on Solaris 2.3
+
+This is the first release of OMG IDL CFE which is preconfigured to compile
+correctly for Solaris 2.x and with SunPro SparcWorks compilers.
+
+CUSTOMIZATION
+
+The release contains a file idl_make_vars in the current directory, which
+is included in each Makefile. This file defines all the customizable
+variables for the CFE.
+
+OSV should be set to a string denoting the operating system upon which you
+wish to build the CFE. The CFE as shipped is preconfigured to compile
+correctly on Solaris 2.x (OSV=SOLARIS2), and has also been tested on SunOS
+4.1.x (OSV=SUNOS4). It contains code donated by HP which enables it to be
+compiled on Apollo Domain systems (OSV=apollo) and HPUX systems (OSV=hpux),
+but these two configurations have not been tested.
+
+C++ and CCC should be set to identify the C++ compiler you will use to
+compile this release. Their values should be identical. Both are set to
+address differences between various make programs - some predefine CCC,
+others use C++ to denote the C++ compiler. The possible values are CC
+(which uses the Sparcworks compilers on SunOS 4.1 and Solaris 2.3) and g++,
+which uses the installed version of GNU C++.
+
+CCFLAGS should be set to a list of flags to pass to the C++ compiler. As
+shipped, this list is -g. NOTE: We have not extensively tested the release
+with optimization turned on.
+
+CPP_FLAGS should be set to a list of flags to pass to the C++ preprocessor.
+Use this variable to enable or disable specific customizations you make to
+the BE or CFE sources.
+
+YFLAGS should be set to a list of flags to pass to the Yacc program. As
+shipped, the list is -d -t, which causes Yacc to generate y.tab.h and
+y.tab.c files.
+
+LEXFLAGS should be set to a list of flags to pass to the Lex program. As
+shipped, the list -t.
+
+RANLIB should be set to the location of the ranlib program on your system.
+As shipped this is ranlib. If your system has no ranlib you can set this
+variable to ':' or /bin/true. As shipped the variable is preset to
+/bin/true since Solaris 2.x does not use ranlib.
+
+AR should be set to the location of the ar program on your system. As
+shipped this is ar. If your system has a different mechanism for creating
+libraries, you should modify the value of this variable accordingly.
+
+ARFLAGS should be set to the flags to be passed to the ar program. As
+shipped this is 'crv'.
+
+INSTALLATION
+
+a. Disk space requirements
+
+This distribution requires approximately 350 KBytes when compressed. When
+uncompressed, untarred and compiled, approximately 10 MBytes of disk space
+are consumed on a Sun 4.
+
+b. Getting the software
+
+Use anonymous FTP to omg.org and supply your e-mail address as password.
+Change directories to pub/OMG_IDL_CFE_1.3, set bin and get the compressed
+tar file OMG_IDL_CFE_1.3.tar.Z.
+
+The distribution may, in the future, be made available from other archives
+on the Internet. However, omg.org will always have the most up-to-date
+version of this software.
+
+After transferring this file, uncompress it and untar it in a directory of
+your choice.
+
+c. Compiling it
+
+If you are using a Sparcstation running Solaris 2.x and have the SunPro
+Sparcworks compilers installed, you may directly install the software. If
+your hardware or operating system configurations are different, read and
+follow the instructions in the previous section first.
+
+At the root directory of the release, issue
+
+ % make
+
+or
+
+ % make all
+
+This will compile the provided sources and the sources found in the be
+directory. Executing this make target causes 'make all' to be invoked in
+each subdirectory, resulting in building the libraries for each component
+and finally a link step producing an executable IDL compiler.
+
+In order to make only the compiler front end components, without compiling
+the sources found in the be directory and without building an executable,
+issue
+
+ % make libs
+
+This will build the libraries in the ast, fe, util, driver and narrow
+directories. To build only the be, issue
+
+ % make be
+
+To build all libraries without creating an executable, issue
+
+ % make all_libs
+
+To remove all files created by the build process, issue
+
+ % make clean
+
+This will not remove any files created by Yacc and Lex, because you may be
+using the ones provided in the distribution (see below).
+
+d. Yacc and Lex
+
+Some installations may not have a C++ aware Yacc and Lex processor. For
+these installations, we have included the output of yacc and lex in the
+release. If you need to use these files to build the release because you
+don't have access to a C++ capable Yacc or Lex, go to the "fe" directory,
+issue the command:
+
+ % touch lex.yy.cc y.tab.cc y.tab.hh
+
+This will ensure that the processed files appear to be newer than the
+source files they were produced from and will cause "make" to skip their
+production.
+
+NOTE: The files provided in the distribution have been produced on Solaris
+2.3 and may contain OS-specific #include directives. If you intend to use
+these files, you may have to edit them to make them work in your
+environment. The provided files are known to compile cleanly without
+modification with both SunPro Sparcworks compilers and GNU C++ on both
+SunOS 4.1 and Solaris 2.3. We have not tested the grammar and lexer input
+files with bison or flex.
+
+IMPLEMENTING A BACK END
+
+To implement your own back end, you can start with the provided sources in
+the be directory and modify them. The Makefile understands the 'make all'
+target and will generate libbe.a in the demo_be directory. As set up, the
+variable CPP_FLAGS allows you to place include files either in the current
+directory or in the include directory. Alternatively, you can place your
+include files in a new directory and modify CPP_FLAGS to cause the C++
+preprocessor to search this new directory for referenced include files, by
+adding a new -I directive.
+
+Additional detail on the structure and function of back ends, and on the
+protocol which a back end must implement, are found in the document
+entitled WRITING_A_BE.
+
+COPYRIGHT
+
+Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United
+States of America. All Rights Reserved.
+
+This product is protected by copyright and distributed under the following
+license restricting its use.
+
+The Interface Definition Language Compiler Front End (CFE) is made
+available for your use provided that you include this license and copyright
+notice on all media and documentation and the software program in which
+this product is incorporated in whole or part. You may copy and extend
+functionality (but may not remove functionality) of the Interface
+Definition Language CFE without charge, but you are not authorized to
+license or distribute it to anyone else except as part of a product or
+program developed by you or with the express written consent of Sun
+Microsystems, Inc. ("Sun").
+
+The names of Sun Microsystems, Inc. and any of its subsidiaries or
+affiliates may not be used in advertising or publicity pertaining to
+distribution of Interface Definition Language CFE as permitted herein.
+
+This license is effective until terminated by Sun for failure to comply
+with this license. Upon termination, you shall destroy or return all code
+and documentation for the Interface Definition Language CFE.
+
+INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES OF
+ANY KIND INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS
+FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR ARISING FROM A COURSE OF
+DEALING, USAGE OR TRADE PRACTICE.
+
+INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT
+ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES
+TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT.
+
+SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH
+RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY
+INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF.
+
+IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE FOR
+ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND CONSEQUENTIAL
+DAMAGES, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+Use, duplication, or disclosure by the government is subject to
+restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in
+Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR
+52.227-19.
+
+Sun, Sun Microsystems and the Sun logo are trademarks or registered
+trademarks of Sun Microsystems, Inc.
+
+SunSoft, Inc.
+2550 Garcia Avenue
+Mountain View, California 94043
+
+NOTE:
+
+SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are
+trademarks or registered trademarks of Sun Microsystems, Inc.
diff --git a/TAO/TAO_IDL/Makefile b/TAO/TAO_IDL/Makefile
new file mode 100644
index 00000000000..e0575247e4c
--- /dev/null
+++ b/TAO/TAO_IDL/Makefile
@@ -0,0 +1,44 @@
+#----------------------------------------------------------------------------
+# $Id$
+#
+# Top-level Makefile for the TAO IDL compiler
+#----------------------------------------------------------------------------
+
+#----------------------------------------------------------------------------
+# Local macros
+#----------------------------------------------------------------------------
+
+INFO =
+DIRS = driver fe ast util narrow be
+BIN = tao
+LIBS = -ldrv -lfe -last -lutil -lnarrow -lbe
+CLONE =
+
+#----------------------------------------------------------------------------
+# Include macros and targets
+#----------------------------------------------------------------------------
+
+include $(WRAPPER_ROOT)/include/makeinclude/wrapper_macros.GNU
+include $(WRAPPER_ROOT)/include/makeinclude/macros.GNU
+include $(WRAPPER_ROOT)/include/makeinclude/rules.common.GNU
+include $(WRAPPER_ROOT)/include/makeinclude/rules.nested.GNU
+include $(WRAPPER_ROOT)/include/makeinclude/rules.nolocal.GNU
+
+#----------------------------------------------------------------------------
+# Local targets
+#----------------------------------------------------------------------------
+
+all:
+ $(CXX) -g -o tao $(LIBS) -lthread
+
+tags:
+ rm -f TAO
+ etags include/*.h be_include/*.h \
+ ast/*.cpp util/*.cpp narrow/*.cpp driver/*.cpp fe/*.cpp be/*.cpp
+
+clean:
+ rm -f tao
+
+realclean:
+ rm -f tao TAGS
+
diff --git a/TAO/TAO_IDL/README b/TAO/TAO_IDL/README
new file mode 100644
index 00000000000..6d73554acce
--- /dev/null
+++ b/TAO/TAO_IDL/README
@@ -0,0 +1,233 @@
+INTERFACE DEFINITION LANGUAGE COMPILER FRONT END
+-==============================================-
+
+INTRODUCTION
+
+Welcome to the publicly available source release of SunSoft's
+implementation of the compiler front end (CFE) for OMG Interface Definition
+Language! This is Release 1.3 of the CFE.
+
+The Interface Definition Language (IDL) implementation is divided into
+three parts:
+
+- A main program for driving the compilation process
+- A parser and attendant utilities
+- One or more back ends (BEs) for taking the processed input and producing
+ output in a target language and target format
+
+WARNINGS
+
+This is a preliminary version. This software is made available AS IS and
+WITH NO GUARANTEES. Please read the copyright notice attached at the
+bottom of this file.
+
+IMPORTANT NOTICE FOR USERS OF OMG IDL CFE VERSION 1.2.
+
+Please carefully read the file CHANGES to obtain IMPORTANT INFORMATION on
+changes in that may affect the manner in which a BE is constructed. You
+must follow instructions contained in the file CHANGES to obtain a
+functional BE if you are migrating an existing BE from OMG IDL CFE v. 1.2.
+
+TARGET AUDIENCE
+
+Who should use this release?
+
+- You can use this source release to create a stand alone parser for OMG
+ Interface Definition Language. This may be useful to verify the legality
+ of IDL input.
+- Developers of OMG Interface Definition Language compilers should use this
+ release as a basis for writing their back ends, to obtain a common
+ framework for their compiler and to provide portable and uniform
+ parsing of IDL input.
+
+HOW TO OBTAIN THIS SOFTWARE
+
+Please use anonymous FTP to omg.org and supply your e-mail address as the
+password. Then change directories to pub/OMG_IDL_CFE_1.3, set binary transfer
+and get the file OMG_IDL_CFE_1.3.TAR.Z. This file includes copies of all
+individual documentation files in the directory.
+
+Precompiled binaries constructed from the sources in this release will be
+made available shortly, in the directory pub/OMG_IDL_CFE_1.3/bin. These
+binaries are useful for parsing IDL source and for learning about the
+language. Precompiled binaries for Solaris 2.x and for SunOS 4.x will be
+provided.
+
+You can also use the mail server program to retrieve this software. Send
+email with the subject 'help' to omg_idl@omg.org, and the mail server will
+respond with instructions on how to retrieve the software.
+
+Copies of this software may be made available from archives other than
+omg.org. New versions made available by Sun will be placed on omg.org and a
+message will be sent to this newsgroup announcing its availability.
+
+Finally, the SunSoft OMG IDL CFE is also available on magnetic tape for a
+nominal media charge directly from SunSoft. Please refer to part number
+DIDL-100-STP when ordering.
+
+CONTACT POINT
+
+Please let us know who you are if you decide to use this software, and how
+you use it. Please send e-mail to:
+
+ idl-cfe@sun.com
+
+This address can also be used to report problems, bugs, suggestions and
+send general comments.
+
+WHAT IS PROVIDED IN THE RELEASE
+
+Provided in this release are:
+
+- A main program for driving an Interface Definition Language compiler
+- A parser for the Interface Definition Language grammar which builds an
+ internal representation of the input parsed. This internal
+ representation, named an Abstract Syntax Tree (AST), is used as input to
+ a back end
+- Some utility functions used by the parser
+- A demonstration back end (BE) which exercises the front end but produces
+ no translated output
+- Documentation of the public interfaces and of the contract between
+ the compiler front end and a back end
+
+OPERATION
+
+A complete compiler operates in two passes:
+
+- The first pass, provided in this release, parses the IDL input and
+ produces an internal representation, called an Abstract Syntax Tree (AST).
+ This pass also does a complete syntax and semantics check of the input
+ provided to ensure that exactly legal IDL input is accepted. If a syntax
+ or semantic error is discovered, the second pass is not invoked.
+- The second pass, provided by compiler developers, takes the AST and
+ produces output in the language and format of choice. A demonstration
+ back end is provided in the release.
+
+HOW TO USE THIS SOFTWARE
+
+To create a complete compiler from OMG Interface Definition Language to a
+target language, compiler developers will:
+
+- Write a back end (BE) to take the internal representation of the input
+ parsed and translate it to the target language and format. You will
+ probably want to replace the BE directory in this source tree with your
+ own BE directory
+- Link the BE with the sources provided here to produce a complete
+ compiler.
+
+DOCUMENTATION
+
+The OMG Interface Definition Language is fully described in the CORBA
+documentation, Chapter 4. This document may be obtained from OMG.
+
+This release also provides the following documents:
+
+- This README file, describing the release
+- INSTALL, describing installation of the software
+- WRITING_A_BE contains all the information needed to start writing a back
+ end for this distribution
+- CHANGES_IN_AST describes changes that affect migration of BEs written
+ against version 1.2 to version 1.3.
+- CLI, describing the command line interface to the CFE
+- ROADMAP, describing the directory structure for the source code. This
+ file will assist a developer in understanding the structure of the code
+ and navigating it
+- PROBLEMS, describing a list of issues that may be addressed in future
+ releases
+- BUG_REPORT, containing a form for use in reporting bugs and problems
+ with the IDL CFE
+
+ENVIRONMENT
+
+The INSTALL file explains how to customize the software for specific
+platforms. The source distribution expects the following environment:
+
+- Sparcstation 1, 2, or 10 hardware
+- SunPro SparcWorks 3.x or 4.0
+
+As preconfigured, it compiles on Solaris 2.x. It can be reconfigured to
+compile on SunOS 4.x, HPUX or Apollo Domain OS. As far as is known, no use
+is made of Sun Make-specific features, and the Makefiles should be usable
+with other make programs.
+
+This release has been tested and is believed to operate correctly with:
+- SunPro Sparcworks 2.x and 3.0 on SunOS 4.1.x
+- SunPro Sparcworks 2.x and 3.0 on Solaris 2.3
+- g++ 2.5.8 on SunOS 4.1.x
+- g++ 2.5.8 on Solaris 2.3
+
+INSTALLATION
+
+This release is targetted for Sun workstations running Solaris 2.x. The
+process of installing this software is described in detail in the file
+INSTALL in this directory. The INSTALL file also describes how to customize
+the release for your own environment if it is different.
+
+KNOWN PROBLEMS
+
+A list of known deficiencies is provided in the file PROBLEMS in this
+directory. If you find a problem which is not mentioned in it, please
+report it as described below. Please read this file now to be apprised of
+the problems found so far with this release.
+
+COPYRIGHT
+
+This copyright notice appears on all files. Please read it!
+
+Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United
+States of America. All Rights Reserved.
+
+This product is protected by copyright and distributed under the following
+license restricting its use.
+
+The Interface Definition Language Compiler Front End (CFE) is made
+available for your use provided that you include this license and copyright
+notice on all media and documentation and the software program in which
+this product is incorporated in whole or part. You may copy and extend
+functionality (but may not remove functionality) of the Interface
+Definition Language CFE without charge, but you are not authorized to
+license or distribute it to anyone else except as part of a product or
+program developed by you or with the express written consent of Sun
+Microsystems, Inc. ("Sun").
+
+The names of Sun Microsystems, Inc. and any of its subsidiaries or
+affiliates may not be used in advertising or publicity pertaining to
+distribution of Interface Definition Language CFE as permitted herein.
+
+This license is effective until terminated by Sun for failure to comply
+with this license. Upon termination, you shall destroy or return all code
+and documentation for the Interface Definition Language CFE.
+
+INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES OF
+ANY KIND INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS
+FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR ARISING FROM A COURSE OF
+DEALING, USAGE OR TRADE PRACTICE.
+
+INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT
+ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES
+TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT.
+
+SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH
+RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY
+INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF.
+
+IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE FOR
+ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND CONSEQUENTIAL
+DAMAGES, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+Use, duplication, or disclosure by the government is subject to
+restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in
+Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR
+52.227-19.
+
+Sun, Sun Microsystems and the Sun logo are trademarks or registered
+trademarks of Sun Microsystems, Inc.
+
+SunSoft, Inc.
+2550 Garcia Avenue
+Mountain View, California 94043
+
+NOTE:
+
+SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are
+trademarks or registered trademarks of Sun Microsystems, Inc.
diff --git a/TAO/TAO_IDL/idl_make_vars b/TAO/TAO_IDL/idl_make_vars
new file mode 100644
index 00000000000..f061649d004
--- /dev/null
+++ b/TAO/TAO_IDL/idl_make_vars
@@ -0,0 +1,62 @@
+# Makefile include file for IDL compiler
+#
+# What OS we're compiling on.
+#
+# As shipped the CFE is preconfigured for SOLARIS 2.x
+# ===================================================
+#
+# Uncomment the next line for SOLARIS 2.x
+OSV = SOLARIS2
+# Uncomment the next line for SUNOS 4.x
+# OSV = SUNOS4
+# Uncomment the next line for HPUX
+# OSV = hpux
+# Uncomment the next line for Apollo Domain
+# OSV = apollo
+#
+# IDL_CFE_VERSION Defines what the current IDL CFE version is
+IDL_CFE_VERSION = \"1.3.0\"
+#
+# Define LEXFLAGS to pass to lex
+LEXFLAGS = -t
+#
+# Define YFLAGS to pass to yacc
+YFLAGS = -t -d
+#
+# C++ What C++ compiler to use
+#
+# Also define CCC which is used instead of C++ in
+# some versions of make. Make sure they refer to the
+# same executable; if you modify one please also modify
+# the other to be identical.
+#
+# Uncomment these two lines if you're using SunPro Sparcworks C++ compilers
+# (Tested for SunPro Sparcworks 2.x with SunOS 4.x and Solaris 2.x, for
+# SunPro Sparcworks 3.0 with Solaris 2.x)
+C++ = CC
+CCC = CC
+# Uncomment these two lines if you're using g++ (tested for SunOS 4.x and
+# Solaris 2.x only, with g++ 2.5.8)
+# C++ = g++
+# CCC = g++
+#
+# What flags to pass to the C preprocessor
+CPPFLAGS += -I../include -I. -D$(OSV) \
+ -DCPP_LOCATION=\"$(C++)\" \
+ -DIDL_CFE_VERSION=$(IDL_CFE_VERSION) \
+#
+# What flags to pass to the CC phase
+CCFLAGS += -g
+#
+# What ranlib to use
+#
+# Uncomment the following line for SunOS 4.x and others which have ranlib
+# RANLIB = ranlib
+# Uncomment the following line for Solaris 2.x and others which don't have it
+RANLIB = /bin/true
+#
+# What ar to use
+AR = ar
+#
+# What flags to give to ar
+ARFLAGS = crv