summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/fe
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/fe')
-rw-r--r--TAO/TAO_IDL/fe/fe_declarator.cpp161
-rw-r--r--TAO/TAO_IDL/fe/fe_extern.cpp126
-rw-r--r--TAO/TAO_IDL/fe/fe_init.cpp371
-rw-r--r--TAO/TAO_IDL/fe/fe_interface_header.cpp286
-rw-r--r--TAO/TAO_IDL/fe/fe_private.cpp82
-rw-r--r--TAO/TAO_IDL/fe/idl.ll528
-rw-r--r--TAO/TAO_IDL/fe/idl.yy2288
-rw-r--r--TAO/TAO_IDL/fe/lex.yy.cpp2197
-rw-r--r--TAO/TAO_IDL/fe/lex.yy.cpp.diff34
-rw-r--r--TAO/TAO_IDL/fe/y.tab.cpp3296
-rw-r--r--TAO/TAO_IDL/fe/y.tab.cpp.diff127
-rw-r--r--TAO/TAO_IDL/fe/y.tab.h77
12 files changed, 0 insertions, 9573 deletions
diff --git a/TAO/TAO_IDL/fe/fe_declarator.cpp b/TAO/TAO_IDL/fe/fe_declarator.cpp
deleted file mode 100644
index 400dbe1b29f..00000000000
--- a/TAO/TAO_IDL/fe/fe_declarator.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-// $Id$
-
-/*
-
-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.
-
- */
-
-/*
- * fe_declarator.cc - Implementation of FE private declaration
- * statement class
- *
- * The FE_Declarator class is used to hold together complex declarations
- * until all the components are parsed and before they are composed into
- * an AST_Type node.
- */
-
-#include "idl.h"
-#include "idl_extern.h"
-
-#include "fe_private.h"
-
-ACE_RCSID(fe, fe_declarator, "$Id$")
-
-/*
- * Constructor(s) and destructor
- */
-
-FE_Declarator::FE_Declarator(UTL_ScopedName *n, DeclaratorType dt,
- AST_Decl *cp)
- : pd_complex_part(cp),
- pd_name(n),
- pd_decl_type(dt)
-{
-}
-
-/*
- * Private operations
- */
-
-/*
- * Public operations
- */
-
-// Compose the type of the complex declarator (if any) with the base
-// type supplied in ct
-AST_Type *
-FE_Declarator::compose(AST_Decl *d)
-{
- AST_Array *arr;
- AST_Type *ct;
-
- ct = AST_Type::narrow_from_decl(d);
- if (ct == NULL) {
- idl_global->err()->not_a_type(d);
- return NULL;
- }
- if (ct->node_type() == AST_Decl::NT_except) {
- idl_global->err()->not_a_type(d);
- return NULL;
- }
- if (pd_decl_type == FD_simple || pd_complex_part == NULL) {
- return ct;
- }
- if (pd_complex_part->node_type() == AST_Decl::NT_array) {
- arr = AST_Array::narrow_from_decl(pd_complex_part);
- arr->set_base_type(ct);
-
- /*
- * Add the new array to the types defined in the global scope
- */
- idl_global->root()->fe_add_array(arr);
-
- return arr;
- }
- return NULL; // return through this statement should not happen
-}
-
-/*
- * Redefinition of inherited virtual operations
- */
-
-/*
- * Data accessors
- */
-
-AST_Decl *
-FE_Declarator::complex_part()
-{
- return pd_complex_part;
-}
-
-UTL_ScopedName *
-FE_Declarator::name()
-{
- return pd_name;
-}
-
-FE_Declarator::DeclaratorType
-FE_Declarator::decl_type()
-{
- return pd_decl_type;
-}
diff --git a/TAO/TAO_IDL/fe/fe_extern.cpp b/TAO/TAO_IDL/fe/fe_extern.cpp
deleted file mode 100644
index ee87e7c1da4..00000000000
--- a/TAO/TAO_IDL/fe/fe_extern.cpp
+++ /dev/null
@@ -1,126 +0,0 @@
-// This may look like C, but it's really -*- C++ -*-
-// $Id$
-
-/*
-
-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.
-
- */
-
-/*
- * fe_extern.cc - export FE interfaces to driver
- */
-
-#include "idl.h"
-#include "idl_extern.h"
-
-#include "fe_private.h"
-
-#include "utl_error.h"
-#include "utl_indenter.h"
-#include "utl_string.h"
-
-ACE_RCSID(fe, fe_extern, "$Id$")
-
-/*
- * yacc parser interface
- */
-
-extern int tao_yyparse();
-extern FILE * tao_yyin;
-
-int
-FE_yyparse()
-{
- int result = tao_yyparse();
- if (idl_global->err_count() == 0) {
- idl_global->root()->call_add();
- }
- return result;
-}
-
-void
-FE_set_yyin(File * f)
-{
- tao_yyin = ACE_reinterpret_cast(FILE*,f);
-}
-
-/*
- * constructor interfaces
- */
-
-UTL_Error *
-FE_new_UTL_Error()
-{
- return new UTL_Error();
-}
-
-UTL_Indenter *
-FE_new_UTL_Indenter()
-{
- return new UTL_Indenter();
-}
-
-UTL_String *
-FE_new_UTL_String(char * str)
-{
- return new UTL_String(str);
-}
diff --git a/TAO/TAO_IDL/fe/fe_init.cpp b/TAO/TAO_IDL/fe/fe_init.cpp
deleted file mode 100644
index c6cdad7e109..00000000000
--- a/TAO/TAO_IDL/fe/fe_init.cpp
+++ /dev/null
@@ -1,371 +0,0 @@
-// $Id$
-
-/*
-
-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.
-
- */
-
-/*
- * fe_init.cc - Initialize the FE
- *
- * The FE initialization is carried out in two stages, with the BE
- * initialization protocol sandwiched between the two stages.
- *
- * The first stage is responsible for creating the scopes stack.
- * The second stage is run after the BE initialization has created
- * and returned an instance of AST_Generator (or a subclass). This
- * instance is used to create the root node for the AST, and to
- * populate it with AST_PredefinedType nodes which represent the
- * predefined IDL types. This AST root is then pushed on the scopes
- * stack as the outermost scope.
- */
-
-#include "idl.h"
-#include "idl_extern.h"
-
-#include "fe_private.h"
-
-ACE_RCSID(fe, fe_init, "$Id$")
-
-/*
- * Create a scoped name
- */
-static UTL_ScopedName *
-create_scoped_name(char *s)
-{
- return new UTL_ScopedName(new Identifier(s, 1, 0, I_FALSE), NULL);
-}
-
-/*
- * Populate the global scope with all predefined entities
- */
-void
-fe_populate(AST_Module *m)
-{
- AST_PredefinedType *pdt;
-
- pdt = idl_global->gen()->create_predefined_type(AST_PredefinedType::PT_long,
- create_scoped_name("long"),
- NULL);
- m->fe_add_predefined_type(pdt);
-
- pdt =
- idl_global->gen()->create_predefined_type(AST_PredefinedType::PT_ulong,
- create_scoped_name("unsigned long"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt =
- idl_global->gen()
- ->create_predefined_type(AST_PredefinedType::PT_longlong,
- create_scoped_name("long long"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt =
- idl_global->gen()
- ->create_predefined_type(AST_PredefinedType::PT_ulonglong,
- create_scoped_name("unsigned long long"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()->create_predefined_type(AST_PredefinedType::PT_short,
- create_scoped_name("short"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt =
- idl_global->gen()->create_predefined_type(AST_PredefinedType::PT_ushort,
- create_scoped_name("unsigned short"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()->create_predefined_type(AST_PredefinedType::PT_float,
- create_scoped_name("float"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt =
- idl_global->gen()->create_predefined_type(AST_PredefinedType::PT_double,
- create_scoped_name("double"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt =
- idl_global->gen()
- ->create_predefined_type(AST_PredefinedType::PT_longdouble,
- create_scoped_name("long double"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()->create_predefined_type(AST_PredefinedType::PT_char,
- create_scoped_name("char"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt =
- idl_global->gen()
- ->create_predefined_type(AST_PredefinedType::PT_wchar,
- create_scoped_name("wchar_t"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()->create_predefined_type(AST_PredefinedType::PT_octet,
- create_scoped_name("octet"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()->create_predefined_type(AST_PredefinedType::PT_any,
- create_scoped_name("any"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt =
- idl_global->gen()->create_predefined_type(AST_PredefinedType::PT_boolean,
- create_scoped_name("boolean"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()->create_predefined_type(AST_PredefinedType::PT_void,
- create_scoped_name("void"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()
- ->create_predefined_type(AST_PredefinedType::PT_pseudo,
- create_scoped_name("Object"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()
- ->create_predefined_type(AST_PredefinedType::PT_pseudo,
- create_scoped_name("TypeCode"),
- NULL);
- m->fe_add_predefined_type(pdt);
-
- /*
- * Add these to make all keywords protected even in different spellings
- */
-
- pdt = idl_global->gen()
- ->create_predefined_type(AST_PredefinedType::PT_pseudo,
- create_scoped_name("attribute"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()
- ->create_predefined_type(AST_PredefinedType::PT_pseudo,
- create_scoped_name("case"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()
- ->create_predefined_type(AST_PredefinedType::PT_pseudo,
- create_scoped_name("const"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()
- ->create_predefined_type(AST_PredefinedType::PT_pseudo,
- create_scoped_name("context"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()
- ->create_predefined_type(AST_PredefinedType::PT_pseudo,
- create_scoped_name("default"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()
- ->create_predefined_type(AST_PredefinedType::PT_pseudo,
- create_scoped_name("enum"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()
- ->create_predefined_type(AST_PredefinedType::PT_pseudo,
- create_scoped_name("exception"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()
- ->create_predefined_type(AST_PredefinedType::PT_pseudo,
- create_scoped_name("in"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()
- ->create_predefined_type(AST_PredefinedType::PT_pseudo,
- create_scoped_name("out"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()
- ->create_predefined_type(AST_PredefinedType::PT_pseudo,
- create_scoped_name("inout"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()
- ->create_predefined_type(AST_PredefinedType::PT_pseudo,
- create_scoped_name("interface"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()
- ->create_predefined_type(AST_PredefinedType::PT_pseudo,
- create_scoped_name("module"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()
- ->create_predefined_type(AST_PredefinedType::PT_pseudo,
- create_scoped_name("oneway"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()
- ->create_predefined_type(AST_PredefinedType::PT_pseudo,
- create_scoped_name("raises"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()
- ->create_predefined_type(AST_PredefinedType::PT_pseudo,
- create_scoped_name("readonly"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()
- ->create_predefined_type(AST_PredefinedType::PT_pseudo,
- create_scoped_name("sequence"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()
- ->create_predefined_type(AST_PredefinedType::PT_pseudo,
- create_scoped_name("string"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()
- ->create_predefined_type(AST_PredefinedType::PT_pseudo,
- create_scoped_name("wstring_t"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()
- ->create_predefined_type(AST_PredefinedType::PT_pseudo,
- create_scoped_name("struct"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()
- ->create_predefined_type(AST_PredefinedType::PT_pseudo,
- create_scoped_name("switch"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()
- ->create_predefined_type(AST_PredefinedType::PT_pseudo,
- create_scoped_name("typedef"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()
- ->create_predefined_type(AST_PredefinedType::PT_pseudo,
- create_scoped_name("union"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()
- ->create_predefined_type(AST_PredefinedType::PT_pseudo,
- create_scoped_name("unsigned"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()
- ->create_predefined_type(AST_PredefinedType::PT_pseudo,
- create_scoped_name("TRUE"),
- NULL);
- m->fe_add_predefined_type(pdt);
- pdt = idl_global->gen()
- ->create_predefined_type(AST_PredefinedType::PT_pseudo,
- create_scoped_name("FALSE"),
- NULL);
- m->fe_add_predefined_type(pdt);
-}
-
-/*
- * Initialization stage 1: create global scopes stack
- */
-void
-FE_init_stage1()
-{
- idl_global->set_scopes(new UTL_ScopeStack());
- if (idl_global->scopes() == NULL) {
- cerr << GTDEVEL("IDL: FE init failed to create scope stack, exiting\n");
- exit(99);
- }
-}
-
-/*
- * Initialization stage 2: create global scope and populate it
- */
-void
-FE_init_stage2()
-{
- AST_Root *r;
-
- /*
- * Check that the BE init created a generator object
- */
- if (idl_global->gen() == NULL) {
- cerr << GTDEVEL("IDL: BE did not initialize idl_global->gen(), exiting\n");
- exit(99);
- }
- /*
- * Create a global root for the AST. Note that the AST root has no
- * name
- */
- r = idl_global->gen()->create_root(create_scoped_name(""), NULL);
- idl_global->set_root(r);
- if (r == NULL) {
- cerr << GTDEVEL("IDL: FE init failed to create AST root, exiting\n");
- exit(99);
- }
- /*
- * Push it on the stack
- */
- idl_global->scopes()->push(idl_global->root());
- /*
- * Populate it with nodes for predefined types
- */
- fe_populate(idl_global->root());
- /*
- * Set flag to indicate we are processing the main file now
- */
- idl_global->set_in_main_file(I_TRUE);
-}
diff --git a/TAO/TAO_IDL/fe/fe_interface_header.cpp b/TAO/TAO_IDL/fe/fe_interface_header.cpp
deleted file mode 100644
index f74dd531550..00000000000
--- a/TAO/TAO_IDL/fe/fe_interface_header.cpp
+++ /dev/null
@@ -1,286 +0,0 @@
-// $Id$
-
-/*
-
-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.
-
- */
-
-/*
- * fe_interface_header.cc - Implements the FE private class FE_InterfaceHeader
- *
- * FE_InterfaceHeader instances are used to store information about an
- * interface header as the interface is being parsed and before the
- * AST_Interface node used to represent this interface is created.
- */
-
-#include "idl.h"
-#include "idl_extern.h"
-
-#include "fe_private.h"
-
-ACE_RCSID(fe, fe_interface_header, "$Id$")
-
-/*
- * Constructor(s) and destructor
- */
-
-FE_InterfaceHeader::FE_InterfaceHeader(UTL_ScopedName *n, UTL_NameList *nl)
- : pd_interface_name(n)
-{
- compile_inheritance(nl);
-}
-
-/*
- * Private operations
- */
-
-// Compute flattened, non-repeating list of inherited interfaces
-
-#undef INCREMENT
-#define INCREMENT 512
-
-/*
- * Private storage used to store interfaces seen already in the
- * computation of the unique, flattened inheritance list
- */
-static AST_Interface **iseen = NULL;
-static long iallocated = 0;
-static long iused = 0;
-
-/*
- * Add an interface to an inheritance spec
- */
-static void
-add_inheritance(AST_Interface *i)
-{
- long oiallocated;
- long k;
- AST_Interface **oiseen;
-
- /*
- * Make sure there's space for one more
- */
- if (iallocated == iused) {
- if (iallocated == 0) {
- iallocated = INCREMENT;
- iseen = new AST_Interface *[iallocated];
- } else {
- oiallocated = iallocated;
- oiseen = iseen;
- iallocated += INCREMENT;
- iseen = new AST_Interface *[iallocated];
- for (k = 0; k < iused; k++)
- iseen[k] = oiseen[k];
- delete oiseen;
- }
- }
- /*
- * OK, now insert it
- */
- iseen[iused] = i;
- iused++;
-}
-
-/*
- * Have we already seen this interface?
- */
-static long
-already_seen(AST_Interface *ip)
-{
- long i;
-
- for (i = 0; i < iused; i++) {
- if (iseen[i] == ip)
- return I_TRUE;
- }
- return I_FALSE;
-}
-
-/*
- * Add this interface to the list of inherited if not already there
- */
-void
-FE_InterfaceHeader::compile_one_inheritance(AST_Interface *i)
-{
- /*
- * Check for badly formed interface
- */
- if (i == NULL)
- return;
- /*
- * If we've seen it already then don't expand again
- */
- if (already_seen(i))
- return;
- /*
- * OK, add i to the list of inherited interfaces
- */
- add_inheritance(i);
-}
-
-/*
- * Compute the list of top-level interfaces this one inherits from
- */
-void
-FE_InterfaceHeader::compile_inheritance(UTL_NameList *nl)
-{
- UTL_NamelistActiveIterator *l = new UTL_NamelistActiveIterator(nl);
- AST_Decl *d;
- AST_Interface *i;
- long k;
-
- iused = 0;
- /*
- * Compute expanded flattened non-repeating list of interfaces
- * which this one inherits from
- */
- while (!(l->is_done())) {
- /*
- * Check that scope stack is valid
- */
- if (idl_global->scopes()->top() == NULL) {
- idl_global->err()->lookup_error(l->item());
- return;
- }
- /*
- * Look it up
- */
- d = idl_global->scopes()->top()->lookup_by_name(l->item(), I_TRUE);
- /*
- * Not found?
- */
- if (d == NULL) {
- idl_global->err()->lookup_error(l->item());
- return;
- }
- /*
- * Not an interface?
- */
- while(d->node_type() == AST_Decl::NT_typedef)
- d = AST_Typedef::narrow_from_decl(d)->base_type();
- if (d->node_type() != AST_Decl::NT_interface) {
- idl_global->err()->inheritance_error(pd_interface_name, d);
- return;
- }
- /*
- * OK, cast to an interface
- */
- i = AST_Interface::narrow_from_decl(d);
- if (i == NULL)
- idl_global->err()->inheritance_error(pd_interface_name, d);
- /*
- * Forward declared interface?
- */
- if (!i->is_defined()) {
- idl_global->err()->inheritance_fwd_error(pd_interface_name, i);
- return;
- }
- /*
- * OK, see if we have to add this to the list of interfaces
- * inherited from
- */
- compile_one_inheritance(i);
-
- /*
- * Next element in header list
- */
- l->next();
- }
- delete l;
- /*
- * OK, install in interface header
- */
- pd_inherits = new AST_Interface *[iused];
- for (k = 0; k < iused; k++)
- pd_inherits[k] = iseen[k];
- pd_n_inherits = iused;
-}
-
-/*
- * Public operations
- */
-
-/*
- * Redefinition of inherited virtual operations
- */
-
-/*
- * Data accessors
- */
-
-UTL_ScopedName *
-FE_InterfaceHeader::interface_name()
-{
- return pd_interface_name;
-}
-
-AST_Interface **
-FE_InterfaceHeader::inherits()
-{
- return pd_inherits;
-}
-
-long
-FE_InterfaceHeader::n_inherits()
-{
- return pd_n_inherits;
-}
diff --git a/TAO/TAO_IDL/fe/fe_private.cpp b/TAO/TAO_IDL/fe/fe_private.cpp
deleted file mode 100644
index bec725f9a20..00000000000
--- a/TAO/TAO_IDL/fe/fe_private.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-// $Id$
-
-/*
-
-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.
-
- */
-
-/*
- * fe_private.cc - Declare global data which are private to the FE
- * part
- */
-
-#include "idl.h"
-#include "idl_extern.h"
-
-#include "fe_private.h"
-
-ACE_RCSID(fe, fe_private, "$Id$")
-
-/*
- * List of pragmas
- */
-UTL_StrList *DRV_global_pragmas = NULL;
diff --git a/TAO/TAO_IDL/fe/idl.ll b/TAO/TAO_IDL/fe/idl.ll
deleted file mode 100644
index b0fdbd6e160..00000000000
--- a/TAO/TAO_IDL/fe/idl.ll
+++ /dev/null
@@ -1,528 +0,0 @@
-
-%{
-/*
-
-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.
-
-IDL_INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES OF
-IDL_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.
-
-IDL_INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT
-IDL_ANY OBLIGATION ON THE PART OF Sun OR IDL_ANY OF ITS SUBSIDIARIES OR AFFILIATES
-TO ASSIST IDL_IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT.
-
-SUN OR IDL_ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH
-RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR IDL_ANY PATENTS BY
-IDL_INTERFACE DEFINITION LANGUAGE CFE OR IDL_ANY PART THEREOF.
-
-IDL_IN NO EVENT WILL SUN OR IDL_ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE FOR
-IDL_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.
-
- */
-
-/*
- * idl.ll - Lexical scanner for IDL 1.1
- */
-
-#include "idl.h"
-#include "idl_extern.h"
-#include "fe_private.h"
-#include "y.tab.h"
-
-static char idl_escape_reader(char *);
-static double idl_atof(char *);
-static long idl_atoi(char *, long);
-static void idl_parse_line_and_file(char *);
-static void idl_store_pragma(char *);
-
-#if 0 /* defined (HPUX) */
-// HPUX has yytext typed to unsigned char *. We make sure here that
-// we'll always use char * static char* __yytext = (char*) yytext;
-// NOTE: This will not work under flex(1) were yytext is not a fixed
-// buffer, but a dynamically allocated one. This function should do
-// the trick for us.
-inline char *__yytext()
-{
- return (char *) yytext;
-}
-#define ace_yytext __yytext()
-#else
-#define ace_yytext yytext
-#endif /* 0 */
-%}
-
-%array
-
-%%
-
-any return IDL_ANY;
-module return IDL_MODULE;
-raises return IDL_RAISES;
-readonly return IDL_READONLY;
-attribute return IDL_ATTRIBUTE;
-exception return IDL_EXCEPTION;
-context return IDL_CONTEXT;
-interface return IDL_INTERFACE;
-const return IDL_CONST;
-typedef return IDL_TYPEDEF;
-struct return IDL_STRUCT;
-enum return IDL_ENUM;
-string return IDL_STRING;
-wstring_t return IDL_WSTRING;
-sequence return IDL_SEQUENCE;
-union return IDL_UNION;
-switch return IDL_SWITCH;
-case return IDL_CASE;
-default return IDL_DEFAULT;
-float return IDL_FLOAT;
-double return IDL_DOUBLE;
-long return IDL_LONG;
-short return IDL_SHORT;
-unsigned return IDL_UNSIGNED;
-char return IDL_CHAR;
-wchar_t return IDL_WCHAR;
-boolean return IDL_BOOLEAN;
-octet return IDL_OCTET;
-void return IDL_VOID;
-native return IDL_NATIVE;
-
-TRUE return IDL_TRUETOK;
-FALSE return IDL_FALSETOK;
-
-inout return IDL_INOUT;
-in return IDL_IN;
-out return IDL_OUT;
-oneway return IDL_ONEWAY;
-
-\<\< return IDL_LEFT_SHIFT;
-\>\> return IDL_RIGHT_SHIFT;
-\:\: {
- yylval.strval = "::";
- return IDL_SCOPE_DELIMITOR;
- }
-
-[a-zA-Z][a-zA-Z0-9_]* {
- char *z = (char *) malloc(strlen(ace_yytext) + 1);
- strcpy(z, ace_yytext);
- yylval.strval = z;
- return IDENTIFIER;
-}
-
--?[0-9]+"."[0-9]*([eE][+-]?[0-9]+)?[lLfF]? {
- yylval.dval = idl_atof(ace_yytext);
- return IDL_FLOATING_PT_LITERAL;
- }
--?[0-9]+[eE][+-]?[0-9]+[lLfF]? {
- yylval.dval = idl_atof(ace_yytext);
- return IDL_FLOATING_PT_LITERAL;
- }
-
--?[1-9][0-9]* {
- yylval.ival = idl_atoi(ace_yytext, 10);
- return IDL_INTEGER_LITERAL;
- }
--?0[xX][a-fA-F0-9]+ {
- yylval.ival = idl_atoi(ace_yytext, 16);
- return IDL_INTEGER_LITERAL;
- }
--?0[0-7]* {
- yylval.ival = idl_atoi(ace_yytext, 8);
- return IDL_INTEGER_LITERAL;
- }
-
-"\""[^\"]*"\"" {
- /* Skip the quotes */
- char *tmp = ace_yytext;
- tmp[strlen(tmp)-1] = '\0';
- yylval.sval = new String(tmp + 1);
- return IDL_STRING_LITERAL;
- }
-"'"."'" {
- yylval.cval = ace_yytext [1];
- return IDL_CHARACTER_LITERAL;
- }
-"'"\\([0-7]{1,3})"'" {
- // octal character constant
- yylval.cval = idl_escape_reader(ace_yytext + 1);
- return IDL_CHARACTER_LITERAL;
- }
-"'"\\."'" {
- yylval.cval = idl_escape_reader(ace_yytext + 1);
- return IDL_CHARACTER_LITERAL;
- }
-^#[ \t]*pragma[ \t].*\n {/* remember pragma */
- idl_global->set_lineno(idl_global->lineno() + 1);
- idl_store_pragma(ace_yytext);
- }
-^#[ \t]*[0-9]*" ""\""[^\"]*"\""" "[0-9]*\n {
- idl_parse_line_and_file(ace_yytext);
- }
-^#[ \t]*[0-9]*" ""\""[^\"]*"\""\n {
- idl_parse_line_and_file(ace_yytext);
- }
-^#line[ \t]*[0-9]*" ""\""[^\"]*"\""\n {
- idl_parse_line_and_file(ace_yytext);
- }
-^#[ \t]*[0-9]*\n {
- idl_parse_line_and_file(ace_yytext);
- }
-^#[ \t]*ident.*\n {
- /* ignore cpp ident */
- idl_global->set_lineno(idl_global->lineno() + 1);
- }
-\/\/.*\n {
- /* ignore comments */
- idl_global->set_lineno(idl_global->lineno() + 1);
- }
-"/*" {
- for(;;) {
- char c = yyinput();
- if (c == '*') {
- char next = yyinput();
- if (next == '/')
- break;
- else
- yyunput(c, NULL);
- if (c == '\n')
- idl_global->set_lineno(idl_global->lineno() + 1);
- }
- }
- }
-[ \t]* ;
-\n {
- idl_global->set_lineno(idl_global->lineno() + 1);
- }
-. return ace_yytext [0];
-
-%%
- /* subroutines */
-
-/*
- * Strip down a name to the last component, i.e. everything after the last
- * '/' character
- */
-static char *
-stripped_name(UTL_String *fn)
-{
- char *n = fn->get_string();
- long l;
-
- if (n == NULL)
- return NULL;
- l = strlen(n);
- for (n += l; l > 0 && *n != '/'; l--, n--);
- if (*n == '/') n++;
- return n;
-}
-
-/*
- * Parse a #line statement generated by the C preprocessor
- */
-static void
-idl_parse_line_and_file(char *buf)
-{
- char *r = buf;
- char *h;
- UTL_String *nm;
-
- /* Skip initial '#' */
- if (*r != '#')
- return;
- else
- r++;
-
- /* Check to see if we're running under the screwy Microsoft scheme */
- /* of putting #line num instead of #num. */
-
- if (ACE_OS::strncmp (r, "line", 4) == 0)
- r += 5;
-
- /* Find line number */
- while (*r == ' ' || *r == '\t')
- r++;
- h = r;
- for (; *r != '\0' && *r != ' ' && *r != '\t'; r++)
- continue;
- *r++ = 0;
- idl_global->set_lineno(idl_atoi(h, 10));
-
- /* Find file name, if present */
- for (; *r != '"'; r++)
- if (*r == '\n' || *r == '\0')
- return;
-
- h = ++r;
- for (; *r != '"'; r++)
- continue;
- *r = 0;
- if (*h == '\0')
- idl_global->set_filename(new String("standard input"));
- else
- {
- long i;
- long j;
-
- // Put Microsoft-style pathnames into a canonical form.
- for (i = 0, j = 0; h[j] != '\0'; i++, j++)
- {
- if (h[j] == '\\' && h[j + 1] == '\\')
- j++;
-
- h[i] = h[j];
- }
- h[i] = '\0';
- idl_global->set_filename(new String(h));
- }
- int in_main_file = I_FALSE;
- if (idl_global->filename()->compare(idl_global->real_filename())
- || idl_global->filename()->compare(idl_global->main_filename()))
- in_main_file = I_TRUE;
- idl_global->set_in_main_file(in_main_file);
- /*
- * If it's an import file store the stripped name for the BE to use
- */
- if (!(idl_global->in_main_file()) && idl_global->import()) {
- nm = new UTL_String(stripped_name(idl_global->filename()));
- idl_global->store_include_file_name(nm);
- }
-}
-
-/*
- * Store a #pragma line into the list of pragmas
- */
-static void
-idl_store_pragma(char *buf)
-{
- char *cp = buf + 1;
- while(*cp != 'p')
- cp++;
- while(*cp != ' ' && *cp != '\t')
- cp++;
- while(*cp == ' ' || *cp == '\t')
- cp++;
- char pragma[80];
- char *pp = pragma;
- while(*cp != '\n') {
- *pp++ = *cp++;
- }
- *pp = 0;
- if (strcmp(pragma, "import") == 0) {
- idl_global->set_import(I_TRUE);
- return;
- }
- if (strcmp(pragma, "include") == 0) {
- idl_global->set_import(I_FALSE);
- return;
- }
- UTL_StrList *p = idl_global->pragmas();
- if (p == NULL)
- idl_global->set_pragmas(new UTL_StrList(new String(buf), NULL));
- else {
- p->nconc(new UTL_StrList(new String(buf), NULL));
- idl_global->set_pragmas(p);
- }
-}
-
-/*
- * idl_atoi - Convert a string of digits into an integer according to base b
- */
-static long
-idl_atoi(char *s, long b)
-{
- long r = 0;
- long negative = 0;
-
- if (*s == '-') {
- negative = 1;
- s++;
- }
- if (b == 8 && *s == '0')
- s++;
- else if (b == 16 && *s == '0' && (*(s + 1) == 'x' || *(s + 1) == 'X'))
- s += 2;
-
- for (; *s; s++)
- if (*s <= '9' && *s >= '0')
- r = (r * b) + (*s - '0');
- else if (b > 10 && *s <= 'f' && *s >= 'a')
- r = (r * b) + (*s - 'a' + 10);
- else if (b > 10 && *s <= 'F' && *s >= 'A')
- r = (r * b) + (*s - 'A' + 10);
- else
- break;
-
- if (negative)
- r *= -1;
-
- return r;
-}
-
-/*
- * Convert a string to a float; atof doesn't seem to work, always.
- */
-static double
-idl_atof(char *s)
-{
- char *h = s;
- double d = 0.0;
- double f = 0.0;
- double e, k;
- long neg = 0, negexp = 0;
-
- ACE_UNUSED_ARG (f);
- ACE_UNUSED_ARG (h);
-
- if (*s == '-') {
- neg = 1;
- s++;
- }
- while (*s >= '0' && *s <= '9') {
- d = (d * 10) + *s - '0';
- s++;
- }
- if (*s == '.') {
- s++;
- e = 10;
- while (*s >= '0' && *s <= '9') {
- d += (*s - '0') / (e * 1.0);
- e *= 10;
- s++;
- }
- }
- if (*s == 'e' || *s == 'E') {
- s++;
- if (*s == '-') {
- negexp = 1;
- s++;
- } else if (*s == '+')
- s++;
- e = 0;
- while (*s >= '0' && *s <= '9') {
- e = (e * 10) + *s - '0';
- s++;
- }
- if (e > 0) {
- for (k = 1; e > 0; k *= 10, e--);
- if (negexp)
- d /= k;
- else
- d *= k;
- }
- }
-
- if (neg) d *= -1.0;
-
- return d;
-}
-
-/*
- * Convert (some) escaped characters into their ascii values
- */
-static char
-idl_escape_reader(
- char *str
-)
-{
- if (str[0] != '\\') {
- return str[0];
- }
-
- switch (str[1]) {
- case 'n':
- return '\n';
- case 't':
- return '\t';
- case 'v':
- return '\v';
- case 'b':
- return '\b';
- case 'r':
- return '\r';
- case 'f':
- return '\f';
- case 'a':
- return '\a';
- case '\\':
- return '\\';
- case '\?':
- return '?';
- case '\'':
- return '\'';
- case '"':
- return '"';
- case 'x':
- {
- int i;
- // hex value
- for (i = 2; str[i] != '\0' && isxdigit(str[i]); i++) {
- continue;
- }
- char save = str[i];
- str[i] = '\0';
- char out = (char)idl_atoi(&str[2], 16);
- str[i] = save;
- return out;
- }
- break;
- default:
- // check for octal value
- if (str[1] >= '0' && str[1] <= '7') {
- int i;
- for (i = 1; str[i] >= '0' && str[i] <= '7'; i++) {
- continue;
- }
- char save = str[i];
- str[i] = '\0';
- char out = (char)idl_atoi(&str[1], 8);
- str[i] = save;
- return out;
- } else {
- return str[1] - 'a';
- }
- break;
- }
-}
diff --git a/TAO/TAO_IDL/fe/idl.yy b/TAO/TAO_IDL/fe/idl.yy
deleted file mode 100644
index 328672ba4b6..00000000000
--- a/TAO/TAO_IDL/fe/idl.yy
+++ /dev/null
@@ -1,2288 +0,0 @@
-
-
-/*
-
-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.
-
-IDL_INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES OF
-IDL_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.
-
-IDL_INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT
-IDL_ANY OBLIGATION ON THE PART OF Sun OR IDL_ANY OF ITS SUBSIDIARIES OR AFFILIATES
-TO ASSIST IDL_IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT.
-
-SUN OR IDL_ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH
-RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR IDL_ANY PATENTS BY
-IDL_INTERFACE DEFINITION LANGUAGE CFE OR IDL_ANY PART THEREOF.
-
-IDL_IN NO EVENT WILL SUN OR IDL_ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE FOR
-IDL_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.
-
- */
-
-/*
- * idl.yy - YACC grammar for IDL 1.1
- */
-
-/* Declarations */
-
-%{
-#include "idl.h"
-#include "idl_extern.h"
-#include "fe_private.h"
-#include <stdio.h>
-
-#if (defined(apollo) || defined(hpux)) && defined(__cplusplus)
-extern "C" int yywrap();
-#endif // (defined(apollo) || defined(hpux)) && defined(__cplusplus)
-
-void yyerror (char *);
-int yylex (void);
-extern "C" int yywrap (void);
-extern char yytext[];
-extern int yyleng;
-#define YYDEBUG_LEXER_TEXT (yytext[yyleng] = '\0', yytext)
-// Force the pretty debugging code to compile.
-#define YYDEBUG 1
-%}
-
-/*
- * Declare the type of values in the grammar
- */
-
-%union {
- AST_Decl *dcval; /* Decl value */
- UTL_StrList *slval; /* String list */
- UTL_NameList *nlval; /* Name list */
- UTL_ExprList *elval; /* Expression list */
- UTL_LabelList *llval; /* Label list */
- UTL_DeclList *dlval; /* Declaration list */
- FE_InterfaceHeader *ihval; /* Interface header */
- AST_Expression *exval; /* Expression value */
- AST_UnionLabel *ulval; /* Union label */
- AST_Field *ffval; /* Field value */
- AST_Expression::ExprType etval; /* Expression type */
- AST_Argument::Direction dival; /* Argument direction */
- AST_Operation::Flags ofval; /* Operation flags */
- FE_Declarator *deval; /* Declarator value */
- idl_bool bval; /* Boolean value */
- long ival; /* Long value */
- double dval; /* Double value */
- float fval; /* Float value */
- char cval; /* Char value */
-
- String *sval; /* String value */
- char *strval; /* char * value */
- Identifier *idval; /* Identifier */
- UTL_IdList *idlist; /* Identifier list */
-}
-
-/*
- * Token types: These are returned by the lexer
- */
-
-%token <strval> IDENTIFIER
-
-%token IDL_CONST
-%token IDL_MODULE
-%token IDL_INTERFACE
-%token IDL_TYPEDEF
-%token IDL_LONG
-%token IDL_SHORT
-%token IDL_UNSIGNED
-%token IDL_DOUBLE
-%token IDL_FLOAT
-%token IDL_CHAR
-%token IDL_WCHAR
-%token IDL_OCTET
-%token IDL_BOOLEAN
-%token IDL_ANY
-%token IDL_STRUCT
-%token IDL_UNION
-%token IDL_SWITCH
-%token IDL_ENUM
-%token IDL_SEQUENCE
-%token IDL_STRING
-%token IDL_WSTRING
-%token IDL_EXCEPTION
-%token IDL_CASE
-%token IDL_DEFAULT
-%token IDL_READONLY
-%token IDL_ATTRIBUTE
-%token IDL_ONEWAY
-%token IDL_IDEMPOTENT
-%token IDL_VOID
-%token IDL_IN
-%token IDL_OUT
-%token IDL_INOUT
-%token IDL_RAISES
-%token IDL_CONTEXT
-%token IDL_NATIVE
-
-%token <ival> IDL_INTEGER_LITERAL
-%token <sval> IDL_STRING_LITERAL
-%token <cval> IDL_CHARACTER_LITERAL
-%token <dval> IDL_FLOATING_PT_LITERAL
-%token IDL_TRUETOK
-%token IDL_FALSETOK
-
-%token <strval> IDL_SCOPE_DELIMITOR
-%token IDL_LEFT_SHIFT
-%token IDL_RIGHT_SHIFT
-
-/*
- * These are production names:
- */
-
-%type <dcval> type_spec simple_type_spec constructed_type_spec
-%type <dcval> template_type_spec sequence_type_spec string_type_spec
-%type <dcval> struct_type enum_type switch_type_spec union_type
-%type <dcval> array_declarator op_type_spec seq_head wstring_type_spec
-%type <dcval> param_type_spec
-
-%type <idlist> scoped_name
-%type <slval> opt_context at_least_one_string_literal
-%type <slval> string_literals
-
-%type <nlval> at_least_one_scoped_name scoped_names inheritance_spec
-%type <nlval> opt_raises
-
-%type <elval> at_least_one_array_dim array_dims
-
-%type <llval> at_least_one_case_label case_labels
-
-%type <dlval> at_least_one_declarator declarators
-%type <dlval> at_least_one_simple_declarator simple_declarators
-
-%type <ihval> interface_header
-
-%type <exval> expression const_expr or_expr xor_expr and_expr shift_expr
-%type <exval> add_expr mult_expr unary_expr primary_expr literal
-%type <exval> positive_int_expr array_dim
-
-%type <ulval> case_label
-
-%type <ffval> element_spec
-
-%type <etval> const_type integer_type char_type boolean_type
-%type <etval> floating_pt_type any_type signed_int
-%type <etval> unsigned_int base_type_spec octet_type
-
-%type <dival> direction
-
-%type <ofval> opt_op_attribute
-
-%type <deval> declarator simple_declarator complex_declarator
-
-%type <bval> opt_readonly
-
-%type <idval> interface_decl id
-
-%type <ival> type_dcl
-%%
-
-/*
- * Production starts here
- */
-start : definitions ;
-
-definitions
- : definition definitions
- | /* empty */
- ;
-
-definition
- : type_dcl
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_TypeDeclSeen);
- }
- ';'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- }
- | const_dcl
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_ConstDeclSeen);
- }
- ';'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- }
- | exception
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_ExceptDeclSeen);
- }
- ';'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- }
- | interface_def
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceDeclSeen);
- }
- ';'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- }
- | module
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_ModuleDeclSeen);
- }
- ';'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- }
- | error
- {
- idl_global->err()->syntax_error(idl_global->parse_state());
- }
- ';'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- yyerrok;
- }
- ;
-
-module : IDL_MODULE
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_ModuleSeen);
- }
- IDENTIFIER
- {
- UTL_ScopedName *n =
- new UTL_ScopedName(new Identifier($3, 1, 0, I_FALSE), NULL);
- AST_Module *m = NULL;
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- UTL_StrList *p = idl_global->pragmas();
-
- idl_global->set_parse_state(IDL_GlobalData::PS_ModuleIDSeen);
- /*
- * Make a new module and add it to the enclosing scope
- */
- if (s != NULL) {
- m = idl_global->gen()->create_module(n, p);
- (void) s->fe_add_module(m);
- }
- /*
- * Push it on the stack
- */
- idl_global->scopes()->push(m);
- }
- '{'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_ModuleSqSeen);
- }
- definitions
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_ModuleBodySeen);
- }
- '}'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_ModuleQsSeen);
- /*
- * Finished with this module - pop it from the scope stack
- */
- idl_global->scopes()->pop();
- }
- ;
-
-interface_def
- : interface
- | forward
- ;
-
-interface :
- interface_header
- {
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- AST_Interface *i = NULL;
- AST_Decl *v = NULL;
- UTL_StrList *p = idl_global->pragmas();
- AST_Decl *d = NULL;
- AST_Interface *fd = NULL;
-
- ACE_UNUSED_ARG (v);
-
- /*
- * Make a new interface node and add it to its enclosing scope
- */
- if (s != NULL && $1 != NULL) {
- i = idl_global->gen()->create_interface($1->interface_name(),
- $1->inherits(),
- $1->n_inherits(),
- p);
- if (i != NULL &&
- (d = s->lookup_by_name(i->name(), I_FALSE)) != NULL) {
- /*
- * See if we're defining a forward declared interface.
- */
- if (d->node_type() == AST_Decl::NT_interface) {
- /*
- * Narrow to an interface
- */
- fd = AST_Interface::narrow_from_decl(d);
- /*
- * Successful?
- */
- if (fd == NULL) {
- /*
- * Should we give an error here?
- */
- }
- /*
- * If it is a forward declared interface..
- */
- else if (!fd->is_defined()) {
- /*
- * Check if redefining in same scope
- */
- if (fd->defined_in() != s) {
- idl_global->err()
- ->error3(UTL_Error::EIDL_SCOPE_CONFLICT,
- i,
- fd,
- ScopeAsDecl(s));
- }
- /*
- * All OK, do the redefinition
- */
- else {
- fd->set_inherits($1->inherits());
- fd->set_n_inherits($1->n_inherits());
- /*
- * Update place of definition
- */
- fd->set_imported(idl_global->imported());
- fd->set_in_main_file(idl_global->in_main_file());
- fd->set_line(idl_global->lineno());
- fd->set_file_name(idl_global->filename());
- fd->add_pragmas(p);
- /*
- * Use full definition node
- */
- delete i;
- i = fd;
- }
- }
- }
- }
- /*
- * Add the interface to its definition scope
- */
- (void) s->fe_add_interface(i);
- }
- /*
- * Push it on the scope stack
- */
- idl_global->scopes()->push(i);
- }
- '{'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceSqSeen);
- }
- exports
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceBodySeen);
- }
- '}'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceQsSeen);
- /*
- * Done with this interface - pop it off the scopes stack
- */
- idl_global->scopes()->pop();
- }
- ;
-
-interface_decl:
- IDL_INTERFACE
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceSeen);
- }
- id
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceIDSeen);
- $$ = $3;
- }
- ;
-
-interface_header :
- interface_decl inheritance_spec
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_InheritSpecSeen);
- /*
- * Create an AST representation of the information in the header
- * part of an interface - this representation contains a computed
- * list of all interfaces which this interface inherits from,
- * recursively
- */
- $$ = new FE_InterfaceHeader(new UTL_ScopedName($1, NULL), $2);
- }
- ;
-
-inheritance_spec
- : ':'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_InheritColonSeen);
- }
- at_least_one_scoped_name
- {
- $$ = $3;
- }
- | /* EMPTY */
- {
- $$ = NULL;
- }
- ;
-
-exports
- : exports export
- | /* EMPTY */
- ;
-
-export
- : type_dcl
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_TypeDeclSeen);
- }
- ';'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- }
- | const_dcl
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_ConstDeclSeen);
- }
- ';'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- }
- | exception
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_ExceptDeclSeen);
- }
- ';'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- }
- | attribute
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_AttrDeclSeen);
- }
- ';'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- }
- | operation
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_OpDeclSeen);
- }
- ';'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- }
- | error
- {
- idl_global->err()->syntax_error(idl_global->parse_state());
- }
- ';'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- yyerrok;
- }
- ;
-
-at_least_one_scoped_name :
- scoped_name scoped_names
- {
- $$ = new UTL_NameList($1, $2);
- }
- ;
-
-scoped_names
- : scoped_names
- ','
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_SNListCommaSeen);
- }
- scoped_name
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_ScopedNameSeen);
-
- if ($1 == NULL)
- $$ = new UTL_NameList($4, NULL);
- else {
- $1->nconc(new UTL_NameList($4, NULL));
- $$ = $1;
- }
- }
- | /* EMPTY */
- {
- $$ = NULL;
- }
- ;
-
-scoped_name
- : id
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_SN_IDSeen);
-
- $$ = new UTL_IdList($1, NULL);
- }
- | IDL_SCOPE_DELIMITOR
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_ScopeDelimSeen);
- }
- id
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_SN_IDSeen);
-
- $$ = new UTL_IdList(new Identifier($1, 1, 0, I_FALSE),
- new UTL_IdList($3, NULL));
- }
- | scoped_name
- IDL_SCOPE_DELIMITOR
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_ScopeDelimSeen);
- }
- id
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_SN_IDSeen);
-
- $1->nconc(new UTL_IdList($4, NULL));
- $$ = $1;
- }
- ;
-
-id: IDENTIFIER
- {
- $$ = new Identifier($1, 1, 0, I_FALSE);
- }
- ;
-
-forward :
- interface_decl
- {
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- UTL_ScopedName *n = new UTL_ScopedName($1, NULL);
- AST_InterfaceFwd *f = NULL;
- UTL_StrList *p = idl_global->pragmas();
-
- idl_global->set_parse_state(IDL_GlobalData::PS_ForwardDeclSeen);
- /*
- * Create a node representing a forward declaration of an
- * interface. Store it in the enclosing scope
- */
- if (s != NULL) {
- f = idl_global->gen()->create_interface_fwd(n, p);
- (void) s->fe_add_interface_fwd(f);
- }
- }
- ;
-
-const_dcl :
- IDL_CONST
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_ConstSeen);
- }
- const_type
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_ConstTypeSeen);
- }
- id
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_ConstIDSeen);
- }
- '='
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_ConstAssignSeen);
- }
- expression
- {
- UTL_ScopedName *n = new UTL_ScopedName($5, NULL);
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- AST_Constant *c = NULL;
- UTL_StrList *p = idl_global->pragmas();
- AST_Decl *v = NULL;
-
- ACE_UNUSED_ARG (v);
-
- idl_global->set_parse_state(IDL_GlobalData::PS_ConstExprSeen);
- /*
- * Create a node representing a constant declaration. Store
- * it in the enclosing scope
- */
- if ($9 != NULL && s != NULL) {
- if ($9->coerce($3) == NULL)
- idl_global->err()->coercion_error($9, $3);
- else {
- c =
- idl_global->gen()->create_constant($3, $9, n, p);
- (void) s->fe_add_constant(c);
- }
- }
- }
- ;
-
-const_type
- : integer_type
- | char_type
- | octet_type
- | boolean_type
- | floating_pt_type
- | string_type_spec
- {
- $$ = AST_Expression::EV_string;
- }
- | wstring_type_spec
- {
- $$ = AST_Expression::EV_wstring;
- }
- | scoped_name
- {
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- AST_Decl *d = NULL;
- AST_PredefinedType *c = NULL;
- AST_Typedef *t = NULL;
-
- /*
- * If the constant's type is a scoped name, it must resolve
- * to a scalar constant type
- */
- if (s != NULL && (d = s->lookup_by_name($1, I_TRUE)) != NULL) {
- /*
- * Look through typedefs
- */
- while (d->node_type() == AST_Decl::NT_typedef) {
- t = AST_Typedef::narrow_from_decl(d);
- if (t == NULL)
- break;
- d = t->base_type();
- }
- if (d == NULL)
- $$ = AST_Expression::EV_any;
- else if (d->node_type() == AST_Decl::NT_pre_defined) {
- c = AST_PredefinedType::narrow_from_decl(d);
- if (c != NULL) {
- $$ = idl_global->PredefinedTypeToExprType(c->pt());
- } else {
- $$ = AST_Expression::EV_any;
- }
- } else
- $$ = AST_Expression::EV_any;
- } else
- $$ = AST_Expression::EV_any;
- }
- ;
-
-expression : const_expr ;
-
-const_expr : or_expr ;
-
-or_expr : xor_expr
- | or_expr '|' xor_expr
- {
- $$ = idl_global->gen()->create_expr(AST_Expression::EC_or, $1, $3);
- }
- ;
-
-xor_expr
- : and_expr
- | xor_expr '^' and_expr
- {
- $$ = idl_global->gen()->create_expr(AST_Expression::EC_xor, $1, $3);
- }
- ;
-
-and_expr
- : shift_expr
- | and_expr '&' shift_expr
- {
- $$ = idl_global->gen()->create_expr(AST_Expression::EC_and, $1, $3);
- }
- ;
-
-shift_expr
- : add_expr
- | shift_expr IDL_LEFT_SHIFT add_expr
- {
- $$ = idl_global->gen()->create_expr(AST_Expression::EC_right,$1,$3);
- }
- | shift_expr IDL_RIGHT_SHIFT add_expr
- {
- $$ = idl_global->gen()->create_expr(AST_Expression::EC_left,$1,$3);
- }
- ;
-
-add_expr
- : mult_expr
- | add_expr '+' mult_expr
- {
- $$ = idl_global->gen()->create_expr(AST_Expression::EC_add, $1, $3);
- }
- | add_expr '-' mult_expr
- {
- $$ = idl_global->gen()->create_expr(AST_Expression::EC_minus,$1,$3);
- }
- ;
-
-mult_expr
- : unary_expr
- | mult_expr '*' unary_expr
- {
- $$ = idl_global->gen()->create_expr(AST_Expression::EC_mul, $1, $3);
- }
- | mult_expr '/' unary_expr
- {
- $$ = idl_global->gen()->create_expr(AST_Expression::EC_div, $1, $3);
- }
- | mult_expr '%' unary_expr
- {
- $$ = idl_global->gen()->create_expr(AST_Expression::EC_mod, $1, $3);
- }
- ;
-
-unary_expr
- : primary_expr
- | '+' primary_expr
- {
- $$ = idl_global->gen()->create_expr(AST_Expression::EC_u_plus,
- $2,
- NULL);
- }
- | '-' primary_expr
- {
- $$ = idl_global->gen()->create_expr(AST_Expression::EC_u_minus,
- $2,
- NULL);
- }
- | '~' primary_expr
- {
- $$ = idl_global->gen()->create_expr(AST_Expression::EC_bit_neg,
- $2,
- NULL);
- }
- ;
-
-primary_expr
- : scoped_name
- {
- /*
- * An expression which is a scoped name is not resolved now,
- * but only when it is evaluated (such as when it is assigned
- * as a constant value)
- */
- $$ = idl_global->gen()->create_expr($1);
- }
- | literal
- | '(' const_expr ')'
- {
- $$ = $2;
- }
- ;
-
-literal
- : IDL_INTEGER_LITERAL
- {
- $$ = idl_global->gen()->create_expr($1);
- }
- | IDL_STRING_LITERAL
- {
- $$ = idl_global->gen()->create_expr($1);
- }
- | IDL_CHARACTER_LITERAL
- {
- $$ = idl_global->gen()->create_expr($1);
- }
- | IDL_FLOATING_PT_LITERAL
- {
- $$ = idl_global->gen()->create_expr($1);
- }
- | IDL_TRUETOK
- {
- $$ = idl_global->gen()->create_expr((idl_bool) I_TRUE,
- AST_Expression::EV_bool);
- }
- | IDL_FALSETOK
- {
- $$ = idl_global->gen()->create_expr((idl_bool) I_FALSE,
- AST_Expression::EV_bool);
- }
- ;
-
-positive_int_expr :
- const_expr
- {
- $1->evaluate(AST_Expression::EK_const);
- $$ = idl_global->gen()->create_expr($1, AST_Expression::EV_ulong);
- }
- ;
-
-type_dcl
- : IDL_TYPEDEF
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_TypedefSeen);
- }
- type_declarator {$$ = 0;}
- | struct_type { $$ = 0;}
- | union_type { $$ = 0;}
- | enum_type { $$ = 0;}
- | IDL_NATIVE simple_declarator
- {
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- AST_Native *node = NULL;
- AST_Decl *v = NULL;
- UTL_StrList *p = idl_global->pragmas();
-
- ACE_UNUSED_ARG (v);
-
- idl_global->set_parse_state(IDL_GlobalData::PS_NativeSeen);
- /*
- * Create a node representing a Native and add it to its
- * enclosing scope
- */
- if (s != NULL) {
- node = idl_global->gen()->create_native ($2->name (), p);
- /*
- * Add it to its defining scope
- */
- (void) s->fe_add_native (node);
- }
- }
- ;
-
-type_declarator :
- type_spec
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_TypeSpecSeen);
- }
- at_least_one_declarator
- {
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- UTL_DecllistActiveIterator *l;
- FE_Declarator *d = NULL;
- AST_Typedef *t = NULL;
- AST_Decl *v = NULL;
- UTL_StrList *p = idl_global->pragmas();
-
- ACE_UNUSED_ARG (v);
-
- idl_global->set_parse_state(IDL_GlobalData::PS_DeclaratorsSeen);
- /*
- * Create a list of type renamings. Add them to the
- * enclosing scope
- */
- if (s != NULL && $1 != NULL && $3 != NULL) {
- l = new UTL_DecllistActiveIterator($3);
- for (;!(l->is_done()); l->next()) {
- d = l->item();
- if (d == NULL)
- continue;
- AST_Type * tp = d->compose($1);
- if (tp == NULL)
- continue;
- t = idl_global->gen()->create_typedef(tp, d->name(), p);
- (void) s->fe_add_typedef(t);
- }
- delete l;
- }
- }
- ;
-
-type_spec
- : simple_type_spec
- | constructed_type_spec
- ;
-
-simple_type_spec
- : base_type_spec
- {
- $$ = idl_global->scopes()->bottom()->lookup_primitive_type($1);
- }
- | template_type_spec
- | scoped_name
- {
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- AST_Decl *d = NULL;
-
- if (s != NULL)
- d = s->lookup_by_name($1, I_TRUE);
- if (d == NULL)
- idl_global->err()->lookup_error($1);
- $$ = d;
- }
- ;
-
-base_type_spec
- : integer_type
- | floating_pt_type
- | char_type
- | boolean_type
- | octet_type
- | any_type
- ;
-
-template_type_spec
- : sequence_type_spec
- | string_type_spec
- | wstring_type_spec
- ;
-
-constructed_type_spec
- : struct_type
- | union_type
- | enum_type
- ;
-
-at_least_one_declarator :
- declarator declarators
- {
- $$ = new UTL_DeclList($1, $2);
- }
- ;
-
-declarators
- : declarators
- ','
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_DeclsCommaSeen);
- }
- declarator
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_DeclsDeclSeen);
-
- if ($1 == NULL)
- $$ = new UTL_DeclList($4, NULL);
- else {
- $1->nconc(new UTL_DeclList($4, NULL));
- $$ = $1;
- }
- }
- | /* EMPTY */
- {
- $$ = NULL;
- }
- ;
-
-declarator
- : simple_declarator
- | complex_declarator
- ;
-
-at_least_one_simple_declarator :
- simple_declarator simple_declarators
- {
- $$ = new UTL_DeclList($1, $2);
- }
- ;
-
-simple_declarators
- : simple_declarators
- ','
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_DeclsCommaSeen);
- }
- simple_declarator
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_DeclsDeclSeen);
-
- if ($1 == NULL)
- $$ = new UTL_DeclList($4, NULL);
- else {
- $1->nconc(new UTL_DeclList($4, NULL));
- $$ = $1;
- }
- }
- | /* EMPTY */
- {
- $$ = NULL;
- }
- ;
-
-simple_declarator :
- id
- {
- $$ = new FE_Declarator(new UTL_ScopedName($1, NULL),
- FE_Declarator::FD_simple, NULL);
- }
- ;
-
-complex_declarator :
- array_declarator
- {
- $$ = new FE_Declarator(new UTL_ScopedName($1->local_name(), NULL),
- FE_Declarator::FD_complex,
- $1);
- }
- ;
-
-integer_type
- : signed_int
- | unsigned_int
- ;
-
-signed_int
- : IDL_LONG
- {
- $$ = AST_Expression::EV_long;
- }
- | IDL_LONG IDL_LONG
- {
- $$ = AST_Expression::EV_longlong;
- }
- | IDL_SHORT
- {
- $$ = AST_Expression::EV_short;
- }
- ;
-
-unsigned_int
- : IDL_UNSIGNED IDL_LONG
- {
- $$ = AST_Expression::EV_ulong;
- }
- | IDL_UNSIGNED IDL_LONG IDL_LONG
- {
- $$ = AST_Expression::EV_ulonglong;
- }
- | IDL_UNSIGNED IDL_SHORT
- {
- $$ = AST_Expression::EV_ushort;
- }
- ;
-
-floating_pt_type
- : IDL_DOUBLE
- {
- $$ = AST_Expression::EV_double;
- }
- | IDL_FLOAT
- {
- $$ = AST_Expression::EV_float;
- }
- | IDL_LONG IDL_DOUBLE
- {
- $$ = AST_Expression::EV_longdouble;
- }
- ;
-
-char_type
- : IDL_CHAR
- {
- $$ = AST_Expression::EV_char;
- }
- | IDL_WCHAR
- {
- $$ = AST_Expression::EV_wchar;
- }
- ;
-
-octet_type
- : IDL_OCTET
- {
- $$ = AST_Expression::EV_octet;
- }
- ;
-
-boolean_type
- : IDL_BOOLEAN
- {
- $$ = AST_Expression::EV_bool;
- }
- ;
-
-any_type
- : IDL_ANY
- {
- $$ = AST_Expression::EV_any;
- }
- ;
-
-struct_type :
- IDL_STRUCT
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_StructSeen);
- }
- id
- {
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- UTL_ScopedName *n = new UTL_ScopedName($3, NULL);
- AST_Structure *d = NULL;
- UTL_StrList *p = idl_global->pragmas();
- AST_Decl *v = NULL;
-
- ACE_UNUSED_ARG (v);
-
- idl_global->set_parse_state(IDL_GlobalData::PS_StructIDSeen);
- /*
- * Create a node representing a struct declaration. Add it
- * to the enclosing scope
- */
- if (s != NULL) {
- d = idl_global->gen()->create_structure(n, p);
- (void) s->fe_add_structure(d);
- }
- /*
- * Push the scope of the struct on the scopes stack
- */
- idl_global->scopes()->push(d);
- }
- '{'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_StructSqSeen);
- }
- at_least_one_member
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_StructBodySeen);
- }
- '}'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_StructQsSeen);
- /*
- * Done with this struct. Pop its scope off the scopes stack
- */
- if (idl_global->scopes()->top() == NULL)
- $$ = NULL;
- else {
- $$ =
- AST_Structure::narrow_from_scope(
- idl_global->scopes()->top_non_null());
- idl_global->scopes()->pop();
- }
- }
- ;
-
-at_least_one_member : member members ;
-
-members
- : members member
- | /* EMPTY */
- ;
-
-member :
- type_spec
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_MemberTypeSeen);
- }
- at_least_one_declarator
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_MemberDeclsSeen);
- }
- ';'
- {
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- UTL_DecllistActiveIterator *l = NULL;
- FE_Declarator *d = NULL;
- AST_Field *f = NULL;
- UTL_StrList *p = idl_global->pragmas();
-
- idl_global->set_parse_state(IDL_GlobalData::PS_MemberDeclsCompleted);
- /*
- * Check for illegal recursive use of type
- */
- if ($1 != NULL && AST_illegal_recursive_type($1))
- idl_global->err()->error1(UTL_Error::EIDL_RECURSIVE_TYPE, $1);
- /*
- * Create a node representing a struct or exception member
- * Add it to the enclosing scope
- */
- else if (s != NULL && $1 != NULL && $3 != NULL) {
- l = new UTL_DecllistActiveIterator($3);
- for (;!(l->is_done()); l->next()) {
- d = l->item();
- if (d == NULL)
- continue;
- AST_Type *tp = d->compose($1);
- if (tp == NULL)
- continue;
- f = idl_global->gen()->create_field(tp, d->name(), p);
- (void) s->fe_add_field(f);
- }
- delete l;
- }
- }
- | error
- {
- idl_global->err()->syntax_error(idl_global->parse_state());
- }
- ';'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- yyerrok;
- }
- ;
-
-union_type :
- IDL_UNION
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_UnionSeen);
- }
- id
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_UnionIDSeen);
- }
- IDL_SWITCH
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_SwitchSeen);
- }
- '('
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_SwitchOpenParSeen);
- }
- switch_type_spec
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_SwitchTypeSeen);
- }
- ')'
- {
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- UTL_ScopedName *n = new UTL_ScopedName($3, NULL);
- AST_Union *u = NULL;
- AST_Decl *v = NULL;
- UTL_StrList *p = idl_global->pragmas();
-
- ACE_UNUSED_ARG (v);
-
- idl_global->set_parse_state(IDL_GlobalData::PS_SwitchCloseParSeen);
- /*
- * Create a node representing a union. Add it to its enclosing
- * scope
- */
- if ($9 != NULL && s != NULL) {
- AST_ConcreteType *tp = AST_ConcreteType::narrow_from_decl($9);
- if (tp == NULL) {
- idl_global->err()->not_a_type($9);
- } else {
- u = idl_global->gen()->create_union(tp, n, p);
- (void) s->fe_add_union(u);
- }
- }
- /*
- * Push the scope of the union on the scopes stack
- */
- idl_global->scopes()->push(u);
- }
- '{'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_UnionSqSeen);
- }
- at_least_one_case_branch
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_UnionBodySeen);
- }
- '}'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_UnionQsSeen);
- /*
- * Done with this union. Pop its scope from the scopes stack
- */
- if (idl_global->scopes()->top() == NULL)
- $$ = NULL;
- else {
- $$ =
- AST_Union::narrow_from_scope(
- idl_global->scopes()->top_non_null());
- idl_global->scopes()->pop();
- }
- }
- ;
-
-switch_type_spec :
- integer_type
- {
- $$ = idl_global->scopes()->bottom()->lookup_primitive_type($1);
- }
- | char_type
- {
- $$ = idl_global->scopes()->bottom()->lookup_primitive_type($1);
- }
- | octet_type
- {
- $$ = idl_global->scopes()->bottom()->lookup_primitive_type($1);
- }
- | boolean_type
- {
- $$ = idl_global->scopes()->bottom()->lookup_primitive_type($1);
- }
- | enum_type
- | scoped_name
- {
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- AST_Decl *d = NULL;
- AST_PredefinedType *p = NULL;
- AST_Typedef *t = NULL;
- long found = I_FALSE;
-
- /*
- * The discriminator is a scoped name. Try to resolve to
- * one of the scalar types or to an enum. Thread through
- * typedef's to arrive at the base type at the end of the
- * chain
- */
- if (s != NULL && (d = s->lookup_by_name($1, I_TRUE)) != NULL) {
- while (!found) {
- switch (d->node_type()) {
- case AST_Decl::NT_enum:
- $$ = d;
- found = I_TRUE;
- break;
- case AST_Decl::NT_pre_defined:
- p = AST_PredefinedType::narrow_from_decl(d);
- if (p != NULL) {
- switch (p->pt()) {
- case AST_PredefinedType::PT_long:
- case AST_PredefinedType::PT_ulong:
- case AST_PredefinedType::PT_longlong:
- case AST_PredefinedType::PT_ulonglong:
- case AST_PredefinedType::PT_short:
- case AST_PredefinedType::PT_char:
- case AST_PredefinedType::PT_wchar:
- case AST_PredefinedType::PT_octet:
- case AST_PredefinedType::PT_boolean:
- $$ = p;
- found = I_TRUE;
- break;
- default:
- $$ = NULL;
- found = I_TRUE;
- break;
- }
- }
- break;
- case AST_Decl::NT_typedef:
- t = AST_Typedef::narrow_from_decl(d);
- if (t != NULL) d = t->base_type();
- break;
- default:
- $$ = NULL;
- found = I_TRUE;
- break;
- }
- }
- } else
- $$ = NULL;
-
- if ($$ == NULL)
- idl_global->err()->lookup_error($1);
- }
- ;
-
-at_least_one_case_branch : case_branch case_branches ;
-
-case_branches
- : case_branches case_branch
- | /* empty */
- ;
-
-case_branch :
- at_least_one_case_label
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_UnionLabelSeen);
- }
- element_spec
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_UnionElemSeen);
- }
- ';'
- {
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- UTL_LabellistActiveIterator *l = NULL;
- AST_UnionLabel *d = NULL;
- AST_UnionBranch *b = NULL;
- AST_Field *f = $3;
-
- idl_global->set_parse_state(IDL_GlobalData::PS_UnionElemCompleted);
- /*
- * Create several nodes representing branches of a union.
- * Add them to the enclosing scope (the union scope)
- */
- if (s != NULL && $1 != NULL && $3 != NULL) {
- l = new UTL_LabellistActiveIterator($1);
- for (;!(l->is_done()); l->next()) {
- d = l->item();
- if (d == NULL)
- continue;
- b = idl_global->gen()->create_union_branch(d,
- f->field_type(),
- f->name(),
- f->pragmas());
- (void) s->fe_add_union_branch(b);
- }
- delete l;
- }
- }
- | error
- {
- idl_global->err()->syntax_error(idl_global->parse_state());
- }
- ';'
-
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- yyerrok;
- }
- ;
-
-at_least_one_case_label :
- case_label case_labels
- {
- $$ = new UTL_LabelList($1, $2);
- }
- ;
-
-case_labels
- : case_labels case_label
- {
- if ($1 == NULL)
- $$ = new UTL_LabelList($2, NULL);
- else {
- $1->nconc(new UTL_LabelList($2, NULL));
- $$ = $1;
- }
- }
- | /* EMPTY */
- {
- $$ = NULL;
- }
- ;
-
-case_label
- : IDL_DEFAULT
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_DefaultSeen);
- }
- ':'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_LabelColonSeen);
-
- $$ = idl_global->gen()->
- create_union_label(AST_UnionLabel::UL_default,
- NULL);
- }
- | IDL_CASE
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_CaseSeen);
- }
- const_expr
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_LabelExprSeen);
- }
- ':'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_LabelColonSeen);
-
- $$ = idl_global->gen()->create_union_label(AST_UnionLabel::UL_label,
- $3);
- }
- ;
-
-element_spec :
- type_spec
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_UnionElemTypeSeen);
- }
- declarator
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_UnionElemDeclSeen);
- /*
- * Check for illegal recursive use of type
- */
- if ($1 != NULL && AST_illegal_recursive_type($1))
- idl_global->err()->error1(UTL_Error::EIDL_RECURSIVE_TYPE, $1);
- /*
- * Create a field in a union branch
- */
- else if ($1 == NULL || $3 == NULL)
- $$ = NULL;
- else {
- AST_Type *tp = $3->compose($1);
- if (tp == NULL)
- $$ = NULL;
- else
- $$ = idl_global->gen()->create_field(tp,
- $3->name(),
- idl_global->pragmas());
- }
- }
- ;
-
-enum_type :
- IDL_ENUM
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_EnumSeen);
- }
- id
- {
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- UTL_ScopedName *n = new UTL_ScopedName($3, NULL);
- AST_Enum *e = NULL;
- AST_Decl *v = NULL;
- UTL_StrList *p = idl_global->pragmas();
-
- ACE_UNUSED_ARG (v);
-
- idl_global->set_parse_state(IDL_GlobalData::PS_EnumIDSeen);
- /*
- * Create a node representing an enum and add it to its
- * enclosing scope
- */
- if (s != NULL) {
- e = idl_global->gen()->create_enum(n, p);
- /*
- * Add it to its defining scope
- */
- (void) s->fe_add_enum(e);
- }
- /*
- * Push the enum scope on the scopes stack
- */
- idl_global->scopes()->push(e);
- }
- '{'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_EnumSqSeen);
- }
- at_least_one_enumerator
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_EnumBodySeen);
- }
- '}'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_EnumQsSeen);
- /*
- * Done with this enum. Pop its scope from the scopes stack
- */
- if (idl_global->scopes()->top() == NULL)
- $$ = NULL;
- else {
- $$ = AST_Enum::narrow_from_scope(idl_global->scopes()->top_non_null());
- idl_global->scopes()->pop();
- }
- }
- ;
-
-at_least_one_enumerator : enumerator enumerators ;
-
-enumerators
- : enumerators
- ','
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_EnumCommaSeen);
- }
- enumerator
- | /* EMPTY */
- ;
-
-enumerator :
- IDENTIFIER
- {
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- UTL_ScopedName *n =
- new UTL_ScopedName(new Identifier($1, 1, 0, I_FALSE), NULL);
- AST_EnumVal *e = NULL;
- AST_Enum *c = NULL;
- UTL_StrList *p = idl_global->pragmas();
-
- /*
- * Create a node representing one enumerator in an enum
- * Add it to the enclosing scope (the enum scope)
- */
- if (s != NULL && s->scope_node_type() == AST_Decl::NT_enum) {
- c = AST_Enum::narrow_from_scope(s);
- if (c != NULL)
- e = idl_global->gen()->create_enum_val(c->next_enum_val(), n, p);
- (void) s->fe_add_enum_val(e);
- }
- }
- ;
-
-sequence_type_spec
- : seq_head
- ','
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_SequenceCommaSeen);
- }
- positive_int_expr
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_SequenceExprSeen);
- }
- '>'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_SequenceQsSeen);
- /*
- * Remove sequence marker from scopes stack
- */
- if (idl_global->scopes()->top() == NULL)
- idl_global->scopes()->pop();
- /*
- * Create a node representing a sequence
- */
- if ($4 == NULL || $4->coerce(AST_Expression::EV_ulong) == NULL) {
- idl_global->err()->coercion_error($4, AST_Expression::EV_ulong);
- $$ = NULL;
- } else if ($1 == NULL) {
- $$ = NULL;
- } else {
- AST_Type *tp = AST_Type::narrow_from_decl($1);
- if (tp == NULL)
- $$ = NULL;
- else {
- $$ = idl_global->gen()->create_sequence($4, tp);
- /*
- * Add this AST_Sequence to the types defined in the global scope
- */
- (void) idl_global->root()
- ->fe_add_sequence(AST_Sequence::narrow_from_decl($$));
- }
- }
- }
- | seq_head
- '>'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_SequenceQsSeen);
- /*
- * Remove sequence marker from scopes stack
- */
- if (idl_global->scopes()->top() == NULL)
- idl_global->scopes()->pop();
- /*
- * Create a node representing a sequence
- */
- if ($1 == NULL)
- $$ = NULL;
- else {
- AST_Type *tp = AST_Type::narrow_from_decl($1);
- if (tp == NULL)
- $$ = NULL;
- else {
- $$ =
- idl_global->gen()->create_sequence(
- idl_global->gen()->create_expr((unsigned long) 0),
- tp);
- /*
- * Add this AST_Sequence to the types defined in the global scope
- */
- (void) idl_global->root()
- ->fe_add_sequence(AST_Sequence::narrow_from_decl($$));
- }
- }
- }
- ;
-
-seq_head:
- IDL_SEQUENCE
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_SequenceSeen);
- /*
- * Push a sequence marker on scopes stack
- */
- idl_global->scopes()->push(NULL);
- }
- '<'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_SequenceSqSeen);
- }
- simple_type_spec
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_SequenceTypeSeen);
- $$ = $5;
- }
- ;
-
-string_type_spec
- : string_head
- '<'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_StringSqSeen);
- }
- positive_int_expr
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_StringExprSeen);
- }
- '>'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_StringQsSeen);
- /*
- * Create a node representing a string
- */
- if ($4 == NULL || $4->coerce(AST_Expression::EV_ulong) == NULL) {
- idl_global->err()->coercion_error($4, AST_Expression::EV_ulong);
- $$ = NULL;
- } else {
- $$ = idl_global->gen()->create_string($4);
- /*
- * Add this AST_String to the types defined in the global scope
- */
- (void) idl_global->root()
- ->fe_add_string(AST_String::narrow_from_decl($$));
- }
- }
- | string_head
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_StringCompleted);
- /*
- * Create a node representing a string
- */
- $$ =
- idl_global->gen()->create_string(
- idl_global->gen()->create_expr((unsigned long) 0));
- /*
- * Add this AST_String to the types defined in the global scope
- */
- (void) idl_global->root()
- ->fe_add_string(AST_String::narrow_from_decl($$));
- }
- ;
-
-string_head:
- IDL_STRING
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_StringSeen);
- }
- ;
-
-wstring_type_spec
- : wstring_head
- '<'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_StringSqSeen);
- }
- positive_int_expr
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_StringExprSeen);
- }
- '>'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_StringQsSeen);
- /*
- * Create a node representing a string
- */
- if ($4 == NULL || $4->coerce(AST_Expression::EV_ulong) == NULL) {
- idl_global->err()->coercion_error($4, AST_Expression::EV_ulong);
- $$ = NULL;
- } else {
- $$ = idl_global->gen()->create_wstring($4);
- /*
- * Add this AST_String to the types defined in the global scope
- */
- (void) idl_global->root()
- ->fe_add_string(AST_String::narrow_from_decl($$));
- }
- }
- | wstring_head
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_StringCompleted);
- /*
- * Create a node representing a string
- */
- $$ =
- idl_global->gen()->create_wstring(
- idl_global->gen()->create_expr((unsigned long) 0));
- /*
- * Add this AST_String to the types defined in the global scope
- */
- (void) idl_global->root()
- ->fe_add_string(AST_String::narrow_from_decl($$));
- }
- ;
-
-wstring_head:
- IDL_WSTRING
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_StringSeen);
- }
- ;
-
-array_declarator :
- id
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_ArrayIDSeen);
- }
- at_least_one_array_dim
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_ArrayCompleted);
- /*
- * Create a node representing an array
- */
- if ($3 != NULL) {
- $$ = idl_global->gen()->create_array(new UTL_ScopedName($1, NULL),
- $3->length(), $3);
- }
- }
- ;
-
-at_least_one_array_dim :
- array_dim array_dims
- {
- $$ = new UTL_ExprList($1, $2);
- }
- ;
-
-array_dims
- : array_dims array_dim
- {
- if ($1 == NULL)
- $$ = new UTL_ExprList($2, NULL);
- else {
- $1->nconc(new UTL_ExprList($2, NULL));
- $$ = $1;
- }
- }
- | /* EMPTY */
- {
- $$ = NULL;
- }
- ;
-
-array_dim :
- '['
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_DimSqSeen);
- }
- positive_int_expr
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_DimExprSeen);
- }
- ']'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_DimQsSeen);
- /*
- * Array dimensions are expressions which must be coerced to
- * positive integers
- */
- if ($3 == NULL || $3->coerce(AST_Expression::EV_ulong) == NULL) {
- idl_global->err()->coercion_error($3, AST_Expression::EV_ulong);
- $$ = NULL;
- } else
- $$ = $3;
- }
- ;
-
-attribute:
- opt_readonly
- IDL_ATTRIBUTE
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_AttrSeen);
- }
- param_type_spec
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_AttrTypeSeen);
- }
- at_least_one_simple_declarator
- {
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- UTL_DecllistActiveIterator *l = NULL;
- AST_Attribute *a = NULL;
- FE_Declarator *d = NULL;
- UTL_StrList *p = idl_global->pragmas();
-
- idl_global->set_parse_state(IDL_GlobalData::PS_AttrCompleted);
- /*
- * Create nodes representing attributes and add them to the
- * enclosing scope
- */
- if (s != NULL && $4 != NULL && $6 != NULL) {
- l = new UTL_DecllistActiveIterator($6);
- for (;!(l->is_done()); l->next()) {
- d = l->item();
- if (d == NULL)
- continue;
- AST_Type *tp = d->compose($4);
- if (tp == NULL)
- continue;
- a = idl_global->gen()->create_attribute($1, tp, d->name(), p);
- /*
- * Add one attribute to the enclosing scope
- */
- (void) s->fe_add_attribute(a);
- }
- delete l;
- }
- }
- ;
-
-opt_readonly
- : IDL_READONLY
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_AttrROSeen);
- $$ = I_TRUE;
- }
- | /* EMPTY */
- {
- $$ = I_FALSE;
- }
- ;
-
-exception :
- IDL_EXCEPTION
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_ExceptSeen);
- }
- id
- {
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- UTL_ScopedName *n = new UTL_ScopedName($3, NULL);
- AST_Exception *e = NULL;
- UTL_StrList *p = idl_global->pragmas();
- AST_Decl *v = NULL;
-
- ACE_UNUSED_ARG (v);
-
- idl_global->set_parse_state(IDL_GlobalData::PS_ExceptIDSeen);
- /*
- * Create a node representing an exception and add it to
- * the enclosing scope
- */
- if (s != NULL) {
- e = idl_global->gen()->create_exception(n, p);
- (void) s->fe_add_exception(e);
- }
- /*
- * Push the exception scope on the scope stack
- */
- idl_global->scopes()->push(e);
- }
- '{'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_ExceptSqSeen);
- }
- members
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_ExceptBodySeen);
- }
- '}'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_ExceptQsSeen);
- /*
- * Done with this exception. Pop its scope from the scope stack
- */
- idl_global->scopes()->pop();
- }
- ;
-
-operation :
- opt_op_attribute
- op_type_spec
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_OpTypeSeen);
- }
- IDENTIFIER
- {
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- UTL_ScopedName *n =
- new UTL_ScopedName(new Identifier($4, 1, 0, I_FALSE), NULL);
- AST_Operation *o = NULL;
- UTL_StrList *p = idl_global->pragmas();
-
- idl_global->set_parse_state(IDL_GlobalData::PS_OpIDSeen);
- /*
- * Create a node representing an operation on an interface
- * and add it to its enclosing scope
- */
- if (s != NULL && $2 != NULL) {
- AST_Type *tp = AST_Type::narrow_from_decl($2);
- if (tp == NULL) {
- idl_global->err()->not_a_type($2);
- } else if (tp->node_type() == AST_Decl::NT_except) {
- idl_global->err()->not_a_type($2);
- } else {
- o = idl_global->gen()->create_operation(tp, $1, n, p);
- (void) s->fe_add_operation(o);
- }
- }
- /*
- * Push the operation scope onto the scopes stack
- */
- idl_global->scopes()->push(o);
- }
- parameter_list
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_OpParsCompleted);
- }
- opt_raises
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseCompleted);
- }
- opt_context
- {
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- AST_Operation *o = NULL;
-
- idl_global->set_parse_state(IDL_GlobalData::PS_OpCompleted);
- /*
- * Add exceptions and context to the operation
- */
- if (s != NULL && s->scope_node_type() == AST_Decl::NT_op) {
- o = AST_Operation::narrow_from_scope(s);
-
- if ($8 != NULL && o != NULL)
- (void) o->fe_add_exceptions($8);
- if ($10 != NULL)
- (void) o->fe_add_context($10);
- }
- /*
- * Done with this operation. Pop its scope from the scopes stack
- */
- idl_global->scopes()->pop();
- }
- ;
-
-opt_op_attribute
- : IDL_ONEWAY
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_OpAttrSeen);
- $$ = AST_Operation::OP_oneway;
- }
- | IDL_IDEMPOTENT
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_OpAttrSeen);
- $$ = AST_Operation::OP_idempotent;
- }
- | /* EMPTY */
- {
- $$ = AST_Operation::OP_noflags;
- }
- ;
-
-op_type_spec
- : param_type_spec
- | IDL_VOID
- {
- $$ =
- idl_global->scopes()->bottom()
- ->lookup_primitive_type(AST_Expression::EV_void);
- }
- ;
-
-parameter_list
- : '('
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_OpSqSeen);
- }
- ')'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_OpQsSeen);
- }
- | '('
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_OpSqSeen);
- }
- at_least_one_parameter
- ')'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_OpQsSeen);
- }
- ;
-
-at_least_one_parameter : parameter parameters ;
-
-parameters
- : parameters
- ','
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_OpParCommaSeen);
- }
- parameter
- | /* EMPTY */
- ;
-
-parameter :
- direction
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_OpParDirSeen);
- }
- param_type_spec
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_OpParTypeSeen);
- }
- declarator
- {
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- AST_Argument *a = NULL;
- UTL_StrList *p = idl_global->pragmas();
-
- idl_global->set_parse_state(IDL_GlobalData::PS_OpParDeclSeen);
- /*
- * Create a node representing an argument to an operation
- * Add it to the enclosing scope (the operation scope)
- */
- if ($3 != NULL && $5 != NULL && s != NULL) {
- AST_Type *tp = $5->compose($3);
- if (tp != NULL) {
- a = idl_global->gen()->create_argument($1, tp, $5->name(), p);
- (void) s->fe_add_argument(a);
- }
- }
- }
- ;
-
-param_type_spec
- : base_type_spec
- {
- $$ = idl_global->scopes()->bottom()->lookup_primitive_type($1);
- }
- | string_type_spec
- | scoped_name
- {
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- AST_Decl *d = NULL;
-
- if (s != NULL)
- d = s->lookup_by_name($1, I_TRUE);
- if (d == NULL)
- idl_global->err()->lookup_error($1);
- $$ = d;
- }
- ;
-
-direction
- : IDL_IN
- {
- $$ = AST_Argument::dir_IN;
- }
- | IDL_OUT
- {
- $$ = AST_Argument::dir_OUT;
- }
- | IDL_INOUT
- {
- $$ = AST_Argument::dir_INOUT;
- }
- ;
-
-opt_raises
- : IDL_RAISES
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseSeen);
- }
- '('
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseSqSeen);
- }
- at_least_one_scoped_name
- ')'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseQsSeen);
- $$ = $5;
- }
- | /* EMPTY */
- {
- $$ = NULL;
- }
- ;
-
-opt_context
- : IDL_CONTEXT
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_OpContextSeen);
- }
- '('
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_OpContextSqSeen);
- }
- at_least_one_string_literal
- ')'
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_OpContextQsSeen);
- $$ = $5;
- }
- | /* EMPTY */
- {
- $$ = NULL;
- }
- ;
-
-at_least_one_string_literal :
- IDL_STRING_LITERAL string_literals
- {
- $$ = new UTL_StrList($1, $2);
- }
- ;
-
-string_literals
- : string_literals
- ','
- {
- idl_global->set_parse_state(IDL_GlobalData::PS_OpContextCommaSeen);
- }
- IDL_STRING_LITERAL
- {
- if ($1 == NULL)
- $$ = new UTL_StrList($4, NULL);
- else {
- $1->nconc(new UTL_StrList($4, NULL));
- $$ = $1;
- }
- }
- | /* EMPTY */
- {
- $$ = NULL;
- }
- ;
-
-%%
-/* programs */
-
-/*
- * ???
- */
-int
-yywrap()
-{
- return 1;
-}
-
-/*
- * Report an error situation discovered in a production
- *
- * This does not do anything since we report all error situations through
- * idl_global->err() operations
- */
-void
-yyerror(char *)
-{
-}
diff --git a/TAO/TAO_IDL/fe/lex.yy.cpp b/TAO/TAO_IDL/fe/lex.yy.cpp
deleted file mode 100644
index e1edb34b7ad..00000000000
--- a/TAO/TAO_IDL/fe/lex.yy.cpp
+++ /dev/null
@@ -1,2197 +0,0 @@
-// $Id$
-/* A lexical scanner generated by flex */
-
-/* Scanner skeleton version:
- * $Header: /home/daffy/u0/vern/flex/flex-2.4.7/RCS/flex.skl,v 1.2 94/08/03 11:13:24 vern Exp $
- */
-
-#define FLEX_SCANNER
-
-#include "ace/OS.h"
-
-
-/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
-#ifdef c_plusplus
-#ifndef __cplusplus
-#define __cplusplus
-#endif
-#endif
-
-
-#ifdef __cplusplus
-
-
-/* Use prototypes in function declarations. */
-#define TAO_YY_USE_PROTOS
-
-/* The "const" storage-class-modifier is valid. */
-#define TAO_YY_USE_CONST
-
-#else /* ! __cplusplus */
-
-#ifdef __STDC__
-
-#define TAO_YY_USE_PROTOS
-#define TAO_YY_USE_CONST
-
-#endif /* __STDC__ */
-#endif /* ! __cplusplus */
-
-
-#ifdef __TURBOC__
-#define TAO_YY_USE_CONST
-#endif
-
-
-#ifndef TAO_YY_USE_CONST
-#ifndef const
-#define const
-#endif
-#endif
-
-
-#ifdef TAO_YY_USE_PROTOS
-#define TAO_YY_PROTO(proto) proto
-#else
-#define TAO_YY_PROTO(proto) ()
-#endif
-
-/* Returned upon end-of-file. */
-#define TAO_YY_NULL 0
-
-/* Promotes a possibly negative, possibly signed char to an unsigned
- * integer for use as an array index. If the signed char is negative,
- * we want to instead treat it as an 8-bit unsigned char, hence the
- * double cast.
- */
-#define TAO_YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
-
-/* Enter a start condition. This macro really ought to take a parameter,
- * but we do it the disgusting crufty way forced on us by the ()-less
- * definition of BEGIN.
- */
-#define BEGIN tao_yy_start = 1 + 2 *
-
-/* Translate the current start state into a value that can be later handed
- * to BEGIN to return to the state.
- */
-#define TAO_YY_START ((tao_yy_start - 1) / 2)
-
-/* Action number for EOF rule of a given start state. */
-#define TAO_YY_STATE_EOF(state) (TAO_YY_END_OF_BUFFER + state + 1)
-
-/* Special action meaning "start processing a new file". Now included
- * only for backward compatibility with previous versions of flex.
- */
-#define TAO_YY_NEW_FILE tao_yyrestart( tao_yyin )
-
-#define TAO_YY_END_OF_BUFFER_CHAR 0
-
-/* Size of default input buffer. */
-#define TAO_YY_BUF_SIZE 16384
-
-typedef struct tao_yy_buffer_state *TAO_YY_BUFFER_STATE;
-
-extern int tao_yyleng;
-extern FILE *tao_yyin, *tao_yyout;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
- extern int tao_yywrap TAO_YY_PROTO(( void ));
-#ifdef __cplusplus
- }
-#endif
-
-#define EOB_ACT_CONTINUE_SCAN 0
-#define EOB_ACT_END_OF_FILE 1
-#define EOB_ACT_LAST_MATCH 2
-
-/* The funky do-while in the following #define is used to turn the definition
- * int a single C statement (which needs a semi-colon terminator). This
- * avoids problems with code like:
- *
- * if ( condition_holds )
- * tao_yyless( 5 );
- * else
- * do_something_else();
- *
- * Prior to using the do-while the compiler would get upset at the
- * "else" because it interpreted the "if" statement as being all
- * done when it reached the ';' after the tao_yyless() call.
- */
-
-/* Return all but the first 'n' matched characters back to the input stream. */
-
-#define tao_yyless(n) \
- do \
- { \
- /* Undo effects of setting up tao_yytext. */ \
- *tao_yy_cp = tao_yy_hold_char; \
- tao_yy_c_buf_p = tao_yy_cp = tao_yy_bp + n - TAO_YY_MORE_ADJ; \
- TAO_YY_DO_BEFORE_ACTION; /* set up tao_yytext again */ \
- } \
- while ( 0 )
-
-#define unput(c) tao_yyunput( c, tao_yytext_ptr )
-
-
-struct tao_yy_buffer_state
- {
- FILE *tao_yy_input_file;
-
- char *tao_yy_ch_buf; /* input buffer */
- char *tao_yy_buf_pos; /* current position in input buffer */
-
- /* Size of input buffer in bytes, not including room for EOB
- * characters.
- */
- int tao_yy_buf_size;
-
- /* Number of characters read into tao_yy_ch_buf, not including EOB
- * characters.
- */
- int tao_yy_n_chars;
-
- /* Whether this is an "interactive" input source; if so, and
- * if we're using stdio for input, then we want to use getc()
- * instead of fread(), to make sure we stop fetching input after
- * each newline.
- */
- int tao_yy_is_interactive;
-
- /* Whether to try to fill the input buffer when we reach the
- * end of it.
- */
- int tao_yy_fill_buffer;
-
- int tao_yy_buffer_status;
-#define TAO_YY_BUFFER_NEW 0
-#define TAO_YY_BUFFER_NORMAL 1
- /* When an EOF's been seen but there's still some text to process
- * then we mark the buffer as TAO_YY_EOF_PENDING, to indicate that we
- * shouldn't try reading from the input source any more. We might
- * still have a bunch of tokens to match, though, because of
- * possible backing-up.
- *
- * When we actually see the EOF, we change the status to "new"
- * (via tao_yyrestart()), so that the user can continue scanning by
- * just pointing tao_yyin at a new input file.
- */
-#define TAO_YY_BUFFER_EOF_PENDING 2
- };
-
-static TAO_YY_BUFFER_STATE tao_yy_current_buffer = 0;
-
-/* We provide macros for accessing buffer states in case in the
- * future we want to put the buffer states in a more general
- * "scanner state".
- */
-#define TAO_YY_CURRENT_BUFFER tao_yy_current_buffer
-
-
-/* tao_yy_hold_char holds the character lost when tao_yytext is formed. */
-static char tao_yy_hold_char;
-
-static int tao_yy_n_chars; /* number of characters read into tao_yy_ch_buf */
-
-
-int tao_yyleng;
-
-/* Points to current character in buffer. */
-static char *tao_yy_c_buf_p = (char *) 0;
-static int tao_yy_init = 1; /* whether we need to initialize */
-static int tao_yy_start = 0; /* start state number */
-
-/* Flag which is used to allow tao_yywrap()'s to do buffer switches
- * instead of setting up a fresh tao_yyin. A bit of a hack ...
- */
-static int tao_yy_did_buffer_switch_on_eof;
-
-static void tao_yyunput TAO_YY_PROTO(( int c, char *buf_ptr ));
-void tao_yyrestart TAO_YY_PROTO(( FILE *input_file ));
-void tao_yy_switch_to_buffer TAO_YY_PROTO(( TAO_YY_BUFFER_STATE new_buffer ));
-void tao_yy_load_buffer_state TAO_YY_PROTO(( void ));
-TAO_YY_BUFFER_STATE tao_yy_create_buffer TAO_YY_PROTO(( FILE *file, int size ));
-void tao_yy_delete_buffer TAO_YY_PROTO(( TAO_YY_BUFFER_STATE b ));
-void tao_yy_init_buffer TAO_YY_PROTO(( TAO_YY_BUFFER_STATE b, FILE *file ));
-
-#if 0
-static int tao_yy_start_stack_ptr = 0;
-static int tao_yy_start_stack_depth = 0;
-static int *tao_yy_start_stack = 0;
-static void tao_yy_push_state TAO_YY_PROTO(( int new_state ));
-static void tao_yy_pop_state TAO_YY_PROTO(( void ));
-static int tao_yy_top_state TAO_YY_PROTO(( void ));
-#endif /* 0 */
-
-static void *tao_yy_flex_alloc TAO_YY_PROTO(( unsigned int ));
-static void *tao_yy_flex_realloc TAO_YY_PROTO(( void *, unsigned int ));
-static void tao_yy_flex_free TAO_YY_PROTO(( void * ));
-
-#define tao_yy_new_buffer tao_yy_create_buffer
-
-#define INITIAL 0
-typedef unsigned char TAO_YY_CHAR;
-typedef int tao_yy_state_type;
-FILE *tao_yyin = (FILE *) 0, *tao_yyout = (FILE *) 0;
-extern char tao_yytext[];
-
-
-#ifndef tao_yytext_ptr
-static void tao_yy_flex_strncpy TAO_YY_PROTO(( char *, const char *, int ));
-#endif
-
-#ifdef __cplusplus
-static int tao_yyinput TAO_YY_PROTO(( void ));
-#else
-static int input TAO_YY_PROTO(( void ));
-#endif
-
-static tao_yy_state_type tao_yy_get_previous_state TAO_YY_PROTO(( void ));
-static tao_yy_state_type tao_yy_try_NUL_trans TAO_YY_PROTO(( tao_yy_state_type current_state ));
-static int tao_yy_get_next_buffer TAO_YY_PROTO(( void ));
-static void tao_yy_fatal_error TAO_YY_PROTO(( const char msg[] ));
-
-/* Done after the current pattern has been matched and before the
- * corresponding action - sets up tao_yytext.
- */
-#define TAO_YY_DO_BEFORE_ACTION \
- tao_yytext_ptr = tao_yy_bp; \
- tao_yyleng = tao_yy_cp - tao_yy_bp; \
- tao_yy_hold_char = *tao_yy_cp; \
- *tao_yy_cp = '\0'; \
- if ( tao_yyleng >= TAO_YYLMAX ) \
- TAO_YY_FATAL_ERROR( "token too large, exceeds TAO_YYLMAX" ); \
- tao_yy_flex_strncpy( tao_yytext, tao_yytext_ptr, tao_yyleng + 1 ); \
- tao_yy_c_buf_p = tao_yy_cp;
-
-#define TAO_YY_END_OF_BUFFER 62
-static const short int tao_yy_accept[284] =
- { 0,
- 58, 58, 62, 60, 58, 59, 60, 60, 60, 60,
- 45, 43, 60, 60, 60, 40, 40, 40, 40, 40,
- 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
- 40, 40, 40, 40, 40, 60, 58, 0, 46, 0,
- 0, 45, 43, 57, 0, 41, 45, 0, 0, 0,
- 43, 39, 37, 38, 40, 40, 40, 40, 40, 40,
- 40, 40, 40, 40, 40, 40, 40, 40, 34, 40,
- 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
- 40, 40, 40, 40, 40, 40, 0, 54, 0, 0,
- 0, 0, 0, 47, 0, 47, 0, 0, 56, 41,
-
- 0, 41, 0, 42, 44, 40, 40, 1, 40, 40,
- 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
- 40, 40, 40, 40, 40, 35, 40, 40, 40, 40,
- 40, 40, 40, 40, 40, 40, 40, 40, 0, 0,
- 0, 0, 0, 49, 48, 0, 0, 41, 42, 40,
- 31, 40, 40, 18, 25, 40, 40, 40, 40, 12,
- 40, 40, 40, 40, 22, 40, 40, 40, 40, 40,
- 40, 40, 40, 40, 40, 40, 40, 40, 40, 29,
- 40, 40, 0, 0, 0, 0, 0, 48, 0, 32,
- 40, 40, 9, 40, 40, 40, 40, 20, 33, 40,
-
- 40, 40, 28, 40, 40, 40, 40, 23, 40, 40,
- 40, 40, 16, 40, 40, 40, 52, 0, 0, 0,
- 0, 40, 40, 40, 40, 21, 40, 40, 2, 30,
- 36, 3, 40, 40, 13, 11, 17, 40, 40, 40,
- 40, 51, 0, 0, 0, 0, 0, 0, 40, 27,
- 7, 19, 40, 40, 40, 40, 10, 40, 26, 40,
- 0, 55, 0, 0, 0, 40, 40, 40, 4, 15,
- 24, 40, 0, 0, 0, 5, 6, 8, 14, 53,
- 0, 50, 0
- } ;
-
-static const int tao_yy_ec[256] =
- { 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 4, 1, 5, 6, 1, 1, 1, 7, 1,
- 1, 8, 9, 1, 10, 11, 12, 13, 14, 14,
- 14, 14, 14, 14, 14, 15, 15, 16, 1, 17,
- 1, 18, 1, 1, 19, 20, 20, 20, 21, 22,
- 23, 23, 23, 23, 23, 24, 23, 23, 23, 23,
- 23, 25, 26, 27, 28, 23, 23, 29, 23, 23,
- 1, 30, 1, 1, 31, 1, 32, 33, 34, 35,
-
- 36, 37, 38, 39, 40, 23, 23, 41, 42, 43,
- 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
- 54, 23, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1
- } ;
-
-static const int tao_yy_meta[55] =
- { 0,
- 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 3, 3, 3, 1, 1, 1, 3, 3,
- 3, 3, 4, 4, 4, 4, 4, 4, 4, 1,
- 4, 3, 3, 3, 3, 3, 3, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4
- } ;
-
-static const short int tao_yy_base[294] =
- { 0,
- 0, 444, 449, 451, 53, 451, 443, 417, 45, 53,
- 53, 58, 430, 428, 426, 0, 424, 417, 13, 397,
- 31, 40, 34, 399, 396, 394, 393, 404, 47, 56,
- 44, 381, 391, 389, 51, 105, 96, 427, 451, 424,
- 88, 100, 111, 451, 427, 141, 128, 155, 170, 0,
- 160, 451, 451, 451, 0, 405, 400, 373, 377, 381,
- 376, 391, 379, 384, 370, 369, 384, 373, 42, 373,
- 380, 365, 364, 376, 362, 370, 377, 362, 363, 359,
- 365, 359, 64, 363, 363, 352, 184, 451, 111, 189,
- 365, 359, 351, 451, 390, 389, 120, 392, 451, 0,
-
- 196, 451, 144, 199, 0, 368, 372, 0, 345, 350,
- 354, 342, 82, 356, 354, 344, 349, 352, 333, 346,
- 343, 330, 339, 342, 325, 0, 328, 340, 324, 326,
- 88, 323, 335, 326, 329, 333, 335, 319, 360, 359,
- 327, 319, 329, 451, 451, 187, 202, 213, 451, 339,
- 0, 319, 322, 0, 0, 308, 320, 305, 313, 0,
- 308, 303, 302, 303, 0, 308, 297, 298, 314, 309,
- 300, 307, 293, 298, 306, 305, 303, 294, 298, 0,
- 288, 294, 328, 157, 289, 295, 292, 451, 322, 0,
- 295, 295, 0, 273, 284, 288, 274, 0, 0, 285,
-
- 285, 284, 0, 265, 270, 274, 273, 0, 277, 265,
- 274, 276, 0, 268, 279, 266, 451, 205, 259, 228,
- 265, 256, 262, 255, 254, 0, 262, 269, 0, 0,
- 0, 0, 237, 238, 0, 0, 0, 220, 215, 199,
- 201, 451, 231, 235, 245, 251, 248, 201, 182, 0,
- 0, 0, 181, 188, 153, 159, 0, 155, 0, 158,
- 169, 451, 162, 146, 101, 112, 101, 104, 0, 0,
- 0, 88, 130, 120, 114, 0, 0, 0, 0, 451,
- 107, 451, 451, 266, 270, 272, 276, 280, 75, 284,
- 288, 292, 296
-
- } ;
-
-static const short int tao_yy_def[294] =
- { 0,
- 283, 1, 283, 283, 283, 283, 284, 285, 283, 283,
- 283, 283, 283, 283, 283, 286, 286, 286, 286, 286,
- 286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
- 286, 286, 286, 286, 286, 283, 283, 284, 283, 283,
- 287, 283, 283, 283, 288, 283, 283, 283, 283, 289,
- 283, 283, 283, 283, 286, 286, 286, 286, 286, 286,
- 286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
- 286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
- 286, 286, 286, 286, 286, 286, 283, 283, 36, 283,
- 283, 283, 283, 283, 283, 283, 283, 288, 283, 46,
-
- 283, 283, 283, 283, 289, 286, 286, 286, 286, 286,
- 286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
- 286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
- 286, 286, 286, 286, 286, 286, 286, 286, 290, 283,
- 283, 283, 283, 283, 283, 283, 283, 283, 283, 286,
- 286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
- 286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
- 286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
- 286, 286, 290, 283, 283, 283, 283, 283, 283, 286,
- 286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
-
- 286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
- 286, 286, 286, 286, 286, 286, 283, 283, 283, 283,
- 283, 286, 286, 286, 286, 286, 286, 286, 286, 286,
- 286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
- 286, 283, 283, 291, 283, 283, 283, 283, 286, 286,
- 286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
- 291, 283, 292, 283, 283, 286, 286, 286, 286, 286,
- 286, 286, 292, 283, 293, 286, 286, 286, 286, 283,
- 293, 283, 0, 283, 283, 283, 283, 283, 283, 283,
- 283, 283, 283
-
- } ;
-
-static const short int tao_yy_nxt[506] =
- { 0,
- 4, 5, 6, 5, 7, 4, 8, 4, 4, 9,
- 4, 10, 11, 12, 12, 13, 14, 15, 16, 16,
- 16, 17, 16, 16, 16, 16, 18, 16, 16, 4,
- 4, 19, 20, 21, 22, 23, 24, 16, 16, 25,
- 26, 27, 28, 29, 16, 16, 30, 31, 32, 33,
- 34, 35, 16, 16, 37, 58, 37, 42, 43, 43,
- 44, 59, 61, 46, 45, 47, 47, 48, 46, 62,
- 51, 51, 51, 49, 63, 64, 66, 105, 49, 78,
- 73, 50, 79, 65, 85, 119, 67, 76, 49, 74,
- 120, 77, 80, 49, 96, 81, 75, 37, 86, 37,
-
- 97, 97, 275, 134, 275, 50, 87, 88, 89, 282,
- 46, 135, 47, 47, 48, 139, 282, 90, 90, 90,
- 49, 46, 280, 51, 51, 51, 145, 174, 50, 156,
- 157, 49, 146, 146, 274, 49, 279, 175, 46, 278,
- 47, 47, 48, 277, 91, 92, 49, 276, 49, 93,
- 263, 283, 50, 100, 100, 100, 104, 104, 104, 217,
- 218, 101, 102, 49, 102, 46, 274, 48, 48, 48,
- 46, 262, 51, 51, 51, 49, 101, 102, 103, 103,
- 49, 102, 104, 104, 104, 87, 88, 89, 272, 271,
- 49, 88, 140, 188, 270, 49, 90, 90, 90, 189,
-
- 189, 90, 90, 90, 147, 147, 269, 242, 148, 148,
- 148, 104, 104, 104, 148, 148, 148, 243, 243, 243,
- 149, 268, 149, 91, 267, 148, 148, 148, 93, 245,
- 266, 246, 265, 242, 102, 149, 102, 262, 260, 149,
- 247, 247, 247, 243, 243, 243, 245, 259, 246, 102,
- 258, 264, 245, 102, 246, 263, 257, 247, 247, 247,
- 247, 247, 247, 247, 247, 247, 38, 38, 38, 38,
- 40, 256, 40, 40, 55, 55, 95, 255, 95, 95,
- 98, 98, 98, 98, 183, 183, 183, 183, 261, 261,
- 261, 261, 273, 273, 273, 273, 281, 281, 281, 281,
-
- 254, 253, 252, 251, 250, 249, 248, 244, 241, 240,
- 239, 238, 237, 236, 235, 234, 233, 232, 231, 230,
- 229, 228, 227, 226, 225, 224, 223, 222, 188, 221,
- 220, 219, 184, 216, 215, 214, 213, 212, 211, 210,
- 209, 208, 207, 206, 205, 204, 203, 202, 201, 200,
- 199, 198, 197, 196, 195, 194, 193, 192, 191, 190,
- 187, 186, 185, 139, 184, 182, 181, 180, 179, 178,
- 177, 176, 173, 172, 171, 170, 169, 168, 167, 166,
- 165, 164, 163, 162, 161, 160, 159, 158, 155, 154,
- 153, 152, 151, 150, 99, 144, 144, 143, 142, 141,
-
- 138, 137, 136, 133, 132, 131, 130, 129, 128, 127,
- 126, 125, 124, 123, 122, 121, 118, 117, 116, 115,
- 114, 113, 112, 111, 110, 109, 108, 107, 106, 99,
- 94, 39, 84, 83, 82, 72, 71, 70, 69, 68,
- 60, 57, 56, 54, 53, 52, 41, 39, 283, 36,
- 3, 283, 283, 283, 283, 283, 283, 283, 283, 283,
- 283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
- 283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
- 283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
- 283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
-
- 283, 283, 283, 283, 283
- } ;
-
-static const short int tao_yy_chk[506] =
- { 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 5, 19, 5, 9, 9, 9,
- 10, 19, 21, 11, 10, 11, 11, 11, 12, 21,
- 12, 12, 12, 11, 21, 22, 23, 289, 12, 31,
- 29, 11, 31, 22, 35, 69, 23, 30, 11, 29,
- 69, 30, 31, 12, 41, 31, 29, 37, 35, 37,
-
- 41, 41, 265, 83, 265, 11, 36, 36, 36, 281,
- 42, 83, 42, 42, 42, 89, 275, 36, 36, 36,
- 42, 43, 274, 43, 43, 43, 97, 131, 42, 113,
- 113, 43, 97, 97, 273, 42, 272, 131, 47, 268,
- 47, 47, 47, 267, 36, 36, 43, 266, 47, 36,
- 264, 89, 42, 46, 46, 46, 103, 103, 103, 184,
- 184, 46, 46, 47, 46, 48, 263, 48, 48, 48,
- 51, 261, 51, 51, 51, 48, 46, 46, 49, 49,
- 51, 46, 49, 49, 49, 87, 87, 87, 260, 258,
- 48, 90, 90, 146, 256, 51, 87, 87, 87, 146,
-
- 146, 90, 90, 90, 101, 101, 255, 218, 101, 101,
- 101, 104, 104, 104, 147, 147, 147, 218, 218, 218,
- 104, 254, 104, 87, 253, 148, 148, 148, 87, 220,
- 249, 220, 248, 243, 148, 104, 148, 244, 241, 104,
- 220, 220, 220, 243, 243, 243, 245, 240, 245, 148,
- 239, 247, 246, 148, 246, 246, 238, 245, 245, 245,
- 247, 247, 247, 246, 246, 246, 284, 284, 284, 284,
- 285, 234, 285, 285, 286, 286, 287, 233, 287, 287,
- 288, 288, 288, 288, 290, 290, 290, 290, 291, 291,
- 291, 291, 292, 292, 292, 292, 293, 293, 293, 293,
-
- 228, 227, 225, 224, 223, 222, 221, 219, 216, 215,
- 214, 212, 211, 210, 209, 207, 206, 205, 204, 202,
- 201, 200, 197, 196, 195, 194, 192, 191, 189, 187,
- 186, 185, 183, 182, 181, 179, 178, 177, 176, 175,
- 174, 173, 172, 171, 170, 169, 168, 167, 166, 164,
- 163, 162, 161, 159, 158, 157, 156, 153, 152, 150,
- 143, 142, 141, 140, 139, 138, 137, 136, 135, 134,
- 133, 132, 130, 129, 128, 127, 125, 124, 123, 122,
- 121, 120, 119, 118, 117, 116, 115, 114, 112, 111,
- 110, 109, 107, 106, 98, 96, 95, 93, 92, 91,
-
- 86, 85, 84, 82, 81, 80, 79, 78, 77, 76,
- 75, 74, 73, 72, 71, 70, 68, 67, 66, 65,
- 64, 63, 62, 61, 60, 59, 58, 57, 56, 45,
- 40, 38, 34, 33, 32, 28, 27, 26, 25, 24,
- 20, 18, 17, 15, 14, 13, 8, 7, 3, 2,
- 283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
- 283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
- 283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
- 283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
- 283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
-
- 283, 283, 283, 283, 283
- } ;
-
-static tao_yy_state_type tao_yy_last_accepting_state;
-static char *tao_yy_last_accepting_cpos;
-
-/* The intent behind this definition is that it'll catch
- * any uses of REJECT which flex missed.
- */
-#define REJECT reject_used_but_not_detected
-#define tao_yymore() tao_yymore_used_but_not_detected
-#define TAO_YY_MORE_ADJ 0
-#ifndef TAO_YYLMAX
-#define TAO_YYLMAX 8192
-#endif
-
-char tao_yytext[TAO_YYLMAX];
-char *tao_yytext_ptr;
-# line 1 "idl.ll"
-# line 3 "idl.ll"
-/*
-
-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.
-
-IDL_INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES OF
-IDL_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.
-
-IDL_INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT
-IDL_ANY OBLIGATION ON THE PART OF Sun OR IDL_ANY OF ITS SUBSIDIARIES OR AFFILIATES
-TO ASSIST IDL_IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT.
-
-SUN OR IDL_ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH
-RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR IDL_ANY PATENTS BY
-IDL_INTERFACE DEFINITION LANGUAGE CFE OR IDL_ANY PART THEREOF.
-
-IDL_IN NO EVENT WILL SUN OR IDL_ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE FOR
-IDL_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.
-
- */
-
-/*
- * idl.ll - Lexical scanner for IDL 1.1
- */
-
-#include "idl.h"
-#include "idl_extern.h"
-#include "fe_private.h"
-#include "y.tab.h"
-
-static char idl_escape_reader(char *);
-static double idl_atof(char *);
-static long idl_atoi(char *, long);
-static void idl_parse_line_and_file(char *);
-static void idl_store_pragma(char *);
-
-#if 0 /* defined (HPUX) */
-// HPUX has tao_yytext typed to unsigned char *. We make sure here that
-// we'll always use char * static char* __tao_yytext = (char*) tao_yytext;
-// NOTE: This will not work under flex(1) were tao_yytext is not a fixed
-// buffer, but a dynamically allocated one. This function should do
-// the trick for us.
-inline char *__tao_yytext()
-{
- return (char *) tao_yytext;
-}
-#define ace_tao_yytext __tao_yytext()
-#else
-#define ace_tao_yytext tao_yytext
-#endif /* 0 */
-
-/* Macros after this point can all be overridden by user definitions in
- * section 1.
- */
-
-#ifdef TAO_YY_MALLOC_DECL
-TAO_YY_MALLOC_DECL
-#else
-#if __STDC__
-#ifndef __cplusplus
-#endif
-#else
-/* Just try to get by without declaring the routines. This will fail
- * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
- * or sizeof(void*) != sizeof(int).
- */
-#endif
-#endif
-
-/* Amount of stuff to slurp up with each read. */
-#ifndef TAO_YY_READ_BUF_SIZE
-#define TAO_YY_READ_BUF_SIZE 8192
-#endif
-
-/* Copy whatever the last rule matched to the standard output. */
-
-#ifndef TAO_ECHO
-/* This used to be an fputs(), but since the string might contain NUL's,
- * we now use fwrite().
- */
-#define TAO_ECHO (void) fwrite( tao_yytext, tao_yyleng, 1, tao_yyout )
-#endif
-
-/* Gets input and stuffs it into "buf". number of characters read, or TAO_YY_NULL,
- * is returned in "result".
- */
-#ifndef TAO_YY_INPUT
-#define TAO_YY_INPUT(buf,result,max_size) \
- if ( tao_yy_current_buffer->tao_yy_is_interactive ) \
- { \
- int c = getc( tao_yyin ); \
- result = c == EOF ? 0 : 1; \
- buf[0] = (char) c; \
- } \
- else if ( ((result = fread( buf, 1, max_size, tao_yyin )) == 0) \
- && ferror( tao_yyin ) ) \
- TAO_YY_FATAL_ERROR( "input in flex scanner failed" );
-#endif
-
-/* No semi-colon after return; correct usage is to write "tao_yyterminate();" -
- * we don't want an extra ';' after the "return" because that will cause
- * some compilers to complain about unreachable statements.
- */
-#ifndef tao_yyterminate
-#define tao_yyterminate() return TAO_YY_NULL
-#endif
-
-/* Number of entries by which start-condition stack grows. */
-#ifndef TAO_YY_START_STACK_INCR
-#define TAO_YY_START_STACK_INCR 25
-#endif
-
-/* Report a fatal error. */
-#ifndef TAO_YY_FATAL_ERROR
-#define TAO_YY_FATAL_ERROR(msg) tao_yy_fatal_error( msg )
-#endif
-
-/* Default declaration of generated scanner - a define so the user can
- * easily add parameters.
- */
-#ifndef TAO_YY_DECL
-#define TAO_YY_DECL int tao_yylex TAO_YY_PROTO(( void ))
-#endif
-
-/* Code executed at the beginning of each rule, after tao_yytext and tao_yyleng
- * have been set up.
- */
-#ifndef TAO_YY_USER_ACTION
-#define TAO_YY_USER_ACTION
-#endif
-
-/* Code executed at the end of each rule. */
-#ifndef TAO_YY_BREAK
-#define TAO_YY_BREAK break;
-#endif
-
-TAO_YY_DECL
- {
- register tao_yy_state_type tao_yy_current_state;
- register char *tao_yy_cp, *tao_yy_bp;
- register int tao_yy_act;
-
-# line 100 "idl.ll"
-
-
-
- if ( tao_yy_init )
- {
-#ifdef TAO_YY_USER_INIT
- TAO_YY_USER_INIT;
-#endif
-
- if ( ! tao_yy_start )
- tao_yy_start = 1; /* first start state */
-
- if ( ! tao_yyin )
- tao_yyin = stdin;
-
- if ( ! tao_yyout )
- tao_yyout = stdout;
-
- if ( tao_yy_current_buffer )
- tao_yy_init_buffer( tao_yy_current_buffer, tao_yyin );
- else
- tao_yy_current_buffer =
- tao_yy_create_buffer( tao_yyin, TAO_YY_BUF_SIZE );
-
- tao_yy_load_buffer_state();
-
- tao_yy_init = 0;
- }
-
- while ( 1 ) /* loops until end-of-file is reached */
- {
- tao_yy_cp = tao_yy_c_buf_p;
-
- /* Support of tao_yytext. */
- *tao_yy_cp = tao_yy_hold_char;
-
- /* tao_yy_bp points to the position in tao_yy_ch_buf of the start of
- * the current run.
- */
- tao_yy_bp = tao_yy_cp;
-
- tao_yy_current_state = tao_yy_start;
- if ( tao_yy_bp[-1] == '\n' )
- ++tao_yy_current_state;
-tao_yy_match:
- do
- {
- register TAO_YY_CHAR tao_yy_c = tao_yy_ec[TAO_YY_SC_TO_UI(*tao_yy_cp)];
- if ( tao_yy_accept[tao_yy_current_state] )
- {
- tao_yy_last_accepting_state = tao_yy_current_state;
- tao_yy_last_accepting_cpos = tao_yy_cp;
- }
- while ( tao_yy_chk[tao_yy_base[tao_yy_current_state] + tao_yy_c] != tao_yy_current_state )
- {
- tao_yy_current_state = (int) tao_yy_def[tao_yy_current_state];
- if ( tao_yy_current_state >= 284 )
- tao_yy_c = tao_yy_meta[(unsigned int) tao_yy_c];
- }
- tao_yy_current_state = tao_yy_nxt[tao_yy_base[tao_yy_current_state] + (unsigned int) tao_yy_c];
- ++tao_yy_cp;
- }
- while ( tao_yy_base[tao_yy_current_state] != 451 );
-
-tao_yy_find_action:
- tao_yy_act = tao_yy_accept[tao_yy_current_state];
-
- TAO_YY_DO_BEFORE_ACTION;
-
-
-do_action: /* This label is used only to access EOF actions. */
-
-
- switch ( tao_yy_act )
- { /* beginning of action switch */
- case 0: /* must back up */
- /* undo the effects of TAO_YY_DO_BEFORE_ACTION */
- *tao_yy_cp = tao_yy_hold_char;
- tao_yy_cp = tao_yy_last_accepting_cpos;
- tao_yy_current_state = tao_yy_last_accepting_state;
- goto tao_yy_find_action;
-
-case 1:
-TAO_YY_USER_ACTION
-# line 102 "idl.ll"
-return IDL_ANY;
- TAO_YY_BREAK
-case 2:
-TAO_YY_USER_ACTION
-# line 103 "idl.ll"
-return IDL_MODULE;
- TAO_YY_BREAK
-case 3:
-TAO_YY_USER_ACTION
-# line 104 "idl.ll"
-return IDL_RAISES;
- TAO_YY_BREAK
-case 4:
-TAO_YY_USER_ACTION
-# line 105 "idl.ll"
-return IDL_READONLY;
- TAO_YY_BREAK
-case 5:
-TAO_YY_USER_ACTION
-# line 106 "idl.ll"
-return IDL_ATTRIBUTE;
- TAO_YY_BREAK
-case 6:
-TAO_YY_USER_ACTION
-# line 107 "idl.ll"
-return IDL_EXCEPTION;
- TAO_YY_BREAK
-case 7:
-TAO_YY_USER_ACTION
-# line 108 "idl.ll"
-return IDL_CONTEXT;
- TAO_YY_BREAK
-case 8:
-TAO_YY_USER_ACTION
-# line 109 "idl.ll"
-return IDL_INTERFACE;
- TAO_YY_BREAK
-case 9:
-TAO_YY_USER_ACTION
-# line 110 "idl.ll"
-return IDL_CONST;
- TAO_YY_BREAK
-case 10:
-TAO_YY_USER_ACTION
-# line 111 "idl.ll"
-return IDL_TYPEDEF;
- TAO_YY_BREAK
-case 11:
-TAO_YY_USER_ACTION
-# line 112 "idl.ll"
-return IDL_STRUCT;
- TAO_YY_BREAK
-case 12:
-TAO_YY_USER_ACTION
-# line 113 "idl.ll"
-return IDL_ENUM;
- TAO_YY_BREAK
-case 13:
-TAO_YY_USER_ACTION
-# line 114 "idl.ll"
-return IDL_STRING;
- TAO_YY_BREAK
-case 14:
-TAO_YY_USER_ACTION
-# line 115 "idl.ll"
-return IDL_WSTRING;
- TAO_YY_BREAK
-case 15:
-TAO_YY_USER_ACTION
-# line 116 "idl.ll"
-return IDL_SEQUENCE;
- TAO_YY_BREAK
-case 16:
-TAO_YY_USER_ACTION
-# line 117 "idl.ll"
-return IDL_UNION;
- TAO_YY_BREAK
-case 17:
-TAO_YY_USER_ACTION
-# line 118 "idl.ll"
-return IDL_SWITCH;
- TAO_YY_BREAK
-case 18:
-TAO_YY_USER_ACTION
-# line 119 "idl.ll"
-return IDL_CASE;
- TAO_YY_BREAK
-case 19:
-TAO_YY_USER_ACTION
-# line 120 "idl.ll"
-return IDL_DEFAULT;
- TAO_YY_BREAK
-case 20:
-TAO_YY_USER_ACTION
-# line 121 "idl.ll"
-return IDL_FLOAT;
- TAO_YY_BREAK
-case 21:
-TAO_YY_USER_ACTION
-# line 122 "idl.ll"
-return IDL_DOUBLE;
- TAO_YY_BREAK
-case 22:
-TAO_YY_USER_ACTION
-# line 123 "idl.ll"
-return IDL_LONG;
- TAO_YY_BREAK
-case 23:
-TAO_YY_USER_ACTION
-# line 124 "idl.ll"
-return IDL_SHORT;
- TAO_YY_BREAK
-case 24:
-TAO_YY_USER_ACTION
-# line 125 "idl.ll"
-return IDL_UNSIGNED;
- TAO_YY_BREAK
-case 25:
-TAO_YY_USER_ACTION
-# line 126 "idl.ll"
-return IDL_CHAR;
- TAO_YY_BREAK
-case 26:
-TAO_YY_USER_ACTION
-# line 127 "idl.ll"
-return IDL_WCHAR;
- TAO_YY_BREAK
-case 27:
-TAO_YY_USER_ACTION
-# line 128 "idl.ll"
-return IDL_BOOLEAN;
- TAO_YY_BREAK
-case 28:
-TAO_YY_USER_ACTION
-# line 129 "idl.ll"
-return IDL_OCTET;
- TAO_YY_BREAK
-case 29:
-TAO_YY_USER_ACTION
-# line 130 "idl.ll"
-return IDL_VOID;
- TAO_YY_BREAK
-case 30:
-TAO_YY_USER_ACTION
-# line 131 "idl.ll"
-return IDL_NATIVE;
- TAO_YY_BREAK
-case 31:
-TAO_YY_USER_ACTION
-# line 133 "idl.ll"
-return IDL_TRUETOK;
- TAO_YY_BREAK
-case 32:
-TAO_YY_USER_ACTION
-# line 134 "idl.ll"
-return IDL_FALSETOK;
- TAO_YY_BREAK
-case 33:
-TAO_YY_USER_ACTION
-# line 136 "idl.ll"
-return IDL_INOUT;
- TAO_YY_BREAK
-case 34:
-TAO_YY_USER_ACTION
-# line 137 "idl.ll"
-return IDL_IN;
- TAO_YY_BREAK
-case 35:
-TAO_YY_USER_ACTION
-# line 138 "idl.ll"
-return IDL_OUT;
- TAO_YY_BREAK
-case 36:
-TAO_YY_USER_ACTION
-# line 139 "idl.ll"
-return IDL_ONEWAY;
- TAO_YY_BREAK
-case 37:
-TAO_YY_USER_ACTION
-# line 141 "idl.ll"
-return IDL_LEFT_SHIFT;
- TAO_YY_BREAK
-case 38:
-TAO_YY_USER_ACTION
-# line 142 "idl.ll"
-return IDL_RIGHT_SHIFT;
- TAO_YY_BREAK
-case 39:
-TAO_YY_USER_ACTION
-# line 143 "idl.ll"
-{
- tao_yylval.strval = "::";
- return IDL_SCOPE_DELIMITOR;
- }
- TAO_YY_BREAK
-case 40:
-TAO_YY_USER_ACTION
-# line 148 "idl.ll"
-{
- char *z = (char *) malloc(strlen(ace_tao_yytext) + 1);
- strcpy(z, ace_tao_yytext);
- tao_yylval.strval = z;
- return IDENTIFIER;
-}
- TAO_YY_BREAK
-case 41:
-TAO_YY_USER_ACTION
-# line 155 "idl.ll"
-{
- tao_yylval.dval = idl_atof(ace_tao_yytext);
- return IDL_FLOATING_PT_LITERAL;
- }
- TAO_YY_BREAK
-case 42:
-TAO_YY_USER_ACTION
-# line 159 "idl.ll"
-{
- tao_yylval.dval = idl_atof(ace_tao_yytext);
- return IDL_FLOATING_PT_LITERAL;
- }
- TAO_YY_BREAK
-case 43:
-TAO_YY_USER_ACTION
-# line 164 "idl.ll"
-{
- tao_yylval.ival = idl_atoi(ace_tao_yytext, 10);
- return IDL_INTEGER_LITERAL;
- }
- TAO_YY_BREAK
-case 44:
-TAO_YY_USER_ACTION
-# line 168 "idl.ll"
-{
- tao_yylval.ival = idl_atoi(ace_tao_yytext, 16);
- return IDL_INTEGER_LITERAL;
- }
- TAO_YY_BREAK
-case 45:
-TAO_YY_USER_ACTION
-# line 172 "idl.ll"
-{
- tao_yylval.ival = idl_atoi(ace_tao_yytext, 8);
- return IDL_INTEGER_LITERAL;
- }
- TAO_YY_BREAK
-case 46:
-TAO_YY_USER_ACTION
-# line 177 "idl.ll"
-{
- /* Skip the quotes */
- char *tmp = ace_tao_yytext;
- tmp[strlen(tmp)-1] = '\0';
- tao_yylval.sval = new String(tmp + 1);
- return IDL_STRING_LITERAL;
- }
- TAO_YY_BREAK
-case 47:
-TAO_YY_USER_ACTION
-# line 184 "idl.ll"
-{
- tao_yylval.cval = ace_tao_yytext [1];
- return IDL_CHARACTER_LITERAL;
- }
- TAO_YY_BREAK
-case 48:
-TAO_YY_USER_ACTION
-# line 188 "idl.ll"
-{
- // octal character constant
- tao_yylval.cval = idl_escape_reader(ace_tao_yytext + 1);
- return IDL_CHARACTER_LITERAL;
- }
- TAO_YY_BREAK
-case 49:
-TAO_YY_USER_ACTION
-# line 193 "idl.ll"
-{
- tao_yylval.cval = idl_escape_reader(ace_tao_yytext + 1);
- return IDL_CHARACTER_LITERAL;
- }
- TAO_YY_BREAK
-case 50:
-TAO_YY_USER_ACTION
-# line 197 "idl.ll"
-{/* remember pragma */
- idl_global->set_lineno(idl_global->lineno() + 1);
- idl_store_pragma(ace_tao_yytext);
- }
- TAO_YY_BREAK
-case 51:
-TAO_YY_USER_ACTION
-# line 201 "idl.ll"
-{
- idl_parse_line_and_file(ace_tao_yytext);
- }
- TAO_YY_BREAK
-case 52:
-TAO_YY_USER_ACTION
-# line 204 "idl.ll"
-{
- idl_parse_line_and_file(ace_tao_yytext);
- }
- TAO_YY_BREAK
-case 53:
-TAO_YY_USER_ACTION
-# line 207 "idl.ll"
-{
- idl_parse_line_and_file(ace_tao_yytext);
- }
- TAO_YY_BREAK
-case 54:
-TAO_YY_USER_ACTION
-# line 210 "idl.ll"
-{
- idl_parse_line_and_file(ace_tao_yytext);
- }
- TAO_YY_BREAK
-case 55:
-TAO_YY_USER_ACTION
-# line 213 "idl.ll"
-{
- /* ignore cpp ident */
- idl_global->set_lineno(idl_global->lineno() + 1);
- }
- TAO_YY_BREAK
-case 56:
-TAO_YY_USER_ACTION
-# line 217 "idl.ll"
-{
- /* ignore comments */
- idl_global->set_lineno(idl_global->lineno() + 1);
- }
- TAO_YY_BREAK
-case 57:
-TAO_YY_USER_ACTION
-# line 221 "idl.ll"
-{
- for(;;) {
- char c = tao_yyinput();
- if (c == '*') {
- char next = tao_yyinput();
- if (next == '/')
- break;
- else
- tao_yyunput(c, NULL);
- if (c == '\n')
- idl_global->set_lineno(idl_global->lineno() + 1);
- }
- }
- }
- TAO_YY_BREAK
-case 58:
-TAO_YY_USER_ACTION
-# line 235 "idl.ll"
-;
- TAO_YY_BREAK
-case 59:
-TAO_YY_USER_ACTION
-# line 236 "idl.ll"
-{
- idl_global->set_lineno(idl_global->lineno() + 1);
- }
- TAO_YY_BREAK
-case 60:
-TAO_YY_USER_ACTION
-# line 239 "idl.ll"
-return ace_tao_yytext [0];
- TAO_YY_BREAK
-case 61:
-TAO_YY_USER_ACTION
-# line 241 "idl.ll"
-TAO_ECHO;
- TAO_YY_BREAK
-case TAO_YY_STATE_EOF(INITIAL):
- tao_yyterminate();
-
- case TAO_YY_END_OF_BUFFER:
- {
- /* Amount of text matched not including the EOB char. */
- int tao_yy_amount_of_matched_text = tao_yy_cp - tao_yytext_ptr - 1;
-
- /* Undo the effects of TAO_YY_DO_BEFORE_ACTION. */
- *tao_yy_cp = tao_yy_hold_char;
-
- if ( tao_yy_current_buffer->tao_yy_buffer_status == TAO_YY_BUFFER_NEW )
- {
- /* We're scanning a new file or input source. It's
- * possible that this happened because the user
- * just pointed tao_yyin at a new source and called
- * tao_yylex(). If so, then we have to assure
- * consistency between tao_yy_current_buffer and our
- * globals. Here is the right place to do so, because
- * this is the first action (other than possibly a
- * back-up) that will match for the new input source.
- */
- tao_yy_n_chars = tao_yy_current_buffer->tao_yy_n_chars;
- tao_yy_current_buffer->tao_yy_input_file = tao_yyin;
- tao_yy_current_buffer->tao_yy_buffer_status = TAO_YY_BUFFER_NORMAL;
- }
-
- /* Note that here we test for tao_yy_c_buf_p "<=" to the position
- * of the first EOB in the buffer, since tao_yy_c_buf_p will
- * already have been incremented past the NUL character
- * (since all states make transitions on EOB to the
- * end-of-buffer state). Contrast this with the test
- * in input().
- */
- if ( tao_yy_c_buf_p <= &tao_yy_current_buffer->tao_yy_ch_buf[tao_yy_n_chars] )
- { /* This was really a NUL. */
- tao_yy_state_type tao_yy_next_state;
-
- tao_yy_c_buf_p = tao_yytext_ptr + tao_yy_amount_of_matched_text;
-
- tao_yy_current_state = tao_yy_get_previous_state();
-
- /* Okay, we're now positioned to make the NUL
- * transition. We couldn't have
- * tao_yy_get_previous_state() go ahead and do it
- * for us because it doesn't know how to deal
- * with the possibility of jamming (and we don't
- * want to build jamming into it because then it
- * will run more slowly).
- */
-
- tao_yy_next_state = tao_yy_try_NUL_trans( tao_yy_current_state );
-
- tao_yy_bp = tao_yytext_ptr + TAO_YY_MORE_ADJ;
-
- if ( tao_yy_next_state )
- {
- /* Consume the NUL. */
- tao_yy_cp = ++tao_yy_c_buf_p;
- tao_yy_current_state = tao_yy_next_state;
- goto tao_yy_match;
- }
-
- else
- {
- tao_yy_cp = tao_yy_c_buf_p;
- goto tao_yy_find_action;
- }
- }
-
- else switch ( tao_yy_get_next_buffer() )
- {
- case EOB_ACT_END_OF_FILE:
- {
- tao_yy_did_buffer_switch_on_eof = 0;
-
- if ( tao_yywrap() )
- {
- /* Note: because we've taken care in
- * tao_yy_get_next_buffer() to have set up
- * tao_yytext, we can now set up
- * tao_yy_c_buf_p so that if some total
- * hoser (like flex itself) wants to
- * call the scanner after we return the
- * TAO_YY_NULL, it'll still work - another
- * TAO_YY_NULL will get returned.
- */
- tao_yy_c_buf_p = tao_yytext_ptr + TAO_YY_MORE_ADJ;
-
- tao_yy_act = TAO_YY_STATE_EOF(TAO_YY_START);
- goto do_action;
- }
-
- else
- {
- if ( ! tao_yy_did_buffer_switch_on_eof )
- TAO_YY_NEW_FILE;
- }
- break;
- }
-
- case EOB_ACT_CONTINUE_SCAN:
- tao_yy_c_buf_p =
- tao_yytext_ptr + tao_yy_amount_of_matched_text;
-
- tao_yy_current_state = tao_yy_get_previous_state();
-
- tao_yy_cp = tao_yy_c_buf_p;
- tao_yy_bp = tao_yytext_ptr + TAO_YY_MORE_ADJ;
- goto tao_yy_match;
-
- case EOB_ACT_LAST_MATCH:
- tao_yy_c_buf_p =
- &tao_yy_current_buffer->tao_yy_ch_buf[tao_yy_n_chars];
-
- tao_yy_current_state = tao_yy_get_previous_state();
-
- tao_yy_cp = tao_yy_c_buf_p;
- tao_yy_bp = tao_yytext_ptr + TAO_YY_MORE_ADJ;
- goto tao_yy_find_action;
- }
- break;
- }
-
- default:
- TAO_YY_FATAL_ERROR(
- "fatal flex scanner internal error--no action found" );
- } /* end of action switch */
- } /* end of scanning one token */
- } /* end of tao_yylex */
-
-
-/* tao_yy_get_next_buffer - try to read in a new buffer
- *
- * Returns a code representing an action:
- * EOB_ACT_LAST_MATCH -
- * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
- * EOB_ACT_END_OF_FILE - end of file
- */
-
-static int tao_yy_get_next_buffer()
- {
- register char *dest = tao_yy_current_buffer->tao_yy_ch_buf;
- register char *source = tao_yytext_ptr - 1; /* copy prev. char, too */
- register int number_to_move, i;
- int ret_val;
-
- if ( tao_yy_c_buf_p > &tao_yy_current_buffer->tao_yy_ch_buf[tao_yy_n_chars + 1] )
- TAO_YY_FATAL_ERROR(
- "fatal flex scanner internal error--end of buffer missed" );
-
- if ( tao_yy_current_buffer->tao_yy_fill_buffer == 0 )
- { /* Don't try to fill the buffer, so this is an EOF. */
- if ( tao_yy_c_buf_p - tao_yytext_ptr - TAO_YY_MORE_ADJ == 1 )
- {
- /* We matched a singled characater, the EOB, so
- * treat this as a final EOF.
- */
- return EOB_ACT_END_OF_FILE;
- }
-
- else
- {
- /* We matched some text prior to the EOB, first
- * process it.
- */
- return EOB_ACT_LAST_MATCH;
- }
- }
-
- /* Try to read more data. */
-
- /* First move last chars to start of buffer. */
- number_to_move = tao_yy_c_buf_p - tao_yytext_ptr;
-
- for ( i = 0; i < number_to_move; ++i )
- *(dest++) = *(source++);
-
- if ( tao_yy_current_buffer->tao_yy_buffer_status == TAO_YY_BUFFER_EOF_PENDING )
- /* don't do the read, it's not guaranteed to return an EOF,
- * just force an EOF
- */
- tao_yy_n_chars = 0;
-
- else
- {
- int num_to_read =
- tao_yy_current_buffer->tao_yy_buf_size - number_to_move - 1;
-
- while ( num_to_read <= 0 )
- { /* Not enough room in the buffer - grow it. */
-#ifdef TAO_YY_USES_REJECT
- TAO_YY_FATAL_ERROR(
-"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
-#else
-
- /* just a shorter name for the current buffer */
- TAO_YY_BUFFER_STATE b = tao_yy_current_buffer;
-
- int tao_yy_c_buf_p_offset = tao_yy_c_buf_p - b->tao_yy_ch_buf;
-
- b->tao_yy_buf_size *= 2;
- b->tao_yy_ch_buf = (char *)
- tao_yy_flex_realloc( (void *) b->tao_yy_ch_buf,
- b->tao_yy_buf_size );
-
- if ( ! b->tao_yy_ch_buf )
- TAO_YY_FATAL_ERROR(
- "fatal error - scanner input buffer overflow" );
-
- tao_yy_c_buf_p = &b->tao_yy_ch_buf[tao_yy_c_buf_p_offset];
-
- num_to_read = tao_yy_current_buffer->tao_yy_buf_size -
- number_to_move - 1;
-#endif
- }
-
- if ( num_to_read > TAO_YY_READ_BUF_SIZE )
- num_to_read = TAO_YY_READ_BUF_SIZE;
-
- /* Read in more data. */
- TAO_YY_INPUT( (&tao_yy_current_buffer->tao_yy_ch_buf[number_to_move]),
- tao_yy_n_chars, num_to_read );
- }
-
- if ( tao_yy_n_chars == 0 )
- {
- if ( number_to_move - TAO_YY_MORE_ADJ == 1 )
- {
- ret_val = EOB_ACT_END_OF_FILE;
- tao_yyrestart( tao_yyin );
- }
-
- else
- {
- ret_val = EOB_ACT_LAST_MATCH;
- tao_yy_current_buffer->tao_yy_buffer_status =
- TAO_YY_BUFFER_EOF_PENDING;
- }
- }
-
- else
- ret_val = EOB_ACT_CONTINUE_SCAN;
-
- tao_yy_n_chars += number_to_move;
- tao_yy_current_buffer->tao_yy_ch_buf[tao_yy_n_chars] = TAO_YY_END_OF_BUFFER_CHAR;
- tao_yy_current_buffer->tao_yy_ch_buf[tao_yy_n_chars + 1] = TAO_YY_END_OF_BUFFER_CHAR;
-
- /* tao_yytext begins at the second character in tao_yy_ch_buf; the first
- * character is the one which preceded it before reading in the latest
- * buffer; it needs to be kept around in case it's a newline, so
- * tao_yy_get_previous_state() will have with '^' rules active.
- */
-
- tao_yytext_ptr = &tao_yy_current_buffer->tao_yy_ch_buf[1];
-
- return ret_val;
- }
-
-
-/* tao_yy_get_previous_state - get the state just before the EOB char was reached */
-
-static tao_yy_state_type tao_yy_get_previous_state()
- {
- register tao_yy_state_type tao_yy_current_state;
- register char *tao_yy_cp;
-
- register char *tao_yy_bp = tao_yytext_ptr;
-
- tao_yy_current_state = tao_yy_start;
- if ( tao_yy_bp[-1] == '\n' )
- ++tao_yy_current_state;
-
- for ( tao_yy_cp = tao_yytext_ptr + TAO_YY_MORE_ADJ; tao_yy_cp < tao_yy_c_buf_p; ++tao_yy_cp )
- {
- register TAO_YY_CHAR tao_yy_c = (*tao_yy_cp ? tao_yy_ec[TAO_YY_SC_TO_UI(*tao_yy_cp)] : 1);
- if ( tao_yy_accept[tao_yy_current_state] )
- {
- tao_yy_last_accepting_state = tao_yy_current_state;
- tao_yy_last_accepting_cpos = tao_yy_cp;
- }
- while ( tao_yy_chk[tao_yy_base[tao_yy_current_state] + tao_yy_c] != tao_yy_current_state )
- {
- tao_yy_current_state = (int) tao_yy_def[tao_yy_current_state];
- if ( tao_yy_current_state >= 284 )
- tao_yy_c = tao_yy_meta[(unsigned int) tao_yy_c];
- }
- tao_yy_current_state = tao_yy_nxt[tao_yy_base[tao_yy_current_state] + (unsigned int) tao_yy_c];
- }
-
- return tao_yy_current_state;
- }
-
-
-/* tao_yy_try_NUL_trans - try to make a transition on the NUL character
- *
- * synopsis
- * next_state = tao_yy_try_NUL_trans( current_state );
- */
-
-#ifdef TAO_YY_USE_PROTOS
-static tao_yy_state_type tao_yy_try_NUL_trans( tao_yy_state_type tao_yy_current_state )
-#else
-static tao_yy_state_type tao_yy_try_NUL_trans( tao_yy_current_state )
-tao_yy_state_type tao_yy_current_state;
-#endif
- {
- register int tao_yy_is_jam;
- register char *tao_yy_cp = tao_yy_c_buf_p;
-
- register TAO_YY_CHAR tao_yy_c = 1;
- if ( tao_yy_accept[tao_yy_current_state] )
- {
- tao_yy_last_accepting_state = tao_yy_current_state;
- tao_yy_last_accepting_cpos = tao_yy_cp;
- }
- while ( tao_yy_chk[tao_yy_base[tao_yy_current_state] + tao_yy_c] != tao_yy_current_state )
- {
- tao_yy_current_state = (int) tao_yy_def[tao_yy_current_state];
- if ( tao_yy_current_state >= 284 )
- tao_yy_c = tao_yy_meta[(unsigned int) tao_yy_c];
- }
- tao_yy_current_state = tao_yy_nxt[tao_yy_base[tao_yy_current_state] + (unsigned int) tao_yy_c];
- tao_yy_is_jam = (tao_yy_current_state == 283);
-
- return tao_yy_is_jam ? 0 : tao_yy_current_state;
- }
-
-
-#ifdef TAO_YY_USE_PROTOS
-static void tao_yyunput( int c, register char *tao_yy_bp )
-#else
-static void tao_yyunput( c, tao_yy_bp )
-int c;
-register char *tao_yy_bp;
-#endif
- {
- register char *tao_yy_cp = tao_yy_c_buf_p;
-
- /* undo effects of setting up tao_yytext */
- *tao_yy_cp = tao_yy_hold_char;
-
- if ( tao_yy_cp < tao_yy_current_buffer->tao_yy_ch_buf + 2 )
- { /* need to shift things up to make room */
- /* +2 for EOB chars. */
- register int number_to_move = tao_yy_n_chars + 2;
- register char *dest = &tao_yy_current_buffer->tao_yy_ch_buf[
- tao_yy_current_buffer->tao_yy_buf_size + 2];
- register char *source =
- &tao_yy_current_buffer->tao_yy_ch_buf[number_to_move];
-
- while ( source > tao_yy_current_buffer->tao_yy_ch_buf )
- *--dest = *--source;
-
- tao_yy_cp += dest - source;
- tao_yy_bp += dest - source;
- tao_yy_n_chars = tao_yy_current_buffer->tao_yy_buf_size;
-
- if ( tao_yy_cp < tao_yy_current_buffer->tao_yy_ch_buf + 2 )
- TAO_YY_FATAL_ERROR( "flex scanner push-back overflow" );
- }
-
- if ( tao_yy_cp > tao_yy_bp && tao_yy_cp[-1] == '\n' )
- tao_yy_cp[-2] = '\n';
-
- *--tao_yy_cp = (char) c;
-
-
- /* Note: the formal parameter *must* be called "tao_yy_bp" for this
- * macro to now work correctly.
- */
- TAO_YY_DO_BEFORE_ACTION; /* set up tao_yytext again */
- }
-
-
-#ifdef __cplusplus
-static int tao_yyinput()
-#else
-static int input()
-#endif
- {
- int c;
-
- *tao_yy_c_buf_p = tao_yy_hold_char;
-
- if ( *tao_yy_c_buf_p == TAO_YY_END_OF_BUFFER_CHAR )
- {
- /* tao_yy_c_buf_p now points to the character we want to return.
- * If this occurs *before* the EOB characters, then it's a
- * valid NUL; if not, then we've hit the end of the buffer.
- */
- if ( tao_yy_c_buf_p < &tao_yy_current_buffer->tao_yy_ch_buf[tao_yy_n_chars] )
- /* This was really a NUL. */
- *tao_yy_c_buf_p = '\0';
-
- else
- { /* need more input */
- tao_yytext_ptr = tao_yy_c_buf_p;
- ++tao_yy_c_buf_p;
-
- switch ( tao_yy_get_next_buffer() )
- {
- case EOB_ACT_END_OF_FILE:
- {
- if ( tao_yywrap() )
- {
- tao_yy_c_buf_p =
- tao_yytext_ptr + TAO_YY_MORE_ADJ;
- return EOF;
- }
-
- TAO_YY_NEW_FILE;
-#ifdef __cplusplus
- return tao_yyinput();
-#else
- return input();
-#endif
- }
-
- case EOB_ACT_CONTINUE_SCAN:
- tao_yy_c_buf_p = tao_yytext_ptr + TAO_YY_MORE_ADJ;
- break;
-
- case EOB_ACT_LAST_MATCH:
-#ifdef __cplusplus
- TAO_YY_FATAL_ERROR(
- "unexpected last match in tao_yyinput()" );
-#else
- TAO_YY_FATAL_ERROR(
- "unexpected last match in input()" );
-#endif
- }
- }
- }
-
- c = *(unsigned char *) tao_yy_c_buf_p; /* cast for 8-bit char's */
- *tao_yy_c_buf_p = '\0'; /* preserve tao_yytext */
- tao_yy_hold_char = *++tao_yy_c_buf_p;
-
- return c;
- }
-
-
-#ifdef TAO_YY_USE_PROTOS
-void tao_yyrestart( FILE *input_file )
-#else
-void tao_yyrestart( input_file )
-FILE *input_file;
-#endif
- {
- if ( ! tao_yy_current_buffer )
- tao_yy_current_buffer = tao_yy_create_buffer( tao_yyin, TAO_YY_BUF_SIZE );
-
- tao_yy_init_buffer( tao_yy_current_buffer, input_file );
- tao_yy_load_buffer_state();
- }
-
-
-#ifdef TAO_YY_USE_PROTOS
-void tao_yy_switch_to_buffer( TAO_YY_BUFFER_STATE new_buffer )
-#else
-void tao_yy_switch_to_buffer( new_buffer )
-TAO_YY_BUFFER_STATE new_buffer;
-#endif
- {
- if ( tao_yy_current_buffer == new_buffer )
- return;
-
- if ( tao_yy_current_buffer )
- {
- /* Flush out information for old buffer. */
- *tao_yy_c_buf_p = tao_yy_hold_char;
- tao_yy_current_buffer->tao_yy_buf_pos = tao_yy_c_buf_p;
- tao_yy_current_buffer->tao_yy_n_chars = tao_yy_n_chars;
- }
-
- tao_yy_current_buffer = new_buffer;
- tao_yy_load_buffer_state();
-
- /* We don't actually know whether we did this switch during
- * EOF (tao_yywrap()) processing, but the only time this flag
- * is looked at is after tao_yywrap() is called, so it's safe
- * to go ahead and always set it.
- */
- tao_yy_did_buffer_switch_on_eof = 1;
- }
-
-
-#ifdef TAO_YY_USE_PROTOS
-void tao_yy_load_buffer_state( void )
-#else
-void tao_yy_load_buffer_state()
-#endif
- {
- tao_yy_n_chars = tao_yy_current_buffer->tao_yy_n_chars;
- tao_yytext_ptr = tao_yy_c_buf_p = tao_yy_current_buffer->tao_yy_buf_pos;
- tao_yyin = tao_yy_current_buffer->tao_yy_input_file;
- tao_yy_hold_char = *tao_yy_c_buf_p;
- }
-
-
-#ifdef TAO_YY_USE_PROTOS
-TAO_YY_BUFFER_STATE tao_yy_create_buffer( FILE *file, int size )
-#else
-TAO_YY_BUFFER_STATE tao_yy_create_buffer( file, size )
-FILE *file;
-int size;
-#endif
- {
- TAO_YY_BUFFER_STATE b;
-
- b = (TAO_YY_BUFFER_STATE) tao_yy_flex_alloc( sizeof( struct tao_yy_buffer_state ) );
-
- if ( ! b )
- TAO_YY_FATAL_ERROR( "out of dynamic memory in tao_yy_create_buffer()" );
-
- b->tao_yy_buf_size = size;
-
- /* tao_yy_ch_buf has to be 2 characters longer than the size given because
- * we need to put in 2 end-of-buffer characters.
- */
- b->tao_yy_ch_buf = (char *) tao_yy_flex_alloc( b->tao_yy_buf_size + 2 );
-
- if ( ! b->tao_yy_ch_buf )
- TAO_YY_FATAL_ERROR( "out of dynamic memory in tao_yy_create_buffer()" );
-
- tao_yy_init_buffer( b, file );
-
- return b;
- }
-
-
-#ifdef TAO_YY_USE_PROTOS
-void tao_yy_delete_buffer( TAO_YY_BUFFER_STATE b )
-#else
-void tao_yy_delete_buffer( b )
-TAO_YY_BUFFER_STATE b;
-#endif
- {
- if ( b == tao_yy_current_buffer )
- tao_yy_current_buffer = (TAO_YY_BUFFER_STATE) 0;
-
- tao_yy_flex_free( (void *) b->tao_yy_ch_buf );
- tao_yy_flex_free( (void *) b );
- }
-
-
-#ifdef TAO_YY_USE_PROTOS
-void tao_yy_init_buffer( TAO_YY_BUFFER_STATE b, FILE *file )
-#else
-void tao_yy_init_buffer( b, file )
-TAO_YY_BUFFER_STATE b;
-FILE *file;
-#endif
- {
- b->tao_yy_input_file = file;
-
- /* We put in the '\n' and start reading from [1] so that an
- * initial match-at-newline will be true.
- */
-
- b->tao_yy_ch_buf[0] = '\n';
- b->tao_yy_n_chars = 1;
-
- /* We always need two end-of-buffer characters. The first causes
- * a transition to the end-of-buffer state. The second causes
- * a jam in that state.
- */
- b->tao_yy_ch_buf[1] = TAO_YY_END_OF_BUFFER_CHAR;
- b->tao_yy_ch_buf[2] = TAO_YY_END_OF_BUFFER_CHAR;
-
- b->tao_yy_buf_pos = &b->tao_yy_ch_buf[1];
-
- b->tao_yy_is_interactive = file ? isatty( fileno(file) ) : 0;
-
- b->tao_yy_fill_buffer = 1;
-
- b->tao_yy_buffer_status = TAO_YY_BUFFER_NEW;
- }
-
-
-#if 0
-#ifdef TAO_YY_USE_PROTOS
-static void tao_yy_push_state( int new_state )
-#else
-static void tao_yy_push_state( new_state )
-int new_state;
-#endif
- {
- if ( tao_yy_start_stack_ptr >= tao_yy_start_stack_depth )
- {
- int new_size;
-
- tao_yy_start_stack_depth += TAO_YY_START_STACK_INCR;
- new_size = tao_yy_start_stack_depth * sizeof( int );
-
- if ( ! tao_yy_start_stack )
- tao_yy_start_stack = (int *) tao_yy_flex_alloc( new_size );
-
- else
- tao_yy_start_stack = (int *) tao_yy_flex_realloc(
- (void *) tao_yy_start_stack, new_size );
-
- if ( ! tao_yy_start_stack )
- TAO_YY_FATAL_ERROR(
- "out of memory expanding start-condition stack" );
- }
-
- tao_yy_start_stack[tao_yy_start_stack_ptr++] = TAO_YY_START;
-
- BEGIN(new_state);
- }
-
-
-static void tao_yy_pop_state()
- {
- if ( --tao_yy_start_stack_ptr < 0 )
- TAO_YY_FATAL_ERROR( "start-condition stack underflow" );
-
- BEGIN(tao_yy_start_stack[tao_yy_start_stack_ptr]);
- }
-
-
-static int tao_yy_top_state()
- {
- return tao_yy_start_stack[tao_yy_start_stack_ptr - 1];
- }
-#endif /* 0 */
-
-#ifdef TAO_YY_USE_PROTOS
-static void tao_yy_fatal_error( const char msg[] )
-#else
-static void tao_yy_fatal_error( msg )
-char msg[];
-#endif
- {
- (void) fprintf( stderr, "%s\n", msg );
- exit( 1 );
- }
-
-
-
-/* Redefine tao_yyless() so it works in section 3 code. */
-
-#undef tao_yyless
-#define tao_yyless(n) \
- do \
- { \
- /* Undo effects of setting up tao_yytext. */ \
- tao_yytext[tao_yyleng] = tao_yy_hold_char; \
- tao_yy_c_buf_p = tao_yytext + n - TAO_YY_MORE_ADJ; \
- tao_yy_hold_char = *tao_yy_c_buf_p; \
- *tao_yy_c_buf_p = '\0'; \
- tao_yyleng = n; \
- } \
- while ( 0 )
-
-
-/* Internal utility routines. */
-
-#ifndef tao_yytext_ptr
-#ifdef TAO_YY_USE_PROTOS
-static void tao_yy_flex_strncpy( char *s1, const char *s2, int n )
-#else
-static void tao_yy_flex_strncpy( s1, s2, n )
-char *s1;
-const char *s2;
-int n;
-#endif
- {
- register int i;
- for ( i = 0; i < n; ++i )
- s1[i] = s2[i];
- }
-#endif
-
-
-#ifdef TAO_YY_USE_PROTOS
-static void *tao_yy_flex_alloc( unsigned int size )
-#else
-static void *tao_yy_flex_alloc( size )
-unsigned int size;
-#endif
- {
- return (void *) malloc( size );
- }
-
-#ifdef TAO_YY_USE_PROTOS
-static void *tao_yy_flex_realloc( void *ptr, unsigned int size )
-#else
-static void *tao_yy_flex_realloc( ptr, size )
-void *ptr;
-unsigned int size;
-#endif
- {
- return (void *) realloc( ptr, size );
- }
-
-#ifdef TAO_YY_USE_PROTOS
-static void tao_yy_flex_free( void *ptr )
-#else
-static void tao_yy_flex_free( ptr )
-void *ptr;
-#endif
- {
- free( ptr );
- }
-# line 241 "idl.ll"
-
- /* subroutines */
-
-/*
- * Strip down a name to the last component, i.e. everything after the last
- * '/' character
- */
-static char *
-stripped_name(UTL_String *fn)
-{
- char *n = fn->get_string();
- long l;
-
- if (n == NULL)
- return NULL;
- l = strlen(n);
- for (n += l; l > 0 && *n != '/'; l--, n--);
- if (*n == '/') n++;
- return n;
-}
-
-/*
- * Parse a #line statement generated by the C preprocessor
- */
-static void
-idl_parse_line_and_file(char *buf)
-{
- char *r = buf;
- char *h;
- UTL_String *nm;
-
- /* Skip initial '#' */
- if (*r != '#')
- return;
- else
- r++;
-
- /* Check to see if we're running under the screwy Microsoft scheme */
- /* of putting #line num instead of #num. */
-
- if (ACE_OS::strncmp (r, "line", 4) == 0)
- r += 5;
-
- /* Find line number */
- while (*r == ' ' || *r == '\t')
- r++;
- h = r;
- for (; *r != '\0' && *r != ' ' && *r != '\t'; r++)
- continue;
- *r++ = 0;
- idl_global->set_lineno(idl_atoi(h, 10));
-
- /* Find file name, if present */
- for (; *r != '"'; r++)
- if (*r == '\n' || *r == '\0')
- return;
-
- h = ++r;
- for (; *r != '"'; r++)
- continue;
- *r = 0;
- if (*h == '\0')
- idl_global->set_filename(new String("standard input"));
- else
- {
- long i;
- long j;
-
- // Put Microsoft-style pathnames into a canonical form.
- for (i = 0, j = 0; h[j] != '\0'; i++, j++)
- {
- if (h[j] == '\\' && h[j + 1] == '\\')
- j++;
-
- h[i] = h[j];
- }
- h[i] = '\0';
- idl_global->set_filename(new String(h));
- }
- int in_main_file = I_FALSE;
- if (idl_global->filename()->compare(idl_global->real_filename())
- || idl_global->filename()->compare(idl_global->main_filename()))
- in_main_file = I_TRUE;
- idl_global->set_in_main_file(in_main_file);
- /*
- * If it's an import file store the stripped name for the BE to use
- */
- if (!(idl_global->in_main_file()) && idl_global->import()) {
- nm = new UTL_String(stripped_name(idl_global->filename()));
- idl_global->store_include_file_name(nm);
- }
-}
-
-/*
- * Store a #pragma line into the list of pragmas
- */
-static void
-idl_store_pragma(char *buf)
-{
- char *cp = buf + 1;
- while(*cp != 'p')
- cp++;
- while(*cp != ' ' && *cp != '\t')
- cp++;
- while(*cp == ' ' || *cp == '\t')
- cp++;
- char pragma[80];
- char *pp = pragma;
- while(*cp != '\n') {
- *pp++ = *cp++;
- }
- *pp = 0;
- if (strcmp(pragma, "import") == 0) {
- idl_global->set_import(I_TRUE);
- return;
- }
- if (strcmp(pragma, "include") == 0) {
- idl_global->set_import(I_FALSE);
- return;
- }
- UTL_StrList *p = idl_global->pragmas();
- if (p == NULL)
- idl_global->set_pragmas(new UTL_StrList(new String(buf), NULL));
- else {
- p->nconc(new UTL_StrList(new String(buf), NULL));
- idl_global->set_pragmas(p);
- }
-}
-
-/*
- * idl_atoi - Convert a string of digits into an integer according to base b
- */
-static long
-idl_atoi(char *s, long b)
-{
- long r = 0;
- long negative = 0;
-
- if (*s == '-') {
- negative = 1;
- s++;
- }
- if (b == 8 && *s == '0')
- s++;
- else if (b == 16 && *s == '0' && (*(s + 1) == 'x' || *(s + 1) == 'X'))
- s += 2;
-
- for (; *s; s++)
- if (*s <= '9' && *s >= '0')
- r = (r * b) + (*s - '0');
- else if (b > 10 && *s <= 'f' && *s >= 'a')
- r = (r * b) + (*s - 'a' + 10);
- else if (b > 10 && *s <= 'F' && *s >= 'A')
- r = (r * b) + (*s - 'A' + 10);
- else
- break;
-
- if (negative)
- r *= -1;
-
- return r;
-}
-
-/*
- * Convert a string to a float; atof doesn't seem to work, always.
- */
-static double
-idl_atof(char *s)
-{
- char *h = s;
- double d = 0.0;
- double f = 0.0;
- double e, k;
- long neg = 0, negexp = 0;
-
- ACE_UNUSED_ARG (f);
- ACE_UNUSED_ARG (h);
-
- if (*s == '-') {
- neg = 1;
- s++;
- }
- while (*s >= '0' && *s <= '9') {
- d = (d * 10) + *s - '0';
- s++;
- }
- if (*s == '.') {
- s++;
- e = 10;
- while (*s >= '0' && *s <= '9') {
- d += (*s - '0') / (e * 1.0);
- e *= 10;
- s++;
- }
- }
- if (*s == 'e' || *s == 'E') {
- s++;
- if (*s == '-') {
- negexp = 1;
- s++;
- } else if (*s == '+')
- s++;
- e = 0;
- while (*s >= '0' && *s <= '9') {
- e = (e * 10) + *s - '0';
- s++;
- }
- if (e > 0) {
- for (k = 1; e > 0; k *= 10, e--);
- if (negexp)
- d /= k;
- else
- d *= k;
- }
- }
-
- if (neg) d *= -1.0;
-
- return d;
-}
-
-/*
- * Convert (some) escaped characters into their ascii values
- */
-static char
-idl_escape_reader(
- char *str
-)
-{
- if (str[0] != '\\') {
- return str[0];
- }
-
- switch (str[1]) {
- case 'n':
- return '\n';
- case 't':
- return '\t';
- case 'v':
- return '\v';
- case 'b':
- return '\b';
- case 'r':
- return '\r';
- case 'f':
- return '\f';
- case 'a':
- return '\a';
- case '\\':
- return '\\';
- case '\?':
- return '?';
- case '\'':
- return '\'';
- case '"':
- return '"';
- case 'x':
- {
- int i;
- // hex value
- for (i = 2; str[i] != '\0' && isxdigit(str[i]); i++) {
- continue;
- }
- char save = str[i];
- str[i] = '\0';
- char out = (char)idl_atoi(&str[2], 16);
- str[i] = save;
- return out;
- }
- break;
- default:
- // check for octal value
- if (str[1] >= '0' && str[1] <= '7') {
- int i;
- for (i = 1; str[i] >= '0' && str[i] <= '7'; i++) {
- continue;
- }
- char save = str[i];
- str[i] = '\0';
- char out = (char)idl_atoi(&str[1], 8);
- str[i] = save;
- return out;
- } else {
- return str[1] - 'a';
- }
- break;
- }
-}
diff --git a/TAO/TAO_IDL/fe/lex.yy.cpp.diff b/TAO/TAO_IDL/fe/lex.yy.cpp.diff
deleted file mode 100644
index 755fc736937..00000000000
--- a/TAO/TAO_IDL/fe/lex.yy.cpp.diff
+++ /dev/null
@@ -1,34 +0,0 @@
---- lex.yy.cpp.orig Mon Mar 23 15:30:42 1998
-+++ lex.yy.cpp Mon Mar 23 15:30:42 1998
-@@ -215,12 +215,14 @@
- void tao_yy_delete_buffer TAO_YY_PROTO(( TAO_YY_BUFFER_STATE b ));
- void tao_yy_init_buffer TAO_YY_PROTO(( TAO_YY_BUFFER_STATE b, FILE *file ));
-
-+#if 0
- static int tao_yy_start_stack_ptr = 0;
- static int tao_yy_start_stack_depth = 0;
- static int *tao_yy_start_stack = 0;
- static void tao_yy_push_state TAO_YY_PROTO(( int new_state ));
- static void tao_yy_pop_state TAO_YY_PROTO(( void ));
- static int tao_yy_top_state TAO_YY_PROTO(( void ));
-+#endif /* 0 */
-
- static void *tao_yy_flex_alloc TAO_YY_PROTO(( unsigned int ));
- static void *tao_yy_flex_realloc TAO_YY_PROTO(( void *, unsigned int ));
-@@ -1777,6 +1779,7 @@
- }
-
-
-+#if 0
- #ifdef TAO_YY_USE_PROTOS
- static void tao_yy_push_state( int new_state )
- #else
-@@ -1822,7 +1825,7 @@
- {
- return tao_yy_start_stack[tao_yy_start_stack_ptr - 1];
- }
--
-+#endif /* 0 */
-
- #ifdef TAO_YY_USE_PROTOS
- static void tao_yy_fatal_error( const char msg[] )
diff --git a/TAO/TAO_IDL/fe/y.tab.cpp b/TAO/TAO_IDL/fe/y.tab.cpp
deleted file mode 100644
index 71651d923da..00000000000
--- a/TAO/TAO_IDL/fe/y.tab.cpp
+++ /dev/null
@@ -1,3296 +0,0 @@
-// $Id$
-# line 74 "idl.tao_yy"
-#include "idl.h"
-#include "idl_extern.h"
-#include "fe_private.h"
-#include <stdio.h>
-
-#if (defined(apollo) || defined(hpux)) && defined(__cplusplus)
-extern "C" int tao_yywrap();
-#endif // (defined(apollo) || defined(hpux)) && defined(__cplusplus)
-
-void tao_yyerror (const char *);
-int tao_yylex (void);
-extern "C" int tao_yywrap (void);
-extern char tao_yytext[];
-extern int tao_yyleng;
-#define TAO_YYDEBUG_LEXER_TEXT (tao_yytext[tao_yyleng] = '\0', tao_yytext)
-// Force the pretty debugging code to compile.
-#define TAO_YYDEBUG 1
-
-# line 97 "idl.tao_yy"
-typedef union
-#ifdef __cplusplus
- TAO_YYSTYPE
-#endif
- {
- AST_Decl *dcval; /* Decl value */
- UTL_StrList *slval; /* String list */
- UTL_NameList *nlval; /* Name list */
- UTL_ExprList *elval; /* Expression list */
- UTL_LabelList *llval; /* Label list */
- UTL_DeclList *dlval; /* Declaration list */
- FE_InterfaceHeader *ihval; /* Interface header */
- AST_Expression *exval; /* Expression value */
- AST_UnionLabel *ulval; /* Union label */
- AST_Field *ffval; /* Field value */
- AST_Expression::ExprType etval; /* Expression type */
- AST_Argument::Direction dival; /* Argument direction */
- AST_Operation::Flags ofval; /* Operation flags */
- FE_Declarator *deval; /* Declarator value */
- idl_bool bval; /* Boolean value */
- long ival; /* Long value */
- double dval; /* Double value */
- float fval; /* Float value */
- char cval; /* Char value */
-
- String *sval; /* String value */
- char *strval; /* char * value */
- Identifier *idval; /* Identifier */
- UTL_IdList *idlist; /* Identifier list */
-} TAO_YYSTYPE;
-# define IDENTIFIER 257
-# define IDL_CONST 258
-# define IDL_MODULE 259
-# define IDL_INTERFACE 260
-# define IDL_TYPEDEF 261
-# define IDL_LONG 262
-# define IDL_SHORT 263
-# define IDL_UNSIGNED 264
-# define IDL_DOUBLE 265
-# define IDL_FLOAT 266
-# define IDL_CHAR 267
-# define IDL_WCHAR 268
-# define IDL_OCTET 269
-# define IDL_BOOLEAN 270
-# define IDL_ANY 271
-# define IDL_STRUCT 272
-# define IDL_UNION 273
-# define IDL_SWITCH 274
-# define IDL_ENUM 275
-# define IDL_SEQUENCE 276
-# define IDL_STRING 277
-# define IDL_WSTRING 278
-# define IDL_EXCEPTION 279
-# define IDL_CASE 280
-# define IDL_DEFAULT 281
-# define IDL_READONLY 282
-# define IDL_ATTRIBUTE 283
-# define IDL_ONEWAY 284
-# define IDL_IDEMPOTENT 285
-# define IDL_VOID 286
-# define IDL_IN 287
-# define IDL_OUT 288
-# define IDL_INOUT 289
-# define IDL_RAISES 290
-# define IDL_CONTEXT 291
-# define IDL_NATIVE 292
-# define IDL_INTEGER_LITERAL 293
-# define IDL_STRING_LITERAL 294
-# define IDL_CHARACTER_LITERAL 295
-# define IDL_FLOATING_PT_LITERAL 296
-# define IDL_TRUETOK 297
-# define IDL_FALSETOK 298
-# define IDL_SCOPE_DELIMITOR 299
-# define IDL_LEFT_SHIFT 300
-# define IDL_RIGHT_SHIFT 301
-
-#ifdef __STDC__
-#include <stdlib.h>
-// #include <string.h>
-#else
-#include <malloc.h>
-#include <memory.h>
-#endif
-
-// #include <values.h>
-
-#ifdef __cplusplus
-
-#ifndef tao_yyerror
- void tao_yyerror(const char *);
-#endif
-
-#ifndef tao_yylex
-#ifdef __EXTERN_C__
- extern "C" { int tao_yylex(void); }
-#else
- int tao_yylex(void);
-#endif
-#endif
- int tao_yyparse(void);
-
-#endif
-#define tao_yyclearin tao_yychar = -1
-#define tao_yyerrok tao_yyerrflag = 0
-extern int tao_yychar;
-extern int tao_yyerrflag;
-TAO_YYSTYPE tao_yylval;
-TAO_YYSTYPE tao_yyval;
-typedef int tao_yytabelem;
-#ifndef TAO_YYMAXDEPTH
-#define TAO_YYMAXDEPTH 150
-#endif
-#if TAO_YYMAXDEPTH > 0
-int tao_yy_tao_yys[TAO_YYMAXDEPTH], *tao_yys = tao_yy_tao_yys;
-TAO_YYSTYPE tao_yy_tao_yyv[TAO_YYMAXDEPTH], *tao_yyv = tao_yy_tao_yyv;
-#else /* user does initial allocation */
-int *tao_yys;
-TAO_YYSTYPE *tao_yyv;
-#endif
-static int tao_yymaxdepth = TAO_YYMAXDEPTH;
-# define TAO_YYERRCODE 256
-
-# line 2267 "idl.tao_yy"
-
-/* programs */
-
-/*
- * ???
- */
-int
-tao_yywrap()
-{
- return 1;
-}
-
-/*
- * Report an error situation discovered in a production
- *
- * This does not do anything since we report all error situations through
- * idl_global->err() operations
- */
-void
-tao_yyerror(const char *)
-{
-}
-tao_yytabelem tao_yyexca[] ={
--1, 0,
- 0, 3,
- -2, 0,
--1, 1,
- 0, -1,
- -2, 0,
--1, 3,
- 0, 3,
- 125, 3,
- -2, 0,
--1, 24,
- 123, 32,
- -2, 57,
--1, 134,
- 91, 229,
- -2, 138,
--1, 149,
- 257, 254,
- 262, 254,
- 263, 254,
- 264, 254,
- 265, 254,
- 266, 254,
- 267, 254,
- 268, 254,
- 269, 254,
- 270, 254,
- 271, 254,
- 277, 254,
- 283, 241,
- 286, 254,
- 299, 254,
- 125, 25,
- -2, 0,
--1, 181,
- 125, 3,
- -2, 0,
--1, 222,
- 125, 245,
- -2, 0,
--1, 269,
- 125, 161,
- -2, 0,
--1, 319,
- 41, 257,
- -2, 259,
--1, 357,
- 125, 184,
- -2, 0,
- };
-# define TAO_YYNPROD 286
-# define TAO_YYLAST 528
-tao_yytabelem tao_yyact[]={
-
- 72, 131, 347, 331, 344, 57, 167, 155, 128, 241,
- 70, 230, 132, 207, 208, 35, 226, 110, 393, 388,
- 333, 334, 335, 352, 328, 239, 147, 34, 349, 348,
- 130, 112, 118, 119, 113, 112, 141, 36, 36, 101,
- 59, 103, 104, 105, 100, 227, 36, 108, 98, 169,
- 54, 78, 87, 88, 76, 77, 79, 80, 82, 81,
- 83, 20, 21, 36, 22, 89, 90, 91, 78, 87,
- 88, 76, 77, 79, 80, 82, 81, 83, 20, 21,
- 73, 22, 89, 90, 91, 231, 305, 36, 73, 102,
- 201, 346, 78, 87, 88, 76, 77, 79, 80, 82,
- 81, 83, 162, 222, 160, 73, 89, 90, 91, 161,
- 134, 154, 137, 36, 129, 349, 348, 159, 301, 87,
- 88, 67, 143, 79, 80, 82, 81, 158, 2, 73,
- 157, 22, 26, 36, 265, 6, 5, 153, 78, 87,
- 88, 76, 77, 79, 80, 82, 81, 83, 55, 169,
- 66, 367, 164, 90, 165, 73, 302, 291, 290, 95,
- 36, 289, 242, 232, 204, 78, 87, 88, 76, 77,
- 79, 80, 82, 81, 83, 73, 65, 217, 62, 13,
- 90, 63, 13, 325, 4, 59, 36, 148, 96, 59,
- 163, 78, 87, 88, 76, 77, 79, 80, 82, 81,
- 243, 245, 73, 146, 145, 244, 90, 91, 192, 144,
- 15, 106, 205, 10, 94, 312, 202, 263, 262, 93,
- 250, 114, 221, 142, 20, 21, 117, 22, 73, 59,
- 116, 16, 384, 371, 195, 166, 196, 197, 9, 115,
- 15, 19, 25, 10, 14, 313, 61, 12, 134, 284,
- 12, 176, 177, 283, 20, 21, 293, 22, 280, 60,
- 11, 16, 279, 11, 278, 277, 36, 276, 275, 52,
- 51, 134, 288, 50, 14, 49, 59, 48, 47, 300,
- 386, 373, 45, 391, 213, 189, 188, 243, 245, 211,
- 354, 304, 244, 209, 212, 210, 326, 303, 199, 198,
- 389, 292, 170, 171, 172, 173, 174, 175, 73, 383,
- 223, 35, 254, 255, 258, 259, 260, 225, 340, 256,
- 257, 315, 329, 317, 253, 314, 261, 220, 13, 269,
- 375, 353, 319, 252, 187, 251, 228, 206, 35, 285,
- 64, 71, 392, 382, 363, 364, 339, 366, 243, 245,
- 350, 342, 355, 244, 365, 214, 215, 216, 341, 330,
- 13, 286, 368, 372, 324, 59, 36, 134, 378, 377,
- 374, 129, 323, 376, 338, 370, 322, 318, 97, 99,
- 311, 134, 385, 282, 266, 180, 122, 38, 310, 281,
- 306, 249, 152, 219, 297, 140, 12, 86, 218, 139,
- 85, 178, 170, 171, 172, 173, 174, 175, 73, 11,
- 120, 203, 138, 309, 274, 273, 229, 184, 126, 42,
- 380, 381, 362, 298, 361, 359, 379, 358, 12, 357,
- 356, 343, 336, 320, 308, 272, 183, 125, 41, 271,
- 307, 11, 270, 268, 224, 182, 124, 40, 337, 296,
- 247, 299, 109, 53, 295, 33, 264, 179, 121, 37,
- 136, 111, 246, 238, 237, 191, 236, 190, 235, 234,
- 233, 186, 107, 46, 185, 149, 127, 43, 18, 17,
- 267, 181, 123, 39, 32, 31, 8, 30, 7, 29,
- 28, 27, 3, 1, 24, 193, 133, 194, 332, 75,
- 74, 68, 92, 369, 168, 156, 287, 23, 321, 316,
- 151, 360, 345, 248, 200, 327, 44, 150, 390, 387,
- 351, 84, 240, 135, 294, 69, 58, 56 };
-tao_yytabelem tao_yypact[]={
-
- -18,-10000000,-10000000, -18,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,
--10000000,-10000000,-10000000,-10000000, -220,-10000000,-10000000,-10000000,-10000000,-10000000,
--10000000,-10000000,-10000000,-10000000, 224,-10000000,-10000000, 219, 218, 216,
- 214, 211, 210, -194,-10000000,-10000000,-10000000, -71, -220, -168,
- -220, -220, -220, 88,-10000000,-10000000, -220,-10000000,-10000000,-10000000,
--10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, -282,
--10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,
--10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, -231,-10000000,
--10000000,-10000000,-10000000,-10000000, 177, 170, 166,-10000000, -230,-10000000,
--10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,
- -282,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, -219,-10000000, -220,
--10000000, -220,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, -226,-10000000,
- 163, -220, 86, 81, 80, -248, 64,-10000000,-10000000, -282,
--10000000,-10000000,-10000000,-10000000,-10000000,-10000000, -220,-10000000, 109, 109,
- 109,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, -48,
- 255, 254, 125,-10000000,-10000000,-10000000, 40, 118, 299, -287,
- 250, 247,-10000000,-10000000, 9, 9, 9, -282,-10000000, 109,
--10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, -170, 161,
--10000000, -18, -211, 296, -172, 38,-10000000,-10000000,-10000000,-10000000,
--10000000,-10000000,-10000000, -258, -124,-10000000,-10000000,-10000000,-10000000,-10000000,
--10000000,-10000000,-10000000, 158, 109, 109, 109, 109, 109, 109,
- 109, 109, 109, 109,-10000000,-10000000,-10000000, 285, 156, 155,
--10000000,-10000000, -211,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,
--10000000,-10000000,-10000000, 209, 208, 206, 205, 203, 199,-10000000,
--10000000,-10000000,-10000000,-10000000,-10000000, -282, -219, -220, 125, 109,
--10000000, 118, 299, -287, 250, 250, 247, 247,-10000000,-10000000,
--10000000,-10000000,-10000000,-10000000, 109,-10000000, 36, 33, 32, -211,
- -220, 197, -144, 31, 253,-10000000,-10000000,-10000000,-10000000,-10000000,
--10000000, -97, -171, -282,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,
--10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,
- -282, -227,-10000000,-10000000,-10000000,-10000000, 122, 186, 284, -172,
- -220, 292,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,
- 60, 252, -266, 281, -267,-10000000,-10000000,-10000000,-10000000,-10000000,
- 277,-10000000,-10000000,-10000000,-10000000,-10000000, -165, -220, -268, 291,
--10000000, 246, -97,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,
--10000000,-10000000,-10000000,-10000000,-10000000,-10000000, 26, -165, -194, 174,
- -252, 223, 109, 290, -219, -267, -220,-10000000,-10000000,-10000000,
--10000000,-10000000,-10000000,-10000000,-10000000,-10000000, 268,-10000000,-10000000, 173,
- -220, 222, -275,-10000000,-10000000,-10000000,-10000000, 259,-10000000,-10000000,
- 239,-10000000, -276,-10000000 };
-tao_yytabelem tao_yypgo[]={
-
- 0, 16, 148, 527, 526, 525, 10, 259, 178, 524,
- 246, 523, 522, 521, 341, 9, 6, 520, 519, 518,
- 8, 517, 516, 515, 514, 513, 512, 511, 30, 510,
- 509, 508, 507, 506, 7, 505, 130, 127, 117, 104,
- 109, 102, 190, 504, 111, 90, 2, 503, 502, 181,
- 176, 150, 340, 501, 500, 499, 5, 121, 498, 497,
- 1, 12, 496, 495, 494, 0, 184, 493, 128, 492,
- 491, 136, 490, 135, 489, 488, 487, 486, 485, 484,
- 483, 482, 481, 480, 479, 478, 477, 476, 475, 474,
- 473, 472, 471, 470, 469, 468, 467, 466, 465, 464,
- 463, 462, 461, 460, 459, 458, 457, 456, 455, 453,
- 452, 450, 448, 447, 446, 445, 444, 443, 134, 103,
- 442, 440, 439, 438, 437, 436, 435, 434, 433, 432,
- 431, 430, 4, 429, 427, 426, 425, 424, 422, 421,
- 420, 419, 418, 417, 416, 415, 11, 414, 413, 412,
- 411, 410, 401, 400, 399, 398, 397, 395, 393, 392,
- 391, 390, 389, 388, 387, 386, 385, 384, 383, 380,
- 377, 376, 374, 372, 364, 359, 3, 358, 354, 351,
- 347, 346, 345, 344, 343, 342 };
-tao_yytabelem tao_yyr1[]={
-
- 0, 67, 68, 68, 70, 69, 72, 69, 74, 69,
- 76, 69, 78, 69, 79, 69, 80, 81, 82, 83,
- 77, 75, 75, 86, 87, 89, 84, 90, 64, 32,
- 91, 22, 22, 88, 88, 93, 92, 94, 92, 95,
- 92, 97, 92, 99, 92, 100, 92, 20, 101, 21,
- 21, 16, 102, 16, 103, 16, 65, 85, 104, 105,
- 106, 107, 71, 48, 48, 48, 48, 48, 48, 48,
- 48, 33, 34, 35, 35, 36, 36, 37, 37, 38,
- 38, 38, 39, 39, 39, 40, 40, 40, 40, 41,
- 41, 41, 41, 42, 42, 42, 43, 43, 43, 43,
- 43, 43, 44, 108, 66, 66, 66, 66, 66, 110,
- 109, 1, 1, 2, 2, 2, 56, 56, 56, 56,
- 56, 56, 4, 4, 4, 3, 3, 3, 28, 111,
- 29, 29, 60, 60, 30, 112, 31, 31, 61, 62,
- 49, 49, 54, 54, 54, 55, 55, 55, 52, 52,
- 52, 50, 50, 57, 51, 53, 113, 114, 115, 117,
- 7, 116, 119, 119, 120, 121, 118, 122, 118, 123,
- 124, 125, 126, 127, 128, 129, 131, 10, 9, 9,
- 9, 9, 9, 9, 130, 133, 133, 134, 135, 132,
- 136, 132, 26, 27, 27, 137, 46, 138, 139, 46,
- 140, 47, 141, 142, 143, 145, 8, 144, 148, 147,
- 147, 146, 149, 150, 5, 5, 151, 152, 13, 154,
- 155, 6, 6, 153, 157, 158, 14, 14, 156, 159,
- 11, 24, 25, 25, 160, 161, 45, 162, 163, 96,
- 63, 63, 164, 165, 166, 167, 73, 168, 169, 171,
- 172, 98, 59, 59, 59, 12, 12, 173, 170, 174,
- 170, 175, 178, 177, 177, 179, 180, 176, 15, 15,
- 15, 58, 58, 58, 181, 182, 23, 23, 183, 184,
- 17, 17, 18, 185, 19, 19 };
-tao_yytabelem tao_yyr2[]={
-
- 0, 2, 4, 0, 1, 7, 1, 7, 1, 7,
- 1, 7, 1, 7, 1, 7, 1, 1, 1, 1,
- 19, 2, 2, 1, 1, 1, 15, 1, 7, 5,
- 1, 7, 1, 4, 0, 1, 7, 1, 7, 1,
- 7, 1, 7, 1, 7, 1, 7, 5, 1, 9,
- 1, 3, 1, 7, 1, 9, 3, 3, 1, 1,
- 1, 1, 19, 2, 2, 2, 2, 2, 3, 3,
- 3, 2, 2, 2, 7, 2, 7, 2, 7, 2,
- 7, 7, 2, 7, 7, 2, 7, 7, 7, 2,
- 5, 5, 5, 3, 2, 7, 3, 3, 3, 3,
- 3, 3, 3, 1, 7, 3, 3, 3, 5, 1,
- 7, 2, 2, 3, 2, 3, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 5, 1,
- 9, 1, 2, 2, 5, 1, 9, 1, 3, 3,
- 2, 2, 3, 5, 3, 5, 7, 5, 3, 3,
- 5, 3, 3, 3, 3, 3, 1, 1, 1, 1,
- 19, 4, 4, 0, 1, 1, 11, 1, 7, 1,
- 1, 1, 1, 1, 1, 1, 1, 35, 3, 3,
- 3, 3, 2, 3, 4, 4, 0, 1, 1, 11,
- 1, 7, 5, 5, 1, 1, 7, 1, 1, 11,
- 1, 7, 1, 1, 1, 1, 19, 4, 1, 8,
- 0, 3, 1, 1, 13, 5, 1, 1, 11, 1,
- 1, 13, 3, 3, 1, 1, 13, 3, 3, 1,
- 7, 5, 5, 1, 1, 1, 11, 1, 1, 13,
- 3, 1, 1, 1, 1, 1, 19, 1, 1, 1,
- 1, 21, 3, 3, 1, 2, 3, 1, 7, 1,
- 9, 4, 1, 8, 0, 1, 1, 11, 3, 2,
- 3, 3, 3, 3, 1, 1, 13, 1, 1, 1,
- 13, 1, 5, 1, 9, 1 };
-tao_yytabelem tao_yychk[]={
-
--10000000, -67, -68, -69, -66, -71, -73, -75, -77, 256,
- 261, -7, -10, -8, 292, 258, 279, -84, -85, 259,
- 272, 273, 275, -32, -64, 260, -68, -70, -72, -74,
- -76, -78, -79, -108, -61, -65, 257, -104, -164, -80,
- -113, -123, -141, -86, -22, 58, -90, 59, 59, 59,
- 59, 59, 59, -109, -1, -2, -3, -56, -4, -16,
- -7, -10, -8, -49, -52, -50, -51, -57, -53, -5,
- -6, -14, -65, 299, -54, -55, 265, 266, 262, 267,
- 268, 270, 269, 271, -13, -153, -156, 263, 264, 276,
- 277, 278, -48, -49, -50, -57, -51, -52, -6, -14,
- -16, -65, 257, -65, -65, -65, 123, -91, -65, -110,
- 299, -102, 262, 265, 44, 62, 60, 60, 262, 263,
- -151, -105, -165, -81, -114, -124, -142, -87, -20, -16,
- -28, -60, -61, -62, -65, -11, -103, -65, -149, -154,
- -157, 262, 60, -65, 123, 123, 123, 274, 123, -88,
- -21, -29, -159, -65, -44, -34, -35, -36, -37, -38,
- -39, -40, -41, -42, 43, 45, 126, -16, -43, 40,
- 293, 294, 295, 296, 297, 298, -44, -44, -152, -106,
- -166, -82, -115, -125, -143, -89, -92, -66, -71, -73,
- -96, -98, 256, -63, -59, 282, 284, 285, 44, 44,
- -24, -45, 91, -150, 124, 94, 38, 300, 301, 43,
- 45, 42, 47, 37, -42, -42, -42, -34, -155, -158,
- -2, 61, -119, -68, -116, -118, -1, 256, 40, -144,
- -146, 257, 125, -93, -94, -95, -97, -99, -100, 283,
- -12, -15, 286, -56, -6, -16, -101, -111, -25, -160,
- 62, -36, -37, -38, -39, -39, -40, -40, -41, -41,
- -41, 41, 62, 62, -107, -118, -167, -83, -117, -119,
- -120, -122, -126, -145, -147, 59, 59, 59, 59, 59,
- 59, -162, -168, -16, -60, -45, -44, -33, -34, 125,
- 125, 125, -28, 59, -9, -49, -50, -57, -51, -8,
- -16, 262, 125, 44, -15, 257, -161, -121, -127, -148,
- -163, -169, 93, 59, 41, -146, -30, -61, -170, 40,
- -128, -31, -171, -173, -174, 123, 44, -23, 290, 41,
- -175, -176, -58, 287, 288, 289, -129, -112, -172, -181,
- 41, -177, -179, -130, -132, -26, 256, -46, 281, 280,
- -61, -17, 291, 40, 44, -15, -131, -133, -134, -136,
- -27, -137, -138, -183, -182, -178, -180, 125, -132, -47,
- -1, 59, -46, 58, -34, 40, -20, -176, -60, -135,
- -140, -139, -184, 41, 59, -60, 58, -18, 294, 41,
- -19, 44, -185, 294 };
-tao_yytabelem tao_yydef[]={
-
- -2, -2, 1, -2, 4, 6, 8, 10, 12, 14,
- 103, 105, 106, 107, 0, 58, 242, 21, 22, 16,
- 156, 169, 202, 23, -2, 27, 2, 0, 0, 0,
- 0, 0, 0, 0, 108, 138, 56, 0, 0, 0,
- 0, 0, 0, 0, 29, 30, 0, 5, 7, 9,
- 11, 13, 15, 104, 109, 111, 112, 113, 114, 115,
- 125, 126, 127, 116, 117, 118, 119, 120, 121, 122,
- 123, 124, 51, 52, 140, 141, 148, 149, 142, 151,
- 152, 154, 153, 155, 0, 222, 227, 144, 0, 216,
- 223, 228, 59, 63, 64, 65, 66, 67, 68, 69,
- 70, 243, 17, 157, 170, 203, 24, 0, 28, 0,
- 54, 0, 143, 150, 212, 215, 219, 224, 145, 147,
- 0, 0, 0, 0, 0, 0, 0, 34, 31, 50,
- 110, 131, 132, 133, -2, 139, 0, 53, 0, 0,
- 0, 146, 217, 60, 244, 18, 158, 171, 204, -2,
- 47, 128, 0, 55, 213, 102, 72, 73, 75, 77,
- 79, 82, 85, 89, 0, 0, 0, 93, 94, 0,
- 96, 97, 98, 99, 100, 101, 220, 225, 0, 0,
- 163, -2, 0, 0, 0, 0, 33, 35, 37, 39,
- 41, 43, 45, 0, 0, 240, 252, 253, 48, 129,
- 230, 233, 234, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 90, 91, 92, 0, 0, 0,
- 218, 61, -2, 19, 159, 163, 164, 167, 172, 205,
- 210, 211, 26, 0, 0, 0, 0, 0, 0, 237,
- 247, 255, 256, 268, 269, 270, 0, 0, 231, 0,
- 214, 74, 76, 78, 80, 81, 83, 84, 86, 87,
- 88, 95, 221, 226, 0, 162, 0, 0, 0, -2,
- 0, 0, 0, 0, 207, 36, 38, 40, 42, 44,
- 46, 0, 0, 49, 130, 232, 235, 62, 71, 246,
- 20, 160, 165, 168, 173, 178, 179, 180, 181, 182,
- 183, 142, 206, 208, 238, 248, 0, 0, 0, 0,
- 0, 0, 236, 166, 174, 209, 239, 137, 249, -2,
- 0, 134, 277, 0, 0, 175, 135, 250, 274, 258,
- 0, 264, 265, 271, 272, 273, 0, 0, 281, 0,
- 260, 261, 0, 176, 186, 187, 190, 194, 195, 197,
- 136, 251, 278, 275, 262, 266, 0, -2, 0, 0,
- 192, 0, 0, 0, 0, 0, 0, 177, 185, 188,
- 200, 191, 193, 196, 198, 279, 0, 263, 267, 0,
- 0, 0, 0, 276, 189, 201, 199, 0, 285, 280,
- 282, 283, 0, 284 };
-typedef struct
-#ifdef __cplusplus
- tao_yytoktype
-#endif
-{ char *t_name; int t_val; } tao_yytoktype;
-#ifndef TAO_YYDEBUG
-# define TAO_YYDEBUG 1 /* allow debugging */
-#endif
-
-#if TAO_YYDEBUG
-
-tao_yytoktype tao_yytoks[] =
-{
- {"IDENTIFIER", 257},
- {"IDL_CONST", 258},
- {"IDL_MODULE", 259},
- {"IDL_INTERFACE", 260},
- {"IDL_TYPEDEF", 261},
- {"IDL_LONG", 262},
- {"IDL_SHORT", 263},
- {"IDL_UNSIGNED", 264},
- {"IDL_DOUBLE", 265},
- {"IDL_FLOAT", 266},
- {"IDL_CHAR", 267},
- {"IDL_WCHAR", 268},
- {"IDL_OCTET", 269},
- {"IDL_BOOLEAN", 270},
- {"IDL_ANY", 271},
- {"IDL_STRUCT", 272},
- {"IDL_UNION", 273},
- {"IDL_SWITCH", 274},
- {"IDL_ENUM", 275},
- {"IDL_SEQUENCE", 276},
- {"IDL_STRING", 277},
- {"IDL_WSTRING", 278},
- {"IDL_EXCEPTION", 279},
- {"IDL_CASE", 280},
- {"IDL_DEFAULT", 281},
- {"IDL_READONLY", 282},
- {"IDL_ATTRIBUTE", 283},
- {"IDL_ONEWAY", 284},
- {"IDL_IDEMPOTENT", 285},
- {"IDL_VOID", 286},
- {"IDL_IN", 287},
- {"IDL_OUT", 288},
- {"IDL_INOUT", 289},
- {"IDL_RAISES", 290},
- {"IDL_CONTEXT", 291},
- {"IDL_NATIVE", 292},
- {"IDL_INTEGER_LITERAL", 293},
- {"IDL_STRING_LITERAL", 294},
- {"IDL_CHARACTER_LITERAL", 295},
- {"IDL_FLOATING_PT_LITERAL", 296},
- {"IDL_TRUETOK", 297},
- {"IDL_FALSETOK", 298},
- {"IDL_SCOPE_DELIMITOR", 299},
- {"IDL_LEFT_SHIFT", 300},
- {"IDL_RIGHT_SHIFT", 301},
- {"-unknown-", -1} /* ends search */
-};
-
-char * tao_yyreds[] =
-{
- "-no such reduction-",
- "start : definitions",
- "definitions : definition definitions",
- "definitions : /* empty */",
- "definition : type_dcl",
- "definition : type_dcl ';'",
- "definition : const_dcl",
- "definition : const_dcl ';'",
- "definition : exception",
- "definition : exception ';'",
- "definition : interface_def",
- "definition : interface_def ';'",
- "definition : module",
- "definition : module ';'",
- "definition : error",
- "definition : error ';'",
- "module : IDL_MODULE",
- "module : IDL_MODULE IDENTIFIER",
- "module : IDL_MODULE IDENTIFIER '{'",
- "module : IDL_MODULE IDENTIFIER '{' definitions",
- "module : IDL_MODULE IDENTIFIER '{' definitions '}'",
- "interface_def : interface",
- "interface_def : forward",
- "interface : interface_header",
- "interface : interface_header '{'",
- "interface : interface_header '{' exports",
- "interface : interface_header '{' exports '}'",
- "interface_decl : IDL_INTERFACE",
- "interface_decl : IDL_INTERFACE id",
- "interface_header : interface_decl inheritance_spec",
- "inheritance_spec : ':'",
- "inheritance_spec : ':' at_least_one_scoped_name",
- "inheritance_spec : /* empty */",
- "exports : exports export",
- "exports : /* empty */",
- "export : type_dcl",
- "export : type_dcl ';'",
- "export : const_dcl",
- "export : const_dcl ';'",
- "export : exception",
- "export : exception ';'",
- "export : attribute",
- "export : attribute ';'",
- "export : operation",
- "export : operation ';'",
- "export : error",
- "export : error ';'",
- "at_least_one_scoped_name : scoped_name scoped_names",
- "scoped_names : scoped_names ','",
- "scoped_names : scoped_names ',' scoped_name",
- "scoped_names : /* empty */",
- "scoped_name : id",
- "scoped_name : IDL_SCOPE_DELIMITOR",
- "scoped_name : IDL_SCOPE_DELIMITOR id",
- "scoped_name : scoped_name IDL_SCOPE_DELIMITOR",
- "scoped_name : scoped_name IDL_SCOPE_DELIMITOR id",
- "id : IDENTIFIER",
- "forward : interface_decl",
- "const_dcl : IDL_CONST",
- "const_dcl : IDL_CONST const_type",
- "const_dcl : IDL_CONST const_type id",
- "const_dcl : IDL_CONST const_type id '='",
- "const_dcl : IDL_CONST const_type id '=' expression",
- "const_type : integer_type",
- "const_type : char_type",
- "const_type : octet_type",
- "const_type : boolean_type",
- "const_type : floating_pt_type",
- "const_type : string_type_spec",
- "const_type : wstring_type_spec",
- "const_type : scoped_name",
- "expression : const_expr",
- "const_expr : or_expr",
- "or_expr : xor_expr",
- "or_expr : or_expr '|' xor_expr",
- "xor_expr : and_expr",
- "xor_expr : xor_expr '^' and_expr",
- "and_expr : shift_expr",
- "and_expr : and_expr '&' shift_expr",
- "shift_expr : add_expr",
- "shift_expr : shift_expr IDL_LEFT_SHIFT add_expr",
- "shift_expr : shift_expr IDL_RIGHT_SHIFT add_expr",
- "add_expr : mult_expr",
- "add_expr : add_expr '+' mult_expr",
- "add_expr : add_expr '-' mult_expr",
- "mult_expr : unary_expr",
- "mult_expr : mult_expr '*' unary_expr",
- "mult_expr : mult_expr '/' unary_expr",
- "mult_expr : mult_expr '%' unary_expr",
- "unary_expr : primary_expr",
- "unary_expr : '+' primary_expr",
- "unary_expr : '-' primary_expr",
- "unary_expr : '~' primary_expr",
- "primary_expr : scoped_name",
- "primary_expr : literal",
- "primary_expr : '(' const_expr ')'",
- "literal : IDL_INTEGER_LITERAL",
- "literal : IDL_STRING_LITERAL",
- "literal : IDL_CHARACTER_LITERAL",
- "literal : IDL_FLOATING_PT_LITERAL",
- "literal : IDL_TRUETOK",
- "literal : IDL_FALSETOK",
- "positive_int_expr : const_expr",
- "type_dcl : IDL_TYPEDEF",
- "type_dcl : IDL_TYPEDEF type_declarator",
- "type_dcl : struct_type",
- "type_dcl : union_type",
- "type_dcl : enum_type",
- "type_dcl : IDL_NATIVE simple_declarator",
- "type_declarator : type_spec",
- "type_declarator : type_spec at_least_one_declarator",
- "type_spec : simple_type_spec",
- "type_spec : constructed_type_spec",
- "simple_type_spec : base_type_spec",
- "simple_type_spec : template_type_spec",
- "simple_type_spec : scoped_name",
- "base_type_spec : integer_type",
- "base_type_spec : floating_pt_type",
- "base_type_spec : char_type",
- "base_type_spec : boolean_type",
- "base_type_spec : octet_type",
- "base_type_spec : any_type",
- "template_type_spec : sequence_type_spec",
- "template_type_spec : string_type_spec",
- "template_type_spec : wstring_type_spec",
- "constructed_type_spec : struct_type",
- "constructed_type_spec : union_type",
- "constructed_type_spec : enum_type",
- "at_least_one_declarator : declarator declarators",
- "declarators : declarators ','",
- "declarators : declarators ',' declarator",
- "declarators : /* empty */",
- "declarator : simple_declarator",
- "declarator : complex_declarator",
- "at_least_one_simple_declarator : simple_declarator simple_declarators",
- "simple_declarators : simple_declarators ','",
- "simple_declarators : simple_declarators ',' simple_declarator",
- "simple_declarators : /* empty */",
- "simple_declarator : id",
- "complex_declarator : array_declarator",
- "integer_type : signed_int",
- "integer_type : unsigned_int",
- "signed_int : IDL_LONG",
- "signed_int : IDL_LONG IDL_LONG",
- "signed_int : IDL_SHORT",
- "unsigned_int : IDL_UNSIGNED IDL_LONG",
- "unsigned_int : IDL_UNSIGNED IDL_LONG IDL_LONG",
- "unsigned_int : IDL_UNSIGNED IDL_SHORT",
- "floating_pt_type : IDL_DOUBLE",
- "floating_pt_type : IDL_FLOAT",
- "floating_pt_type : IDL_LONG IDL_DOUBLE",
- "char_type : IDL_CHAR",
- "char_type : IDL_WCHAR",
- "octet_type : IDL_OCTET",
- "boolean_type : IDL_BOOLEAN",
- "any_type : IDL_ANY",
- "struct_type : IDL_STRUCT",
- "struct_type : IDL_STRUCT id",
- "struct_type : IDL_STRUCT id '{'",
- "struct_type : IDL_STRUCT id '{' at_least_one_member",
- "struct_type : IDL_STRUCT id '{' at_least_one_member '}'",
- "at_least_one_member : member members",
- "members : members member",
- "members : /* empty */",
- "member : type_spec",
- "member : type_spec at_least_one_declarator",
- "member : type_spec at_least_one_declarator ';'",
- "member : error",
- "member : error ';'",
- "union_type : IDL_UNION",
- "union_type : IDL_UNION id",
- "union_type : IDL_UNION id IDL_SWITCH",
- "union_type : IDL_UNION id IDL_SWITCH '('",
- "union_type : IDL_UNION id IDL_SWITCH '(' switch_type_spec",
- "union_type : IDL_UNION id IDL_SWITCH '(' switch_type_spec ')'",
- "union_type : IDL_UNION id IDL_SWITCH '(' switch_type_spec ')' '{'",
- "union_type : IDL_UNION id IDL_SWITCH '(' switch_type_spec ')' '{' at_least_one_case_branch",
- "union_type : IDL_UNION id IDL_SWITCH '(' switch_type_spec ')' '{' at_least_one_case_branch '}'",
- "switch_type_spec : integer_type",
- "switch_type_spec : char_type",
- "switch_type_spec : octet_type",
- "switch_type_spec : boolean_type",
- "switch_type_spec : enum_type",
- "switch_type_spec : scoped_name",
- "at_least_one_case_branch : case_branch case_branches",
- "case_branches : case_branches case_branch",
- "case_branches : /* empty */",
- "case_branch : at_least_one_case_label",
- "case_branch : at_least_one_case_label element_spec",
- "case_branch : at_least_one_case_label element_spec ';'",
- "case_branch : error",
- "case_branch : error ';'",
- "at_least_one_case_label : case_label case_labels",
- "case_labels : case_labels case_label",
- "case_labels : /* empty */",
- "case_label : IDL_DEFAULT",
- "case_label : IDL_DEFAULT ':'",
- "case_label : IDL_CASE",
- "case_label : IDL_CASE const_expr",
- "case_label : IDL_CASE const_expr ':'",
- "element_spec : type_spec",
- "element_spec : type_spec declarator",
- "enum_type : IDL_ENUM",
- "enum_type : IDL_ENUM id",
- "enum_type : IDL_ENUM id '{'",
- "enum_type : IDL_ENUM id '{' at_least_one_enumerator",
- "enum_type : IDL_ENUM id '{' at_least_one_enumerator '}'",
- "at_least_one_enumerator : enumerator enumerators",
- "enumerators : enumerators ','",
- "enumerators : enumerators ',' enumerator",
- "enumerators : /* empty */",
- "enumerator : IDENTIFIER",
- "sequence_type_spec : seq_head ','",
- "sequence_type_spec : seq_head ',' positive_int_expr",
- "sequence_type_spec : seq_head ',' positive_int_expr '>'",
- "sequence_type_spec : seq_head '>'",
- "seq_head : IDL_SEQUENCE",
- "seq_head : IDL_SEQUENCE '<'",
- "seq_head : IDL_SEQUENCE '<' simple_type_spec",
- "string_type_spec : string_head '<'",
- "string_type_spec : string_head '<' positive_int_expr",
- "string_type_spec : string_head '<' positive_int_expr '>'",
- "string_type_spec : string_head",
- "string_head : IDL_STRING",
- "wstring_type_spec : wstring_head '<'",
- "wstring_type_spec : wstring_head '<' positive_int_expr",
- "wstring_type_spec : wstring_head '<' positive_int_expr '>'",
- "wstring_type_spec : wstring_head",
- "wstring_head : IDL_WSTRING",
- "array_declarator : id",
- "array_declarator : id at_least_one_array_dim",
- "at_least_one_array_dim : array_dim array_dims",
- "array_dims : array_dims array_dim",
- "array_dims : /* empty */",
- "array_dim : '['",
- "array_dim : '[' positive_int_expr",
- "array_dim : '[' positive_int_expr ']'",
- "attribute : opt_readonly IDL_ATTRIBUTE",
- "attribute : opt_readonly IDL_ATTRIBUTE param_type_spec",
- "attribute : opt_readonly IDL_ATTRIBUTE param_type_spec at_least_one_simple_declarator",
- "opt_readonly : IDL_READONLY",
- "opt_readonly : /* empty */",
- "exception : IDL_EXCEPTION",
- "exception : IDL_EXCEPTION id",
- "exception : IDL_EXCEPTION id '{'",
- "exception : IDL_EXCEPTION id '{' members",
- "exception : IDL_EXCEPTION id '{' members '}'",
- "operation : opt_op_attribute op_type_spec",
- "operation : opt_op_attribute op_type_spec IDENTIFIER",
- "operation : opt_op_attribute op_type_spec IDENTIFIER parameter_list",
- "operation : opt_op_attribute op_type_spec IDENTIFIER parameter_list opt_raises",
- "operation : opt_op_attribute op_type_spec IDENTIFIER parameter_list opt_raises opt_context",
- "opt_op_attribute : IDL_ONEWAY",
- "opt_op_attribute : IDL_IDEMPOTENT",
- "opt_op_attribute : /* empty */",
- "op_type_spec : param_type_spec",
- "op_type_spec : IDL_VOID",
- "parameter_list : '('",
- "parameter_list : '(' ')'",
- "parameter_list : '('",
- "parameter_list : '(' at_least_one_parameter ')'",
- "at_least_one_parameter : parameter parameters",
- "parameters : parameters ','",
- "parameters : parameters ',' parameter",
- "parameters : /* empty */",
- "parameter : direction",
- "parameter : direction param_type_spec",
- "parameter : direction param_type_spec declarator",
- "param_type_spec : base_type_spec",
- "param_type_spec : string_type_spec",
- "param_type_spec : scoped_name",
- "direction : IDL_IN",
- "direction : IDL_OUT",
- "direction : IDL_INOUT",
- "opt_raises : IDL_RAISES",
- "opt_raises : IDL_RAISES '('",
- "opt_raises : IDL_RAISES '(' at_least_one_scoped_name ')'",
- "opt_raises : /* empty */",
- "opt_context : IDL_CONTEXT",
- "opt_context : IDL_CONTEXT '('",
- "opt_context : IDL_CONTEXT '(' at_least_one_string_literal ')'",
- "opt_context : /* empty */",
- "at_least_one_string_literal : IDL_STRING_LITERAL string_literals",
- "string_literals : string_literals ','",
- "string_literals : string_literals ',' IDL_STRING_LITERAL",
- "string_literals : /* empty */",
-};
-#endif /* TAO_YYDEBUG */
-# line 1 "/usr/ccs/bin/yaccpar"
-/*
- * Copyright (c) 1993 by Sun Microsystems, Inc.
- */
-
-/*
-** Skeleton parser driver for yacc output
-*/
-
-/*
-** yacc user known macros and defines
-*/
-#define TAO_YYERROR goto tao_yyerrlab
-#define TAO_YYACCEPT return(0)
-#define TAO_YYABORT return(1)
-#define TAO_YYBACKUP( newtoken, newvalue )\
-{\
- if ( tao_yychar >= 0 || ( tao_yyr2[ tao_yytmp ] >> 1 ) != 1 )\
- {\
- tao_yyerror( "syntax error - cannot backup" );\
- goto tao_yyerrlab;\
- }\
- tao_yychar = newtoken;\
- tao_yystate = *tao_yyps;\
- tao_yylval = newvalue;\
- goto tao_yynewstate;\
-}
-#define TAO_YYRECOVERING() (!!tao_yyerrflag)
-#define TAO_YYNEW(type) malloc(sizeof(type) * tao_yynewmax)
-#define TAO_YYCOPY(to, from, type) \
- (type *) memcpy(to, (char *) from, tao_yynewmax * sizeof(type))
-#define TAO_YYENLARGE( from, type) \
- (type *) realloc((char *) from, tao_yynewmax * sizeof(type))
-#ifndef TAO_YYDEBUG
-# define TAO_YYDEBUG 1 /* make debugging available */
-#endif
-
-/*
-** user known globals
-*/
-int tao_yydebug; /* set to 1 to get debugging */
-
-/*
-** driver internal defines
-*/
-#define TAO_YYFLAG (-10000000)
-
-/*
-** global variables used by the parser
-*/
-TAO_YYSTYPE *tao_yypv; /* top of value stack */
-int *tao_yyps; /* top of state stack */
-
-int tao_yystate; /* current state */
-int tao_yytmp; /* extra var (lasts between blocks) */
-
-int tao_yynerrs; /* number of errors */
-int tao_yyerrflag; /* error recovery flag */
-int tao_yychar; /* current input token number */
-
-
-
-#ifdef TAO_YYNMBCHARS
-#define TAO_YYLEX() tao_yycvtok(tao_yylex())
-/*
-** tao_yycvtok - return a token if i is a wchar_t value that exceeds 255.
-** If i<255, i itself is the token. If i>255 but the neither
-** of the 30th or 31st bit is on, i is already a token.
-*/
-#if defined(__STDC__) || defined(__cplusplus)
-int tao_yycvtok(int i)
-#else
-int tao_yycvtok(i) int i;
-#endif
-{
- int first = 0;
- int last = TAO_YYNMBCHARS - 1;
- int mid;
- wchar_t j;
-
- if(i&0x60000000){/*Must convert to a token. */
- if( tao_yymbchars[last].character < i ){
- return i;/*Giving up*/
- }
- while ((last>=first)&&(first>=0)) {/*Binary search loop*/
- mid = (first+last)/2;
- j = tao_yymbchars[mid].character;
- if( j==i ){/*Found*/
- return tao_yymbchars[mid].tvalue;
- }else if( j<i ){
- first = mid + 1;
- }else{
- last = mid -1;
- }
- }
- /*No entry in the table.*/
- return i;/* Giving up.*/
- }else{/* i is already a token. */
- return i;
- }
-}
-#else/*!TAO_YYNMBCHARS*/
-#define TAO_YYLEX() tao_yylex()
-#endif/*!TAO_YYNMBCHARS*/
-
-/*
-** tao_yyparse - return 0 if worked, 1 if syntax error not recovered from
-*/
-#if defined(__STDC__) || defined(__cplusplus)
-int tao_yyparse(void)
-#else
-int tao_yyparse()
-#endif
-{
- register TAO_YYSTYPE *tao_yypvt; /* top of value stack for $vars */
-
-#if defined(__cplusplus) || defined(lint)
-/*
- hacks to please C++ and lint - goto's inside switch should never be
- executed; tao_yypvt is set to 0 to avoid "used before set" warning.
-*/
- static int __yaccpar_lint_hack__ = 0;
- switch (__yaccpar_lint_hack__)
- {
- case 1: goto tao_yyerrlab;
- case 2: goto tao_yynewstate;
- }
- tao_yypvt = 0;
-#endif
-
- /*
- ** Initialize externals - tao_yyparse may be called more than once
- */
- tao_yypv = &tao_yyv[-1];
- tao_yyps = &tao_yys[-1];
- tao_yystate = 0;
- tao_yytmp = 0;
- tao_yynerrs = 0;
- tao_yyerrflag = 0;
- tao_yychar = -1;
-
-#if TAO_YYMAXDEPTH <= 0
- if (tao_yymaxdepth <= 0)
- {
- if ((tao_yymaxdepth = TAO_YYEXPAND(0)) <= 0)
- {
- tao_yyerror("yacc initialization error");
- TAO_YYABORT;
- }
- }
-#endif
-
- {
- register TAO_YYSTYPE *tao_yy_pv; /* top of value stack */
- register int *tao_yy_ps; /* top of state stack */
- register int tao_yy_state; /* current state */
- register int tao_yy_n; /* internal state number info */
- goto tao_yystack; /* moved from 6 lines above to here to please C++ */
-
- /*
- ** get globals into registers.
- ** branch to here only if TAO_YYBACKUP was called.
- */
- tao_yynewstate:
- tao_yy_pv = tao_yypv;
- tao_yy_ps = tao_yyps;
- tao_yy_state = tao_yystate;
- goto tao_yy_newstate;
-
- /*
- ** get globals into registers.
- ** either we just started, or we just finished a reduction
- */
- tao_yystack:
- tao_yy_pv = tao_yypv;
- tao_yy_ps = tao_yyps;
- tao_yy_state = tao_yystate;
-
- /*
- ** top of for (;;) loop while no reductions done
- */
- tao_yy_stack:
- /*
- ** put a state and value onto the stacks
- */
-#if TAO_YYDEBUG
- /*
- ** if debugging, look up token value in list of value vs.
- ** name pairs. 0 and negative (-1) are special values.
- ** Note: linear search is used since time is not a real
- ** consideration while debugging.
- */
- if ( tao_yydebug )
- {
- register int tao_yy_i;
-
- printf( "State %d, token ", tao_yy_state );
- if ( tao_yychar == 0 )
- printf( "end-of-file\n" );
- else if ( tao_yychar < 0 )
- printf( "-none-\n" );
- else
- {
- for ( tao_yy_i = 0; tao_yytoks[tao_yy_i].t_val >= 0;
- tao_yy_i++ )
- {
- if ( tao_yytoks[tao_yy_i].t_val == tao_yychar )
- break;
- }
- printf( "%s\n", tao_yytoks[tao_yy_i].t_name );
- }
- }
-#endif /* TAO_YYDEBUG */
- if ( ++tao_yy_ps >= &tao_yys[ tao_yymaxdepth ] ) /* room on stack? */
- {
- /*
- ** reallocate and recover. Note that pointers
- ** have to be reset, or bad things will happen
- */
- int tao_yyps_index = (tao_yy_ps - tao_yys);
- int tao_yypv_index = (tao_yy_pv - tao_yyv);
- int tao_yypvt_index = (tao_yypvt - tao_yyv);
- int tao_yynewmax;
-#ifdef TAO_YYEXPAND
- tao_yynewmax = TAO_YYEXPAND(tao_yymaxdepth);
-#else
- tao_yynewmax = 2 * tao_yymaxdepth; /* double table size */
- if (tao_yymaxdepth == TAO_YYMAXDEPTH) /* first time growth */
- {
- char *newtao_yys = (char *)TAO_YYNEW(int);
- char *newtao_yyv = (char *)TAO_YYNEW(TAO_YYSTYPE);
- if (newtao_yys != 0 && newtao_yyv != 0)
- {
- tao_yys = TAO_YYCOPY(newtao_yys, tao_yys, int);
- tao_yyv = TAO_YYCOPY(newtao_yyv, tao_yyv, TAO_YYSTYPE);
- }
- else
- tao_yynewmax = 0; /* failed */
- }
- else /* not first time */
- {
- tao_yys = TAO_YYENLARGE(tao_yys, int);
- tao_yyv = TAO_YYENLARGE(tao_yyv, TAO_YYSTYPE);
- if (tao_yys == 0 || tao_yyv == 0)
- tao_yynewmax = 0; /* failed */
- }
-#endif
- if (tao_yynewmax <= tao_yymaxdepth) /* tables not expanded */
- {
- tao_yyerror( "yacc stack overflow" );
- TAO_YYABORT;
- }
- tao_yymaxdepth = tao_yynewmax;
-
- tao_yy_ps = tao_yys + tao_yyps_index;
- tao_yy_pv = tao_yyv + tao_yypv_index;
- tao_yypvt = tao_yyv + tao_yypvt_index;
- }
- *tao_yy_ps = tao_yy_state;
- *++tao_yy_pv = tao_yyval;
-
- /*
- ** we have a new state - find out what to do
- */
- tao_yy_newstate:
- if ( ( tao_yy_n = tao_yypact[ tao_yy_state ] ) <= TAO_YYFLAG )
- goto tao_yydefault; /* simple state */
-#if TAO_YYDEBUG
- /*
- ** if debugging, need to mark whether new token grabbed
- */
- tao_yytmp = tao_yychar < 0;
-#endif
- if ( ( tao_yychar < 0 ) && ( ( tao_yychar = TAO_YYLEX() ) < 0 ) )
- tao_yychar = 0; /* reached EOF */
-#if TAO_YYDEBUG
- if ( tao_yydebug && tao_yytmp )
- {
- register int tao_yy_i;
-
- printf( "Received token " );
- if ( tao_yychar == 0 )
- printf( "end-of-file\n" );
- else if ( tao_yychar < 0 )
- printf( "-none-\n" );
- else
- {
- for ( tao_yy_i = 0; tao_yytoks[tao_yy_i].t_val >= 0;
- tao_yy_i++ )
- {
- if ( tao_yytoks[tao_yy_i].t_val == tao_yychar )
- break;
- }
- printf( "%s\n", tao_yytoks[tao_yy_i].t_name );
- }
- }
-#endif /* TAO_YYDEBUG */
- if ( ( ( tao_yy_n += tao_yychar ) < 0 ) || ( tao_yy_n >= TAO_YYLAST ) )
- goto tao_yydefault;
- if ( tao_yychk[ tao_yy_n = tao_yyact[ tao_yy_n ] ] == tao_yychar ) /*valid shift*/
- {
- tao_yychar = -1;
- tao_yyval = tao_yylval;
- tao_yy_state = tao_yy_n;
- if ( tao_yyerrflag > 0 )
- tao_yyerrflag--;
- goto tao_yy_stack;
- }
-
- tao_yydefault:
- if ( ( tao_yy_n = tao_yydef[ tao_yy_state ] ) == -2 )
- {
-#if TAO_YYDEBUG
- tao_yytmp = tao_yychar < 0;
-#endif
- if ( ( tao_yychar < 0 ) && ( ( tao_yychar = TAO_YYLEX() ) < 0 ) )
- tao_yychar = 0; /* reached EOF */
-#if TAO_YYDEBUG
- if ( tao_yydebug && tao_yytmp )
- {
- register int tao_yy_i;
-
- printf( "Received token " );
- if ( tao_yychar == 0 )
- printf( "end-of-file\n" );
- else if ( tao_yychar < 0 )
- printf( "-none-\n" );
- else
- {
- for ( tao_yy_i = 0;
- tao_yytoks[tao_yy_i].t_val >= 0;
- tao_yy_i++ )
- {
- if ( tao_yytoks[tao_yy_i].t_val
- == tao_yychar )
- {
- break;
- }
- }
- printf( "%s\n", tao_yytoks[tao_yy_i].t_name );
- }
- }
-#endif /* TAO_YYDEBUG */
- /*
- ** look through exception table
- */
- {
- register int *tao_yyxi = tao_yyexca;
-
- while ( ( *tao_yyxi != -1 ) ||
- ( tao_yyxi[1] != tao_yy_state ) )
- {
- tao_yyxi += 2;
- }
- while ( ( *(tao_yyxi += 2) >= 0 ) &&
- ( *tao_yyxi != tao_yychar ) )
- ;
- if ( ( tao_yy_n = tao_yyxi[1] ) < 0 )
- TAO_YYACCEPT;
- }
- }
-
- /*
- ** check for syntax error
- */
- if ( tao_yy_n == 0 ) /* have an error */
- {
- /* no worry about speed here! */
- switch ( tao_yyerrflag )
- {
- case 0: /* new error */
- tao_yyerror( "syntax error" );
- goto skip_init;
- tao_yyerrlab:
- /*
- ** get globals into registers.
- ** we have a user generated syntax type error
- */
- tao_yy_pv = tao_yypv;
- tao_yy_ps = tao_yyps;
- tao_yy_state = tao_yystate;
- skip_init:
- tao_yynerrs++;
- /* FALLTHRU */
- case 1:
- case 2: /* incompletely recovered error */
- /* try again... */
- tao_yyerrflag = 3;
- /*
- ** find state where "error" is a legal
- ** shift action
- */
- while ( tao_yy_ps >= tao_yys )
- {
- tao_yy_n = tao_yypact[ *tao_yy_ps ] + TAO_YYERRCODE;
- if ( tao_yy_n >= 0 && tao_yy_n < TAO_YYLAST &&
- tao_yychk[tao_yyact[tao_yy_n]] == TAO_YYERRCODE) {
- /*
- ** simulate shift of "error"
- */
- tao_yy_state = tao_yyact[ tao_yy_n ];
- goto tao_yy_stack;
- }
- /*
- ** current state has no shift on
- ** "error", pop stack
- */
-#if TAO_YYDEBUG
-# define _POP_ "Error recovery pops state %d, uncovers state %d\n"
- if ( tao_yydebug )
- printf( _POP_, *tao_yy_ps,
- tao_yy_ps[-1] );
-# undef _POP_
-#endif
- tao_yy_ps--;
- tao_yy_pv--;
- }
- /*
- ** there is no state on stack with "error" as
- ** a valid shift. give up.
- */
- TAO_YYABORT;
- case 3: /* no shift yet; eat a token */
-#if TAO_YYDEBUG
- /*
- ** if debugging, look up token in list of
- ** pairs. 0 and negative shouldn't occur,
- ** but since timing doesn't matter when
- ** debugging, it doesn't hurt to leave the
- ** tests here.
- */
- if ( tao_yydebug )
- {
- register int tao_yy_i;
-
- printf( "Error recovery discards " );
- if ( tao_yychar == 0 )
- printf( "token end-of-file\n" );
- else if ( tao_yychar < 0 )
- printf( "token -none-\n" );
- else
- {
- for ( tao_yy_i = 0;
- tao_yytoks[tao_yy_i].t_val >= 0;
- tao_yy_i++ )
- {
- if ( tao_yytoks[tao_yy_i].t_val
- == tao_yychar )
- {
- break;
- }
- }
- printf( "token %s\n",
- tao_yytoks[tao_yy_i].t_name );
- }
- }
-#endif /* TAO_YYDEBUG */
- if ( tao_yychar == 0 ) /* reached EOF. quit */
- TAO_YYABORT;
- tao_yychar = -1;
- goto tao_yy_newstate;
- }
- }/* end if ( tao_yy_n == 0 ) */
- /*
- ** reduction by production tao_yy_n
- ** put stack tops, etc. so things right after switch
- */
-#if TAO_YYDEBUG
- /*
- ** if debugging, print the string that is the user's
- ** specification of the reduction which is just about
- ** to be done.
- */
- if ( tao_yydebug )
- printf( "Reduce by (%d) \"%s\"\n",
- tao_yy_n, tao_yyreds[ tao_yy_n ] );
-#endif
- tao_yytmp = tao_yy_n; /* value to switch over */
- tao_yypvt = tao_yy_pv; /* $vars top of value stack */
- /*
- ** Look in goto table for next state
- ** Sorry about using tao_yy_state here as temporary
- ** register variable, but why not, if it works...
- ** If tao_yyr2[ tao_yy_n ] doesn't have the low order bit
- ** set, then there is no action to be done for
- ** this reduction. So, no saving & unsaving of
- ** registers done. The only difference between the
- ** code just after the if and the body of the if is
- ** the goto tao_yy_stack in the body. This way the test
- ** can be made before the choice of what to do is needed.
- */
- {
- /* length of production doubled with extra bit */
- register int tao_yy_len = tao_yyr2[ tao_yy_n ];
-
- if ( !( tao_yy_len & 01 ) )
- {
- tao_yy_len >>= 1;
- tao_yyval = ( tao_yy_pv -= tao_yy_len )[1]; /* $$ = $1 */
- tao_yy_state = tao_yypgo[ tao_yy_n = tao_yyr1[ tao_yy_n ] ] +
- *( tao_yy_ps -= tao_yy_len ) + 1;
- if ( tao_yy_state >= TAO_YYLAST ||
- tao_yychk[ tao_yy_state =
- tao_yyact[ tao_yy_state ] ] != -tao_yy_n )
- {
- tao_yy_state = tao_yyact[ tao_yypgo[ tao_yy_n ] ];
- }
- goto tao_yy_stack;
- }
- tao_yy_len >>= 1;
- tao_yyval = ( tao_yy_pv -= tao_yy_len )[1]; /* $$ = $1 */
- tao_yy_state = tao_yypgo[ tao_yy_n = tao_yyr1[ tao_yy_n ] ] +
- *( tao_yy_ps -= tao_yy_len ) + 1;
- if ( tao_yy_state >= TAO_YYLAST ||
- tao_yychk[ tao_yy_state = tao_yyact[ tao_yy_state ] ] != -tao_yy_n )
- {
- tao_yy_state = tao_yyact[ tao_yypgo[ tao_yy_n ] ];
- }
- }
- /* save until reenter driver code */
- tao_yystate = tao_yy_state;
- tao_yyps = tao_yy_ps;
- tao_yypv = tao_yy_pv;
- }
- /*
- ** code supplied by user is placed in this switch
- */
- switch( tao_yytmp )
- {
-
-case 4:
-# line 240 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_TypeDeclSeen);
- } break;
-case 5:
-# line 244 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- } break;
-case 6:
-# line 248 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_ConstDeclSeen);
- } break;
-case 7:
-# line 252 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- } break;
-case 8:
-# line 256 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_ExceptDeclSeen);
- } break;
-case 9:
-# line 260 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- } break;
-case 10:
-# line 264 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceDeclSeen);
- } break;
-case 11:
-# line 268 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- } break;
-case 12:
-# line 272 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_ModuleDeclSeen);
- } break;
-case 13:
-# line 276 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- } break;
-case 14:
-# line 280 "idl.tao_yy"
-{
- idl_global->err()->syntax_error(idl_global->parse_state());
- } break;
-case 15:
-# line 284 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- tao_yyerrok;
- } break;
-case 16:
-# line 291 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_ModuleSeen);
- } break;
-case 17:
-# line 295 "idl.tao_yy"
-{
- UTL_ScopedName *n =
- new UTL_ScopedName(new Identifier(tao_yypvt[-0].strval, 1, 0, I_FALSE), NULL);
- AST_Module *m = NULL;
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- UTL_StrList *p = idl_global->pragmas();
-
- idl_global->set_parse_state(IDL_GlobalData::PS_ModuleIDSeen);
- /*
- * Make a new module and add it to the enclosing scope
- */
- if (s != NULL) {
- m = idl_global->gen()->create_module(n, p);
- (void) s->fe_add_module(m);
- }
- /*
- * Push it on the stack
- */
- idl_global->scopes()->push(m);
- } break;
-case 18:
-# line 316 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_ModuleSqSeen);
- } break;
-case 19:
-# line 320 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_ModuleBodySeen);
- } break;
-case 20:
-# line 324 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_ModuleQsSeen);
- /*
- * Finished with this module - pop it from the scope stack
- */
- idl_global->scopes()->pop();
- } break;
-case 23:
-# line 340 "idl.tao_yy"
-{
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- AST_Interface *i = NULL;
- AST_Decl *v = NULL;
- UTL_StrList *p = idl_global->pragmas();
- AST_Decl *d = NULL;
- AST_Interface *fd = NULL;
-
- ACE_UNUSED_ARG (v);
-
- /*
- * Make a new interface node and add it to its enclosing scope
- */
- if (s != NULL && tao_yypvt[-0].ihval != NULL) {
- i = idl_global->gen()->create_interface(tao_yypvt[-0].ihval->interface_name(),
- tao_yypvt[-0].ihval->inherits(),
- tao_yypvt[-0].ihval->n_inherits(),
- p);
- if (i != NULL &&
- (d = s->lookup_by_name(i->name(), I_FALSE)) != NULL) {
- /*
- * See if we're defining a forward declared interface.
- */
- if (d->node_type() == AST_Decl::NT_interface) {
- /*
- * Narrow to an interface
- */
- fd = AST_Interface::narrow_from_decl(d);
- /*
- * Successful?
- */
- if (fd == NULL) {
- /*
- * Should we give an error here?
- */
- }
- /*
- * If it is a forward declared interface..
- */
- else if (!fd->is_defined()) {
- /*
- * Check if redefining in same scope
- */
- if (fd->defined_in() != s) {
- idl_global->err()
- ->error3(UTL_Error::EIDL_SCOPE_CONFLICT,
- i,
- fd,
- ScopeAsDecl(s));
- }
- /*
- * All OK, do the redefinition
- */
- else {
- fd->set_inherits(tao_yypvt[-0].ihval->inherits());
- fd->set_n_inherits(tao_yypvt[-0].ihval->n_inherits());
- /*
- * Update place of definition
- */
- fd->set_imported(idl_global->imported());
- fd->set_in_main_file(idl_global->in_main_file());
- fd->set_line(idl_global->lineno());
- fd->set_file_name(idl_global->filename());
- fd->add_pragmas(p);
- /*
- * Use full definition node
- */
- delete i;
- i = fd;
- }
- }
- }
- }
- /*
- * Add the interface to its definition scope
- */
- (void) s->fe_add_interface(i);
- }
- /*
- * Push it on the scope stack
- */
- idl_global->scopes()->push(i);
- } break;
-case 24:
-# line 424 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceSqSeen);
- } break;
-case 25:
-# line 428 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceBodySeen);
- } break;
-case 26:
-# line 432 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceQsSeen);
- /*
- * Done with this interface - pop it off the scopes stack
- */
- idl_global->scopes()->pop();
- } break;
-case 27:
-# line 443 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceSeen);
- } break;
-case 28:
-# line 447 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceIDSeen);
- tao_yyval.idval = tao_yypvt[-0].idval;
- } break;
-case 29:
-# line 455 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_InheritSpecSeen);
- /*
- * Create an AST representation of the information in the header
- * part of an interface - this representation contains a computed
- * list of all interfaces which this interface inherits from,
- * recursively
- */
- tao_yyval.ihval = new FE_InterfaceHeader(new UTL_ScopedName(tao_yypvt[-1].idval, NULL), tao_yypvt[-0].nlval);
- } break;
-case 30:
-# line 469 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_InheritColonSeen);
- } break;
-case 31:
-# line 473 "idl.tao_yy"
-{
- tao_yyval.nlval = tao_yypvt[-0].nlval;
- } break;
-case 32:
-# line 477 "idl.tao_yy"
-{
- tao_yyval.nlval = NULL;
- } break;
-case 35:
-# line 489 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_TypeDeclSeen);
- } break;
-case 36:
-# line 493 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- } break;
-case 37:
-# line 497 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_ConstDeclSeen);
- } break;
-case 38:
-# line 501 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- } break;
-case 39:
-# line 505 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_ExceptDeclSeen);
- } break;
-case 40:
-# line 509 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- } break;
-case 41:
-# line 513 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_AttrDeclSeen);
- } break;
-case 42:
-# line 517 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- } break;
-case 43:
-# line 521 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpDeclSeen);
- } break;
-case 44:
-# line 525 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- } break;
-case 45:
-# line 529 "idl.tao_yy"
-{
- idl_global->err()->syntax_error(idl_global->parse_state());
- } break;
-case 46:
-# line 533 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- tao_yyerrok;
- } break;
-case 47:
-# line 541 "idl.tao_yy"
-{
- tao_yyval.nlval = new UTL_NameList(tao_yypvt[-1].idlist, tao_yypvt[-0].nlval);
- } break;
-case 48:
-# line 549 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_SNListCommaSeen);
- } break;
-case 49:
-# line 553 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_ScopedNameSeen);
-
- if (tao_yypvt[-3].nlval == NULL)
- tao_yyval.nlval = new UTL_NameList(tao_yypvt[-0].idlist, NULL);
- else {
- tao_yypvt[-3].nlval->nconc(new UTL_NameList(tao_yypvt[-0].idlist, NULL));
- tao_yyval.nlval = tao_yypvt[-3].nlval;
- }
- } break;
-case 50:
-# line 564 "idl.tao_yy"
-{
- tao_yyval.nlval = NULL;
- } break;
-case 51:
-# line 571 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_SN_IDSeen);
-
- tao_yyval.idlist = new UTL_IdList(tao_yypvt[-0].idval, NULL);
- } break;
-case 52:
-# line 577 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_ScopeDelimSeen);
- } break;
-case 53:
-# line 581 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_SN_IDSeen);
-
- tao_yyval.idlist = new UTL_IdList(new Identifier(tao_yypvt[-2].strval, 1, 0, I_FALSE),
- new UTL_IdList(tao_yypvt[-0].idval, NULL));
- } break;
-case 54:
-# line 589 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_ScopeDelimSeen);
- } break;
-case 55:
-# line 593 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_SN_IDSeen);
-
- tao_yypvt[-3].idlist->nconc(new UTL_IdList(tao_yypvt[-0].idval, NULL));
- tao_yyval.idlist = tao_yypvt[-3].idlist;
- } break;
-case 56:
-# line 602 "idl.tao_yy"
-{
- tao_yyval.idval = new Identifier(tao_yypvt[-0].strval, 1, 0, I_FALSE);
- } break;
-case 57:
-# line 609 "idl.tao_yy"
-{
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- UTL_ScopedName *n = new UTL_ScopedName(tao_yypvt[-0].idval, NULL);
- AST_InterfaceFwd *f = NULL;
- UTL_StrList *p = idl_global->pragmas();
-
- idl_global->set_parse_state(IDL_GlobalData::PS_ForwardDeclSeen);
- /*
- * Create a node representing a forward declaration of an
- * interface. Store it in the enclosing scope
- */
- if (s != NULL) {
- f = idl_global->gen()->create_interface_fwd(n, p);
- (void) s->fe_add_interface_fwd(f);
- }
- } break;
-case 58:
-# line 629 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_ConstSeen);
- } break;
-case 59:
-# line 633 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_ConstTypeSeen);
- } break;
-case 60:
-# line 637 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_ConstIDSeen);
- } break;
-case 61:
-# line 641 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_ConstAssignSeen);
- } break;
-case 62:
-# line 645 "idl.tao_yy"
-{
- UTL_ScopedName *n = new UTL_ScopedName(tao_yypvt[-4].idval, NULL);
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- AST_Constant *c = NULL;
- UTL_StrList *p = idl_global->pragmas();
- AST_Decl *v = NULL;
-
- ACE_UNUSED_ARG (v);
-
- idl_global->set_parse_state(IDL_GlobalData::PS_ConstExprSeen);
- /*
- * Create a node representing a constant declaration. Store
- * it in the enclosing scope
- */
- if (tao_yypvt[-0].exval != NULL && s != NULL) {
- if (tao_yypvt[-0].exval->coerce(tao_yypvt[-6].etval) == NULL)
- idl_global->err()->coercion_error(tao_yypvt[-0].exval, tao_yypvt[-6].etval);
- else {
- c =
- idl_global->gen()->create_constant(tao_yypvt[-6].etval, tao_yypvt[-0].exval, n, p);
- (void) s->fe_add_constant(c);
- }
- }
- } break;
-case 68:
-# line 678 "idl.tao_yy"
-{
- tao_yyval.etval = AST_Expression::EV_string;
- } break;
-case 69:
-# line 682 "idl.tao_yy"
-{
- tao_yyval.etval = AST_Expression::EV_wstring;
- } break;
-case 70:
-# line 686 "idl.tao_yy"
-{
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- AST_Decl *d = NULL;
- AST_PredefinedType *c = NULL;
- AST_Typedef *t = NULL;
-
- /*
- * If the constant's type is a scoped name, it must resolve
- * to a scalar constant type
- */
- if (s != NULL && (d = s->lookup_by_name(tao_yypvt[-0].idlist, I_TRUE)) != NULL) {
- /*
- * Look through typedefs
- */
- while (d->node_type() == AST_Decl::NT_typedef) {
- t = AST_Typedef::narrow_from_decl(d);
- if (t == NULL)
- break;
- d = t->base_type();
- }
- if (d == NULL)
- tao_yyval.etval = AST_Expression::EV_any;
- else if (d->node_type() == AST_Decl::NT_pre_defined) {
- c = AST_PredefinedType::narrow_from_decl(d);
- if (c != NULL) {
- tao_yyval.etval = idl_global->PredefinedTypeToExprType(c->pt());
- } else {
- tao_yyval.etval = AST_Expression::EV_any;
- }
- } else
- tao_yyval.etval = AST_Expression::EV_any;
- } else
- tao_yyval.etval = AST_Expression::EV_any;
- } break;
-case 74:
-# line 728 "idl.tao_yy"
-{
- tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_or, tao_yypvt[-2].exval, tao_yypvt[-0].exval);
- } break;
-case 76:
-# line 736 "idl.tao_yy"
-{
- tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_xor, tao_yypvt[-2].exval, tao_yypvt[-0].exval);
- } break;
-case 78:
-# line 744 "idl.tao_yy"
-{
- tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_and, tao_yypvt[-2].exval, tao_yypvt[-0].exval);
- } break;
-case 80:
-# line 752 "idl.tao_yy"
-{
- tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_right,tao_yypvt[-2].exval,tao_yypvt[-0].exval);
- } break;
-case 81:
-# line 756 "idl.tao_yy"
-{
- tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_left,tao_yypvt[-2].exval,tao_yypvt[-0].exval);
- } break;
-case 83:
-# line 764 "idl.tao_yy"
-{
- tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_add, tao_yypvt[-2].exval, tao_yypvt[-0].exval);
- } break;
-case 84:
-# line 768 "idl.tao_yy"
-{
- tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_minus,tao_yypvt[-2].exval,tao_yypvt[-0].exval);
- } break;
-case 86:
-# line 776 "idl.tao_yy"
-{
- tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_mul, tao_yypvt[-2].exval, tao_yypvt[-0].exval);
- } break;
-case 87:
-# line 780 "idl.tao_yy"
-{
- tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_div, tao_yypvt[-2].exval, tao_yypvt[-0].exval);
- } break;
-case 88:
-# line 784 "idl.tao_yy"
-{
- tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_mod, tao_yypvt[-2].exval, tao_yypvt[-0].exval);
- } break;
-case 90:
-# line 792 "idl.tao_yy"
-{
- tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_u_plus,
- tao_yypvt[-0].exval,
- NULL);
- } break;
-case 91:
-# line 798 "idl.tao_yy"
-{
- tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_u_minus,
- tao_yypvt[-0].exval,
- NULL);
- } break;
-case 92:
-# line 804 "idl.tao_yy"
-{
- tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_bit_neg,
- tao_yypvt[-0].exval,
- NULL);
- } break;
-case 93:
-# line 813 "idl.tao_yy"
-{
- /*
- * An expression which is a scoped name is not resolved now,
- * but only when it is evaluated (such as when it is assigned
- * as a constant value)
- */
- tao_yyval.exval = idl_global->gen()->create_expr(tao_yypvt[-0].idlist);
- } break;
-case 95:
-# line 823 "idl.tao_yy"
-{
- tao_yyval.exval = tao_yypvt[-1].exval;
- } break;
-case 96:
-# line 830 "idl.tao_yy"
-{
- tao_yyval.exval = idl_global->gen()->create_expr(tao_yypvt[-0].ival);
- } break;
-case 97:
-# line 834 "idl.tao_yy"
-{
- tao_yyval.exval = idl_global->gen()->create_expr(tao_yypvt[-0].sval);
- } break;
-case 98:
-# line 838 "idl.tao_yy"
-{
- tao_yyval.exval = idl_global->gen()->create_expr(tao_yypvt[-0].cval);
- } break;
-case 99:
-# line 842 "idl.tao_yy"
-{
- tao_yyval.exval = idl_global->gen()->create_expr(tao_yypvt[-0].dval);
- } break;
-case 100:
-# line 846 "idl.tao_yy"
-{
- tao_yyval.exval = idl_global->gen()->create_expr((idl_bool) I_TRUE,
- AST_Expression::EV_bool);
- } break;
-case 101:
-# line 851 "idl.tao_yy"
-{
- tao_yyval.exval = idl_global->gen()->create_expr((idl_bool) I_FALSE,
- AST_Expression::EV_bool);
- } break;
-case 102:
-# line 859 "idl.tao_yy"
-{
- tao_yypvt[-0].exval->evaluate(AST_Expression::EK_const);
- tao_yyval.exval = idl_global->gen()->create_expr(tao_yypvt[-0].exval, AST_Expression::EV_ulong);
- } break;
-case 103:
-# line 867 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_TypedefSeen);
- } break;
-case 104:
-# line 870 "idl.tao_yy"
-{tao_yyval.ival = 0;} break;
-case 105:
-# line 871 "idl.tao_yy"
-{ tao_yyval.ival = 0;} break;
-case 106:
-# line 872 "idl.tao_yy"
-{ tao_yyval.ival = 0;} break;
-case 107:
-# line 873 "idl.tao_yy"
-{ tao_yyval.ival = 0;} break;
-case 108:
-# line 875 "idl.tao_yy"
-{
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- AST_Native *node = NULL;
- AST_Decl *v = NULL;
- UTL_StrList *p = idl_global->pragmas();
-
- ACE_UNUSED_ARG (v);
-
- idl_global->set_parse_state(IDL_GlobalData::PS_NativeSeen);
- /*
- * Create a node representing a Native and add it to its
- * enclosing scope
- */
- if (s != NULL) {
- node = idl_global->gen()->create_native (tao_yypvt[-0].deval->name (), p);
- /*
- * Add it to its defining scope
- */
- (void) s->fe_add_native (node);
- }
- } break;
-case 109:
-# line 900 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_TypeSpecSeen);
- } break;
-case 110:
-# line 904 "idl.tao_yy"
-{
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- UTL_DecllistActiveIterator *l;
- FE_Declarator *d = NULL;
- AST_Typedef *t = NULL;
- AST_Decl *v = NULL;
- UTL_StrList *p = idl_global->pragmas();
-
- ACE_UNUSED_ARG (v);
-
- idl_global->set_parse_state(IDL_GlobalData::PS_DeclaratorsSeen);
- /*
- * Create a list of type renamings. Add them to the
- * enclosing scope
- */
- if (s != NULL && tao_yypvt[-2].dcval != NULL && tao_yypvt[-0].dlval != NULL) {
- l = new UTL_DecllistActiveIterator(tao_yypvt[-0].dlval);
- for (;!(l->is_done()); l->next()) {
- d = l->item();
- if (d == NULL)
- continue;
- AST_Type * tp = d->compose(tao_yypvt[-2].dcval);
- if (tp == NULL)
- continue;
- t = idl_global->gen()->create_typedef(tp, d->name(), p);
- (void) s->fe_add_typedef(t);
- }
- delete l;
- }
- } break;
-case 113:
-# line 943 "idl.tao_yy"
-{
- tao_yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(tao_yypvt[-0].etval);
- } break;
-case 115:
-# line 948 "idl.tao_yy"
-{
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- AST_Decl *d = NULL;
-
- if (s != NULL)
- d = s->lookup_by_name(tao_yypvt[-0].idlist, I_TRUE);
- if (d == NULL)
- idl_global->err()->lookup_error(tao_yypvt[-0].idlist);
- tao_yyval.dcval = d;
- } break;
-case 128:
-# line 983 "idl.tao_yy"
-{
- tao_yyval.dlval = new UTL_DeclList(tao_yypvt[-1].deval, tao_yypvt[-0].dlval);
- } break;
-case 129:
-# line 991 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_DeclsCommaSeen);
- } break;
-case 130:
-# line 995 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_DeclsDeclSeen);
-
- if (tao_yypvt[-3].dlval == NULL)
- tao_yyval.dlval = new UTL_DeclList(tao_yypvt[-0].deval, NULL);
- else {
- tao_yypvt[-3].dlval->nconc(new UTL_DeclList(tao_yypvt[-0].deval, NULL));
- tao_yyval.dlval = tao_yypvt[-3].dlval;
- }
- } break;
-case 131:
-# line 1006 "idl.tao_yy"
-{
- tao_yyval.dlval = NULL;
- } break;
-case 134:
-# line 1018 "idl.tao_yy"
-{
- tao_yyval.dlval = new UTL_DeclList(tao_yypvt[-1].deval, tao_yypvt[-0].dlval);
- } break;
-case 135:
-# line 1026 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_DeclsCommaSeen);
- } break;
-case 136:
-# line 1030 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_DeclsDeclSeen);
-
- if (tao_yypvt[-3].dlval == NULL)
- tao_yyval.dlval = new UTL_DeclList(tao_yypvt[-0].deval, NULL);
- else {
- tao_yypvt[-3].dlval->nconc(new UTL_DeclList(tao_yypvt[-0].deval, NULL));
- tao_yyval.dlval = tao_yypvt[-3].dlval;
- }
- } break;
-case 137:
-# line 1041 "idl.tao_yy"
-{
- tao_yyval.dlval = NULL;
- } break;
-case 138:
-# line 1048 "idl.tao_yy"
-{
- tao_yyval.deval = new FE_Declarator(new UTL_ScopedName(tao_yypvt[-0].idval, NULL),
- FE_Declarator::FD_simple, NULL);
- } break;
-case 139:
-# line 1056 "idl.tao_yy"
-{
- tao_yyval.deval = new FE_Declarator(new UTL_ScopedName(tao_yypvt[-0].dcval->local_name(), NULL),
- FE_Declarator::FD_complex,
- tao_yypvt[-0].dcval);
- } break;
-case 142:
-# line 1070 "idl.tao_yy"
-{
- tao_yyval.etval = AST_Expression::EV_long;
- } break;
-case 143:
-# line 1074 "idl.tao_yy"
-{
- tao_yyval.etval = AST_Expression::EV_longlong;
- } break;
-case 144:
-# line 1078 "idl.tao_yy"
-{
- tao_yyval.etval = AST_Expression::EV_short;
- } break;
-case 145:
-# line 1085 "idl.tao_yy"
-{
- tao_yyval.etval = AST_Expression::EV_ulong;
- } break;
-case 146:
-# line 1089 "idl.tao_yy"
-{
- tao_yyval.etval = AST_Expression::EV_ulonglong;
- } break;
-case 147:
-# line 1093 "idl.tao_yy"
-{
- tao_yyval.etval = AST_Expression::EV_ushort;
- } break;
-case 148:
-# line 1100 "idl.tao_yy"
-{
- tao_yyval.etval = AST_Expression::EV_double;
- } break;
-case 149:
-# line 1104 "idl.tao_yy"
-{
- tao_yyval.etval = AST_Expression::EV_float;
- } break;
-case 150:
-# line 1108 "idl.tao_yy"
-{
- tao_yyval.etval = AST_Expression::EV_longdouble;
- } break;
-case 151:
-# line 1115 "idl.tao_yy"
-{
- tao_yyval.etval = AST_Expression::EV_char;
- } break;
-case 152:
-# line 1119 "idl.tao_yy"
-{
- tao_yyval.etval = AST_Expression::EV_wchar;
- } break;
-case 153:
-# line 1126 "idl.tao_yy"
-{
- tao_yyval.etval = AST_Expression::EV_octet;
- } break;
-case 154:
-# line 1133 "idl.tao_yy"
-{
- tao_yyval.etval = AST_Expression::EV_bool;
- } break;
-case 155:
-# line 1140 "idl.tao_yy"
-{
- tao_yyval.etval = AST_Expression::EV_any;
- } break;
-case 156:
-# line 1147 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_StructSeen);
- } break;
-case 157:
-# line 1151 "idl.tao_yy"
-{
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- UTL_ScopedName *n = new UTL_ScopedName(tao_yypvt[-0].idval, NULL);
- AST_Structure *d = NULL;
- UTL_StrList *p = idl_global->pragmas();
- AST_Decl *v = NULL;
-
- ACE_UNUSED_ARG (v);
-
- idl_global->set_parse_state(IDL_GlobalData::PS_StructIDSeen);
- /*
- * Create a node representing a struct declaration. Add it
- * to the enclosing scope
- */
- if (s != NULL) {
- d = idl_global->gen()->create_structure(n, p);
- (void) s->fe_add_structure(d);
- }
- /*
- * Push the scope of the struct on the scopes stack
- */
- idl_global->scopes()->push(d);
- } break;
-case 158:
-# line 1175 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_StructSqSeen);
- } break;
-case 159:
-# line 1179 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_StructBodySeen);
- } break;
-case 160:
-# line 1183 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_StructQsSeen);
- /*
- * Done with this struct. Pop its scope off the scopes stack
- */
- if (idl_global->scopes()->top() == NULL)
- tao_yyval.dcval = NULL;
- else {
- tao_yyval.dcval =
- AST_Structure::narrow_from_scope(
- idl_global->scopes()->top_non_null());
- idl_global->scopes()->pop();
- }
- } break;
-case 164:
-# line 1208 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_MemberTypeSeen);
- } break;
-case 165:
-# line 1212 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_MemberDeclsSeen);
- } break;
-case 166:
-# line 1216 "idl.tao_yy"
-{
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- UTL_DecllistActiveIterator *l = NULL;
- FE_Declarator *d = NULL;
- AST_Field *f = NULL;
- UTL_StrList *p = idl_global->pragmas();
-
- idl_global->set_parse_state(IDL_GlobalData::PS_MemberDeclsCompleted);
- /*
- * Check for illegal recursive use of type
- */
- if (tao_yypvt[-4].dcval != NULL && AST_illegal_recursive_type(tao_yypvt[-4].dcval))
- idl_global->err()->error1(UTL_Error::EIDL_RECURSIVE_TYPE, tao_yypvt[-4].dcval);
- /*
- * Create a node representing a struct or exception member
- * Add it to the enclosing scope
- */
- else if (s != NULL && tao_yypvt[-4].dcval != NULL && tao_yypvt[-2].dlval != NULL) {
- l = new UTL_DecllistActiveIterator(tao_yypvt[-2].dlval);
- for (;!(l->is_done()); l->next()) {
- d = l->item();
- if (d == NULL)
- continue;
- AST_Type *tp = d->compose(tao_yypvt[-4].dcval);
- if (tp == NULL)
- continue;
- f = idl_global->gen()->create_field(tp, d->name(), p);
- (void) s->fe_add_field(f);
- }
- delete l;
- }
- } break;
-case 167:
-# line 1249 "idl.tao_yy"
-{
- idl_global->err()->syntax_error(idl_global->parse_state());
- } break;
-case 168:
-# line 1253 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- tao_yyerrok;
- } break;
-case 169:
-# line 1261 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_UnionSeen);
- } break;
-case 170:
-# line 1265 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_UnionIDSeen);
- } break;
-case 171:
-# line 1269 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_SwitchSeen);
- } break;
-case 172:
-# line 1273 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_SwitchOpenParSeen);
- } break;
-case 173:
-# line 1277 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_SwitchTypeSeen);
- } break;
-case 174:
-# line 1281 "idl.tao_yy"
-{
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- UTL_ScopedName *n = new UTL_ScopedName(tao_yypvt[-8].idval, NULL);
- AST_Union *u = NULL;
- AST_Decl *v = NULL;
- UTL_StrList *p = idl_global->pragmas();
-
- ACE_UNUSED_ARG (v);
-
- idl_global->set_parse_state(IDL_GlobalData::PS_SwitchCloseParSeen);
- /*
- * Create a node representing a union. Add it to its enclosing
- * scope
- */
- if (tao_yypvt[-2].dcval != NULL && s != NULL) {
- AST_ConcreteType *tp = AST_ConcreteType::narrow_from_decl(tao_yypvt[-2].dcval);
- if (tp == NULL) {
- idl_global->err()->not_a_type(tao_yypvt[-2].dcval);
- } else {
- u = idl_global->gen()->create_union(tp, n, p);
- (void) s->fe_add_union(u);
- }
- }
- /*
- * Push the scope of the union on the scopes stack
- */
- idl_global->scopes()->push(u);
- } break;
-case 175:
-# line 1310 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_UnionSqSeen);
- } break;
-case 176:
-# line 1314 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_UnionBodySeen);
- } break;
-case 177:
-# line 1318 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_UnionQsSeen);
- /*
- * Done with this union. Pop its scope from the scopes stack
- */
- if (idl_global->scopes()->top() == NULL)
- tao_yyval.dcval = NULL;
- else {
- tao_yyval.dcval =
- AST_Union::narrow_from_scope(
- idl_global->scopes()->top_non_null());
- idl_global->scopes()->pop();
- }
- } break;
-case 178:
-# line 1336 "idl.tao_yy"
-{
- tao_yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(tao_yypvt[-0].etval);
- } break;
-case 179:
-# line 1340 "idl.tao_yy"
-{
- tao_yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(tao_yypvt[-0].etval);
- } break;
-case 180:
-# line 1344 "idl.tao_yy"
-{
- tao_yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(tao_yypvt[-0].etval);
- } break;
-case 181:
-# line 1348 "idl.tao_yy"
-{
- tao_yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(tao_yypvt[-0].etval);
- } break;
-case 183:
-# line 1353 "idl.tao_yy"
-{
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- AST_Decl *d = NULL;
- AST_PredefinedType *p = NULL;
- AST_Typedef *t = NULL;
- long found = I_FALSE;
-
- /*
- * The discriminator is a scoped name. Try to resolve to
- * one of the scalar types or to an enum. Thread through
- * typedef's to arrive at the base type at the end of the
- * chain
- */
- if (s != NULL && (d = s->lookup_by_name(tao_yypvt[-0].idlist, I_TRUE)) != NULL) {
- while (!found) {
- switch (d->node_type()) {
- case AST_Decl::NT_enum:
- tao_yyval.dcval = d;
- found = I_TRUE;
- break;
- case AST_Decl::NT_pre_defined:
- p = AST_PredefinedType::narrow_from_decl(d);
- if (p != NULL) {
- switch (p->pt()) {
- case AST_PredefinedType::PT_long:
- case AST_PredefinedType::PT_ulong:
- case AST_PredefinedType::PT_longlong:
- case AST_PredefinedType::PT_ulonglong:
- case AST_PredefinedType::PT_short:
- case AST_PredefinedType::PT_char:
- case AST_PredefinedType::PT_wchar:
- case AST_PredefinedType::PT_octet:
- case AST_PredefinedType::PT_boolean:
- tao_yyval.dcval = p;
- found = I_TRUE;
- break;
- default:
- tao_yyval.dcval = NULL;
- found = I_TRUE;
- break;
- }
- }
- break;
- case AST_Decl::NT_typedef:
- t = AST_Typedef::narrow_from_decl(d);
- if (t != NULL) d = t->base_type();
- break;
- default:
- tao_yyval.dcval = NULL;
- found = I_TRUE;
- break;
- }
- }
- } else
- tao_yyval.dcval = NULL;
-
- if (tao_yyval.dcval == NULL)
- idl_global->err()->lookup_error(tao_yypvt[-0].idlist);
- } break;
-case 187:
-# line 1423 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_UnionLabelSeen);
- } break;
-case 188:
-# line 1427 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_UnionElemSeen);
- } break;
-case 189:
-# line 1431 "idl.tao_yy"
-{
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- UTL_LabellistActiveIterator *l = NULL;
- AST_UnionLabel *d = NULL;
- AST_UnionBranch *b = NULL;
- AST_Field *f = tao_yypvt[-2].ffval;
-
- idl_global->set_parse_state(IDL_GlobalData::PS_UnionElemCompleted);
- /*
- * Create several nodes representing branches of a union.
- * Add them to the enclosing scope (the union scope)
- */
- if (s != NULL && tao_yypvt[-4].llval != NULL && tao_yypvt[-2].ffval != NULL) {
- l = new UTL_LabellistActiveIterator(tao_yypvt[-4].llval);
- for (;!(l->is_done()); l->next()) {
- d = l->item();
- if (d == NULL)
- continue;
- b = idl_global->gen()->create_union_branch(d,
- f->field_type(),
- f->name(),
- f->pragmas());
- (void) s->fe_add_union_branch(b);
- }
- delete l;
- }
- } break;
-case 190:
-# line 1459 "idl.tao_yy"
-{
- idl_global->err()->syntax_error(idl_global->parse_state());
- } break;
-case 191:
-# line 1464 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- tao_yyerrok;
- } break;
-case 192:
-# line 1472 "idl.tao_yy"
-{
- tao_yyval.llval = new UTL_LabelList(tao_yypvt[-1].ulval, tao_yypvt[-0].llval);
- } break;
-case 193:
-# line 1479 "idl.tao_yy"
-{
- if (tao_yypvt[-1].llval == NULL)
- tao_yyval.llval = new UTL_LabelList(tao_yypvt[-0].ulval, NULL);
- else {
- tao_yypvt[-1].llval->nconc(new UTL_LabelList(tao_yypvt[-0].ulval, NULL));
- tao_yyval.llval = tao_yypvt[-1].llval;
- }
- } break;
-case 194:
-# line 1488 "idl.tao_yy"
-{
- tao_yyval.llval = NULL;
- } break;
-case 195:
-# line 1495 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_DefaultSeen);
- } break;
-case 196:
-# line 1499 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_LabelColonSeen);
-
- tao_yyval.ulval = idl_global->gen()->
- create_union_label(AST_UnionLabel::UL_default,
- NULL);
- } break;
-case 197:
-# line 1507 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_CaseSeen);
- } break;
-case 198:
-# line 1511 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_LabelExprSeen);
- } break;
-case 199:
-# line 1515 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_LabelColonSeen);
-
- tao_yyval.ulval = idl_global->gen()->create_union_label(AST_UnionLabel::UL_label,
- tao_yypvt[-2].exval);
- } break;
-case 200:
-# line 1525 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_UnionElemTypeSeen);
- } break;
-case 201:
-# line 1529 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_UnionElemDeclSeen);
- /*
- * Check for illegal recursive use of type
- */
- if (tao_yypvt[-2].dcval != NULL && AST_illegal_recursive_type(tao_yypvt[-2].dcval))
- idl_global->err()->error1(UTL_Error::EIDL_RECURSIVE_TYPE, tao_yypvt[-2].dcval);
- /*
- * Create a field in a union branch
- */
- else if (tao_yypvt[-2].dcval == NULL || tao_yypvt[-0].deval == NULL)
- tao_yyval.ffval = NULL;
- else {
- AST_Type *tp = tao_yypvt[-0].deval->compose(tao_yypvt[-2].dcval);
- if (tp == NULL)
- tao_yyval.ffval = NULL;
- else
- tao_yyval.ffval = idl_global->gen()->create_field(tp,
- tao_yypvt[-0].deval->name(),
- idl_global->pragmas());
- }
- } break;
-case 202:
-# line 1555 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_EnumSeen);
- } break;
-case 203:
-# line 1559 "idl.tao_yy"
-{
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- UTL_ScopedName *n = new UTL_ScopedName(tao_yypvt[-0].idval, NULL);
- AST_Enum *e = NULL;
- AST_Decl *v = NULL;
- UTL_StrList *p = idl_global->pragmas();
-
- ACE_UNUSED_ARG (v);
-
- idl_global->set_parse_state(IDL_GlobalData::PS_EnumIDSeen);
- /*
- * Create a node representing an enum and add it to its
- * enclosing scope
- */
- if (s != NULL) {
- e = idl_global->gen()->create_enum(n, p);
- /*
- * Add it to its defining scope
- */
- (void) s->fe_add_enum(e);
- }
- /*
- * Push the enum scope on the scopes stack
- */
- idl_global->scopes()->push(e);
- } break;
-case 204:
-# line 1586 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_EnumSqSeen);
- } break;
-case 205:
-# line 1590 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_EnumBodySeen);
- } break;
-case 206:
-# line 1594 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_EnumQsSeen);
- /*
- * Done with this enum. Pop its scope from the scopes stack
- */
- if (idl_global->scopes()->top() == NULL)
- tao_yyval.dcval = NULL;
- else {
- tao_yyval.dcval = AST_Enum::narrow_from_scope(idl_global->scopes()->top_non_null());
- idl_global->scopes()->pop();
- }
- } break;
-case 208:
-# line 1613 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_EnumCommaSeen);
- } break;
-case 211:
-# line 1622 "idl.tao_yy"
-{
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- UTL_ScopedName *n =
- new UTL_ScopedName(new Identifier(tao_yypvt[-0].strval, 1, 0, I_FALSE), NULL);
- AST_EnumVal *e = NULL;
- AST_Enum *c = NULL;
- UTL_StrList *p = idl_global->pragmas();
-
- /*
- * Create a node representing one enumerator in an enum
- * Add it to the enclosing scope (the enum scope)
- */
- if (s != NULL && s->scope_node_type() == AST_Decl::NT_enum) {
- c = AST_Enum::narrow_from_scope(s);
- if (c != NULL)
- e = idl_global->gen()->create_enum_val(c->next_enum_val(), n, p);
- (void) s->fe_add_enum_val(e);
- }
- } break;
-case 212:
-# line 1646 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_SequenceCommaSeen);
- } break;
-case 213:
-# line 1650 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_SequenceExprSeen);
- } break;
-case 214:
-# line 1654 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_SequenceQsSeen);
- /*
- * Remove sequence marker from scopes stack
- */
- if (idl_global->scopes()->top() == NULL)
- idl_global->scopes()->pop();
- /*
- * Create a node representing a sequence
- */
- if (tao_yypvt[-2].exval == NULL || tao_yypvt[-2].exval->coerce(AST_Expression::EV_ulong) == NULL) {
- idl_global->err()->coercion_error(tao_yypvt[-2].exval, AST_Expression::EV_ulong);
- tao_yyval.dcval = NULL;
- } else if (tao_yypvt[-5].dcval == NULL) {
- tao_yyval.dcval = NULL;
- } else {
- AST_Type *tp = AST_Type::narrow_from_decl(tao_yypvt[-5].dcval);
- if (tp == NULL)
- tao_yyval.dcval = NULL;
- else {
- tao_yyval.dcval = idl_global->gen()->create_sequence(tao_yypvt[-2].exval, tp);
- /*
- * Add this AST_Sequence to the types defined in the global scope
- */
- (void) idl_global->root()
- ->fe_add_sequence(AST_Sequence::narrow_from_decl(tao_yyval.dcval));
- }
- }
- } break;
-case 215:
-# line 1685 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_SequenceQsSeen);
- /*
- * Remove sequence marker from scopes stack
- */
- if (idl_global->scopes()->top() == NULL)
- idl_global->scopes()->pop();
- /*
- * Create a node representing a sequence
- */
- if (tao_yypvt[-1].dcval == NULL)
- tao_yyval.dcval = NULL;
- else {
- AST_Type *tp = AST_Type::narrow_from_decl(tao_yypvt[-1].dcval);
- if (tp == NULL)
- tao_yyval.dcval = NULL;
- else {
- tao_yyval.dcval =
- idl_global->gen()->create_sequence(
- idl_global->gen()->create_expr((unsigned long) 0),
- tp);
- /*
- * Add this AST_Sequence to the types defined in the global scope
- */
- (void) idl_global->root()
- ->fe_add_sequence(AST_Sequence::narrow_from_decl(tao_yyval.dcval));
- }
- }
- } break;
-case 216:
-# line 1718 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_SequenceSeen);
- /*
- * Push a sequence marker on scopes stack
- */
- idl_global->scopes()->push(NULL);
- } break;
-case 217:
-# line 1726 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_SequenceSqSeen);
- } break;
-case 218:
-# line 1730 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_SequenceTypeSeen);
- tao_yyval.dcval = tao_yypvt[-0].dcval;
- } break;
-case 219:
-# line 1739 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_StringSqSeen);
- } break;
-case 220:
-# line 1743 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_StringExprSeen);
- } break;
-case 221:
-# line 1747 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_StringQsSeen);
- /*
- * Create a node representing a string
- */
- if (tao_yypvt[-2].exval == NULL || tao_yypvt[-2].exval->coerce(AST_Expression::EV_ulong) == NULL) {
- idl_global->err()->coercion_error(tao_yypvt[-2].exval, AST_Expression::EV_ulong);
- tao_yyval.dcval = NULL;
- } else {
- tao_yyval.dcval = idl_global->gen()->create_string(tao_yypvt[-2].exval);
- /*
- * Add this AST_String to the types defined in the global scope
- */
- (void) idl_global->root()
- ->fe_add_string(AST_String::narrow_from_decl(tao_yyval.dcval));
- }
- } break;
-case 222:
-# line 1765 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_StringCompleted);
- /*
- * Create a node representing a string
- */
- tao_yyval.dcval =
- idl_global->gen()->create_string(
- idl_global->gen()->create_expr((unsigned long) 0));
- /*
- * Add this AST_String to the types defined in the global scope
- */
- (void) idl_global->root()
- ->fe_add_string(AST_String::narrow_from_decl(tao_yyval.dcval));
- } break;
-case 223:
-# line 1783 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_StringSeen);
- } break;
-case 224:
-# line 1791 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_StringSqSeen);
- } break;
-case 225:
-# line 1795 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_StringExprSeen);
- } break;
-case 226:
-# line 1799 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_StringQsSeen);
- /*
- * Create a node representing a string
- */
- if (tao_yypvt[-2].exval == NULL || tao_yypvt[-2].exval->coerce(AST_Expression::EV_ulong) == NULL) {
- idl_global->err()->coercion_error(tao_yypvt[-2].exval, AST_Expression::EV_ulong);
- tao_yyval.dcval = NULL;
- } else {
- tao_yyval.dcval = idl_global->gen()->create_wstring(tao_yypvt[-2].exval);
- /*
- * Add this AST_String to the types defined in the global scope
- */
- (void) idl_global->root()
- ->fe_add_string(AST_String::narrow_from_decl(tao_yyval.dcval));
- }
- } break;
-case 227:
-# line 1817 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_StringCompleted);
- /*
- * Create a node representing a string
- */
- tao_yyval.dcval =
- idl_global->gen()->create_wstring(
- idl_global->gen()->create_expr((unsigned long) 0));
- /*
- * Add this AST_String to the types defined in the global scope
- */
- (void) idl_global->root()
- ->fe_add_string(AST_String::narrow_from_decl(tao_yyval.dcval));
- } break;
-case 228:
-# line 1835 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_StringSeen);
- } break;
-case 229:
-# line 1842 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_ArrayIDSeen);
- } break;
-case 230:
-# line 1846 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_ArrayCompleted);
- /*
- * Create a node representing an array
- */
- if (tao_yypvt[-0].elval != NULL) {
- tao_yyval.dcval = idl_global->gen()->create_array(new UTL_ScopedName(tao_yypvt[-2].idval, NULL),
- tao_yypvt[-0].elval->length(), tao_yypvt[-0].elval);
- }
- } break;
-case 231:
-# line 1860 "idl.tao_yy"
-{
- tao_yyval.elval = new UTL_ExprList(tao_yypvt[-1].exval, tao_yypvt[-0].elval);
- } break;
-case 232:
-# line 1867 "idl.tao_yy"
-{
- if (tao_yypvt[-1].elval == NULL)
- tao_yyval.elval = new UTL_ExprList(tao_yypvt[-0].exval, NULL);
- else {
- tao_yypvt[-1].elval->nconc(new UTL_ExprList(tao_yypvt[-0].exval, NULL));
- tao_yyval.elval = tao_yypvt[-1].elval;
- }
- } break;
-case 233:
-# line 1876 "idl.tao_yy"
-{
- tao_yyval.elval = NULL;
- } break;
-case 234:
-# line 1883 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_DimSqSeen);
- } break;
-case 235:
-# line 1887 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_DimExprSeen);
- } break;
-case 236:
-# line 1891 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_DimQsSeen);
- /*
- * Array dimensions are expressions which must be coerced to
- * positive integers
- */
- if (tao_yypvt[-2].exval == NULL || tao_yypvt[-2].exval->coerce(AST_Expression::EV_ulong) == NULL) {
- idl_global->err()->coercion_error(tao_yypvt[-2].exval, AST_Expression::EV_ulong);
- tao_yyval.exval = NULL;
- } else
- tao_yyval.exval = tao_yypvt[-2].exval;
- } break;
-case 237:
-# line 1908 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_AttrSeen);
- } break;
-case 238:
-# line 1912 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_AttrTypeSeen);
- } break;
-case 239:
-# line 1916 "idl.tao_yy"
-{
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- UTL_DecllistActiveIterator *l = NULL;
- AST_Attribute *a = NULL;
- FE_Declarator *d = NULL;
- UTL_StrList *p = idl_global->pragmas();
-
- idl_global->set_parse_state(IDL_GlobalData::PS_AttrCompleted);
- /*
- * Create nodes representing attributes and add them to the
- * enclosing scope
- */
- if (s != NULL && tao_yypvt[-2].dcval != NULL && tao_yypvt[-0].dlval != NULL) {
- l = new UTL_DecllistActiveIterator(tao_yypvt[-0].dlval);
- for (;!(l->is_done()); l->next()) {
- d = l->item();
- if (d == NULL)
- continue;
- AST_Type *tp = d->compose(tao_yypvt[-2].dcval);
- if (tp == NULL)
- continue;
- a = idl_global->gen()->create_attribute(tao_yypvt[-5].bval, tp, d->name(), p);
- /*
- * Add one attribute to the enclosing scope
- */
- (void) s->fe_add_attribute(a);
- }
- delete l;
- }
- } break;
-case 240:
-# line 1950 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_AttrROSeen);
- tao_yyval.bval = I_TRUE;
- } break;
-case 241:
-# line 1955 "idl.tao_yy"
-{
- tao_yyval.bval = I_FALSE;
- } break;
-case 242:
-# line 1962 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_ExceptSeen);
- } break;
-case 243:
-# line 1966 "idl.tao_yy"
-{
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- UTL_ScopedName *n = new UTL_ScopedName(tao_yypvt[-0].idval, NULL);
- AST_Exception *e = NULL;
- UTL_StrList *p = idl_global->pragmas();
- AST_Decl *v = NULL;
-
- ACE_UNUSED_ARG (v);
-
- idl_global->set_parse_state(IDL_GlobalData::PS_ExceptIDSeen);
- /*
- * Create a node representing an exception and add it to
- * the enclosing scope
- */
- if (s != NULL) {
- e = idl_global->gen()->create_exception(n, p);
- (void) s->fe_add_exception(e);
- }
- /*
- * Push the exception scope on the scope stack
- */
- idl_global->scopes()->push(e);
- } break;
-case 244:
-# line 1990 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_ExceptSqSeen);
- } break;
-case 245:
-# line 1994 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_ExceptBodySeen);
- } break;
-case 246:
-# line 1998 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_ExceptQsSeen);
- /*
- * Done with this exception. Pop its scope from the scope stack
- */
- idl_global->scopes()->pop();
- } break;
-case 247:
-# line 2010 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpTypeSeen);
- } break;
-case 248:
-# line 2014 "idl.tao_yy"
-{
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- UTL_ScopedName *n =
- new UTL_ScopedName(new Identifier(tao_yypvt[-0].strval, 1, 0, I_FALSE), NULL);
- AST_Operation *o = NULL;
- UTL_StrList *p = idl_global->pragmas();
-
- idl_global->set_parse_state(IDL_GlobalData::PS_OpIDSeen);
- /*
- * Create a node representing an operation on an interface
- * and add it to its enclosing scope
- */
- if (s != NULL && tao_yypvt[-2].dcval != NULL) {
- AST_Type *tp = AST_Type::narrow_from_decl(tao_yypvt[-2].dcval);
- if (tp == NULL) {
- idl_global->err()->not_a_type(tao_yypvt[-2].dcval);
- } else if (tp->node_type() == AST_Decl::NT_except) {
- idl_global->err()->not_a_type(tao_yypvt[-2].dcval);
- } else {
- o = idl_global->gen()->create_operation(tp, tao_yypvt[-3].ofval, n, p);
- (void) s->fe_add_operation(o);
- }
- }
- /*
- * Push the operation scope onto the scopes stack
- */
- idl_global->scopes()->push(o);
- } break;
-case 249:
-# line 2043 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpParsCompleted);
- } break;
-case 250:
-# line 2047 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseCompleted);
- } break;
-case 251:
-# line 2051 "idl.tao_yy"
-{
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- AST_Operation *o = NULL;
-
- idl_global->set_parse_state(IDL_GlobalData::PS_OpCompleted);
- /*
- * Add exceptions and context to the operation
- */
- if (s != NULL && s->scope_node_type() == AST_Decl::NT_op) {
- o = AST_Operation::narrow_from_scope(s);
-
- if (tao_yypvt[-2].nlval != NULL && o != NULL)
- (void) o->fe_add_exceptions(tao_yypvt[-2].nlval);
- if (tao_yypvt[-0].slval != NULL)
- (void) o->fe_add_context(tao_yypvt[-0].slval);
- }
- /*
- * Done with this operation. Pop its scope from the scopes stack
- */
- idl_global->scopes()->pop();
- } break;
-case 252:
-# line 2076 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpAttrSeen);
- tao_yyval.ofval = AST_Operation::OP_oneway;
- } break;
-case 253:
-# line 2081 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpAttrSeen);
- tao_yyval.ofval = AST_Operation::OP_idempotent;
- } break;
-case 254:
-# line 2086 "idl.tao_yy"
-{
- tao_yyval.ofval = AST_Operation::OP_noflags;
- } break;
-case 256:
-# line 2094 "idl.tao_yy"
-{
- tao_yyval.dcval =
- idl_global->scopes()->bottom()
- ->lookup_primitive_type(AST_Expression::EV_void);
- } break;
-case 257:
-# line 2103 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpSqSeen);
- } break;
-case 258:
-# line 2107 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpQsSeen);
- } break;
-case 259:
-# line 2111 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpSqSeen);
- } break;
-case 260:
-# line 2116 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpQsSeen);
- } break;
-case 262:
-# line 2126 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpParCommaSeen);
- } break;
-case 265:
-# line 2135 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpParDirSeen);
- } break;
-case 266:
-# line 2139 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpParTypeSeen);
- } break;
-case 267:
-# line 2143 "idl.tao_yy"
-{
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- AST_Argument *a = NULL;
- UTL_StrList *p = idl_global->pragmas();
-
- idl_global->set_parse_state(IDL_GlobalData::PS_OpParDeclSeen);
- /*
- * Create a node representing an argument to an operation
- * Add it to the enclosing scope (the operation scope)
- */
- if (tao_yypvt[-2].dcval != NULL && tao_yypvt[-0].deval != NULL && s != NULL) {
- AST_Type *tp = tao_yypvt[-0].deval->compose(tao_yypvt[-2].dcval);
- if (tp != NULL) {
- a = idl_global->gen()->create_argument(tao_yypvt[-4].dival, tp, tao_yypvt[-0].deval->name(), p);
- (void) s->fe_add_argument(a);
- }
- }
- } break;
-case 268:
-# line 2165 "idl.tao_yy"
-{
- tao_yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(tao_yypvt[-0].etval);
- } break;
-case 270:
-# line 2170 "idl.tao_yy"
-{
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- AST_Decl *d = NULL;
-
- if (s != NULL)
- d = s->lookup_by_name(tao_yypvt[-0].idlist, I_TRUE);
- if (d == NULL)
- idl_global->err()->lookup_error(tao_yypvt[-0].idlist);
- tao_yyval.dcval = d;
- } break;
-case 271:
-# line 2184 "idl.tao_yy"
-{
- tao_yyval.dival = AST_Argument::dir_IN;
- } break;
-case 272:
-# line 2188 "idl.tao_yy"
-{
- tao_yyval.dival = AST_Argument::dir_OUT;
- } break;
-case 273:
-# line 2192 "idl.tao_yy"
-{
- tao_yyval.dival = AST_Argument::dir_INOUT;
- } break;
-case 274:
-# line 2199 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseSeen);
- } break;
-case 275:
-# line 2203 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseSqSeen);
- } break;
-case 276:
-# line 2208 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseQsSeen);
- tao_yyval.nlval = tao_yypvt[-1].nlval;
- } break;
-case 277:
-# line 2213 "idl.tao_yy"
-{
- tao_yyval.nlval = NULL;
- } break;
-case 278:
-# line 2220 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpContextSeen);
- } break;
-case 279:
-# line 2224 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpContextSqSeen);
- } break;
-case 280:
-# line 2229 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpContextQsSeen);
- tao_yyval.slval = tao_yypvt[-1].slval;
- } break;
-case 281:
-# line 2234 "idl.tao_yy"
-{
- tao_yyval.slval = NULL;
- } break;
-case 282:
-# line 2241 "idl.tao_yy"
-{
- tao_yyval.slval = new UTL_StrList(tao_yypvt[-1].sval, tao_yypvt[-0].slval);
- } break;
-case 283:
-# line 2249 "idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpContextCommaSeen);
- } break;
-case 284:
-# line 2253 "idl.tao_yy"
-{
- if (tao_yypvt[-3].slval == NULL)
- tao_yyval.slval = new UTL_StrList(tao_yypvt[-0].sval, NULL);
- else {
- tao_yypvt[-3].slval->nconc(new UTL_StrList(tao_yypvt[-0].sval, NULL));
- tao_yyval.slval = tao_yypvt[-3].slval;
- }
- } break;
-case 285:
-# line 2262 "idl.tao_yy"
-{
- tao_yyval.slval = NULL;
- } break;
-# line 532 "/usr/ccs/bin/yaccpar"
- }
- goto tao_yystack; /* reset registers in driver code */
-}
diff --git a/TAO/TAO_IDL/fe/y.tab.cpp.diff b/TAO/TAO_IDL/fe/y.tab.cpp.diff
deleted file mode 100644
index 8f29bff9c8b..00000000000
--- a/TAO/TAO_IDL/fe/y.tab.cpp.diff
+++ /dev/null
@@ -1,127 +0,0 @@
---- y.tab.cpp.orig Fri Jan 23 11:09:05 1998
-+++ y.tab.cpp Fri Jan 23 11:08:33 1998
-@@ -97,13 +97,13 @@
-
- #ifdef __STDC__
- #include <stdlib.h>
--#include <string.h>
-+// #include <string.h>
- #else
- #include <malloc.h>
- #include <memory.h>
- #endif
-
--#include <values.h>
-+// #include <values.h>
-
- #ifdef __cplusplus
-
-@@ -494,52 +494,52 @@
-
- yytoktype yytoks[] =
- {
-- "IDENTIFIER", 257,
-- "IDL_CONST", 258,
-- "IDL_MODULE", 259,
-- "IDL_INTERFACE", 260,
-- "IDL_TYPEDEF", 261,
-- "IDL_LONG", 262,
-- "IDL_SHORT", 263,
-- "IDL_UNSIGNED", 264,
-- "IDL_DOUBLE", 265,
-- "IDL_FLOAT", 266,
-- "IDL_CHAR", 267,
-- "IDL_WCHAR", 268,
-- "IDL_OCTET", 269,
-- "IDL_BOOLEAN", 270,
-- "IDL_ANY", 271,
-- "IDL_STRUCT", 272,
-- "IDL_UNION", 273,
-- "IDL_SWITCH", 274,
-- "IDL_ENUM", 275,
-- "IDL_SEQUENCE", 276,
-- "IDL_STRING", 277,
-- "IDL_WSTRING", 278,
-- "IDL_EXCEPTION", 279,
-- "IDL_CASE", 280,
-- "IDL_DEFAULT", 281,
-- "IDL_READONLY", 282,
-- "IDL_ATTRIBUTE", 283,
-- "IDL_ONEWAY", 284,
-- "IDL_IDEMPOTENT", 285,
-- "IDL_VOID", 286,
-- "IDL_IN", 287,
-- "IDL_OUT", 288,
-- "IDL_INOUT", 289,
-- "IDL_RAISES", 290,
-- "IDL_CONTEXT", 291,
-- "IDL_NATIVE", 292,
-- "IDL_INTEGER_LITERAL", 293,
-- "IDL_STRING_LITERAL", 294,
-- "IDL_CHARACTER_LITERAL", 295,
-- "IDL_FLOATING_PT_LITERAL", 296,
-- "IDL_TRUETOK", 297,
-- "IDL_FALSETOK", 298,
-- "IDL_SCOPE_DELIMITOR", 299,
-- "IDL_LEFT_SHIFT", 300,
-- "IDL_RIGHT_SHIFT", 301,
-- "-unknown-", -1 /* ends search */
-+ {"IDENTIFIER", 257},
-+ {"IDL_CONST", 258},
-+ {"IDL_MODULE", 259},
-+ {"IDL_INTERFACE", 260},
-+ {"IDL_TYPEDEF", 261},
-+ {"IDL_LONG", 262},
-+ {"IDL_SHORT", 263},
-+ {"IDL_UNSIGNED", 264},
-+ {"IDL_DOUBLE", 265},
-+ {"IDL_FLOAT", 266},
-+ {"IDL_CHAR", 267},
-+ {"IDL_WCHAR", 268},
-+ {"IDL_OCTET", 269},
-+ {"IDL_BOOLEAN", 270},
-+ {"IDL_ANY", 271},
-+ {"IDL_STRUCT", 272},
-+ {"IDL_UNION", 273},
-+ {"IDL_SWITCH", 274},
-+ {"IDL_ENUM", 275},
-+ {"IDL_SEQUENCE", 276},
-+ {"IDL_STRING", 277},
-+ {"IDL_WSTRING", 278},
-+ {"IDL_EXCEPTION", 279},
-+ {"IDL_CASE", 280},
-+ {"IDL_DEFAULT", 281},
-+ {"IDL_READONLY", 282},
-+ {"IDL_ATTRIBUTE", 283},
-+ {"IDL_ONEWAY", 284},
-+ {"IDL_IDEMPOTENT", 285},
-+ {"IDL_VOID", 286},
-+ {"IDL_IN", 287},
-+ {"IDL_OUT", 288},
-+ {"IDL_INOUT", 289},
-+ {"IDL_RAISES", 290},
-+ {"IDL_CONTEXT", 291},
-+ {"IDL_NATIVE", 292},
-+ {"IDL_INTEGER_LITERAL", 293},
-+ {"IDL_STRING_LITERAL", 294},
-+ {"IDL_CHARACTER_LITERAL", 295},
-+ {"IDL_FLOATING_PT_LITERAL", 296},
-+ {"IDL_TRUETOK", 297},
-+ {"IDL_FALSETOK", 298},
-+ {"IDL_SCOPE_DELIMITOR", 299},
-+ {"IDL_LEFT_SHIFT", 300},
-+ {"IDL_RIGHT_SHIFT", 301},
-+ {"-unknown-", -1} /* ends search */
- };
-
- char * yyreds[] =
-@@ -837,7 +837,9 @@
- * Copyright (c) 1993 by Sun Microsystems, Inc.
- */
-
-+#if !defined (ACE_WIN32)
- #pragma ident "@(#)yaccpar 6.12 93/06/07 SMI"
-+#endif /* ACE_WIN32 */
-
- /*
- ** Skeleton parser driver for yacc output
diff --git a/TAO/TAO_IDL/fe/y.tab.h b/TAO/TAO_IDL/fe/y.tab.h
deleted file mode 100644
index 88a7834e196..00000000000
--- a/TAO/TAO_IDL/fe/y.tab.h
+++ /dev/null
@@ -1,77 +0,0 @@
-// $Id$
-typedef union
-#ifdef __cplusplus
- TAO_YYSTYPE
-#endif
- {
- AST_Decl *dcval; /* Decl value */
- UTL_StrList *slval; /* String list */
- UTL_NameList *nlval; /* Name list */
- UTL_ExprList *elval; /* Expression list */
- UTL_LabelList *llval; /* Label list */
- UTL_DeclList *dlval; /* Declaration list */
- FE_InterfaceHeader *ihval; /* Interface header */
- AST_Expression *exval; /* Expression value */
- AST_UnionLabel *ulval; /* Union label */
- AST_Field *ffval; /* Field value */
- AST_Expression::ExprType etval; /* Expression type */
- AST_Argument::Direction dival; /* Argument direction */
- AST_Operation::Flags ofval; /* Operation flags */
- FE_Declarator *deval; /* Declarator value */
- idl_bool bval; /* Boolean value */
- long ival; /* Long value */
- double dval; /* Double value */
- float fval; /* Float value */
- char cval; /* Char value */
-
- String *sval; /* String value */
- char *strval; /* char * value */
- Identifier *idval; /* Identifier */
- UTL_IdList *idlist; /* Identifier list */
-} TAO_YYSTYPE;
-extern TAO_YYSTYPE tao_yylval;
-# define IDENTIFIER 257
-# define IDL_CONST 258
-# define IDL_MODULE 259
-# define IDL_INTERFACE 260
-# define IDL_TYPEDEF 261
-# define IDL_LONG 262
-# define IDL_SHORT 263
-# define IDL_UNSIGNED 264
-# define IDL_DOUBLE 265
-# define IDL_FLOAT 266
-# define IDL_CHAR 267
-# define IDL_WCHAR 268
-# define IDL_OCTET 269
-# define IDL_BOOLEAN 270
-# define IDL_ANY 271
-# define IDL_STRUCT 272
-# define IDL_UNION 273
-# define IDL_SWITCH 274
-# define IDL_ENUM 275
-# define IDL_SEQUENCE 276
-# define IDL_STRING 277
-# define IDL_WSTRING 278
-# define IDL_EXCEPTION 279
-# define IDL_CASE 280
-# define IDL_DEFAULT 281
-# define IDL_READONLY 282
-# define IDL_ATTRIBUTE 283
-# define IDL_ONEWAY 284
-# define IDL_IDEMPOTENT 285
-# define IDL_VOID 286
-# define IDL_IN 287
-# define IDL_OUT 288
-# define IDL_INOUT 289
-# define IDL_RAISES 290
-# define IDL_CONTEXT 291
-# define IDL_NATIVE 292
-# define IDL_INTEGER_LITERAL 293
-# define IDL_STRING_LITERAL 294
-# define IDL_CHARACTER_LITERAL 295
-# define IDL_FLOATING_PT_LITERAL 296
-# define IDL_TRUETOK 297
-# define IDL_FALSETOK 298
-# define IDL_SCOPE_DELIMITOR 299
-# define IDL_LEFT_SHIFT 300
-# define IDL_RIGHT_SHIFT 301