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_init.cpp57
-rw-r--r--TAO/TAO_IDL/fe/fe_interface_header.cpp273
-rw-r--r--TAO/TAO_IDL/fe/idl.ll23
-rw-r--r--TAO/TAO_IDL/fe/idl.yy355
-rw-r--r--TAO/TAO_IDL/fe/lex.yy.cpp2731
-rw-r--r--TAO/TAO_IDL/fe/y.tab.cpp4380
-rw-r--r--TAO/TAO_IDL/fe/y.tab.h74
7 files changed, 4366 insertions, 3527 deletions
diff --git a/TAO/TAO_IDL/fe/fe_init.cpp b/TAO/TAO_IDL/fe/fe_init.cpp
index 6ede75fca0b..32b82f1731e 100644
--- a/TAO/TAO_IDL/fe/fe_init.cpp
+++ b/TAO/TAO_IDL/fe/fe_init.cpp
@@ -187,6 +187,17 @@ fe_populate(AST_Module *m)
NULL);
m->fe_add_predefined_type(pdt);
+# ifdef IDL_HAS_VALUETYPE
+ if (idl_global->obv_support ())
+ {
+ pdt = idl_global->gen()
+ ->create_predefined_type(AST_PredefinedType::PT_pseudo,
+ create_scoped_name("ValueBase"),
+ NULL);
+ m->fe_add_predefined_type(pdt);
+ }
+# endif /* IDL_HAS_VALUETYPE */
+
/*
* Add these to make all keywords protected even in different spellings
*/
@@ -316,6 +327,52 @@ fe_populate(AST_Module *m)
create_scoped_name("FALSE"),
NULL);
m->fe_add_predefined_type(pdt);
+
+# ifdef IDL_HAS_VALUETYPE
+ if (idl_global->obv_support ())
+ {
+ pdt = idl_global->gen()
+ ->create_predefined_type(AST_PredefinedType::PT_pseudo,
+ create_scoped_name("abstract"),
+ NULL);
+ m->fe_add_predefined_type(pdt);
+ pdt = idl_global->gen()
+ ->create_predefined_type(AST_PredefinedType::PT_pseudo,
+ create_scoped_name("custom"),
+ NULL);
+ m->fe_add_predefined_type(pdt);
+ pdt = idl_global->gen()
+ ->create_predefined_type(AST_PredefinedType::PT_pseudo,
+ create_scoped_name("init"),
+ NULL);
+ m->fe_add_predefined_type(pdt);
+ pdt = idl_global->gen()
+ ->create_predefined_type(AST_PredefinedType::PT_pseudo,
+ create_scoped_name("private"),
+ NULL);
+ m->fe_add_predefined_type(pdt);
+ pdt = idl_global->gen()
+ ->create_predefined_type(AST_PredefinedType::PT_pseudo,
+ create_scoped_name("public"),
+ NULL);
+ m->fe_add_predefined_type(pdt);
+ pdt = idl_global->gen()
+ ->create_predefined_type(AST_PredefinedType::PT_pseudo,
+ create_scoped_name("supports"),
+ NULL);
+ m->fe_add_predefined_type(pdt);
+ pdt = idl_global->gen()
+ ->create_predefined_type(AST_PredefinedType::PT_pseudo,
+ create_scoped_name("truncatable"),
+ NULL);
+ m->fe_add_predefined_type(pdt);
+ pdt = idl_global->gen()
+ ->create_predefined_type(AST_PredefinedType::PT_pseudo,
+ create_scoped_name("valuetype"),
+ NULL);
+ m->fe_add_predefined_type(pdt);
+ }
+# endif /* IDL_HAS_VALUETYPE */
}
/*
diff --git a/TAO/TAO_IDL/fe/fe_interface_header.cpp b/TAO/TAO_IDL/fe/fe_interface_header.cpp
index e1b70fb99aa..1922b537a6f 100644
--- a/TAO/TAO_IDL/fe/fe_interface_header.cpp
+++ b/TAO/TAO_IDL/fe/fe_interface_header.cpp
@@ -53,8 +53,8 @@ Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR
Sun, Sun Microsystems and the Sun logo are trademarks or registered
trademarks of Sun Microsystems, Inc.
-SunSoft, Inc.
-2550 Garcia Avenue
+SunSoft, Inc.
+2550 Garcia Avenue
Mountain View, California 94043
NOTE:
@@ -72,10 +72,10 @@ trademarks or registered trademarks of Sun Microsystems, Inc.
* AST_Interface node used to represent this interface is created.
*/
-#include "idl.h"
-#include "idl_extern.h"
+#include "idl.h"
+#include "idl_extern.h"
-#include "fe_private.h"
+#include "fe_private.h"
ACE_RCSID(fe, fe_interface_header, "$Id$")
@@ -83,10 +83,13 @@ 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)
+FE_InterfaceHeader::FE_InterfaceHeader(UTL_ScopedName *n, UTL_NameList *nl,
+ UTL_NameList *supports,
+ idl_bool compile_now)
+ : pd_interface_name(n)
{
- compile_inheritance(nl);
+ if (compile_now)
+ compile_inheritance (nl, supports);
}
/*
@@ -95,16 +98,16 @@ FE_InterfaceHeader::FE_InterfaceHeader(UTL_ScopedName *n, UTL_NameList *nl)
// Compute flattened, non-repeating list of inherited interfaces
-#undef INCREMENT
-#define INCREMENT 512
+#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;
+static long iallocated = 0;
+static long iused = 0;
/*
* Add an interface to an inheritance spec
@@ -112,8 +115,8 @@ static long iused = 0;
static void
add_inheritance(AST_Interface *i)
{
- long k;
- AST_Interface **oiseen;
+ long k;
+ AST_Interface **oiseen;
/*
* Make sure there's space for one more
@@ -127,7 +130,7 @@ add_inheritance(AST_Interface *i)
iallocated += INCREMENT;
iseen = new AST_Interface *[iallocated];
for (k = 0; k < iused; k++)
- iseen[k] = oiseen[k];
+ iseen[k] = oiseen[k];
delete oiseen;
}
}
@@ -144,7 +147,7 @@ add_inheritance(AST_Interface *i)
static long
already_seen(AST_Interface *ip)
{
- long i;
+ long i;
for (i = 0; i < iused; i++) {
if (iseen[i] == ip)
@@ -179,71 +182,104 @@ FE_InterfaceHeader::compile_one_inheritance(AST_Interface *i)
* Compute the list of top-level interfaces this one inherits from
*/
void
-FE_InterfaceHeader::compile_inheritance(UTL_NameList *nl)
+FE_InterfaceHeader::compile_inheritance(UTL_NameList *ifaces,
+ UTL_NameList *supports)
{
- UTL_NamelistActiveIterator *l = new UTL_NamelistActiveIterator(nl);
- AST_Decl *d;
- AST_Interface *i;
- long k;
+ UTL_NamelistActiveIterator *l;
+ AST_Decl *d;
+ AST_Interface *i;
+ long k;
+ UTL_NameList *nl;
+ int loops;
+ long ichecked = 0;
+ idl_bool inh_err = 0;
+ idl_bool in_supports = 0;
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;
+ nl = ifaces;
+ // loop twice if nl and supports are nonempty
+ for (loops = 0; loops < 2; ++loops) {
+ if (nl != NULL) {
+ l = new UTL_NamelistActiveIterator(nl);
+ 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 appropriate 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)
+ i = AST_Interface::narrow_from_decl(d);
+ else
+ i = NULL;
+ if (i != NULL)
+ {
+ if (in_supports)
+ {
+ inh_err = ! this->check_supports (i);
+ }
+ else
+ {
+ if (ichecked == 0)
+ inh_err = ! this->check_first (i);
+ else
+ inh_err = ! this->check_further (i);
+ }
+ }
+ else
+ {
+ inh_err = 1;
+ }
+ if (inh_err)
+ {
+ idl_global->err()->inheritance_error(pd_interface_name, d);
+ return; //%! really ? inh_err=0; and test the remaining...?
+ }
+ /*
+ * 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
+ */
+ ++ ichecked;
+ l->next();
+ }
+ delete l;
}
- /*
- * 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();
+ in_supports = 1;
+ nl = supports;
}
- delete l;
/*
* OK, install in interface header
*/
@@ -253,6 +289,35 @@ FE_InterfaceHeader::compile_inheritance(UTL_NameList *nl)
pd_n_inherits = iused;
}
+// check_ methods called from compile_inheritance()
+// overridden in derived classes
+idl_bool
+FE_InterfaceHeader::check_first (AST_Interface *i)
+{
+ // nothing special for the first
+ return this->check_further (i);
+}
+
+idl_bool
+FE_InterfaceHeader::check_further (AST_Interface *i)
+{
+ if (i && ! i->is_valuetype())
+ {
+ return 1;
+ }
+ else
+ {
+ return 0;
+ }
+}
+
+idl_bool
+FE_InterfaceHeader::check_supports (AST_Interface *i)
+{
+ return 0;
+}
+
+
/*
* Public operations
*/
@@ -282,3 +347,67 @@ FE_InterfaceHeader::n_inherits()
{
return pd_n_inherits;
}
+
+
+// #ifdef IDL_HAS_VALUETYPE
+
+// FE_obv_header
+
+FE_obv_header::FE_obv_header (UTL_ScopedName *n, UTL_NameList *nl, UTL_NameList *supports)
+ : FE_InterfaceHeader (n, nl, supports,0),
+ truncatable_ (0),
+ n_concrete_ (0)
+{
+ compile_inheritance (nl, supports);
+}
+
+// check_ methods called from compile_inheritance()
+idl_bool
+FE_obv_header::check_first (AST_Interface *i)
+{
+ if (i && i->is_valuetype())
+ {
+ if (! i->is_abstract_valuetype())
+ ++ n_concrete_;
+ return 1;
+ }
+ else
+ {
+ return 0;
+ }
+}
+
+idl_bool
+FE_obv_header::check_further (AST_Interface *i)
+{
+ if (i && i->is_valuetype() && i->is_abstract_valuetype())
+ {
+ return 1;
+ }
+ else
+ {
+ return 0;
+ }
+}
+
+idl_bool
+FE_obv_header::check_supports (AST_Interface *i)
+{
+ if (i && ! i->is_valuetype())
+ {
+ return 1;
+ }
+ else
+ {
+ return 0;
+ }
+}
+
+
+long
+FE_obv_header::n_concrete ()
+{
+ return n_concrete_;
+}
+
+// #endif /* IDL_HAS_VALUETYPE */
diff --git a/TAO/TAO_IDL/fe/idl.ll b/TAO/TAO_IDL/fe/idl.ll
index 2b976240b61..f6c597e405d 100644
--- a/TAO/TAO_IDL/fe/idl.ll
+++ b/TAO/TAO_IDL/fe/idl.ll
@@ -1,6 +1,6 @@
%{
-/*
+/* $Id$
COPYRIGHT
@@ -93,6 +93,19 @@ inline char *__yytext()
#else
#define ace_yytext yytext
#endif /* 0 */
+
+static int scan_obv_token (int token)
+{
+#ifdef IDL_HAS_VALUETYPE
+ if (idl_global->obv_support ())
+ {
+ return token;
+ }
+#endif /* IDL_HAS_VALUETYPE */
+ yylval.strval = ACE_OS::strdup (ace_yytext);
+ return IDENTIFIER;
+}
+
%}
/* SO we don't choke on files that use \r\n */
@@ -133,6 +146,14 @@ boolean return IDL_BOOLEAN;
octet return IDL_OCTET;
void return IDL_VOID;
native return IDL_NATIVE;
+abstract return scan_obv_token (IDL_ABSTRACT);
+custom return scan_obv_token (IDL_CUSTOM);
+init return scan_obv_token (IDL_INIT);
+private return scan_obv_token (IDL_PRIVATE);
+public return scan_obv_token (IDL_PUBLIC);
+supports return scan_obv_token (IDL_SUPPORTS);
+truncatable return scan_obv_token (IDL_TRUNCATABLE);
+valuetype return scan_obv_token (IDL_VALUETYPE);
TRUE return IDL_TRUETOK;
FALSE return IDL_FALSETOK;
diff --git a/TAO/TAO_IDL/fe/idl.yy b/TAO/TAO_IDL/fe/idl.yy
index 45d2762f2b8..94bddc33d33 100644
--- a/TAO/TAO_IDL/fe/idl.yy
+++ b/TAO/TAO_IDL/fe/idl.yy
@@ -1,4 +1,4 @@
-
+/* $Id$ */
/*
@@ -102,9 +102,11 @@ extern int yyleng;
UTL_LabelList *llval; /* Label list */
UTL_DeclList *dlval; /* Declaration list */
FE_InterfaceHeader *ihval; /* Interface header */
+ FE_obv_header *vhval; /* Valuetype header */
AST_Expression *exval; /* Expression value */
AST_UnionLabel *ulval; /* Union label */
AST_Field *ffval; /* Field value */
+ AST_Field::Visibility vival; /* N/A, pub or priv */
AST_Expression::ExprType etval; /* Expression type */
AST_Argument::Direction dival; /* Argument direction */
AST_Operation::Flags ofval; /* Operation flags */
@@ -162,6 +164,15 @@ extern int yyleng;
%token IDL_RAISES
%token IDL_CONTEXT
%token IDL_NATIVE
+ /* OBV tokens see OMG ptc/98-10-04 3.2.4 */
+%token IDL_ABSTRACT
+%token IDL_CUSTOM
+%token IDL_INIT
+%token IDL_PRIVATE
+%token IDL_PUBLIC
+%token IDL_SUPPORTS
+%token IDL_TRUNCATABLE
+%token IDL_VALUETYPE
%token <ival> IDL_INTEGER_LITERAL
%token <sval> IDL_STRING_LITERAL
@@ -189,7 +200,7 @@ extern int yyleng;
%type <slval> string_literals
%type <nlval> at_least_one_scoped_name scoped_names inheritance_spec
-%type <nlval> opt_raises
+%type <nlval> opt_raises supports_spec
%type <elval> at_least_one_array_dim array_dims
@@ -200,6 +211,8 @@ extern int yyleng;
%type <ihval> interface_header
+%type <vhval> value_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
@@ -218,9 +231,9 @@ extern int yyleng;
%type <deval> declarator simple_declarator complex_declarator
-%type <bval> opt_readonly
+%type <bval> opt_readonly, opt_truncatable
-%type <idval> interface_decl id
+%type <idval> interface_decl value_decl id
%type <ival> type_dcl
%%
@@ -276,6 +289,14 @@ definition
{
idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
}
+ | value_def
+ {
+ idl_global->set_parse_state(IDL_GlobalData::PS_ValuetypeDeclSeen);
+ }
+ ';'
+ {
+ idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
+ }
| error
{
idl_global->err()->syntax_error(idl_global->parse_state());
@@ -348,9 +369,6 @@ interface :
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);
/*
@@ -361,61 +379,7 @@ interface :
$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;
- }
- }
- }
- }
+ AST_Interface::fwd_redefinition_helper (i,s,p);
/*
* Add the interface to its definition scope
*/
@@ -491,6 +455,250 @@ inheritance_spec
}
;
+value_def
+ : valuetype
+ | value_abs_decl
+ | value_forward_decl
+ | value_box_decl
+ ;
+
+valuetype
+ : IDL_CUSTOM value_concrete_decl
+ {
+ cerr << "error in " << idl_global->filename()->get_string()
+ << " line " << idl_global->lineno() << ":\n" ;
+ cerr << "Sorry, I (TAO_IDL) can't handle custom yet\n";
+ /* set custom (if not truncatable) */
+ }
+ | value_concrete_decl
+ ;
+
+value_concrete_decl :
+ value_header
+ {
+ UTL_Scope *s = idl_global->scopes()->top_non_null();
+ AST_Interface *i = NULL;
+ UTL_StrList *p = idl_global->pragmas();
+
+ if (s != NULL && $1 != NULL) {
+ i = idl_global->gen()->create_valuetype($1->interface_name(),
+ $1->inherits(),
+ $1->n_inherits(),
+ p);
+ AST_Interface::fwd_redefinition_helper (i,s,p);
+ /*
+ * Add the valuetype 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);
+ }
+ value_elements
+ {
+ 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
+ */
+ UTL_Scope* s = idl_global->scopes()->top();
+ AST_Interface* m = AST_Interface::narrow_from_scope (s);
+ UTL_StrList *p = m->pragmas ();
+ if (p != 0) p = (UTL_StrList*)p->copy ();
+ idl_global->set_pragmas (p);
+ idl_global->scopes()->pop();
+ }
+ ;
+
+value_abs_decl :
+ IDL_ABSTRACT
+ value_header
+ {
+ UTL_Scope *s = idl_global->scopes()->top_non_null();
+ AST_Interface *i = NULL;
+ UTL_StrList *p = idl_global->pragmas();
+
+ if (s != NULL && $2 != NULL) {
+
+ if ($2->n_concrete() > 0) {
+ idl_global->err()->abstract_inheritance_error ($2->interface_name ());
+ }
+
+ i = idl_global->gen()->create_valuetype($2->interface_name(),
+ $2->inherits(),
+ $2->n_inherits(),
+ p);
+ i->set_abstract_valuetype ();
+ AST_Interface::fwd_redefinition_helper (i,s,p);
+ /*
+ * Add the valuetype 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
+ */
+ UTL_Scope* s = idl_global->scopes()->top();
+ AST_Interface* m = AST_Interface::narrow_from_scope (s);
+ UTL_StrList *p = m->pragmas ();
+ if (p != 0) p = (UTL_StrList*)p->copy ();
+ idl_global->set_pragmas (p);
+ idl_global->scopes()->pop();
+ }
+
+ ;
+
+value_header :
+ value_decl
+ opt_truncatable
+ inheritance_spec
+ supports_spec
+ {
+ $$ = new FE_obv_header (new UTL_ScopedName ($1, NULL), $3, $4);
+ }
+ ;
+
+value_decl
+ : IDL_VALUETYPE
+ {
+ idl_global->set_parse_state(IDL_GlobalData::PS_ValuetypeSeen);
+ }
+ id
+ {
+ idl_global->set_parse_state(IDL_GlobalData::PS_ValuetypeIDSeen);
+ $$ = $3;
+ }
+ ;
+
+opt_truncatable :
+ IDL_TRUNCATABLE
+ {
+ cerr << "warning in " << idl_global->filename()->get_string()
+ << " line " << idl_global->lineno() << ":\n" ;
+ cerr << "truncatable modifier not supported and is ignored\n";
+ $$ = I_FALSE;
+ /* $$ = I_TRUE; */
+ }
+ | /* EMPTY */
+ {
+ $$ = I_FALSE;
+ }
+ ;
+
+supports_spec :
+ IDL_SUPPORTS
+ scoped_name
+ {
+ $$ = new UTL_NameList($2, NULL);
+ }
+ | /* empty */
+ {
+ $$ = NULL;
+ }
+ ;
+
+value_forward_decl :
+ IDL_ABSTRACT
+ value_decl
+ {
+ UTL_Scope *s = idl_global->scopes()->top_non_null();
+ UTL_ScopedName *n = new UTL_ScopedName($2, 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
+ * valuetype. Store it in the enclosing scope
+ */
+ if (s != NULL) {
+ f = idl_global->gen()->create_valuetype_fwd(n, p);
+ // if ($1)
+ f->set_abstract_valuetype ();
+ (void) s->fe_add_interface_fwd(f);
+ }
+ }
+ |
+ value_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
+ * valuetype. Store it in the enclosing scope
+ */
+ if (s != NULL) {
+ f = idl_global->gen()->create_valuetype_fwd(n, p);
+ (void) s->fe_add_interface_fwd(f);
+ }
+ }
+ ;
+
+
+value_box_decl
+ : value_decl type_spec /* in this order %!?*/
+ {
+ cerr << "error in " << idl_global->filename()->get_string()
+ << " line " << idl_global->lineno() << ":\n" ;
+ cerr << "Sorry, I (TAO_IDL) can't handle boxes yet\n";
+ }
+ ;
+
+value_elements
+ : value_elements value_element
+ | /* EMPTY */
+ ;
+
+value_element
+ : state_member
+ | export
+ | init_decl
+ ;
+
+state_member
+ : IDL_PUBLIC
+ {
+ /* is $0 to member_i */
+ $<vival>$ = AST_Field::vis_PUBLIC;
+ }
+ member_i
+ | IDL_PRIVATE
+ {
+ /* is $0 to member_i */
+ $<vival>$ = AST_Field::vis_PRIVATE;
+ }
+ member_i
+ ;
+
exports
: exports export
| /* EMPTY */
@@ -1219,7 +1427,15 @@ members
| /* EMPTY */
;
-member :
+member :
+ {
+ /* is $0 to member_i */
+ $<vival>$ = AST_Field::vis_NA;
+ }
+ member_i
+ ;
+
+member_i:
type_spec
{
idl_global->set_parse_state(IDL_GlobalData::PS_MemberTypeSeen);
@@ -1255,7 +1471,8 @@ member :
AST_Type *tp = d->compose($1);
if (tp == NULL)
continue;
- f = idl_global->gen()->create_field(tp, d->name(), p);
+ /* $0 denotes Visibility, must be on yacc reduction stack */
+ f = idl_global->gen()->create_field(tp, d->name(), p, $<vival>0);
(void) s->fe_add_field(f);
}
delete l;
@@ -2124,6 +2341,16 @@ op_type_spec
}
;
+init_decl
+ : IDL_INIT
+ {
+ cerr << "error in " << idl_global->filename()->get_string()
+ << " line " << idl_global->lineno() << ":\n" ;
+ cerr << "Sorry, I (TAO_IDL) can't handle init yet\n";
+ }
+ ;
+
+
parameter_list
: '('
{
diff --git a/TAO/TAO_IDL/fe/lex.yy.cpp b/TAO/TAO_IDL/fe/lex.yy.cpp
index ff87610fa03..868409f6c93 100644
--- a/TAO/TAO_IDL/fe/lex.yy.cpp
+++ b/TAO/TAO_IDL/fe/lex.yy.cpp
@@ -28,15 +28,15 @@
/* The "const" storage-class-modifier is valid. */
#define TAO_YY_USE_CONST
-#else /* ! __cplusplus */
+#else /* ! __cplusplus */
#if __STDC__
#define TAO_YY_USE_PROTOS
#define TAO_YY_USE_CONST
-#endif /* __STDC__ */
-#endif /* ! __cplusplus */
+#endif /* __STDC__ */
+#endif /* ! __cplusplus */
#ifdef __TURBOC__
#pragma warn -rch
@@ -105,10 +105,10 @@ extern FILE *tao_yyin, *tao_yyout;
* 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();
+ * 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
@@ -118,15 +118,15 @@ extern FILE *tao_yyin, *tao_yyout;
/* 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_RESTORE_TAO_YY_MORE_OFFSET \
- 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 )
+ do \
+ { \
+ /* Undo effects of setting up tao_yytext. */ \
+ *tao_yy_cp = tao_yy_hold_char; \
+ TAO_YY_RESTORE_TAO_YY_MORE_OFFSET \
+ 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 )
@@ -138,61 +138,61 @@ typedef unsigned int tao_yy_size_t;
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.
- */
- tao_yy_size_t tao_yy_buf_size;
-
- /* Number of characters read into tao_yy_ch_buf, not including EOB
- * characters.
- */
- int tao_yy_n_chars;
-
- /* Whether we "own" the buffer - i.e., we know we created it,
- * and can realloc() it to grow it, and should free() it to
- * delete it.
- */
- int tao_yy_is_our_buffer;
-
- /* 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 we're considered to be at the beginning of a line.
- * If so, '^' rules will be active on the next match, otherwise
- * not.
- */
- int tao_yy_at_bol;
-
- /* 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;
+ {
+ 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.
+ */
+ tao_yy_size_t tao_yy_buf_size;
+
+ /* Number of characters read into tao_yy_ch_buf, not including EOB
+ * characters.
+ */
+ int tao_yy_n_chars;
+
+ /* Whether we "own" the buffer - i.e., we know we created it,
+ * and can realloc() it to grow it, and should free() it to
+ * delete it.
+ */
+ int tao_yy_is_our_buffer;
+
+ /* 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 we're considered to be at the beginning of a line.
+ * If so, '^' rules will be active on the next match, otherwise
+ * not.
+ */
+ int tao_yy_at_bol;
+
+ /* 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.
- */
+ /* 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;
@@ -206,15 +206,15 @@ static TAO_YY_BUFFER_STATE tao_yy_current_buffer = 0;
/* 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 */
+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 */
+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 ...
@@ -242,18 +242,18 @@ static void tao_yy_flex_free TAO_YY_PROTO(( void * ));
#define tao_yy_new_buffer tao_yy_create_buffer
#define tao_yy_set_interactive(is_interactive) \
- { \
- if ( ! tao_yy_current_buffer ) \
- tao_yy_current_buffer = tao_yy_create_buffer( tao_yyin, TAO_YY_BUF_SIZE ); \
- tao_yy_current_buffer->tao_yy_is_interactive = is_interactive; \
- }
+ { \
+ if ( ! tao_yy_current_buffer ) \
+ tao_yy_current_buffer = tao_yy_create_buffer( tao_yyin, TAO_YY_BUF_SIZE ); \
+ tao_yy_current_buffer->tao_yy_is_interactive = is_interactive; \
+ }
#define tao_yy_set_bol(at_bol) \
- { \
- if ( ! tao_yy_current_buffer ) \
- tao_yy_current_buffer = tao_yy_create_buffer( tao_yyin, TAO_YY_BUF_SIZE ); \
- tao_yy_current_buffer->tao_yy_at_bol = at_bol; \
- }
+ { \
+ if ( ! tao_yy_current_buffer ) \
+ tao_yy_current_buffer = tao_yy_create_buffer( tao_yyin, TAO_YY_BUF_SIZE ); \
+ tao_yy_current_buffer->tao_yy_at_bol = at_bol; \
+ }
#define TAO_YY_AT_BOL() (tao_yy_current_buffer->tao_yy_at_bol)
@@ -272,50 +272,56 @@ static void tao_yy_fatal_error TAO_YY_PROTO(( tao_yyconst char msg[] ));
* corresponding action - sets up tao_yytext.
*/
#define TAO_YY_DO_BEFORE_ACTION \
- tao_yytext_ptr = tao_yy_bp; \
- tao_yyleng = (int) (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_NUM_RULES 62
-#define TAO_YY_END_OF_BUFFER 63
-static tao_yyconst short int tao_yy_accept[288] =
+ tao_yytext_ptr = tao_yy_bp; \
+ tao_yyleng = (int) (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_NUM_RULES 70
+#define TAO_YY_END_OF_BUFFER 71
+static tao_yyconst short int tao_yy_accept[339] =
{ 0,
- 59, 59, 63, 61, 59, 60, 60, 61, 61, 61,
- 61, 45, 43, 61, 61, 61, 40, 40, 40, 40,
- 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
- 40, 40, 40, 40, 40, 40, 61, 59, 0, 46,
- 0, 0, 45, 43, 58, 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, 55, 0,
- 0, 0, 0, 0, 47, 0, 47, 0, 0, 0,
-
- 57, 57, 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, 50, 48, 0, 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, 49, 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,
- 26, 40, 53, 0, 0, 0, 0, 40, 40, 40,
- 40, 21, 40, 40, 2, 30, 36, 3, 40, 40,
- 13, 11, 17, 40, 40, 40, 52, 0, 0, 0,
- 0, 0, 0, 40, 27, 7, 19, 40, 40, 40,
- 40, 10, 40, 14, 0, 56, 56, 0, 0, 0,
- 40, 40, 40, 4, 15, 24, 0, 0, 0, 5,
- 6, 8, 54, 0, 51, 51, 0
+ 67, 67, 71, 69, 67, 68, 68, 69, 69, 69,
+ 69, 53, 51, 69, 69, 69, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 69, 67, 0,
+ 54, 0, 0, 53, 51, 66, 0, 49, 53, 0,
+ 0, 0, 51, 47, 45, 46, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 42, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 0, 63, 0, 0, 0,
+
+ 0, 0, 55, 0, 55, 0, 0, 0, 65, 65,
+ 49, 0, 49, 0, 50, 52, 48, 48, 48, 1,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 43,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 0, 0, 0,
+ 0, 0, 58, 56, 0, 0, 0, 49, 50, 48,
+ 39, 48, 48, 48, 18, 25, 48, 48, 48, 48,
+ 48, 12, 48, 48, 33, 48, 48, 22, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+
+ 48, 48, 48, 48, 48, 48, 48, 29, 48, 48,
+ 0, 0, 0, 0, 0, 56, 0, 57, 0, 40,
+ 48, 48, 48, 9, 48, 48, 48, 48, 48, 20,
+ 41, 48, 48, 48, 28, 48, 48, 48, 48, 48,
+ 48, 23, 48, 48, 48, 48, 48, 48, 16, 48,
+ 48, 26, 48, 61, 0, 0, 0, 0, 48, 48,
+ 48, 48, 32, 48, 21, 48, 48, 2, 30, 44,
+ 48, 35, 3, 48, 48, 13, 11, 48, 17, 48,
+ 48, 48, 48, 48, 60, 0, 0, 0, 0, 0,
+ 0, 48, 48, 27, 7, 19, 48, 48, 34, 48,
+
+ 48, 48, 48, 10, 48, 48, 14, 0, 64, 64,
+ 0, 0, 0, 31, 48, 48, 48, 4, 15, 36,
+ 48, 24, 48, 0, 0, 0, 5, 6, 8, 48,
+ 38, 62, 0, 59, 59, 48, 37, 0
} ;
static tao_yyconst int tao_yy_ec[256] =
@@ -360,204 +366,224 @@ static tao_yyconst int tao_yy_meta[56] =
5, 5, 5, 5, 5
} ;
-static tao_yyconst short int tao_yy_base[300] =
+static tao_yyconst short int tao_yy_base[351] =
{ 0,
- 0, 468, 474, 476, 54, 476, 476, 467, 441, 46,
- 54, 54, 59, 454, 452, 450, 0, 448, 441, 14,
- 421, 32, 41, 35, 423, 420, 418, 417, 428, 48,
- 57, 45, 405, 415, 413, 52, 107, 95, 451, 476,
- 448, 105, 102, 114, 476, 99, 146, 128, 158, 171,
- 0, 177, 476, 476, 476, 0, 430, 425, 398, 402,
- 406, 401, 416, 404, 409, 395, 394, 409, 398, 43,
- 398, 405, 390, 389, 401, 387, 395, 402, 387, 388,
- 384, 390, 384, 66, 388, 388, 377, 384, 476, 99,
- 193, 389, 383, 375, 476, 414, 413, 119, 412, 134,
-
- 476, 142, 0, 190, 476, 161, 196, 0, 392, 396,
- 0, 369, 374, 378, 366, 105, 380, 378, 368, 373,
- 376, 357, 370, 367, 354, 363, 366, 349, 0, 352,
- 364, 348, 350, 106, 347, 359, 350, 353, 357, 359,
- 343, 384, 383, 351, 343, 353, 476, 476, 208, 377,
- 210, 214, 476, 362, 0, 342, 345, 0, 0, 331,
- 343, 328, 336, 0, 331, 326, 325, 326, 0, 331,
- 320, 321, 337, 332, 323, 330, 316, 321, 329, 328,
- 326, 317, 321, 0, 311, 317, 351, 228, 312, 318,
- 315, 476, 345, 476, 344, 0, 317, 317, 0, 295,
-
- 306, 310, 296, 0, 0, 307, 307, 306, 0, 287,
- 292, 296, 295, 0, 299, 287, 296, 298, 0, 290,
- 0, 289, 476, 232, 282, 239, 288, 247, 247, 228,
- 224, 0, 231, 236, 0, 0, 0, 0, 226, 224,
- 0, 0, 0, 213, 208, 201, 476, 246, 160, 261,
- 265, 268, 194, 170, 0, 0, 0, 172, 178, 139,
- 153, 0, 122, 0, 163, 476, 175, 146, 125, 213,
- 88, 62, 67, 0, 0, 0, 74, 199, 239, 0,
- 0, 0, 476, 254, 476, 261, 476, 284, 289, 291,
- 296, 301, 53, 304, 308, 311, 315, 320, 325
-
+ 0, 518, 524, 526, 54, 526, 526, 517, 491, 46,
+ 54, 54, 59, 504, 502, 500, 0, 498, 491, 38,
+ 471, 47, 20, 35, 473, 470, 468, 467, 478, 42,
+ 46, 62, 63, 30, 466, 57, 66, 115, 102, 503,
+ 526, 500, 97, 110, 121, 526, 106, 151, 138, 165,
+ 180, 0, 170, 526, 526, 526, 0, 482, 477, 456,
+ 449, 453, 457, 452, 467, 455, 449, 459, 445, 444,
+ 459, 448, 118, 448, 455, 440, 439, 451, 437, 445,
+ 451, 443, 450, 435, 436, 432, 433, 437, 426, 430,
+ 93, 433, 433, 433, 422, 429, 526, 156, 196, 434,
+
+ 428, 420, 526, 459, 458, 130, 457, 145, 526, 166,
+ 0, 203, 526, 189, 206, 0, 437, 441, 412, 0,
+ 413, 418, 422, 410, 122, 407, 423, 421, 411, 416,
+ 419, 401, 399, 412, 409, 396, 405, 408, 391, 0,
+ 391, 400, 392, 404, 388, 390, 165, 391, 386, 391,
+ 397, 388, 391, 380, 394, 396, 380, 421, 420, 388,
+ 380, 390, 526, 526, 218, 414, 209, 220, 526, 399,
+ 0, 372, 378, 381, 0, 0, 367, 379, 370, 363,
+ 371, 0, 366, 361, 0, 360, 361, 0, 366, 355,
+ 356, 372, 371, 362, 365, 356, 363, 349, 354, 362,
+
+ 351, 360, 359, 357, 348, 352, 353, 0, 341, 347,
+ 381, 234, 342, 348, 345, 526, 375, 526, 374, 0,
+ 348, 346, 346, 0, 324, 334, 334, 338, 324, 0,
+ 0, 335, 335, 334, 0, 315, 319, 333, 318, 322,
+ 321, 0, 325, 313, 314, 321, 327, 322, 0, 314,
+ 307, 0, 312, 526, 237, 305, 245, 311, 318, 301,
+ 307, 300, 0, 299, 0, 307, 314, 0, 0, 0,
+ 309, 0, 0, 303, 309, 0, 0, 293, 0, 292,
+ 303, 303, 284, 299, 526, 251, 205, 266, 270, 273,
+ 272, 248, 233, 0, 0, 0, 234, 242, 0, 187,
+
+ 193, 166, 164, 0, 147, 132, 0, 224, 526, 253,
+ 149, 140, 244, 0, 104, 95, 91, 0, 0, 0,
+ 89, 0, 84, 100, 260, 266, 0, 0, 0, 41,
+ 0, 526, 270, 526, 287, 27, 0, 526, 291, 296,
+ 298, 303, 308, 54, 311, 315, 318, 322, 327, 332
} ;
-static tao_yyconst short int tao_yy_def[300] =
+static tao_yyconst short int tao_yy_def[351] =
{ 0,
- 287, 1, 287, 287, 287, 287, 287, 288, 289, 287,
- 287, 287, 287, 287, 287, 287, 290, 290, 290, 290,
- 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
- 290, 290, 290, 290, 290, 290, 287, 287, 288, 287,
- 287, 291, 287, 287, 287, 292, 287, 287, 287, 287,
- 293, 287, 287, 287, 287, 290, 290, 290, 290, 290,
- 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
- 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
- 290, 290, 290, 290, 290, 290, 290, 37, 287, 37,
- 287, 287, 287, 287, 287, 287, 287, 287, 294, 292,
-
- 287, 292, 47, 287, 287, 287, 287, 293, 290, 290,
- 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
- 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
- 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
- 290, 295, 287, 287, 287, 287, 287, 287, 287, 296,
- 287, 287, 287, 290, 290, 290, 290, 290, 290, 290,
- 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
- 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
- 290, 290, 290, 290, 290, 290, 295, 287, 287, 287,
- 287, 287, 287, 287, 287, 290, 290, 290, 290, 290,
-
- 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
- 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
- 290, 290, 287, 287, 287, 287, 287, 290, 290, 290,
- 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
- 290, 290, 290, 290, 290, 290, 287, 287, 297, 287,
- 287, 287, 287, 290, 290, 290, 290, 290, 290, 290,
- 290, 290, 290, 290, 297, 287, 297, 298, 287, 287,
- 290, 290, 290, 290, 290, 290, 298, 287, 299, 290,
- 290, 290, 287, 299, 287, 299, 0, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287, 287
-
+ 338, 1, 338, 338, 338, 338, 338, 339, 340, 338,
+ 338, 338, 338, 338, 338, 338, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 338, 338, 339,
+ 338, 338, 342, 338, 338, 338, 343, 338, 338, 338,
+ 338, 344, 338, 338, 338, 338, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 38, 338, 38, 338, 338,
+
+ 338, 338, 338, 338, 338, 338, 345, 343, 338, 343,
+ 48, 338, 338, 338, 338, 344, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 346, 338, 338,
+ 338, 338, 338, 338, 338, 347, 338, 338, 338, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 346, 338, 338, 338, 338, 338, 338, 338, 338, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 338, 338, 338, 338, 338, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 338, 338, 348, 338, 338, 338,
+ 338, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+
+ 341, 341, 341, 341, 341, 341, 341, 348, 338, 348,
+ 349, 338, 338, 341, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 349, 338, 350, 341, 341, 341, 341,
+ 341, 338, 350, 338, 350, 341, 341, 0, 338, 338,
+ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338
} ;
-static tao_yyconst short int tao_yy_nxt[532] =
+static tao_yyconst short int tao_yy_nxt[582] =
{ 0,
4, 5, 6, 7, 5, 8, 4, 9, 4, 4,
10, 4, 11, 12, 13, 13, 14, 15, 16, 17,
17, 17, 18, 17, 17, 17, 17, 19, 17, 17,
4, 4, 20, 21, 22, 23, 24, 25, 17, 17,
- 26, 27, 28, 29, 30, 17, 17, 31, 32, 33,
- 34, 35, 36, 17, 17, 38, 108, 59, 38, 43,
- 44, 44, 45, 60, 62, 47, 46, 48, 48, 49,
- 47, 63, 52, 52, 52, 50, 64, 65, 67, 278,
- 50, 79, 74, 51, 80, 66, 86, 122, 68, 77,
- 50, 75, 123, 78, 81, 50, 38, 82, 76, 38,
-
- 87, 101, 102, 282, 142, 281, 137, 51, 88, 89,
- 89, 90, 97, 47, 138, 48, 48, 49, 98, 98,
- 91, 91, 91, 50, 280, 47, 148, 52, 52, 52,
- 268, 51, 149, 149, 99, 50, 101, 102, 50, 47,
- 287, 48, 48, 49, 101, 102, 178, 92, 93, 50,
- 50, 278, 94, 160, 161, 51, 179, 276, 99, 103,
- 103, 103, 266, 267, 50, 266, 267, 104, 105, 47,
- 105, 49, 49, 49, 107, 107, 107, 266, 267, 50,
- 106, 106, 104, 105, 107, 107, 107, 105, 47, 275,
- 52, 52, 52, 274, 50, 89, 89, 143, 50, 151,
-
- 151, 283, 283, 152, 152, 152, 91, 91, 91, 107,
- 107, 107, 273, 50, 279, 192, 272, 279, 153, 271,
- 153, 193, 193, 152, 152, 152, 270, 152, 152, 152,
- 223, 223, 224, 153, 247, 247, 105, 153, 105, 264,
- 250, 285, 286, 251, 263, 248, 248, 248, 247, 247,
- 262, 105, 252, 252, 252, 105, 285, 286, 261, 248,
- 248, 248, 250, 285, 286, 251, 250, 260, 259, 251,
- 268, 258, 269, 257, 252, 252, 252, 256, 252, 252,
- 252, 252, 252, 252, 39, 39, 39, 39, 39, 41,
- 255, 41, 41, 41, 56, 56, 96, 254, 96, 96,
-
- 96, 100, 100, 100, 100, 100, 150, 150, 187, 187,
- 187, 187, 187, 195, 195, 265, 265, 265, 265, 265,
- 277, 277, 277, 277, 277, 284, 284, 284, 284, 284,
- 253, 249, 246, 245, 244, 243, 242, 241, 240, 239,
- 238, 237, 236, 235, 234, 233, 232, 231, 230, 229,
- 228, 194, 192, 227, 226, 225, 188, 222, 221, 220,
- 219, 218, 217, 216, 215, 214, 213, 212, 211, 210,
- 209, 208, 207, 206, 205, 204, 203, 202, 201, 200,
- 199, 198, 197, 196, 194, 191, 190, 189, 142, 188,
- 186, 185, 184, 183, 182, 181, 180, 177, 176, 175,
-
- 174, 173, 172, 171, 170, 169, 168, 167, 166, 165,
- 164, 163, 162, 159, 158, 157, 156, 155, 154, 147,
- 147, 147, 146, 145, 144, 287, 141, 140, 139, 136,
- 135, 134, 133, 132, 131, 130, 129, 128, 127, 126,
- 125, 124, 121, 120, 119, 118, 117, 116, 115, 114,
- 113, 112, 111, 110, 109, 95, 40, 85, 84, 83,
- 73, 72, 71, 70, 69, 61, 58, 57, 55, 54,
- 53, 42, 40, 287, 37, 3, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
-
- 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
- 287
+ 26, 27, 28, 29, 30, 31, 17, 32, 33, 34,
+ 35, 36, 37, 17, 17, 39, 68, 116, 39, 44,
+ 45, 45, 46, 337, 69, 48, 47, 49, 49, 50,
+ 48, 60, 53, 53, 53, 51, 77, 89, 70, 64,
+ 51, 61, 336, 52, 90, 78, 65, 62, 71, 92,
+ 51, 66, 79, 80, 82, 51, 81, 67, 83, 84,
+
+ 94, 93, 85, 39, 105, 325, 39, 52, 109, 110,
+ 106, 106, 86, 87, 95, 88, 96, 97, 97, 98,
+ 331, 48, 330, 49, 49, 50, 107, 329, 99, 99,
+ 99, 51, 48, 152, 53, 53, 53, 164, 328, 52,
+ 327, 153, 51, 165, 165, 311, 51, 109, 110, 48,
+ 107, 49, 49, 50, 325, 100, 101, 51, 132, 51,
+ 102, 158, 133, 52, 111, 111, 111, 134, 109, 110,
+ 177, 178, 112, 113, 51, 113, 48, 323, 50, 50,
+ 50, 48, 322, 53, 53, 53, 51, 112, 113, 114,
+ 114, 51, 113, 115, 115, 115, 321, 338, 97, 97,
+
+ 159, 51, 115, 115, 115, 199, 51, 309, 310, 99,
+ 99, 99, 167, 167, 320, 200, 168, 168, 168, 115,
+ 115, 115, 168, 168, 168, 216, 309, 310, 169, 319,
+ 169, 217, 217, 168, 168, 168, 254, 254, 255, 285,
+ 285, 318, 113, 169, 113, 326, 288, 169, 326, 289,
+ 286, 286, 286, 285, 285, 309, 310, 113, 290, 290,
+ 290, 113, 332, 332, 286, 286, 286, 288, 334, 335,
+ 289, 288, 334, 335, 289, 311, 317, 312, 316, 290,
+ 290, 290, 315, 290, 290, 290, 290, 290, 290, 334,
+ 335, 40, 40, 40, 40, 40, 42, 314, 42, 42,
+
+ 42, 57, 57, 104, 313, 104, 104, 104, 108, 108,
+ 108, 108, 108, 166, 166, 211, 211, 211, 211, 211,
+ 219, 219, 308, 308, 308, 308, 308, 324, 324, 324,
+ 324, 324, 333, 333, 333, 333, 333, 307, 306, 305,
+ 304, 303, 302, 301, 300, 299, 298, 297, 296, 295,
+ 294, 293, 292, 291, 287, 284, 283, 282, 281, 280,
+ 279, 278, 277, 276, 275, 274, 273, 272, 271, 270,
+ 269, 268, 267, 266, 265, 264, 263, 262, 261, 260,
+ 259, 218, 216, 258, 257, 256, 212, 253, 252, 251,
+ 250, 249, 248, 247, 246, 245, 244, 243, 242, 241,
+
+ 240, 239, 238, 237, 236, 235, 234, 233, 232, 231,
+ 230, 229, 228, 227, 226, 225, 224, 223, 222, 221,
+ 220, 218, 215, 214, 213, 158, 212, 210, 209, 208,
+ 207, 206, 205, 204, 203, 202, 201, 198, 197, 196,
+ 195, 194, 193, 192, 191, 190, 189, 188, 187, 186,
+ 185, 184, 183, 182, 181, 180, 179, 176, 175, 174,
+ 173, 172, 171, 170, 163, 163, 163, 162, 161, 160,
+ 338, 157, 156, 155, 154, 151, 150, 149, 148, 147,
+ 146, 145, 144, 143, 142, 141, 140, 139, 138, 137,
+ 136, 135, 131, 130, 129, 128, 127, 126, 125, 124,
+
+ 123, 122, 121, 120, 119, 118, 117, 103, 41, 91,
+ 76, 75, 74, 73, 72, 63, 59, 58, 56, 55,
+ 54, 43, 41, 338, 38, 3, 338, 338, 338, 338,
+ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
+ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
+ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
+ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
+ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
+ 338
} ;
-static tao_yyconst short int tao_yy_chk[532] =
+static tao_yyconst short int tao_yy_chk[582] =
{ 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, 1, 5, 293, 20, 5, 10,
- 10, 10, 11, 20, 22, 12, 11, 12, 12, 12,
- 13, 22, 13, 13, 13, 12, 22, 23, 24, 277,
- 13, 32, 30, 12, 32, 23, 36, 70, 24, 31,
- 12, 30, 70, 31, 32, 13, 38, 32, 30, 38,
-
- 36, 46, 46, 273, 90, 272, 84, 12, 37, 37,
- 37, 37, 42, 43, 84, 43, 43, 43, 42, 42,
- 37, 37, 37, 43, 271, 44, 98, 44, 44, 44,
- 269, 43, 98, 98, 42, 44, 100, 100, 43, 48,
- 90, 48, 48, 48, 102, 102, 134, 37, 37, 48,
- 44, 268, 37, 116, 116, 43, 134, 263, 42, 47,
- 47, 47, 249, 249, 48, 265, 265, 47, 47, 49,
- 47, 49, 49, 49, 106, 106, 106, 267, 267, 49,
- 50, 50, 47, 47, 50, 50, 50, 47, 52, 261,
- 52, 52, 52, 260, 49, 91, 91, 91, 52, 104,
-
- 104, 278, 278, 104, 104, 104, 91, 91, 91, 107,
- 107, 107, 259, 52, 270, 149, 258, 270, 107, 254,
- 107, 149, 149, 151, 151, 151, 253, 152, 152, 152,
- 188, 188, 188, 107, 224, 224, 152, 107, 152, 246,
- 226, 279, 279, 226, 245, 224, 224, 224, 248, 248,
- 244, 152, 226, 226, 226, 152, 284, 284, 240, 248,
- 248, 248, 250, 286, 286, 250, 251, 239, 234, 251,
- 251, 233, 252, 231, 250, 250, 250, 230, 251, 251,
- 251, 252, 252, 252, 288, 288, 288, 288, 288, 289,
- 229, 289, 289, 289, 290, 290, 291, 228, 291, 291,
-
- 291, 292, 292, 292, 292, 292, 294, 294, 295, 295,
- 295, 295, 295, 296, 296, 297, 297, 297, 297, 297,
- 298, 298, 298, 298, 298, 299, 299, 299, 299, 299,
- 227, 225, 222, 220, 218, 217, 216, 215, 213, 212,
- 211, 210, 208, 207, 206, 203, 202, 201, 200, 198,
- 197, 195, 193, 191, 190, 189, 187, 186, 185, 183,
- 182, 181, 180, 179, 178, 177, 176, 175, 174, 173,
- 172, 171, 170, 168, 167, 166, 165, 163, 162, 161,
- 160, 157, 156, 154, 150, 146, 145, 144, 143, 142,
- 141, 140, 139, 138, 137, 136, 135, 133, 132, 131,
-
- 130, 128, 127, 126, 125, 124, 123, 122, 121, 120,
- 119, 118, 117, 115, 114, 113, 112, 110, 109, 99,
- 97, 96, 94, 93, 92, 88, 87, 86, 85, 83,
- 82, 81, 80, 79, 78, 77, 76, 75, 74, 73,
- 72, 71, 69, 68, 67, 66, 65, 64, 63, 62,
- 61, 60, 59, 58, 57, 41, 39, 35, 34, 33,
+ 1, 1, 1, 1, 1, 5, 23, 344, 5, 10,
+ 10, 10, 11, 336, 23, 12, 11, 12, 12, 12,
+ 13, 20, 13, 13, 13, 12, 30, 34, 24, 22,
+ 13, 20, 330, 12, 34, 30, 22, 20, 24, 36,
+ 12, 22, 30, 31, 32, 13, 31, 22, 32, 33,
+
+ 37, 36, 33, 39, 43, 324, 39, 12, 47, 47,
+ 43, 43, 33, 33, 37, 33, 38, 38, 38, 38,
+ 323, 44, 321, 44, 44, 44, 43, 317, 38, 38,
+ 38, 44, 45, 91, 45, 45, 45, 106, 316, 44,
+ 315, 91, 45, 106, 106, 312, 44, 108, 108, 49,
+ 43, 49, 49, 49, 311, 38, 38, 45, 73, 49,
+ 38, 98, 73, 44, 48, 48, 48, 73, 110, 110,
+ 125, 125, 48, 48, 49, 48, 50, 306, 50, 50,
+ 50, 53, 305, 53, 53, 53, 50, 48, 48, 51,
+ 51, 53, 48, 51, 51, 51, 303, 98, 99, 99,
+
+ 99, 50, 114, 114, 114, 147, 53, 287, 287, 99,
+ 99, 99, 112, 112, 302, 147, 112, 112, 112, 115,
+ 115, 115, 167, 167, 167, 165, 308, 308, 115, 301,
+ 115, 165, 165, 168, 168, 168, 212, 212, 212, 255,
+ 255, 300, 168, 115, 168, 313, 257, 115, 313, 257,
+ 255, 255, 255, 286, 286, 310, 310, 168, 257, 257,
+ 257, 168, 325, 325, 286, 286, 286, 288, 326, 326,
+ 288, 289, 333, 333, 289, 289, 298, 290, 297, 288,
+ 288, 288, 293, 289, 289, 289, 290, 290, 290, 335,
+ 335, 339, 339, 339, 339, 339, 340, 292, 340, 340,
+
+ 340, 341, 341, 342, 291, 342, 342, 342, 343, 343,
+ 343, 343, 343, 345, 345, 346, 346, 346, 346, 346,
+ 347, 347, 348, 348, 348, 348, 348, 349, 349, 349,
+ 349, 349, 350, 350, 350, 350, 350, 284, 283, 282,
+ 281, 280, 278, 275, 274, 271, 267, 266, 264, 262,
+ 261, 260, 259, 258, 256, 253, 251, 250, 248, 247,
+ 246, 245, 244, 243, 241, 240, 239, 238, 237, 236,
+ 234, 233, 232, 229, 228, 227, 226, 225, 223, 222,
+ 221, 219, 217, 215, 214, 213, 211, 210, 209, 207,
+ 206, 205, 204, 203, 202, 201, 200, 199, 198, 197,
+
+ 196, 195, 194, 193, 192, 191, 190, 189, 187, 186,
+ 184, 183, 181, 180, 179, 178, 177, 174, 173, 172,
+ 170, 166, 162, 161, 160, 159, 158, 157, 156, 155,
+ 154, 153, 152, 151, 150, 149, 148, 146, 145, 144,
+ 143, 142, 141, 139, 138, 137, 136, 135, 134, 133,
+ 132, 131, 130, 129, 128, 127, 126, 124, 123, 122,
+ 121, 119, 118, 117, 107, 105, 104, 102, 101, 100,
+ 96, 95, 94, 93, 92, 90, 89, 88, 87, 86,
+ 85, 84, 83, 82, 81, 80, 79, 78, 77, 76,
+ 75, 74, 72, 71, 70, 69, 68, 67, 66, 65,
+
+ 64, 63, 62, 61, 60, 59, 58, 42, 40, 35,
29, 28, 27, 26, 25, 21, 19, 18, 16, 15,
- 14, 9, 8, 3, 2, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
-
- 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
- 287
+ 14, 9, 8, 3, 2, 338, 338, 338, 338, 338,
+ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
+ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
+ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
+ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
+ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
+ 338
} ;
static tao_yy_state_type tao_yy_last_accepting_state;
@@ -579,7 +605,7 @@ char *tao_yytext_ptr;
#line 1 "fe/idl.ll"
#define INITIAL 0
#line 3 "fe/idl.ll"
-/*
+/* $Id: idl.ll,v 1.6 1999/04/08 09:46:19 tkue Exp $
COPYRIGHT
@@ -652,11 +678,11 @@ trademarks or registered trademarks of Sun Microsystems, Inc.
#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 *);
+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
@@ -672,6 +698,19 @@ inline char *__tao_yytext()
#else
#define ace_tao_yytext tao_yytext
#endif /* 0 */
+
+static int scan_obv_token (int token)
+{
+#ifdef IDL_HAS_VALUETYPE
+ if (idl_global->obv_support ())
+ {
+ return token;
+ }
+#endif /* IDL_HAS_VALUETYPE */
+ tao_yylval.strval = ACE_OS::strdup (ace_tao_yytext);
+ return IDENTIFIER;
+}
+
/* SO we don't choke on files that use \r\n */
#define TAO_YY_NEVER_INTERACTIVE 1
@@ -760,21 +799,21 @@ TAO_YY_MALLOC_DECL
*/
#ifndef TAO_YY_INPUT
#define TAO_YY_INPUT(buf,result,max_size) \
- if ( tao_yy_current_buffer->tao_yy_is_interactive ) \
- { \
- int c = '*', n; \
- for ( n = 0; n < max_size && \
- (c = getc( tao_yyin )) != EOF && c != '\n'; ++n ) \
- buf[n] = (char) c; \
- if ( c == '\n' ) \
- buf[n++] = (char) c; \
- if ( c == EOF && ferror( tao_yyin ) ) \
- TAO_YY_FATAL_ERROR( "input in flex scanner failed" ); \
- result = n; \
- } \
- else if ( ((result = fread( buf, 1, max_size, tao_yyin )) == 0) \
- && ferror( tao_yyin ) ) \
- TAO_YY_FATAL_ERROR( "input in flex scanner failed" );
+ if ( tao_yy_current_buffer->tao_yy_is_interactive ) \
+ { \
+ int c = '*', n; \
+ for ( n = 0; n < max_size && \
+ (c = getc( tao_yyin )) != EOF && c != '\n'; ++n ) \
+ buf[n] = (char) c; \
+ if ( c == '\n' ) \
+ buf[n++] = (char) c; \
+ if ( c == EOF && ferror( tao_yyin ) ) \
+ TAO_YY_FATAL_ERROR( "input in flex scanner failed" ); \
+ result = n; \
+ } \
+ 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();" -
@@ -811,308 +850,348 @@ TAO_YY_MALLOC_DECL
/* Code executed at the end of each rule. */
#ifndef TAO_YY_BREAK
-#define TAO_YY_BREAK ACE_NOTREACHED (break;)
+#define TAO_YY_BREAK break;
#endif
#define TAO_YY_RULE_SETUP \
- if ( tao_yyleng > 0 ) \
- tao_yy_current_buffer->tao_yy_at_bol = \
- (tao_yytext[tao_yyleng - 1] == '\n'); \
- TAO_YY_USER_ACTION
+ if ( tao_yyleng > 0 ) \
+ tao_yy_current_buffer->tao_yy_at_bol = \
+ (tao_yytext[tao_yyleng - 1] == '\n'); \
+ TAO_YY_USER_ACTION
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;
+ {
+ register tao_yy_state_type tao_yy_current_state;
+ register char *tao_yy_cp, *tao_yy_bp;
+ register int tao_yy_act;
-#line 104 "fe/idl.ll"
+#line 117 "fe/idl.ll"
- if ( tao_yy_init )
- {
- tao_yy_init = 0;
+ if ( tao_yy_init )
+ {
+ tao_yy_init = 0;
#ifdef TAO_YY_USER_INIT
- TAO_YY_USER_INIT;
+ TAO_YY_USER_INIT;
#endif
- if ( ! tao_yy_start )
- tao_yy_start = 1; /* first start state */
+ if ( ! tao_yy_start )
+ tao_yy_start = 1; /* first start state */
- if ( ! tao_yyin )
- tao_yyin = stdin;
+ if ( ! tao_yyin )
+ tao_yyin = stdin;
- if ( ! tao_yyout )
- tao_yyout = stdout;
+ if ( ! tao_yyout )
+ tao_yyout = stdout;
- if ( ! tao_yy_current_buffer )
- tao_yy_current_buffer =
- tao_yy_create_buffer( tao_yyin, TAO_YY_BUF_SIZE );
+ if ( ! tao_yy_current_buffer )
+ tao_yy_current_buffer =
+ tao_yy_create_buffer( tao_yyin, TAO_YY_BUF_SIZE );
- tao_yy_load_buffer_state();
- }
+ tao_yy_load_buffer_state();
+ }
- while ( 1 ) /* loops until end-of-file is reached */
- {
- tao_yy_cp = tao_yy_c_buf_p;
+ 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;
+ /* 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_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;
- tao_yy_current_state += TAO_YY_AT_BOL();
+ tao_yy_current_state = tao_yy_start;
+ tao_yy_current_state += TAO_YY_AT_BOL();
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 >= 288 )
- 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] != 476 );
+ 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 >= 339 )
+ 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] != 526 );
tao_yy_find_action:
- tao_yy_act = tao_yy_accept[tao_yy_current_state];
- if ( tao_yy_act == 0 )
- { /* have to back up */
- tao_yy_cp = tao_yy_last_accepting_cpos;
- tao_yy_current_state = tao_yy_last_accepting_state;
- tao_yy_act = tao_yy_accept[tao_yy_current_state];
- }
+ tao_yy_act = tao_yy_accept[tao_yy_current_state];
+ if ( tao_yy_act == 0 )
+ { /* have to back up */
+ tao_yy_cp = tao_yy_last_accepting_cpos;
+ tao_yy_current_state = tao_yy_last_accepting_state;
+ tao_yy_act = tao_yy_accept[tao_yy_current_state];
+ }
- TAO_YY_DO_BEFORE_ACTION;
+ TAO_YY_DO_BEFORE_ACTION;
-do_action: /* This label is used only to access EOF actions. */
+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;
+ 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_RULE_SETUP
-#line 106 "fe/idl.ll"
+#line 119 "fe/idl.ll"
return IDL_ANY;
- TAO_YY_BREAK
+ TAO_YY_BREAK
case 2:
TAO_YY_RULE_SETUP
-#line 107 "fe/idl.ll"
+#line 120 "fe/idl.ll"
return IDL_MODULE;
- TAO_YY_BREAK
+ TAO_YY_BREAK
case 3:
TAO_YY_RULE_SETUP
-#line 108 "fe/idl.ll"
+#line 121 "fe/idl.ll"
return IDL_RAISES;
- TAO_YY_BREAK
+ TAO_YY_BREAK
case 4:
TAO_YY_RULE_SETUP
-#line 109 "fe/idl.ll"
+#line 122 "fe/idl.ll"
return IDL_READONLY;
- TAO_YY_BREAK
+ TAO_YY_BREAK
case 5:
TAO_YY_RULE_SETUP
-#line 110 "fe/idl.ll"
+#line 123 "fe/idl.ll"
return IDL_ATTRIBUTE;
- TAO_YY_BREAK
+ TAO_YY_BREAK
case 6:
TAO_YY_RULE_SETUP
-#line 111 "fe/idl.ll"
+#line 124 "fe/idl.ll"
return IDL_EXCEPTION;
- TAO_YY_BREAK
+ TAO_YY_BREAK
case 7:
TAO_YY_RULE_SETUP
-#line 112 "fe/idl.ll"
+#line 125 "fe/idl.ll"
return IDL_CONTEXT;
- TAO_YY_BREAK
+ TAO_YY_BREAK
case 8:
TAO_YY_RULE_SETUP
-#line 113 "fe/idl.ll"
+#line 126 "fe/idl.ll"
return IDL_INTERFACE;
- TAO_YY_BREAK
+ TAO_YY_BREAK
case 9:
TAO_YY_RULE_SETUP
-#line 114 "fe/idl.ll"
+#line 127 "fe/idl.ll"
return IDL_CONST;
- TAO_YY_BREAK
+ TAO_YY_BREAK
case 10:
TAO_YY_RULE_SETUP
-#line 115 "fe/idl.ll"
+#line 128 "fe/idl.ll"
return IDL_TYPEDEF;
- TAO_YY_BREAK
+ TAO_YY_BREAK
case 11:
TAO_YY_RULE_SETUP
-#line 116 "fe/idl.ll"
+#line 129 "fe/idl.ll"
return IDL_STRUCT;
- TAO_YY_BREAK
+ TAO_YY_BREAK
case 12:
TAO_YY_RULE_SETUP
-#line 117 "fe/idl.ll"
+#line 130 "fe/idl.ll"
return IDL_ENUM;
- TAO_YY_BREAK
+ TAO_YY_BREAK
case 13:
TAO_YY_RULE_SETUP
-#line 118 "fe/idl.ll"
+#line 131 "fe/idl.ll"
return IDL_STRING;
- TAO_YY_BREAK
+ TAO_YY_BREAK
case 14:
TAO_YY_RULE_SETUP
-#line 119 "fe/idl.ll"
+#line 132 "fe/idl.ll"
return IDL_WSTRING;
- TAO_YY_BREAK
+ TAO_YY_BREAK
case 15:
TAO_YY_RULE_SETUP
-#line 120 "fe/idl.ll"
+#line 133 "fe/idl.ll"
return IDL_SEQUENCE;
- TAO_YY_BREAK
+ TAO_YY_BREAK
case 16:
TAO_YY_RULE_SETUP
-#line 121 "fe/idl.ll"
+#line 134 "fe/idl.ll"
return IDL_UNION;
- TAO_YY_BREAK
+ TAO_YY_BREAK
case 17:
TAO_YY_RULE_SETUP
-#line 122 "fe/idl.ll"
+#line 135 "fe/idl.ll"
return IDL_SWITCH;
- TAO_YY_BREAK
+ TAO_YY_BREAK
case 18:
TAO_YY_RULE_SETUP
-#line 123 "fe/idl.ll"
+#line 136 "fe/idl.ll"
return IDL_CASE;
- TAO_YY_BREAK
+ TAO_YY_BREAK
case 19:
TAO_YY_RULE_SETUP
-#line 124 "fe/idl.ll"
+#line 137 "fe/idl.ll"
return IDL_DEFAULT;
- TAO_YY_BREAK
+ TAO_YY_BREAK
case 20:
TAO_YY_RULE_SETUP
-#line 125 "fe/idl.ll"
+#line 138 "fe/idl.ll"
return IDL_FLOAT;
- TAO_YY_BREAK
+ TAO_YY_BREAK
case 21:
TAO_YY_RULE_SETUP
-#line 126 "fe/idl.ll"
+#line 139 "fe/idl.ll"
return IDL_DOUBLE;
- TAO_YY_BREAK
+ TAO_YY_BREAK
case 22:
TAO_YY_RULE_SETUP
-#line 127 "fe/idl.ll"
+#line 140 "fe/idl.ll"
return IDL_LONG;
- TAO_YY_BREAK
+ TAO_YY_BREAK
case 23:
TAO_YY_RULE_SETUP
-#line 128 "fe/idl.ll"
+#line 141 "fe/idl.ll"
return IDL_SHORT;
- TAO_YY_BREAK
+ TAO_YY_BREAK
case 24:
TAO_YY_RULE_SETUP
-#line 129 "fe/idl.ll"
+#line 142 "fe/idl.ll"
return IDL_UNSIGNED;
- TAO_YY_BREAK
+ TAO_YY_BREAK
case 25:
TAO_YY_RULE_SETUP
-#line 130 "fe/idl.ll"
+#line 143 "fe/idl.ll"
return IDL_CHAR;
- TAO_YY_BREAK
+ TAO_YY_BREAK
case 26:
TAO_YY_RULE_SETUP
-#line 131 "fe/idl.ll"
+#line 144 "fe/idl.ll"
return IDL_WCHAR;
- TAO_YY_BREAK
+ TAO_YY_BREAK
case 27:
TAO_YY_RULE_SETUP
-#line 132 "fe/idl.ll"
+#line 145 "fe/idl.ll"
return IDL_BOOLEAN;
- TAO_YY_BREAK
+ TAO_YY_BREAK
case 28:
TAO_YY_RULE_SETUP
-#line 133 "fe/idl.ll"
+#line 146 "fe/idl.ll"
return IDL_OCTET;
- TAO_YY_BREAK
+ TAO_YY_BREAK
case 29:
TAO_YY_RULE_SETUP
-#line 134 "fe/idl.ll"
+#line 147 "fe/idl.ll"
return IDL_VOID;
- TAO_YY_BREAK
+ TAO_YY_BREAK
case 30:
TAO_YY_RULE_SETUP
-#line 135 "fe/idl.ll"
+#line 148 "fe/idl.ll"
return IDL_NATIVE;
- TAO_YY_BREAK
+ TAO_YY_BREAK
case 31:
TAO_YY_RULE_SETUP
-#line 137 "fe/idl.ll"
-return IDL_TRUETOK;
- TAO_YY_BREAK
+#line 149 "fe/idl.ll"
+return scan_obv_token (IDL_ABSTRACT);
+ TAO_YY_BREAK
case 32:
TAO_YY_RULE_SETUP
-#line 138 "fe/idl.ll"
-return IDL_FALSETOK;
- TAO_YY_BREAK
+#line 150 "fe/idl.ll"
+return scan_obv_token (IDL_CUSTOM);
+ TAO_YY_BREAK
case 33:
TAO_YY_RULE_SETUP
-#line 140 "fe/idl.ll"
-return IDL_INOUT;
- TAO_YY_BREAK
+#line 151 "fe/idl.ll"
+return scan_obv_token (IDL_INIT);
+ TAO_YY_BREAK
case 34:
TAO_YY_RULE_SETUP
-#line 141 "fe/idl.ll"
-return IDL_IN;
- TAO_YY_BREAK
+#line 152 "fe/idl.ll"
+return scan_obv_token (IDL_PRIVATE);
+ TAO_YY_BREAK
case 35:
TAO_YY_RULE_SETUP
-#line 142 "fe/idl.ll"
-return IDL_OUT;
- TAO_YY_BREAK
+#line 153 "fe/idl.ll"
+return scan_obv_token (IDL_PUBLIC);
+ TAO_YY_BREAK
case 36:
TAO_YY_RULE_SETUP
-#line 143 "fe/idl.ll"
-return IDL_ONEWAY;
- TAO_YY_BREAK
+#line 154 "fe/idl.ll"
+return scan_obv_token (IDL_SUPPORTS);
+ TAO_YY_BREAK
case 37:
TAO_YY_RULE_SETUP
-#line 145 "fe/idl.ll"
-return IDL_LEFT_SHIFT;
- TAO_YY_BREAK
+#line 155 "fe/idl.ll"
+return scan_obv_token (IDL_TRUNCATABLE);
+ TAO_YY_BREAK
case 38:
TAO_YY_RULE_SETUP
-#line 146 "fe/idl.ll"
-return IDL_RIGHT_SHIFT;
- TAO_YY_BREAK
+#line 156 "fe/idl.ll"
+return scan_obv_token (IDL_VALUETYPE);
+ TAO_YY_BREAK
case 39:
TAO_YY_RULE_SETUP
-#line 147 "fe/idl.ll"
-{
- tao_yylval.strval = "::";
- return IDL_SCOPE_DELIMITOR;
- }
+#line 158 "fe/idl.ll"
+return IDL_TRUETOK;
TAO_YY_BREAK
case 40:
TAO_YY_RULE_SETUP
-#line 152 "fe/idl.ll"
+#line 159 "fe/idl.ll"
+return IDL_FALSETOK;
+ TAO_YY_BREAK
+case 41:
+TAO_YY_RULE_SETUP
+#line 161 "fe/idl.ll"
+return IDL_INOUT;
+ TAO_YY_BREAK
+case 42:
+TAO_YY_RULE_SETUP
+#line 162 "fe/idl.ll"
+return IDL_IN;
+ TAO_YY_BREAK
+case 43:
+TAO_YY_RULE_SETUP
+#line 163 "fe/idl.ll"
+return IDL_OUT;
+ TAO_YY_BREAK
+case 44:
+TAO_YY_RULE_SETUP
+#line 164 "fe/idl.ll"
+return IDL_ONEWAY;
+ TAO_YY_BREAK
+case 45:
+TAO_YY_RULE_SETUP
+#line 166 "fe/idl.ll"
+return IDL_LEFT_SHIFT;
+ TAO_YY_BREAK
+case 46:
+TAO_YY_RULE_SETUP
+#line 167 "fe/idl.ll"
+return IDL_RIGHT_SHIFT;
+ TAO_YY_BREAK
+case 47:
+TAO_YY_RULE_SETUP
+#line 168 "fe/idl.ll"
+{
+ tao_yylval.strval = "::";
+ return IDL_SCOPE_DELIMITOR;
+ }
+ TAO_YY_BREAK
+case 48:
+TAO_YY_RULE_SETUP
+#line 173 "fe/idl.ll"
{
/* make sure that this identifier is not a C++ keyword. If it is,
prepend it with a _cxx_. Lookup in the perfect hash table for
@@ -1132,490 +1211,490 @@ TAO_YY_RULE_SETUP
}
return IDENTIFIER;
}
- TAO_YY_BREAK
-case 41:
+ TAO_YY_BREAK
+case 49:
TAO_YY_RULE_SETUP
-#line 172 "fe/idl.ll"
+#line 193 "fe/idl.ll"
{
tao_yylval.dval = idl_atof(ace_tao_yytext);
return IDL_FLOATING_PT_LITERAL;
}
- TAO_YY_BREAK
-case 42:
+ TAO_YY_BREAK
+case 50:
TAO_YY_RULE_SETUP
-#line 176 "fe/idl.ll"
+#line 197 "fe/idl.ll"
{
tao_yylval.dval = idl_atof(ace_tao_yytext);
return IDL_FLOATING_PT_LITERAL;
}
- TAO_YY_BREAK
-case 43:
+ TAO_YY_BREAK
+case 51:
TAO_YY_RULE_SETUP
-#line 181 "fe/idl.ll"
+#line 202 "fe/idl.ll"
{
- tao_yylval.ival = idl_atoi(ace_tao_yytext, 10);
- return IDL_INTEGER_LITERAL;
- }
- TAO_YY_BREAK
-case 44:
+ tao_yylval.ival = idl_atoi(ace_tao_yytext, 10);
+ return IDL_INTEGER_LITERAL;
+ }
+ TAO_YY_BREAK
+case 52:
TAO_YY_RULE_SETUP
-#line 185 "fe/idl.ll"
+#line 206 "fe/idl.ll"
{
- tao_yylval.ival = idl_atoi(ace_tao_yytext, 16);
- return IDL_INTEGER_LITERAL;
- }
- TAO_YY_BREAK
-case 45:
+ tao_yylval.ival = idl_atoi(ace_tao_yytext, 16);
+ return IDL_INTEGER_LITERAL;
+ }
+ TAO_YY_BREAK
+case 53:
TAO_YY_RULE_SETUP
-#line 189 "fe/idl.ll"
+#line 210 "fe/idl.ll"
{
- tao_yylval.ival = idl_atoi(ace_tao_yytext, 8);
- return IDL_INTEGER_LITERAL;
- }
- TAO_YY_BREAK
-case 46:
+ tao_yylval.ival = idl_atoi(ace_tao_yytext, 8);
+ return IDL_INTEGER_LITERAL;
+ }
+ TAO_YY_BREAK
+case 54:
TAO_YY_RULE_SETUP
-#line 194 "fe/idl.ll"
+#line 215 "fe/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:
+ /* 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 55:
TAO_YY_RULE_SETUP
-#line 201 "fe/idl.ll"
+#line 222 "fe/idl.ll"
{
- tao_yylval.cval = ace_tao_yytext [1];
- return IDL_CHARACTER_LITERAL;
- }
- TAO_YY_BREAK
-case 48:
+ tao_yylval.cval = ace_tao_yytext [1];
+ return IDL_CHARACTER_LITERAL;
+ }
+ TAO_YY_BREAK
+case 56:
TAO_YY_RULE_SETUP
-#line 205 "fe/idl.ll"
+#line 226 "fe/idl.ll"
{
- // octal character constant
- tao_yylval.cval = idl_escape_reader(ace_tao_yytext + 1);
- return IDL_CHARACTER_LITERAL;
- }
- TAO_YY_BREAK
-case 49:
+ // octal character constant
+ tao_yylval.cval = idl_escape_reader(ace_tao_yytext + 1);
+ return IDL_CHARACTER_LITERAL;
+ }
+ TAO_YY_BREAK
+case 57:
TAO_YY_RULE_SETUP
-#line 210 "fe/idl.ll"
+#line 231 "fe/idl.ll"
{
- // hexadecimal character constant
- tao_yylval.cval = idl_escape_reader(ace_tao_yytext + 1);
- return IDL_CHARACTER_LITERAL;
- }
- TAO_YY_BREAK
-case 50:
+ // hexadecimal character constant
+ tao_yylval.cval = idl_escape_reader(ace_tao_yytext + 1);
+ return IDL_CHARACTER_LITERAL;
+ }
+ TAO_YY_BREAK
+case 58:
TAO_YY_RULE_SETUP
-#line 215 "fe/idl.ll"
+#line 236 "fe/idl.ll"
{
- tao_yylval.cval = idl_escape_reader(ace_tao_yytext + 1);
- return IDL_CHARACTER_LITERAL;
- }
- TAO_YY_BREAK
-case 51:
+ tao_yylval.cval = idl_escape_reader(ace_tao_yytext + 1);
+ return IDL_CHARACTER_LITERAL;
+ }
+ TAO_YY_BREAK
+case 59:
TAO_YY_RULE_SETUP
-#line 219 "fe/idl.ll"
+#line 240 "fe/idl.ll"
{/* remember pragma */
- idl_global->set_lineno(idl_global->lineno() + 1);
- idl_store_pragma(ace_tao_yytext);
- }
- break;
-case 52:
+ idl_global->set_lineno(idl_global->lineno() + 1);
+ idl_store_pragma(ace_tao_yytext);
+ }
+ TAO_YY_BREAK
+case 60:
TAO_YY_RULE_SETUP
-#line 223 "fe/idl.ll"
+#line 244 "fe/idl.ll"
{
- idl_parse_line_and_file(ace_tao_yytext);
- }
- break;
-case 53:
+ idl_parse_line_and_file(ace_tao_yytext);
+ }
+ TAO_YY_BREAK
+case 61:
TAO_YY_RULE_SETUP
-#line 226 "fe/idl.ll"
+#line 247 "fe/idl.ll"
{
- idl_parse_line_and_file(ace_tao_yytext);
- }
- break;
-case 54:
+ idl_parse_line_and_file(ace_tao_yytext);
+ }
+ TAO_YY_BREAK
+case 62:
TAO_YY_RULE_SETUP
-#line 229 "fe/idl.ll"
+#line 250 "fe/idl.ll"
{
- idl_parse_line_and_file(ace_tao_yytext);
- }
- break;
-case 55:
+ idl_parse_line_and_file(ace_tao_yytext);
+ }
+ TAO_YY_BREAK
+case 63:
TAO_YY_RULE_SETUP
-#line 232 "fe/idl.ll"
+#line 253 "fe/idl.ll"
{
- idl_parse_line_and_file(ace_tao_yytext);
- }
- break;
-case 56:
+ idl_parse_line_and_file(ace_tao_yytext);
+ }
+ TAO_YY_BREAK
+case 64:
TAO_YY_RULE_SETUP
-#line 235 "fe/idl.ll"
+#line 256 "fe/idl.ll"
{
- /* ignore cpp ident */
- idl_global->set_lineno(idl_global->lineno() + 1);
- }
- break;
-case 57:
+ /* ignore cpp ident */
+ idl_global->set_lineno(idl_global->lineno() + 1);
+ }
+ TAO_YY_BREAK
+case 65:
TAO_YY_RULE_SETUP
-#line 239 "fe/idl.ll"
+#line 260 "fe/idl.ll"
{
- /* ignore comments */
- idl_global->set_lineno(idl_global->lineno() + 1);
- }
- break;
-case 58:
+ /* ignore comments */
+ idl_global->set_lineno(idl_global->lineno() + 1);
+ }
+ TAO_YY_BREAK
+case 66:
TAO_YY_RULE_SETUP
-#line 243 "fe/idl.ll"
+#line 264 "fe/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);
- }
- }
- }
- break;
-case 59:
+ 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 67:
TAO_YY_RULE_SETUP
-#line 257 "fe/idl.ll"
+#line 278 "fe/idl.ll"
;
- break;
-case 60:
+ TAO_YY_BREAK
+case 68:
TAO_YY_RULE_SETUP
-#line 258 "fe/idl.ll"
+#line 279 "fe/idl.ll"
{
- idl_global->set_lineno(idl_global->lineno() + 1);
- }
- break;
-case 61:
+ idl_global->set_lineno(idl_global->lineno() + 1);
+ }
+ TAO_YY_BREAK
+case 69:
TAO_YY_RULE_SETUP
-#line 261 "fe/idl.ll"
+#line 282 "fe/idl.ll"
return ace_tao_yytext [0];
- TAO_YY_BREAK
-case 62:
+ TAO_YY_BREAK
+case 70:
TAO_YY_RULE_SETUP
-#line 263 "fe/idl.ll"
+#line 284 "fe/idl.ll"
TAO_YY_ECHO;
- break;
+ 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 = (int) (tao_yy_cp - tao_yytext_ptr) - 1;
-
- /* Undo the effects of TAO_YY_DO_BEFORE_ACTION. */
- *tao_yy_cp = tao_yy_hold_char;
- TAO_YY_RESTORE_TAO_YY_MORE_OFFSET
-
- 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_yyterminate();
+
+ case TAO_YY_END_OF_BUFFER:
+ {
+ /* Amount of text matched not including the EOB char. */
+ int tao_yy_amount_of_matched_text = (int) (tao_yy_cp - tao_yytext_ptr) - 1;
+
+ /* Undo the effects of TAO_YY_DO_BEFORE_ACTION. */
+ *tao_yy_cp = tao_yy_hold_char;
+ TAO_YY_RESTORE_TAO_YY_MORE_OFFSET
+
+ 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
+ * 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;
- 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 single character, 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 = (int) (tao_yy_c_buf_p - tao_yytext_ptr) - 1;
-
- 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_current_buffer->tao_yy_n_chars = 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. */
+ {
+ register char *dest = tao_yy_current_buffer->tao_yy_ch_buf;
+ register char *source = tao_yytext_ptr;
+ 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 single character, 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 = (int) (tao_yy_c_buf_p - tao_yytext_ptr) - 1;
+
+ 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_current_buffer->tao_yy_n_chars = 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(
+ 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;
+ /* just a shorter name for the current buffer */
+ TAO_YY_BUFFER_STATE b = tao_yy_current_buffer;
- int tao_yy_c_buf_p_offset =
- (int) (tao_yy_c_buf_p - b->tao_yy_ch_buf);
+ int tao_yy_c_buf_p_offset =
+ (int) (tao_yy_c_buf_p - b->tao_yy_ch_buf);
- if ( b->tao_yy_is_our_buffer )
- {
- int new_size = b->tao_yy_buf_size * 2;
+ if ( b->tao_yy_is_our_buffer )
+ {
+ int new_size = b->tao_yy_buf_size * 2;
- if ( new_size <= 0 )
- b->tao_yy_buf_size += b->tao_yy_buf_size / 8;
- else
- b->tao_yy_buf_size *= 2;
+ if ( new_size <= 0 )
+ b->tao_yy_buf_size += b->tao_yy_buf_size / 8;
+ else
+ b->tao_yy_buf_size *= 2;
- b->tao_yy_ch_buf = (char *)
- /* Include room in for 2 EOB chars. */
- tao_yy_flex_realloc( (void *) b->tao_yy_ch_buf,
- b->tao_yy_buf_size + 2 );
- }
- else
- /* Can't grow it, we don't own it. */
- b->tao_yy_ch_buf = 0;
+ b->tao_yy_ch_buf = (char *)
+ /* Include room in for 2 EOB chars. */
+ tao_yy_flex_realloc( (void *) b->tao_yy_ch_buf,
+ b->tao_yy_buf_size + 2 );
+ }
+ else
+ /* Can't grow it, we don't own it. */
+ b->tao_yy_ch_buf = 0;
- if ( ! b->tao_yy_ch_buf )
- TAO_YY_FATAL_ERROR(
- "fatal error - scanner input buffer overflow" );
+ 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];
+ 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;
+ 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 ( num_to_read > TAO_YY_READ_BUF_SIZE )
+ num_to_read = TAO_YY_READ_BUF_SIZE;
- tao_yy_current_buffer->tao_yy_n_chars = tao_yy_n_chars;
- }
+ /* 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 )
- {
- ret_val = EOB_ACT_END_OF_FILE;
- tao_yyrestart( tao_yyin );
- }
+ tao_yy_current_buffer->tao_yy_n_chars = tao_yy_n_chars;
+ }
- else
- {
- ret_val = EOB_ACT_LAST_MATCH;
- tao_yy_current_buffer->tao_yy_buffer_status =
- TAO_YY_BUFFER_EOF_PENDING;
- }
- }
+ if ( tao_yy_n_chars == 0 )
+ {
+ if ( number_to_move == TAO_YY_MORE_ADJ )
+ {
+ 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;
+ 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_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_ptr = &tao_yy_current_buffer->tao_yy_ch_buf[0];
+ tao_yytext_ptr = &tao_yy_current_buffer->tao_yy_ch_buf[0];
- return ret_val;
- }
+ 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;
-
- tao_yy_current_state = tao_yy_start;
- tao_yy_current_state += TAO_YY_AT_BOL();
-
- 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 >= 288 )
- 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;
- }
+ {
+ register tao_yy_state_type tao_yy_current_state;
+ register char *tao_yy_cp;
+
+ tao_yy_current_state = tao_yy_start;
+ tao_yy_current_state += TAO_YY_AT_BOL();
+
+ 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 >= 339 )
+ 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 );
+ * next_state = tao_yy_try_NUL_trans( current_state );
*/
#ifdef TAO_YY_USE_PROTOS
@@ -1624,27 +1703,27 @@ static tao_yy_state_type tao_yy_try_NUL_trans( tao_yy_state_type tao_yy_current_
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 >= 288 )
- 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 == 287);
-
- return tao_yy_is_jam ? 0 : tao_yy_current_state;
- }
+ {
+ 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 >= 339 )
+ 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 == 338);
+
+ return tao_yy_is_jam ? 0 : tao_yy_current_state;
+ }
#ifndef TAO_YY_NO_UNPUT
@@ -1655,41 +1734,41 @@ 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 += (int) (dest - source);
- tao_yy_bp += (int) (dest - source);
- tao_yy_current_buffer->tao_yy_n_chars =
- 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" );
- }
+ {
+ 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 += (int) (dest - source);
+ tao_yy_bp += (int) (dest - source);
+ tao_yy_current_buffer->tao_yy_n_chars =
+ 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" );
+ }
- *--tao_yy_cp = (char) c;
+ *--tao_yy_cp = (char) c;
- tao_yytext_ptr = tao_yy_bp;
- tao_yy_hold_char = *tao_yy_cp;
- tao_yy_c_buf_p = tao_yy_cp;
- }
-#endif /* ifndef TAO_YY_NO_UNPUT */
+ tao_yytext_ptr = tao_yy_bp;
+ tao_yy_hold_char = *tao_yy_cp;
+ tao_yy_c_buf_p = tao_yy_cp;
+ }
+#endif /* ifndef TAO_YY_NO_UNPUT */
#ifdef __cplusplus
@@ -1697,73 +1776,73 @@ 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 */
- int offset = tao_yy_c_buf_p - tao_yytext_ptr;
- ++tao_yy_c_buf_p;
-
- switch ( tao_yy_get_next_buffer() )
- {
- case EOB_ACT_LAST_MATCH:
- /* This happens because tao_yy_g_n_b()
- * sees that we've accumulated a
- * token and flags that we need to
- * try matching the token before
- * proceeding. But for input(),
- * there's no matching to consider.
- * So convert the EOB_ACT_LAST_MATCH
- * to EOB_ACT_END_OF_FILE.
- */
-
- /* Reset buffer status. */
- tao_yyrestart( tao_yyin );
-
- /* fall through */
-
- case EOB_ACT_END_OF_FILE:
- {
- if ( tao_yywrap() )
- return EOF;
-
- if ( ! tao_yy_did_buffer_switch_on_eof )
- TAO_YY_NEW_FILE;
+ {
+ 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 */
+ int offset = tao_yy_c_buf_p - tao_yytext_ptr;
+ ++tao_yy_c_buf_p;
+
+ switch ( tao_yy_get_next_buffer() )
+ {
+ case EOB_ACT_LAST_MATCH:
+ /* This happens because tao_yy_g_n_b()
+ * sees that we've accumulated a
+ * token and flags that we need to
+ * try matching the token before
+ * proceeding. But for input(),
+ * there's no matching to consider.
+ * So convert the EOB_ACT_LAST_MATCH
+ * to EOB_ACT_END_OF_FILE.
+ */
+
+ /* Reset buffer status. */
+ tao_yyrestart( tao_yyin );
+
+ /* fall through */
+
+ case EOB_ACT_END_OF_FILE:
+ {
+ if ( tao_yywrap() )
+ return EOF;
+
+ if ( ! tao_yy_did_buffer_switch_on_eof )
+ TAO_YY_NEW_FILE;
#ifdef __cplusplus
- return tao_yyinput();
+ return tao_yyinput();
#else
- return input();
+ return input();
#endif
- }
+ }
- case EOB_ACT_CONTINUE_SCAN:
- tao_yy_c_buf_p = tao_yytext_ptr + offset;
- break;
- }
- }
- }
+ case EOB_ACT_CONTINUE_SCAN:
+ tao_yy_c_buf_p = tao_yytext_ptr + offset;
+ break;
+ }
+ }
+ }
- 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;
+ 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;
- tao_yy_current_buffer->tao_yy_at_bol = (c == '\n');
+ tao_yy_current_buffer->tao_yy_at_bol = (c == '\n');
- return c;
- }
+ return c;
+ }
#ifdef TAO_YY_USE_PROTOS
@@ -1772,13 +1851,13 @@ void tao_yyrestart( FILE *input_file )
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 );
+ {
+ 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();
- }
+ tao_yy_init_buffer( tao_yy_current_buffer, input_file );
+ tao_yy_load_buffer_state();
+ }
#ifdef TAO_YY_USE_PROTOS
@@ -1787,28 +1866,28 @@ void tao_yy_switch_to_buffer( TAO_YY_BUFFER_STATE new_buffer )
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;
- }
+ {
+ 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();
+ 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;
- }
+ /* 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
@@ -1816,12 +1895,12 @@ 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;
- }
+ {
+ 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
@@ -1831,28 +1910,28 @@ TAO_YY_BUFFER_STATE tao_yy_create_buffer( file, size )
FILE *file;
int size;
#endif
- {
- TAO_YY_BUFFER_STATE b;
+ {
+ 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_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;
+ 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_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()" );
- b->tao_yy_is_our_buffer = 1;
+ b->tao_yy_is_our_buffer = 1;
- tao_yy_init_buffer( b, file );
+ tao_yy_init_buffer( b, file );
- return b;
- }
+ return b;
+ }
#ifdef TAO_YY_USE_PROTOS
@@ -1861,18 +1940,18 @@ void tao_yy_delete_buffer( TAO_YY_BUFFER_STATE b )
void tao_yy_delete_buffer( b )
TAO_YY_BUFFER_STATE b;
#endif
- {
- if ( ! b )
- return;
+ {
+ if ( ! b )
+ return;
- if ( b == tao_yy_current_buffer )
- tao_yy_current_buffer = (TAO_YY_BUFFER_STATE) 0;
+ if ( b == tao_yy_current_buffer )
+ tao_yy_current_buffer = (TAO_YY_BUFFER_STATE) 0;
- if ( b->tao_yy_is_our_buffer )
- tao_yy_flex_free( (void *) b->tao_yy_ch_buf );
+ if ( b->tao_yy_is_our_buffer )
+ tao_yy_flex_free( (void *) b->tao_yy_ch_buf );
- tao_yy_flex_free( (void *) b );
- }
+ tao_yy_flex_free( (void *) b );
+ }
#ifndef TAO_YY_ALWAYS_INTERACTIVE
@@ -1890,22 +1969,22 @@ FILE *file;
#endif
- {
- tao_yy_flush_buffer( b );
+ {
+ tao_yy_flush_buffer( b );
- b->tao_yy_input_file = file;
- b->tao_yy_fill_buffer = 1;
+ b->tao_yy_input_file = file;
+ b->tao_yy_fill_buffer = 1;
#if TAO_YY_ALWAYS_INTERACTIVE
- b->tao_yy_is_interactive = 1;
+ b->tao_yy_is_interactive = 1;
#else
#if TAO_YY_NEVER_INTERACTIVE
- b->tao_yy_is_interactive = 0;
+ b->tao_yy_is_interactive = 0;
#else
- b->tao_yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+ b->tao_yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
#endif
#endif
- }
+ }
#ifdef TAO_YY_USE_PROTOS
@@ -1915,27 +1994,27 @@ void tao_yy_flush_buffer( b )
TAO_YY_BUFFER_STATE b;
#endif
- {
- if ( ! b )
- return;
+ {
+ if ( ! b )
+ return;
- b->tao_yy_n_chars = 0;
+ b->tao_yy_n_chars = 0;
- /* 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[0] = TAO_YY_END_OF_BUFFER_CHAR;
- b->tao_yy_ch_buf[1] = TAO_YY_END_OF_BUFFER_CHAR;
+ /* 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[0] = TAO_YY_END_OF_BUFFER_CHAR;
+ b->tao_yy_ch_buf[1] = TAO_YY_END_OF_BUFFER_CHAR;
- b->tao_yy_buf_pos = &b->tao_yy_ch_buf[0];
+ b->tao_yy_buf_pos = &b->tao_yy_ch_buf[0];
- b->tao_yy_at_bol = 1;
- b->tao_yy_buffer_status = TAO_YY_BUFFER_NEW;
+ b->tao_yy_at_bol = 1;
+ b->tao_yy_buffer_status = TAO_YY_BUFFER_NEW;
- if ( b == tao_yy_current_buffer )
- tao_yy_load_buffer_state();
- }
+ if ( b == tao_yy_current_buffer )
+ tao_yy_load_buffer_state();
+ }
#ifndef TAO_YY_NO_SCAN_BUFFER
@@ -1946,33 +2025,33 @@ TAO_YY_BUFFER_STATE tao_yy_scan_buffer( base, size )
char *base;
tao_yy_size_t size;
#endif
- {
- TAO_YY_BUFFER_STATE b;
-
- if ( size < 2 ||
- base[size-2] != TAO_YY_END_OF_BUFFER_CHAR ||
- base[size-1] != TAO_YY_END_OF_BUFFER_CHAR )
- /* They forgot to leave room for the EOB's. */
- return 0;
-
- 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_scan_buffer()" );
-
- b->tao_yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
- b->tao_yy_buf_pos = b->tao_yy_ch_buf = base;
- b->tao_yy_is_our_buffer = 0;
- b->tao_yy_input_file = 0;
- b->tao_yy_n_chars = b->tao_yy_buf_size;
- b->tao_yy_is_interactive = 0;
- b->tao_yy_at_bol = 1;
- b->tao_yy_fill_buffer = 0;
- b->tao_yy_buffer_status = TAO_YY_BUFFER_NEW;
-
- tao_yy_switch_to_buffer( b );
-
- return b;
- }
+ {
+ TAO_YY_BUFFER_STATE b;
+
+ if ( size < 2 ||
+ base[size-2] != TAO_YY_END_OF_BUFFER_CHAR ||
+ base[size-1] != TAO_YY_END_OF_BUFFER_CHAR )
+ /* They forgot to leave room for the EOB's. */
+ return 0;
+
+ 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_scan_buffer()" );
+
+ b->tao_yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
+ b->tao_yy_buf_pos = b->tao_yy_ch_buf = base;
+ b->tao_yy_is_our_buffer = 0;
+ b->tao_yy_input_file = 0;
+ b->tao_yy_n_chars = b->tao_yy_buf_size;
+ b->tao_yy_is_interactive = 0;
+ b->tao_yy_at_bol = 1;
+ b->tao_yy_fill_buffer = 0;
+ b->tao_yy_buffer_status = TAO_YY_BUFFER_NEW;
+
+ tao_yy_switch_to_buffer( b );
+
+ return b;
+ }
#endif
@@ -1983,13 +2062,13 @@ TAO_YY_BUFFER_STATE tao_yy_scan_string( tao_yyconst char *tao_yy_str )
TAO_YY_BUFFER_STATE tao_yy_scan_string( tao_yy_str )
tao_yyconst char *tao_yy_str;
#endif
- {
- int len;
- for ( len = 0; tao_yy_str[len]; ++len )
- ;
+ {
+ int len;
+ for ( len = 0; tao_yy_str[len]; ++len )
+ ;
- return tao_yy_scan_bytes( tao_yy_str, len );
- }
+ return tao_yy_scan_bytes( tao_yy_str, len );
+ }
#endif
@@ -2001,34 +2080,34 @@ TAO_YY_BUFFER_STATE tao_yy_scan_bytes( bytes, len )
tao_yyconst char *bytes;
int len;
#endif
- {
- TAO_YY_BUFFER_STATE b;
- char *buf;
- tao_yy_size_t n;
- int i;
+ {
+ TAO_YY_BUFFER_STATE b;
+ char *buf;
+ tao_yy_size_t n;
+ int i;
- /* Get memory for full buffer, including space for trailing EOB's. */
- n = len + 2;
- buf = (char *) tao_yy_flex_alloc( n );
- if ( ! buf )
- TAO_YY_FATAL_ERROR( "out of dynamic memory in tao_yy_scan_bytes()" );
+ /* Get memory for full buffer, including space for trailing EOB's. */
+ n = len + 2;
+ buf = (char *) tao_yy_flex_alloc( n );
+ if ( ! buf )
+ TAO_YY_FATAL_ERROR( "out of dynamic memory in tao_yy_scan_bytes()" );
- for ( i = 0; i < len; ++i )
- buf[i] = bytes[i];
+ for ( i = 0; i < len; ++i )
+ buf[i] = bytes[i];
- buf[len] = buf[len+1] = TAO_YY_END_OF_BUFFER_CHAR;
+ buf[len] = buf[len+1] = TAO_YY_END_OF_BUFFER_CHAR;
- b = tao_yy_scan_buffer( buf, n );
- if ( ! b )
- TAO_YY_FATAL_ERROR( "bad buffer in tao_yy_scan_bytes()" );
+ b = tao_yy_scan_buffer( buf, n );
+ if ( ! b )
+ TAO_YY_FATAL_ERROR( "bad buffer in tao_yy_scan_bytes()" );
- /* It's okay to grow etc. this buffer, and we should throw it
- * away when we're done.
- */
- b->tao_yy_is_our_buffer = 1;
+ /* It's okay to grow etc. this buffer, and we should throw it
+ * away when we're done.
+ */
+ b->tao_yy_is_our_buffer = 1;
- return b;
- }
+ return b;
+ }
#endif
@@ -2039,49 +2118,49 @@ static void tao_yy_push_state( int new_state )
static void tao_yy_push_state( new_state )
int new_state;
#endif
- {
- if ( tao_yy_start_stack_ptr >= tao_yy_start_stack_depth )
- {
- tao_yy_size_t new_size;
+ {
+ if ( tao_yy_start_stack_ptr >= tao_yy_start_stack_depth )
+ {
+ tao_yy_size_t new_size;
- tao_yy_start_stack_depth += TAO_YY_START_STACK_INCR;
- new_size = tao_yy_start_stack_depth * sizeof( int );
+ 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 );
+ 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 );
+ 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" );
- }
+ 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;
+ tao_yy_start_stack[tao_yy_start_stack_ptr++] = TAO_YY_START;
- BEGIN(new_state);
- }
+ BEGIN(new_state);
+ }
#endif
#ifndef TAO_YY_NO_POP_STATE
static void tao_yy_pop_state()
- {
- if ( --tao_yy_start_stack_ptr < 0 )
- TAO_YY_FATAL_ERROR( "start-condition stack underflow" );
+ {
+ 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]);
- }
+ BEGIN(tao_yy_start_stack[tao_yy_start_stack_ptr]);
+ }
#endif
#ifndef TAO_YY_NO_TOP_STATE
static int tao_yy_top_state()
- {
- return tao_yy_start_stack[tao_yy_start_stack_ptr - 1];
- }
+ {
+ return tao_yy_start_stack[tao_yy_start_stack_ptr - 1];
+ }
#endif
#ifndef TAO_YY_EXIT_FAILURE
@@ -2094,10 +2173,10 @@ static void tao_yy_fatal_error( tao_yyconst char msg[] )
static void tao_yy_fatal_error( msg )
char msg[];
#endif
- {
- (void) fprintf( stderr, "%s\n", msg );
- ACE_OS::exit (TAO_YY_EXIT_FAILURE);
- }
+ {
+ (void) fprintf( stderr, "%s\n", msg );
+ exit( TAO_YY_EXIT_FAILURE );
+ }
@@ -2105,16 +2184,16 @@ char msg[];
#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_hold_char = *tao_yy_c_buf_p; \
- *tao_yy_c_buf_p = '\0'; \
- tao_yyleng = n; \
- } \
- while ( 0 )
+ 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_hold_char = *tao_yy_c_buf_p; \
+ *tao_yy_c_buf_p = '\0'; \
+ tao_yyleng = n; \
+ } \
+ while ( 0 )
/* Internal utility routines. */
@@ -2128,11 +2207,11 @@ char *s1;
tao_yyconst char *s2;
int n;
#endif
- {
- register int i;
- for ( i = 0; i < n; ++i )
- s1[i] = s2[i];
- }
+ {
+ register int i;
+ for ( i = 0; i < n; ++i )
+ s1[i] = s2[i];
+ }
#endif
#ifdef TAO_YY_NEED_STRLEN
@@ -2142,13 +2221,13 @@ static int tao_yy_flex_strlen( tao_yyconst char *s )
static int tao_yy_flex_strlen( s )
tao_yyconst char *s;
#endif
- {
- register int n;
- for ( n = 0; s[n]; ++n )
- ;
+ {
+ register int n;
+ for ( n = 0; s[n]; ++n )
+ ;
- return n;
- }
+ return n;
+ }
#endif
@@ -2158,9 +2237,9 @@ static void *tao_yy_flex_alloc( tao_yy_size_t size )
static void *tao_yy_flex_alloc( size )
tao_yy_size_t size;
#endif
- {
- return (void *) malloc( size );
- }
+ {
+ return (void *) malloc( size );
+ }
#ifdef TAO_YY_USE_PROTOS
static void *tao_yy_flex_realloc( void *ptr, tao_yy_size_t size )
@@ -2169,16 +2248,16 @@ static void *tao_yy_flex_realloc( ptr, size )
void *ptr;
tao_yy_size_t size;
#endif
- {
- /* The cast to (char *) in the following accommodates both
- * implementations that use char* generic pointers, and those
- * that use void* generic pointers. It works with the latter
- * because both ANSI C and C++ allow castless assignment from
- * any pointer type to void*, and deal with argument conversions
- * as though doing an assignment.
- */
- return (void *) realloc( (char *) ptr, size );
- }
+ {
+ /* The cast to (char *) in the following accommodates both
+ * implementations that use char* generic pointers, and those
+ * that use void* generic pointers. It works with the latter
+ * because both ANSI C and C++ allow castless assignment from
+ * any pointer type to void*, and deal with argument conversions
+ * as though doing an assignment.
+ */
+ return (void *) realloc( (char *) ptr, size );
+ }
#ifdef TAO_YY_USE_PROTOS
static void tao_yy_flex_free( void *ptr )
@@ -2186,20 +2265,20 @@ static void tao_yy_flex_free( void *ptr )
static void tao_yy_flex_free( ptr )
void *ptr;
#endif
- {
- free( ptr );
- }
+ {
+ free( ptr );
+ }
#if TAO_YY_MAIN
int main()
- {
- tao_yylex();
- return 0;
- }
+ {
+ tao_yylex();
+ return 0;
+ }
#endif
-#line 263 "fe/idl.ll"
+#line 284 "fe/idl.ll"
- /* subroutines */
+ /* subroutines */
/*
* Strip down a name to the last component, i.e. everything after the last
@@ -2208,11 +2287,11 @@ int main()
static char *
stripped_name(UTL_String *fn)
{
- char *n = fn->get_string();
- long l;
+ char *n = fn->get_string();
+ long l;
if (n == NULL)
- return NULL;
+ return NULL;
l = strlen(n);
for (n += l; l > 0 && *n != '/'; l--, n--);
if (*n == '/') n++;
@@ -2225,9 +2304,9 @@ stripped_name(UTL_String *fn)
static void
idl_parse_line_and_file(char *buf)
{
- char *r = buf;
- char *h;
- UTL_String *nm;
+ char *r = buf;
+ char *h;
+ UTL_String *nm;
/* Skip initial '#' */
if (*r != '#')
@@ -2270,9 +2349,9 @@ idl_parse_line_and_file(char *buf)
for (i = 0, j = 0; h[j] != '\0'; i++, j++)
{
if (h[j] == '\\' && h[j + 1] == '\\')
- j++;
+ j++;
- h[i] = h[j];
+ h[i] = h[j];
}
h[i] = '\0';
idl_global->set_filename(new String(h));
@@ -2307,7 +2386,7 @@ idl_store_pragma(char *buf)
while (*sp != '\n')
{
*tp = *sp;
- ++tp; ++sp;
+ ++tp; ++sp;
}
}
@@ -2338,32 +2417,32 @@ idl_store_pragma(char *buf)
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;
+ 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;
}
/*
@@ -2372,56 +2451,56 @@ idl_atoi(char *s, long b)
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;
+ 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;
}
/*
@@ -2433,61 +2512,61 @@ idl_escape_reader(
)
{
if (str[0] != '\\') {
- return str[0];
+ return str[0];
}
switch (str[1]) {
case 'n':
- return '\n';
+ return '\n';
case 't':
- return '\t';
+ return '\t';
case 'v':
- return '\v';
+ return '\v';
case 'b':
- return '\b';
+ return '\b';
case 'r':
- return '\r';
+ return '\r';
case 'f':
- return '\f';
+ return '\f';
case 'a':
- return '\a';
+ return '\a';
case '\\':
- return '\\';
+ return '\\';
case '\?':
- return '?';
+ return '?';
case '\'':
- return '\'';
+ return '\'';
case '"':
- return '"';
+ 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;
- }
- TAO_YY_BREAK;
+ {
+ 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';
- }
- TAO_YY_BREAK;
+ // 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/y.tab.cpp b/TAO/TAO_IDL/fe/y.tab.cpp
index 5240ad07aef..9272762ed31 100644
--- a/TAO/TAO_IDL/fe/y.tab.cpp
+++ b/TAO/TAO_IDL/fe/y.tab.cpp
@@ -1,6 +1,6 @@
// $Id$
#ifndef lint
-char tao_yysccsid[] = "@(#)yaccpar 1.4 (Berkeley) 02/25/90 \n\
+char tao_yysccsid[] = "@(#)yaccpar 1.4 (Berkeley) 02/25/90 \n\
Modified 5/2/90 by J. Roskind to support graphic debugging modes";
#endif
#line 74 "fe/idl.tao_yy"
@@ -10,8 +10,8 @@ char tao_yysccsid[] = "@(#)yaccpar 1.4 (Berkeley) 02/25/90 \n\
#include <stdio.h>
#if (defined(apollo) || defined(hpux)) && defined(__cplusplus)
-extern "C" int tao_yywrap();
-#endif /* (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);
@@ -23,32 +23,34 @@ extern int tao_yyleng;
#define TAO_YYDEBUG 1
#line 97 "fe/idl.tao_yy"
typedef 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 */
+ 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 */
+ FE_obv_header *vhval; /* Valuetype header */
+ AST_Expression *exval; /* Expression value */
+ AST_UnionLabel *ulval; /* Union label */
+ AST_Field *ffval; /* Field value */
+ AST_Field::Visibility vival; /* N/A, pub or priv */
+ 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 */
+ String *sval; /* String value */
+ char *strval; /* char * value */
+ Identifier *idval; /* Identifier */
+ UTL_IdList *idlist; /* Identifier list */
} TAO_YYSTYPE;
-#line 51 "y.tab.cpp"
+#line 53 "y.tab.cpp"
#define IDENTIFIER 257
#define IDL_CONST 258
#define IDL_MODULE 259
@@ -85,382 +87,459 @@ typedef union {
#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
+#define IDL_ABSTRACT 293
+#define IDL_CUSTOM 294
+#define IDL_INIT 295
+#define IDL_PRIVATE 296
+#define IDL_PUBLIC 297
+#define IDL_SUPPORTS 298
+#define IDL_TRUNCATABLE 299
+#define IDL_VALUETYPE 300
+#define IDL_INTEGER_LITERAL 301
+#define IDL_STRING_LITERAL 302
+#define IDL_CHARACTER_LITERAL 303
+#define IDL_FLOATING_PT_LITERAL 304
+#define IDL_TRUETOK 305
+#define IDL_FALSETOK 306
+#define IDL_SCOPE_DELIMITOR 307
+#define IDL_LEFT_SHIFT 308
+#define IDL_RIGHT_SHIFT 309
#define TAO_YYERRCODE 256
short tao_yylhs[] = { -1,
- 0, 67, 67, 69, 68, 71, 68, 73, 68, 75,
- 68, 77, 68, 78, 68, 79, 80, 81, 82, 76,
- 74, 74, 85, 87, 88, 83, 89, 64, 32, 90,
- 22, 22, 86, 86, 92, 91, 93, 91, 94, 91,
- 96, 91, 98, 91, 99, 91, 20, 100, 21, 21,
- 16, 101, 16, 102, 16, 65, 84, 103, 104, 105,
- 106, 70, 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, 109, 107,
- 1, 1, 2, 2, 2, 56, 56, 56, 56, 56,
- 56, 4, 4, 4, 3, 3, 3, 28, 110, 29,
- 29, 60, 60, 30, 111, 31, 31, 61, 62, 49,
- 49, 54, 54, 54, 55, 55, 55, 52, 52, 52,
- 50, 50, 57, 51, 53, 112, 113, 115, 116, 7,
- 114, 118, 118, 119, 120, 117, 121, 117, 122, 123,
- 124, 125, 126, 127, 129, 130, 10, 9, 9, 9,
- 9, 9, 9, 128, 132, 132, 133, 134, 131, 135,
- 131, 26, 27, 27, 136, 46, 137, 138, 46, 139,
- 47, 140, 141, 143, 144, 8, 142, 147, 146, 146,
- 145, 148, 149, 5, 5, 150, 151, 13, 153, 154,
- 6, 6, 152, 156, 157, 14, 14, 155, 158, 11,
- 24, 25, 25, 159, 160, 45, 161, 162, 95, 63,
- 63, 163, 164, 165, 166, 72, 167, 169, 170, 171,
- 97, 59, 59, 59, 12, 12, 172, 168, 174, 168,
- 173, 177, 176, 176, 178, 179, 175, 15, 15, 15,
- 58, 58, 58, 180, 181, 23, 23, 182, 183, 17,
- 17, 18, 184, 19, 19,
+ 0, 71, 71, 73, 72, 75, 72, 77, 72, 79,
+ 72, 81, 72, 83, 72, 84, 72, 85, 86, 87,
+ 88, 80, 78, 78, 91, 93, 94, 89, 95, 67,
+ 33, 96, 22, 22, 82, 82, 82, 82, 97, 97,
+ 102, 104, 105, 101, 106, 107, 108, 98, 34, 109,
+ 68, 66, 66, 24, 24, 99, 99, 100, 103, 103,
+ 110, 110, 110, 115, 111, 116, 111, 92, 92, 117,
+ 112, 118, 112, 119, 112, 121, 112, 123, 112, 124,
+ 112, 20, 125, 21, 21, 16, 126, 16, 127, 16,
+ 69, 90, 128, 129, 130, 131, 74, 50, 50, 50,
+ 50, 50, 50, 50, 50, 35, 36, 37, 37, 38,
+ 38, 39, 39, 40, 40, 40, 41, 41, 41, 42,
+ 42, 42, 42, 43, 43, 43, 43, 44, 44, 44,
+ 45, 45, 45, 45, 45, 45, 46, 133, 70, 70,
+ 70, 70, 70, 134, 132, 1, 1, 2, 2, 2,
+ 58, 58, 58, 58, 58, 58, 4, 4, 4, 3,
+ 3, 3, 29, 135, 30, 30, 62, 62, 31, 136,
+ 32, 32, 63, 64, 51, 51, 56, 56, 56, 57,
+ 57, 57, 54, 54, 54, 52, 52, 59, 53, 55,
+ 137, 138, 140, 141, 7, 139, 143, 143, 144, 142,
+ 145, 146, 114, 147, 114, 148, 149, 150, 151, 152,
+ 153, 155, 156, 10, 9, 9, 9, 9, 9, 9,
+ 154, 158, 158, 159, 160, 157, 161, 157, 27, 28,
+ 28, 162, 48, 163, 164, 48, 165, 49, 166, 167,
+ 169, 170, 8, 168, 173, 172, 172, 171, 174, 175,
+ 5, 5, 176, 177, 13, 179, 180, 6, 6, 178,
+ 182, 183, 14, 14, 181, 184, 11, 25, 26, 26,
+ 185, 186, 47, 187, 188, 120, 65, 65, 189, 190,
+ 191, 192, 76, 193, 195, 196, 197, 122, 61, 61,
+ 61, 12, 12, 113, 198, 194, 200, 194, 199, 203,
+ 202, 202, 204, 205, 201, 15, 15, 15, 60, 60,
+ 60, 206, 207, 23, 23, 208, 209, 17, 17, 18,
+ 210, 19, 19,
};
short tao_yylen[] = { 2,
1, 2, 0, 0, 3, 0, 3, 0, 3, 0,
- 3, 0, 3, 0, 3, 0, 0, 0, 0, 9,
- 1, 1, 0, 0, 0, 7, 0, 3, 2, 0,
- 3, 0, 2, 0, 0, 3, 0, 3, 0, 3,
- 0, 3, 0, 3, 0, 3, 2, 0, 4, 0,
- 1, 0, 3, 0, 4, 1, 1, 0, 0, 0,
- 0, 9, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 3, 1, 3, 1, 3, 1, 3,
- 3, 1, 3, 3, 1, 3, 3, 3, 1, 2,
- 2, 2, 1, 1, 3, 1, 1, 1, 1, 1,
- 1, 1, 0, 3, 1, 1, 1, 2, 0, 3,
+ 3, 0, 3, 0, 3, 0, 3, 0, 0, 0,
+ 0, 9, 1, 1, 0, 0, 0, 7, 0, 3,
+ 2, 0, 3, 0, 1, 1, 1, 1, 2, 1,
+ 0, 0, 0, 7, 0, 0, 0, 8, 4, 0,
+ 3, 1, 0, 2, 0, 2, 1, 2, 2, 0,
+ 1, 1, 1, 0, 3, 0, 3, 2, 0, 0,
+ 3, 0, 3, 0, 3, 0, 3, 0, 3, 0,
+ 3, 2, 0, 4, 0, 1, 0, 3, 0, 4,
+ 1, 1, 0, 0, 0, 0, 9, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 3, 1,
+ 3, 1, 3, 1, 3, 3, 1, 3, 3, 1,
+ 3, 3, 3, 1, 2, 2, 2, 1, 1, 3,
+ 1, 1, 1, 1, 1, 1, 1, 0, 3, 1,
+ 1, 1, 2, 0, 3, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 2, 0, 4,
- 0, 1, 1, 2, 0, 4, 0, 1, 1, 1,
- 1, 1, 2, 1, 2, 3, 2, 1, 1, 2,
- 1, 1, 1, 1, 1, 0, 0, 0, 0, 9,
- 2, 2, 0, 0, 0, 5, 0, 3, 0, 0,
- 0, 0, 0, 0, 0, 0, 17, 1, 1, 1,
- 1, 1, 1, 2, 2, 0, 0, 0, 5, 0,
- 3, 2, 2, 0, 0, 3, 0, 0, 5, 0,
- 3, 0, 0, 0, 0, 9, 2, 0, 4, 0,
- 1, 0, 0, 6, 2, 0, 0, 5, 0, 0,
- 6, 1, 1, 0, 0, 6, 1, 1, 0, 3,
- 2, 2, 0, 0, 0, 5, 0, 0, 6, 1,
- 0, 0, 0, 0, 0, 9, 0, 0, 0, 0,
- 10, 1, 1, 0, 1, 1, 0, 3, 0, 4,
- 2, 0, 4, 0, 0, 0, 5, 1, 1, 1,
- 1, 1, 1, 0, 0, 6, 0, 0, 0, 6,
- 0, 2, 0, 4, 0,
+ 1, 1, 2, 0, 4, 0, 1, 1, 2, 0,
+ 4, 0, 1, 1, 1, 1, 1, 2, 1, 2,
+ 3, 2, 1, 1, 2, 1, 1, 1, 1, 1,
+ 0, 0, 0, 0, 9, 2, 2, 0, 0, 2,
+ 0, 0, 5, 0, 3, 0, 0, 0, 0, 0,
+ 0, 0, 0, 17, 1, 1, 1, 1, 1, 1,
+ 2, 2, 0, 0, 0, 5, 0, 3, 2, 2,
+ 0, 0, 3, 0, 0, 5, 0, 3, 0, 0,
+ 0, 0, 9, 2, 0, 4, 0, 1, 0, 0,
+ 6, 2, 0, 0, 5, 0, 0, 6, 1, 1,
+ 0, 0, 6, 1, 1, 0, 3, 2, 2, 0,
+ 0, 0, 5, 0, 0, 6, 1, 0, 0, 0,
+ 0, 0, 9, 0, 0, 0, 0, 10, 1, 1,
+ 0, 1, 1, 1, 0, 3, 0, 4, 2, 0,
+ 4, 0, 0, 0, 5, 1, 1, 1, 1, 1,
+ 1, 0, 0, 6, 0, 0, 0, 6, 0, 2,
+ 0, 4, 0,
};
short tao_yydefred[] = { 0,
- 14, 58, 16, 27, 103, 156, 169, 202, 242, 0,
- 0, 105, 107, 106, 23, 0, 4, 1, 0, 6,
- 8, 10, 12, 21, 22, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 56, 108, 138, 0, 30, 29,
- 0, 2, 0, 0, 0, 0, 15, 0, 144, 0,
- 148, 149, 151, 152, 153, 154, 223, 228, 52, 68,
- 69, 0, 59, 63, 64, 66, 67, 140, 141, 65,
- 51, 0, 0, 17, 28, 155, 216, 109, 111, 112,
- 114, 122, 123, 125, 127, 126, 0, 124, 0, 116,
- 118, 119, 117, 121, 113, 120, 104, 157, 170, 203,
- 243, 24, 0, 5, 7, 9, 11, 13, 143, 150,
- 0, 147, 0, 54, 0, 219, 224, 0, 0, 0,
- 212, 215, 0, 0, 0, 0, 34, 0, 31, 146,
- 53, 0, 60, 0, 0, 18, 217, 139, 110, 131,
- 132, 133, 0, 0, 158, 171, 204, 244, 0, 0,
- 55, 0, 96, 97, 98, 99, 100, 101, 0, 0,
- 0, 0, 0, 102, 0, 0, 0, 0, 0, 0,
- 85, 89, 94, 220, 225, 0, 0, 0, 0, 213,
- 0, 0, 0, 163, 45, 240, 252, 253, 0, 0,
- 35, 37, 39, 0, 33, 41, 43, 48, 61, 90,
- 91, 92, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 19, 218, 129, 234, 230,
- 233, 0, 167, 164, 159, 163, 172, 211, 205, 210,
- 0, 0, 256, 269, 247, 255, 0, 268, 237, 0,
- 0, 0, 26, 0, 0, 0, 0, 95, 0, 0,
- 0, 0, 0, 0, 0, 86, 87, 88, 221, 226,
- 0, 0, 0, 0, 214, 0, 0, 0, 0, 0,
- 0, 0, 162, 0, 46, 0, 0, 36, 38, 40,
- 42, 44, 0, 62, 71, 20, 130, 235, 232, 168,
- 165, 160, 0, 182, 173, 0, 178, 179, 181, 180,
- 206, 208, 246, 248, 238, 0, 0, 0, 0, 0,
- 0, 236, 166, 174, 209, 0, 249, 239, 137, 0,
- 0, 0, 0, 0, 175, 258, 271, 272, 273, 265,
- 0, 264, 274, 250, 135, 0, 0, 260, 0, 0,
- 0, 0, 190, 197, 195, 187, 194, 176, 186, 266,
- 262, 275, 278, 251, 136, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 191, 198, 196, 200,
- 188, 193, 177, 185, 267, 263, 0, 279, 0, 0,
- 0, 276, 0, 199, 201, 189, 285, 0, 0, 280,
- 283, 0, 284,
+ 16, 93, 18, 29, 138, 191, 206, 239, 279, 0,
+ 0, 0, 50, 0, 140, 142, 141, 25, 41, 0,
+ 0, 4, 1, 0, 6, 8, 10, 12, 14, 23,
+ 24, 35, 36, 37, 38, 40, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 91, 143, 173, 45, 0,
+ 0, 39, 0, 0, 0, 32, 31, 0, 179, 0,
+ 183, 184, 186, 187, 188, 189, 190, 253, 260, 265,
+ 52, 87, 58, 146, 147, 149, 157, 158, 160, 162,
+ 161, 0, 159, 0, 151, 153, 154, 152, 156, 175,
+ 176, 148, 155, 0, 86, 0, 0, 0, 2, 0,
+ 0, 0, 0, 0, 17, 103, 104, 0, 94, 98,
+ 99, 101, 102, 100, 19, 30, 144, 139, 192, 207,
+ 240, 280, 0, 51, 26, 42, 0, 178, 185, 0,
+ 182, 0, 0, 249, 252, 89, 0, 256, 261, 5,
+ 7, 9, 11, 13, 15, 0, 0, 0, 0, 0,
+ 0, 0, 46, 69, 60, 0, 33, 181, 254, 88,
+ 0, 0, 0, 49, 0, 0, 95, 20, 174, 145,
+ 166, 167, 168, 0, 193, 208, 241, 281, 69, 0,
+ 0, 0, 0, 131, 132, 133, 134, 135, 136, 0,
+ 0, 0, 0, 0, 137, 0, 0, 0, 0, 0,
+ 0, 120, 124, 129, 250, 90, 0, 257, 262, 0,
+ 0, 0, 0, 199, 0, 0, 198, 0, 80, 277,
+ 289, 290, 0, 0, 70, 72, 74, 0, 68, 76,
+ 78, 294, 66, 64, 0, 59, 61, 62, 63, 83,
+ 255, 125, 126, 127, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 96, 21,
+ 164, 271, 267, 270, 194, 198, 0, 209, 248, 242,
+ 247, 0, 0, 0, 293, 307, 284, 292, 0, 306,
+ 274, 0, 0, 0, 28, 0, 0, 0, 0, 44,
+ 0, 130, 0, 0, 0, 0, 0, 0, 0, 121,
+ 122, 123, 251, 258, 263, 0, 0, 0, 0, 0,
+ 0, 0, 204, 201, 200, 0, 0, 0, 197, 0,
+ 48, 81, 0, 0, 71, 73, 75, 77, 79, 67,
+ 65, 0, 97, 106, 22, 165, 272, 269, 195, 0,
+ 0, 0, 219, 210, 0, 215, 216, 218, 217, 243,
+ 245, 283, 285, 275, 0, 205, 202, 0, 0, 0,
+ 0, 273, 0, 211, 246, 0, 286, 276, 172, 203,
+ 0, 0, 0, 0, 0, 212, 296, 309, 310, 311,
+ 303, 0, 302, 312, 287, 170, 0, 0, 298, 0,
+ 0, 0, 0, 227, 234, 232, 224, 231, 213, 223,
+ 304, 300, 313, 316, 288, 171, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 228, 235, 233,
+ 237, 225, 230, 214, 222, 305, 301, 0, 317, 0,
+ 0, 0, 314, 0, 236, 238, 226, 323, 0, 0,
+ 318, 321, 0, 322,
};
-short tao_yydgoto[] = { 11,
- 224, 79, 80, 81, 82, 83, 84, 85, 295, 86,
- 138, 235, 87, 88, 236, 163, 354, 388, 389, 129,
- 150, 40, 334, 220, 264, 346, 360, 139, 178, 318,
- 324, 15, 284, 164, 165, 166, 167, 168, 169, 170,
- 171, 172, 173, 174, 221, 347, 371, 63, 90, 91,
- 92, 93, 94, 68, 69, 95, 96, 330, 189, 140,
- 141, 142, 190, 16, 71, 17, 18, 19, 41, 20,
- 43, 21, 44, 22, 45, 23, 46, 26, 28, 118,
- 176, 261, 24, 25, 38, 149, 127, 194, 29, 103,
- 195, 240, 241, 242, 196, 244, 197, 245, 232, 246,
- 113, 132, 27, 115, 152, 247, 97, 30, 120, 262,
- 342, 31, 123, 225, 181, 268, 273, 231, 267, 307,
- 266, 32, 124, 182, 270, 308, 320, 348, 336, 361,
- 349, 362, 359, 381, 356, 358, 357, 379, 380, 33,
- 125, 229, 183, 271, 230, 272, 309, 144, 222, 119,
- 177, 72, 134, 214, 73, 135, 215, 179, 263, 306,
- 277, 311, 34, 126, 184, 274, 276, 317, 310, 323,
- 341, 321, 331, 322, 332, 339, 364, 337, 363, 340,
- 365, 366, 383, 392,
+short tao_yydgoto[] = { 14,
+ 314, 74, 75, 76, 77, 78, 15, 16, 344, 17,
+ 169, 277, 82, 83, 278, 194, 405, 439, 440, 157,
+ 182, 57, 385, 164, 263, 310, 397, 411, 170, 212,
+ 368, 375, 18, 19, 333, 195, 196, 197, 198, 199,
+ 200, 201, 202, 203, 204, 205, 264, 398, 422, 109,
+ 85, 86, 87, 88, 89, 90, 91, 92, 93, 381,
+ 223, 171, 172, 173, 224, 94, 20, 21, 95, 22,
+ 23, 24, 98, 25, 100, 26, 101, 27, 102, 28,
+ 103, 29, 104, 37, 39, 147, 211, 307, 30, 31,
+ 54, 180, 154, 228, 40, 127, 32, 33, 34, 35,
+ 36, 55, 181, 155, 235, 123, 179, 273, 53, 236,
+ 237, 229, 239, 315, 289, 288, 282, 283, 284, 230,
+ 286, 231, 287, 274, 291, 133, 162, 38, 146, 210,
+ 306, 118, 41, 148, 308, 393, 42, 149, 265, 214,
+ 311, 319, 272, 267, 341, 363, 340, 43, 150, 215,
+ 316, 358, 371, 399, 387, 412, 400, 413, 410, 432,
+ 407, 409, 408, 430, 431, 44, 151, 270, 216, 317,
+ 271, 318, 359, 161, 256, 132, 183, 96, 165, 257,
+ 97, 166, 258, 213, 309, 355, 324, 361, 45, 152,
+ 217, 320, 323, 367, 360, 374, 392, 372, 382, 373,
+ 383, 390, 415, 388, 414, 391, 416, 417, 434, 443,
};
-short tao_yysindex[] = { 333,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, -194,
- 0, 0, 0, 0, 0, 10, 0, 0, 333, 0,
- 0, 0, 0, 0, 0, 25, 254, -177, -194, 162,
- -194, -194, -194, -194, 0, 0, 0, -34, 0, 0,
- 47, 0, 52, 61, 78, 103, 0, -54, 0, -187,
+short tao_yysindex[] = { 493,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, -234,
+ -269, -269, 0, 0, 0, 0, 0, 0, 0, -3,
+ 312, 0, 0, 493, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 17, 440, -198, -234,
+ 358, -234, -234, -234, -234, 0, 0, 0, 0, -208,
+ -208, 0, -234, -21, 5, 0, 0, -92, 0, -154,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, -131, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 126, 150, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 77, 0, -131, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, -183, 0, 0, 0, 0, 0, 0, 0,
- -90, 0, -194, 0, -194, 0, 0, 72, 152, -194,
- 0, 0, 95, -53, 119, 122, 0, -131, 0, 0,
- 0, -194, 0, 26, 26, 0, 0, 0, 0, 0,
- 0, 0, 0, 26, 0, 0, 0, 0, 303, 212,
- 0, 209, 0, 0, 0, 0, 0, 0, -30, -30,
- -30, 26, -131, 0, 156, 182, 246, -154, 159, 89,
- 0, 0, 0, 0, 0, 333, 211, 242, 196, 0,
- 137, 248, 32, 0, 0, 0, 0, 0, 228, 13,
- 0, 0, 0, 165, 0, 0, 0, 0, 0, 0,
- 0, 0, 250, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 230, 235, 0, 0, 0, 0, 0,
- 0, 236, 0, 0, 0, 0, 0, 0, 0, 0,
- 137, 243, 0, 0, 0, 0, -131, 0, 0, 245,
- 247, 249, 0, 251, 253, -183, 26, 0, 182, 246,
- -154, 159, 159, 89, 89, 0, 0, 0, 0, 0,
- 180, -194, 26, 196, 0, 257, -194, 188, 137, 287,
- 192, 263, 0, 193, 0, 71, 271, 0, 0, 0,
- 0, 0, -131, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 67, 0, 0, -131, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 238, 277, 296, 32, 298,
- -194, 0, 0, 0, 0, 0, 0, 0, 0, 219,
- 302, -63, 55, 300, 0, 0, 0, 0, 0, 0,
- 305, 0, 0, 0, 0, -74, 271, 0, 304, 307,
- 58, -194, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 293, 26, 297, 162, -102,
- 229, -74, -194, -63, -183, 318, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 319, 0, 301, -194,
- 306, 0, 69, 0, 0, 0, 0, 323, 324, 0,
- 0, 79, 0,
+ 0, 69, 0, -191, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -3, 0, 74, 81, 88, 0, 123,
+ 128, 135, 150, 157, 0, 0, 0, -191, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 101, 0, 0, 0, -215, 0, 0, -6,
+ 0, 182, -234, 0, 0, 0, -52, 0, 0, 0,
+ 0, 0, 0, 0, 0, -234, 129, -234, 144, 29,
+ 156, 195, 0, 0, 0, -191, 0, 0, 0, 0,
+ 72, -234, -215, 0, 72, 72, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 547,
+ 517, 246, 392, 0, 0, 0, 0, 0, 0, 20,
+ 20, 20, 72, -191, 0, 181, 234, 292, -119, 43,
+ 196, 0, 0, 0, 0, 0, -191, 0, 0, 274,
+ 493, 293, 245, 0, 298, 82, 0, 547, 0, 0,
+ 0, 0, 409, 57, 0, 0, 0, 217, 0, 0,
+ 0, 0, 0, 0, 218, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 305, 72, 72, 72, 72, 72,
+ 72, 72, 72, 72, 72, 285, 286, 288, 0, 0,
+ 0, 0, 0, 0, 0, 0, 287, 0, 0, 0,
+ 0, 0, 224, 294, 0, 0, 0, 0, -191, 0,
+ 0, 296, 299, 300, 0, 303, 306, 287, 287, 0,
+ -215, 0, 234, 292, -119, 43, 43, 196, 196, 0,
+ 0, 0, 0, 0, 0, 72, 227, -234, 72, 245,
+ 241, 0, 0, 0, 0, 473, 242, 325, 0, 255,
+ 0, 0, 124, 457, 0, 0, 0, 0, 0, 0,
+ 0, -191, 0, 0, 0, 0, 0, 0, 0, 323,
+ -234, 125, 0, 0, -191, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 295, 0, 0, 344, 82, 349,
+ -234, 0, 333, 0, 0, 0, 0, 0, 0, 0,
+ 270, 354, -67, 108, 355, 0, 0, 0, 0, 0,
+ 0, 359, 0, 0, 0, 0, -155, 457, 0, 357,
+ 362, 112, -234, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 347, 72, 351, 358,
+ -84, 289, -155, -234, -67, -215, 370, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 371, 0, 353,
+ -234, 356, 0, 111, 0, 0, 0, 0, 378, 372,
+ 0, 0, 118, 0,
};
-short tao_yyrindex[] = { 371,
+short tao_yyrindex[] = { 422,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
+ -45, 0, 0, 39, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, -1,
+ -43, 0, 0, 0, 0, 0, 0, 9, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, -27, 0, 0, 17, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 106, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -94, 0, 107, 115, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 178, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, -19, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 23,
+ 0, 0, 0, 0, 0, 0, 319, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 115, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 28, 38, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 57, 0,
+ 0, 0, 0, 0, 0, -24, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 158, 0, 0, 0, 0, 0, 207,
+ 232, 10, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 3, 0, 248, 126, 113, 167, 25,
+ 11, 0, 0, 0, 0, 0, 320, 0, 0, 0,
+ 338, 385, 0, 0, 0, 0, 0, 259, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 94, 0, 0, 0, 0, 0, 112, 9,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, -29, 0, 99, 129, 155, 107, 50, -7,
- 0, 0, 0, 0, 0, 259, 0, 326, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 161, 0, 0, 0, 0, 0, 0, 188, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 177, 121, 479, 52, 62, 36, 99, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 258,
+ 0, 184, 0, 0, 0, 0, 0, 340, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -17, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 417, 0, 0, 425, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 261, 0, 0, 0, 0, 0, 130, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 157, 268,
- 135, 56, 66, -1, 40, 0, 0, 0, 0, 0,
- 0, 0, 0, 140, 0, 0, 0, 0, 265, 0,
- 0, 266, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 18, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 347, 0, 0, 355, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, -30, 0, 0, 0, 0,
+ 0, 0, 0, -47, 408, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 438,
+ 0, 421, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, -14, 0, 0, 0, 0,
- 0, 0, -56, 338, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 375, 0,
- 251, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 187,
- 0, 292, 0, 0, 0, 0, 0, 0, 0, 0,
+ 375, 0, 360, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 377, 0,
- 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 441,
+ 0, 0, 0, 0,
};
short tao_yygindex[] = { 0,
- -24, 244, 0, 0, 0, -22, 54, 7, 0, 60,
- 0, 0, 0, 393, -207, -26, 0, 0, 0, 76,
- 0, 0, 0, 0, 0, 0, 0, 175, 0, 0,
- 0, 0, 0, -134, 0, 218, 240, 217, 39, 51,
- 21, 80, 0, -88, 179, 86, 0, 0, -16, -12,
- 8, 420, 0, 0, 0, -148, 12, 0, 0, -209,
- -8, 0, 0, 0, -10, 299, 1, 0, 0, 317,
- 0, 320, 0, 0, 0, 0, 0, 0, 0, 0,
+ -19, 304, 0, 0, 0, -32, -13, -16, 0, -5,
+ 0, 0, 0, 443, -235, -20, 0, 0, 0, 67,
+ 0, 394, 0, 0, 0, 0, 0, 0, 145, 0,
+ 0, 0, 0, 481, 0, -174, 0, 260, 257, 262,
+ -49, 12, -23, 103, 0, -128, 197, 94, 0, 0,
+ -34, -31, -29, 470, 0, 0, 0, -176, -28, 0,
+ 0, -236, -7, 0, 0, 0, 0, 302, -10, 30,
+ 2, 0, 0, 47, 0, 60, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 332, 0, 0, 0, 0, 0, 0, 0, 0,
+ 500, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 350, 0, 27, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 286, 258, 0, 0,
+ 0, 318, 247, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 120, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 108, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 163, 0, 0, 0, 0, 0,
+ 160, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 136, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
+ 119, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
-#define TAO_YYTABLESIZE 625
-short tao_yytable[] = { 37,
- 62, 36, 277, 89, 60, 78, 13, 93, 93, 162,
- 64, 93, 93, 93, 65, 93, 3, 93, 75, 42,
- 98, 99, 100, 101, 142, 13, 257, 203, 93, 93,
- 82, 57, 93, 82, 66, 82, 83, 82, 70, 83,
- 238, 83, 142, 83, 50, 145, 175, 50, 145, 47,
- 82, 82, 287, 12, 82, 180, 83, 83, 49, 14,
- 83, 49, 35, 93, 93, 162, 145, 39, 159, 305,
- 160, 222, 12, 35, 111, 112, 128, 84, 14, 74,
- 84, 227, 84, 47, 84, 82, 82, 79, 102, 222,
- 79, 83, 83, 80, 93, 32, 80, 84, 84, 227,
- 115, 84, 131, 81, 133, 104, 81, 79, 79, 143,
- 105, 79, 285, 80, 80, 59, 82, 80, 115, 106,
- 121, 151, 83, 81, 81, 213, 50, 81, 238, 350,
- 211, 47, 84, 84, 138, 212, 107, 138, 122, 72,
- 49, 3, 79, 79, 77, 207, 208, 77, 80, 80,
- 89, 161, 138, 375, 89, 13, 72, 72, 81, 81,
- 72, 108, 237, 84, 77, 77, 234, 114, 77, 73,
- 385, 130, 78, 79, 288, 78, 216, 344, 345, 80,
- 231, 343, 13, 231, 229, 116, 73, 73, 238, 81,
- 73, 72, 78, 78, 136, 75, 78, 74, 231, 77,
- 77, 209, 12, 210, 89, 344, 345, 109, 14, 117,
- 110, 137, 75, 75, 74, 74, 75, 145, 74, 283,
- 146, 73, 368, 327, 328, 329, 35, 78, 78, 12,
- 77, 256, 257, 258, 277, 14, 25, 142, 200, 201,
- 202, 147, 89, 296, 148, 252, 253, 75, 75, 74,
- 237, 143, 73, 297, 234, 198, 143, 298, 78, 254,
- 255, 145, 153, 154, 155, 156, 157, 158, 59, 199,
- 93, 93, 259, 259, 259, 205, 294, 299, 75, 204,
- 74, 300, 35, 206, 222, 218, 219, 227, 228, 243,
- 248, 259, 82, 82, 227, 239, 260, 265, 83, 83,
- 37, 275, 319, 278, 286, 279, 302, 280, 76, 281,
- 237, 282, 292, 115, 234, 290, 301, 303, 153, 154,
- 155, 156, 157, 158, 59, 76, 76, 304, 109, 76,
- 312, 37, 89, 355, 370, 313, 314, 316, 128, 84,
- 84, 325, 326, 335, 333, 338, 352, 351, 353, 79,
- 79, 367, 143, 373, 369, 80, 80, 378, 384, 382,
- 76, 76, 387, 390, 386, 81, 81, 391, 254, 143,
- 3, 70, 393, 254, 254, 254, 254, 254, 254, 254,
- 254, 254, 254, 3, 128, 245, 270, 142, 254, 161,
- 207, 76, 223, 35, 241, 183, 134, 254, 48, 49,
- 50, 51, 52, 53, 54, 55, 56, 76, 6, 7,
- 254, 8, 77, 57, 58, 261, 184, 282, 35, 61,
- 217, 249, 251, 48, 49, 50, 51, 52, 53, 54,
- 55, 56, 76, 6, 7, 59, 8, 77, 57, 58,
- 377, 291, 289, 192, 250, 372, 67, 191, 192, 192,
- 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,
- 59, 192, 192, 192, 192, 192, 226, 35, 193, 374,
- 0, 315, 48, 49, 50, 51, 52, 53, 54, 55,
- 56, 76, 0, 269, 35, 192, 77, 57, 58, 48,
- 49, 50, 51, 52, 53, 54, 55, 56, 76, 376,
- 0, 0, 0, 0, 57, 0, 0, 0, 0, 59,
- 35, 0, 0, 233, 0, 48, 49, 50, 51, 52,
- 53, 54, 55, 56, 0, 0, 59, 35, 0, 0,
- 57, 58, 48, 49, 50, 51, 52, 53, 54, 55,
- 56, 76, 0, 35, 0, 0, 0, 57, 293, 49,
- 50, 0, 59, 53, 54, 55, 56, 0, 185, 0,
- 2, 8, 0, 5, 0, 0, 0, 0, 0, 59,
- 0, 0, 0, 0, 6, 7, 0, 8, 0, 0,
- 0, 9, 0, 0, 186, 59, 187, 188, 1, 0,
- 2, 3, 4, 5, 10, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 6, 7, 0, 8, 0, 0,
- 0, 9, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 10,
+#define TAO_YYTABLESIZE 839
+short tao_yytable[] = { 48,
+ 84, 73, 47, 110, 80, 106, 111, 79, 112, 114,
+ 295, 315, 53, 57, 53, 81, 85, 108, 245, 85,
+ 84, 117, 46, 84, 80, 99, 84, 79, 34, 116,
+ 13, 119, 120, 121, 122, 81, 208, 209, 3, 128,
+ 128, 46, 124, 128, 128, 128, 280, 128, 117, 128,
+ 82, 117, 177, 117, 56, 117, 53, 56, 115, 193,
+ 128, 128, 114, 180, 128, 114, 180, 177, 117, 117,
+ 177, 336, 117, 118, 92, 105, 118, 53, 118, 53,
+ 118, 180, 114, 114, 180, 251, 114, 252, 354, 115,
+ 71, 72, 115, 118, 118, 128, 128, 118, 85, 116,
+ 394, 125, 116, 117, 117, 84, 156, 130, 131, 115,
+ 115, 193, 134, 115, 190, 136, 191, 114, 114, 116,
+ 116, 53, 160, 116, 395, 396, 128, 126, 118, 118,
+ 135, 334, 82, 138, 117, 167, 119, 174, 34, 119,
+ 139, 119, 207, 119, 115, 115, 140, 280, 114, 150,
+ 259, 206, 401, 110, 116, 116, 119, 119, 264, 118,
+ 119, 111, 84, 3, 150, 259, 108, 150, 259, 128,
+ 110, 110, 129, 264, 110, 115, 264, 426, 111, 111,
+ 337, 141, 111, 108, 108, 116, 142, 108, 249, 250,
+ 276, 119, 119, 143, 436, 395, 396, 192, 173, 296,
+ 297, 173, 279, 34, 112, 110, 110, 112, 144, 225,
+ 225, 280, 260, 111, 111, 145, 173, 109, 108, 378,
+ 379, 380, 119, 153, 112, 112, 226, 226, 112, 300,
+ 301, 302, 255, 419, 109, 109, 110, 253, 109, 227,
+ 227, 159, 254, 315, 111, 163, 84, 225, 266, 108,
+ 80, 168, 53, 79, 53, 158, 297, 297, 297, 112,
+ 112, 81, 298, 299, 226, 177, 175, 84, 84, 109,
+ 332, 80, 80, 85, 79, 79, 46, 227, 177, 180,
+ 84, 346, 81, 81, 347, 282, 348, 349, 107, 240,
+ 112, 276, 242, 243, 244, 345, 53, 174, 268, 343,
+ 109, 268, 176, 279, 246, 107, 107, 82, 196, 107,
+ 128, 128, 50, 51, 330, 331, 268, 178, 117, 117,
+ 184, 185, 186, 187, 188, 189, 72, 247, 46, 248,
+ 174, 27, 114, 114, 259, 262, 261, 268, 269, 281,
+ 107, 285, 290, 118, 118, 292, 303, 304, 321, 305,
+ 48, 335, 322, 369, 325, 276, 43, 326, 327, 115,
+ 115, 328, 150, 259, 329, 339, 350, 279, 351, 116,
+ 116, 264, 184, 185, 186, 187, 188, 189, 72, 352,
+ 353, 356, 48, 47, 364, 406, 128, 362, 366, 84,
+ 421, 370, 376, 80, 377, 156, 79, 384, 386, 389,
+ 402, 403, 404, 174, 81, 418, 119, 119, 420, 429,
+ 435, 433, 438, 424, 437, 442, 199, 199, 441, 444,
+ 174, 3, 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 105, 199, 199, 199, 199, 199,
+ 199, 55, 54, 163, 308, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 177, 199, 199,
+ 199, 199, 3, 291, 244, 220, 169, 199, 291, 291,
+ 291, 291, 291, 291, 291, 291, 291, 291, 299, 319,
+ 107, 320, 428, 291, 221, 357, 241, 137, 291, 278,
+ 199, 49, 291, 291, 291, 291, 291, 291, 291, 291,
+ 291, 291, 291, 294, 423, 293, 338, 113, 291, 295,
+ 218, 52, 312, 291, 278, 291, 113, 291, 365, 113,
+ 291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
+ 238, 266, 425, 427, 0, 291, 113, 113, 291, 0,
+ 113, 278, 313, 46, 291, 0, 0, 0, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, 6, 7,
+ 0, 8, 68, 69, 70, 291, 0, 0, 46, 0,
+ 0, 113, 113, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, 6, 7, 0, 8, 68, 69, 70,
+ 0, 0, 0, 72, 0, 0, 0, 0, 0, 0,
+ 0, 0, 113, 0, 0, 0, 0, 0, 0, 0,
+ 71, 0, 0, 0, 46, 0, 0, 0, 72, 58,
+ 59, 60, 61, 62, 63, 64, 65, 66, 67, 6,
+ 7, 229, 8, 68, 69, 70, 229, 229, 229, 229,
+ 229, 229, 229, 229, 229, 229, 229, 229, 46, 229,
+ 229, 229, 229, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, 0, 72, 46, 0, 68, 69, 70,
+ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
+ 0, 229, 0, 0, 0, 69, 0, 0, 0, 0,
+ 0, 0, 0, 0, 275, 0, 46, 0, 72, 0,
+ 0, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 0, 0, 0, 46, 0, 72, 69, 70, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, 0, 46,
+ 0, 0, 0, 69, 342, 59, 60, 0, 0, 63,
+ 64, 65, 66, 0, 0, 0, 72, 8, 1, 0,
+ 2, 3, 4, 5, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 72, 6, 7, 0, 8, 0, 0,
+ 0, 9, 219, 0, 2, 0, 0, 5, 0, 72,
+ 0, 0, 0, 0, 10, 11, 12, 0, 6, 7,
+ 0, 8, 13, 0, 0, 9, 0, 0, 220, 0,
+ 221, 222, 219, 0, 2, 0, 0, 5, 10, 0,
+ 0, 232, 233, 234, 0, 0, 0, 0, 6, 7,
+ 0, 8, 0, 0, 0, 9, 0, 0, 220, 0,
+ 221, 222, 0, 0, 0, 0, 0, 0, 10,
};
short tao_yycheck[] = { 10,
- 27, 10, 59, 30, 27, 30, 0, 37, 38, 40,
- 27, 41, 42, 43, 27, 45, 0, 47, 29, 19,
- 31, 32, 33, 34, 44, 19, 41, 162, 58, 59,
- 38, 59, 62, 41, 27, 43, 38, 45, 27, 41,
- 189, 43, 62, 45, 41, 41, 135, 44, 44, 41,
- 58, 59, 262, 0, 62, 144, 58, 59, 41, 0,
- 62, 44, 257, 93, 94, 40, 62, 58, 43, 277,
- 45, 44, 19, 257, 262, 263, 103, 38, 19, 257,
- 41, 44, 43, 59, 45, 93, 94, 38, 123, 62,
- 41, 93, 94, 38, 124, 123, 41, 58, 59, 62,
- 44, 62, 113, 38, 115, 59, 41, 58, 59, 120,
- 59, 62, 247, 58, 59, 299, 124, 62, 62, 59,
- 44, 132, 124, 58, 59, 37, 123, 62, 277, 337,
- 42, 123, 93, 94, 41, 47, 59, 44, 62, 41,
- 123, 125, 93, 94, 38, 300, 301, 41, 93, 94,
- 177, 126, 59, 363, 181, 149, 58, 59, 93, 94,
- 62, 59, 189, 124, 58, 59, 189, 299, 62, 41,
- 380, 262, 38, 124, 263, 41, 176, 280, 281, 124,
- 41, 256, 176, 44, 91, 60, 58, 59, 337, 124,
- 62, 93, 58, 59, 123, 41, 62, 41, 59, 93,
- 94, 43, 149, 45, 231, 280, 281, 262, 149, 60,
- 265, 60, 58, 59, 58, 59, 62, 123, 62, 246,
- 274, 93, 357, 287, 288, 289, 257, 93, 94, 176,
- 124, 211, 212, 213, 291, 176, 125, 257, 159, 160,
- 161, 123, 269, 270, 123, 207, 208, 93, 94, 93,
- 277, 262, 124, 270, 277, 44, 267, 270, 124, 209,
- 210, 257, 293, 294, 295, 296, 297, 298, 299, 61,
- 300, 301, 287, 288, 289, 94, 270, 270, 124, 124,
- 124, 270, 257, 38, 257, 44, 91, 40, 257, 125,
- 41, 62, 300, 301, 257, 283, 62, 62, 300, 301,
- 311, 59, 311, 59, 125, 59, 44, 59, 41, 59,
- 337, 59, 125, 257, 337, 59, 125, 125, 293, 294,
- 295, 296, 297, 298, 299, 58, 59, 257, 262, 62,
- 93, 342, 359, 342, 359, 59, 41, 40, 365, 300,
- 301, 123, 41, 44, 290, 41, 40, 44, 291, 300,
- 301, 59, 363, 125, 58, 300, 301, 40, 58, 41,
- 93, 94, 294, 41, 59, 300, 301, 44, 257, 380,
- 0, 257, 294, 262, 263, 264, 265, 266, 267, 268,
- 269, 270, 271, 125, 59, 125, 257, 41, 277, 125,
- 125, 124, 256, 257, 283, 41, 59, 286, 262, 263,
- 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
- 299, 275, 276, 277, 278, 41, 125, 41, 257, 27,
- 177, 204, 206, 262, 263, 264, 265, 266, 267, 268,
- 269, 270, 271, 272, 273, 299, 275, 276, 277, 278,
- 365, 267, 264, 257, 205, 360, 27, 149, 262, 263,
+ 21, 21, 10, 38, 21, 38, 38, 21, 38, 38,
+ 41, 59, 58, 59, 58, 21, 41, 38, 193, 44,
+ 41, 41, 257, 41, 41, 24, 44, 41, 123, 40,
+ 300, 42, 43, 44, 45, 41, 165, 166, 0, 37,
+ 38, 257, 53, 41, 42, 43, 223, 45, 38, 47,
+ 41, 41, 44, 43, 58, 45, 58, 59, 257, 40,
+ 58, 59, 38, 41, 62, 41, 44, 59, 58, 59,
+ 62, 308, 62, 38, 59, 59, 41, 123, 43, 123,
+ 45, 59, 58, 59, 62, 43, 62, 45, 324, 38,
+ 299, 307, 41, 58, 59, 93, 94, 62, 123, 38,
+ 256, 123, 41, 93, 94, 123, 127, 262, 263, 58,
+ 59, 40, 44, 62, 43, 307, 45, 93, 94, 58,
+ 59, 123, 133, 62, 280, 281, 124, 123, 93, 94,
+ 62, 306, 123, 60, 124, 146, 38, 148, 123, 41,
+ 60, 43, 163, 45, 93, 94, 59, 324, 124, 44,
+ 44, 162, 388, 41, 93, 94, 58, 59, 44, 124,
+ 62, 41, 183, 125, 59, 59, 41, 62, 62, 262,
+ 58, 59, 265, 59, 62, 124, 62, 414, 58, 59,
+ 309, 59, 62, 58, 59, 124, 59, 62, 308, 309,
+ 223, 93, 94, 59, 431, 280, 281, 126, 41, 249,
+ 250, 44, 223, 298, 38, 93, 94, 41, 59, 180,
+ 181, 388, 211, 93, 94, 59, 59, 41, 93, 287,
+ 288, 289, 124, 123, 58, 59, 180, 181, 62, 253,
+ 254, 255, 37, 408, 58, 59, 124, 42, 62, 180,
+ 181, 60, 47, 291, 124, 298, 267, 218, 91, 124,
+ 267, 123, 298, 267, 298, 262, 287, 288, 289, 93,
+ 94, 267, 251, 252, 218, 257, 123, 288, 289, 93,
+ 291, 288, 289, 298, 288, 289, 257, 218, 123, 257,
+ 298, 316, 288, 289, 316, 125, 316, 316, 41, 44,
+ 124, 324, 190, 191, 192, 316, 298, 308, 41, 316,
+ 124, 44, 274, 324, 124, 58, 59, 298, 125, 62,
+ 308, 309, 11, 12, 288, 289, 59, 123, 308, 309,
+ 301, 302, 303, 304, 305, 306, 307, 94, 257, 38,
+ 341, 125, 308, 309, 61, 91, 44, 40, 257, 283,
+ 93, 125, 125, 308, 309, 41, 62, 62, 125, 62,
+ 361, 125, 59, 361, 59, 388, 125, 59, 59, 308,
+ 309, 59, 257, 257, 59, 125, 125, 388, 44, 308,
+ 309, 257, 301, 302, 303, 304, 305, 306, 307, 125,
+ 257, 59, 393, 125, 41, 393, 262, 93, 40, 410,
+ 410, 59, 123, 410, 41, 416, 410, 290, 44, 41,
+ 44, 40, 291, 414, 410, 59, 308, 309, 58, 40,
+ 58, 41, 302, 125, 59, 44, 256, 257, 41, 302,
+ 431, 0, 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, 271, 272, 273, 257, 275, 276, 277, 278, 256,
+ 257, 123, 123, 59, 257, 262, 263, 264, 265, 266,
+ 267, 268, 269, 270, 271, 272, 273, 41, 275, 276,
+ 277, 278, 125, 257, 125, 41, 59, 307, 262, 263,
+ 264, 265, 266, 267, 268, 269, 270, 271, 41, 59,
+ 38, 41, 416, 277, 125, 341, 183, 94, 257, 283,
+ 307, 11, 286, 262, 263, 264, 265, 266, 267, 268,
+ 269, 270, 271, 247, 411, 246, 310, 38, 277, 248,
+ 179, 12, 266, 307, 283, 257, 38, 286, 359, 41,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
+ 181, 214, 413, 415, -1, 277, 58, 59, 307, -1,
+ 62, 283, 256, 257, 286, -1, -1, -1, 262, 263,
264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
- 299, 275, 276, 277, 278, 149, 181, 257, 149, 362,
- -1, 309, 262, 263, 264, 265, 266, 267, 268, 269,
- 270, 271, -1, 226, 257, 299, 276, 277, 278, 262,
- 263, 264, 265, 266, 267, 268, 269, 270, 271, 364,
- -1, -1, -1, -1, 277, -1, -1, -1, -1, 299,
- 257, -1, -1, 286, -1, 262, 263, 264, 265, 266,
- 267, 268, 269, 270, -1, -1, 299, 257, -1, -1,
- 277, 278, 262, 263, 264, 265, 266, 267, 268, 269,
- 270, 271, -1, 257, -1, -1, -1, 277, 262, 263,
- 264, -1, 299, 267, 268, 269, 270, -1, 256, -1,
- 258, 275, -1, 261, -1, -1, -1, -1, -1, 299,
- -1, -1, -1, -1, 272, 273, -1, 275, -1, -1,
- -1, 279, -1, -1, 282, 299, 284, 285, 256, -1,
- 258, 259, 260, 261, 292, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 272, 273, -1, 275, -1, -1,
- -1, 279, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 292,
+ -1, 275, 276, 277, 278, 307, -1, -1, 257, -1,
+ -1, 93, 94, 262, 263, 264, 265, 266, 267, 268,
+ 269, 270, 271, 272, 273, -1, 275, 276, 277, 278,
+ -1, -1, -1, 307, -1, -1, -1, -1, -1, -1,
+ -1, -1, 124, -1, -1, -1, -1, -1, -1, -1,
+ 299, -1, -1, -1, 257, -1, -1, -1, 307, 262,
+ 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
+ 273, 257, 275, 276, 277, 278, 262, 263, 264, 265,
+ 266, 267, 268, 269, 270, 271, 272, 273, 257, 275,
+ 276, 277, 278, 262, 263, 264, 265, 266, 267, 268,
+ 269, 270, 271, -1, 307, 257, -1, 276, 277, 278,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
+ -1, 307, -1, -1, -1, 277, -1, -1, -1, -1,
+ -1, -1, -1, -1, 286, -1, 257, -1, 307, -1,
+ -1, 262, 263, 264, 265, 266, 267, 268, 269, 270,
+ -1, -1, -1, 257, -1, 307, 277, 278, 262, 263,
+ 264, 265, 266, 267, 268, 269, 270, 271, -1, 257,
+ -1, -1, -1, 277, 262, 263, 264, -1, -1, 267,
+ 268, 269, 270, -1, -1, -1, 307, 275, 256, -1,
+ 258, 259, 260, 261, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 307, 272, 273, -1, 275, -1, -1,
+ -1, 279, 256, -1, 258, -1, -1, 261, -1, 307,
+ -1, -1, -1, -1, 292, 293, 294, -1, 272, 273,
+ -1, 275, 300, -1, -1, 279, -1, -1, 282, -1,
+ 284, 285, 256, -1, 258, -1, -1, 261, 292, -1,
+ -1, 295, 296, 297, -1, -1, -1, -1, 272, 273,
+ -1, 275, -1, -1, -1, 279, -1, -1, 282, -1,
+ 284, 285, -1, -1, -1, -1, -1, -1, 292,
};
-#define TAO_YYFINAL 11
+#define TAO_YYFINAL 14
#ifndef TAO_YYDEBUG
#define TAO_YYDEBUG 0
#endif
-#define TAO_YYMAXTOKEN 301
+#define TAO_YYMAXTOKEN 309
#if TAO_YYDEBUG
char *tao_yyname[] = {
"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -477,9 +556,11 @@ char *tao_yyname[] = {
"IDL_SEQUENCE","IDL_STRING","IDL_WSTRING","IDL_EXCEPTION","IDL_CASE",
"IDL_DEFAULT","IDL_READONLY","IDL_ATTRIBUTE","IDL_ONEWAY","IDL_IDEMPOTENT",
"IDL_VOID","IDL_IN","IDL_OUT","IDL_INOUT","IDL_RAISES","IDL_CONTEXT",
-"IDL_NATIVE","IDL_INTEGER_LITERAL","IDL_STRING_LITERAL","IDL_CHARACTER_LITERAL",
-"IDL_FLOATING_PT_LITERAL","IDL_TRUETOK","IDL_FALSETOK","IDL_SCOPE_DELIMITOR",
-"IDL_LEFT_SHIFT","IDL_RIGHT_SHIFT",
+"IDL_NATIVE","IDL_ABSTRACT","IDL_CUSTOM","IDL_INIT","IDL_PRIVATE","IDL_PUBLIC",
+"IDL_SUPPORTS","IDL_TRUNCATABLE","IDL_VALUETYPE","IDL_INTEGER_LITERAL",
+"IDL_STRING_LITERAL","IDL_CHARACTER_LITERAL","IDL_FLOATING_PT_LITERAL",
+"IDL_TRUETOK","IDL_FALSETOK","IDL_SCOPE_DELIMITOR","IDL_LEFT_SHIFT",
+"IDL_RIGHT_SHIFT",
};
char *tao_yyrule[] = {
"$accept : start",
@@ -497,54 +578,89 @@ char *tao_yyrule[] = {
"$$5 :",
"definition : module $$5 ';'",
"$$6 :",
-"definition : error $$6 ';'",
+"definition : value_def $$6 ';'",
"$$7 :",
+"definition : error $$7 ';'",
"$$8 :",
"$$9 :",
"$$10 :",
-"module : IDL_MODULE $$7 IDENTIFIER $$8 '{' $$9 definitions $$10 '}'",
+"$$11 :",
+"module : IDL_MODULE $$8 IDENTIFIER $$9 '{' $$10 definitions $$11 '}'",
"interface_def : interface",
"interface_def : forward",
-"$$11 :",
"$$12 :",
"$$13 :",
-"interface : interface_header $$11 '{' $$12 exports $$13 '}'",
"$$14 :",
-"interface_decl : IDL_INTERFACE $$14 id",
-"interface_header : interface_decl inheritance_spec",
+"interface : interface_header $$12 '{' $$13 exports $$14 '}'",
"$$15 :",
-"inheritance_spec : ':' $$15 at_least_one_scoped_name",
-"inheritance_spec :",
-"exports : exports export",
-"exports :",
+"interface_decl : IDL_INTERFACE $$15 id",
+"interface_header : interface_decl inheritance_spec",
"$$16 :",
-"export : type_dcl $$16 ';'",
+"inheritance_spec : ':' $$16 at_least_one_scoped_name",
+"inheritance_spec :",
+"value_def : valuetype",
+"value_def : value_abs_decl",
+"value_def : value_forward_decl",
+"value_def : value_box_decl",
+"valuetype : IDL_CUSTOM value_concrete_decl",
+"valuetype : value_concrete_decl",
"$$17 :",
-"export : const_dcl $$17 ';'",
"$$18 :",
-"export : exception $$18 ';'",
"$$19 :",
-"export : attribute $$19 ';'",
+"value_concrete_decl : value_header $$17 '{' $$18 value_elements $$19 '}'",
"$$20 :",
-"export : operation $$20 ';'",
"$$21 :",
-"export : error $$21 ';'",
-"at_least_one_scoped_name : scoped_name scoped_names",
"$$22 :",
-"scoped_names : scoped_names ',' $$22 scoped_name",
-"scoped_names :",
-"scoped_name : id",
+"value_abs_decl : IDL_ABSTRACT value_header $$20 '{' $$21 exports $$22 '}'",
+"value_header : value_decl opt_truncatable inheritance_spec supports_spec",
"$$23 :",
-"scoped_name : IDL_SCOPE_DELIMITOR $$23 id",
+"value_decl : IDL_VALUETYPE $$23 id",
+"opt_truncatable : IDL_TRUNCATABLE",
+"opt_truncatable :",
+"supports_spec : IDL_SUPPORTS scoped_name",
+"supports_spec :",
+"value_forward_decl : IDL_ABSTRACT value_decl",
+"value_forward_decl : value_decl",
+"value_box_decl : value_decl type_spec",
+"value_elements : value_elements value_element",
+"value_elements :",
+"value_element : state_member",
+"value_element : export",
+"value_element : init_decl",
"$$24 :",
-"scoped_name : scoped_name IDL_SCOPE_DELIMITOR $$24 id",
-"id : IDENTIFIER",
-"forward : interface_decl",
+"state_member : IDL_PUBLIC $$24 member_i",
"$$25 :",
+"state_member : IDL_PRIVATE $$25 member_i",
+"exports : exports export",
+"exports :",
"$$26 :",
+"export : type_dcl $$26 ';'",
"$$27 :",
+"export : const_dcl $$27 ';'",
"$$28 :",
-"const_dcl : IDL_CONST $$25 const_type $$26 id $$27 '=' $$28 expression",
+"export : exception $$28 ';'",
+"$$29 :",
+"export : attribute $$29 ';'",
+"$$30 :",
+"export : operation $$30 ';'",
+"$$31 :",
+"export : error $$31 ';'",
+"at_least_one_scoped_name : scoped_name scoped_names",
+"$$32 :",
+"scoped_names : scoped_names ',' $$32 scoped_name",
+"scoped_names :",
+"scoped_name : id",
+"$$33 :",
+"scoped_name : IDL_SCOPE_DELIMITOR $$33 id",
+"$$34 :",
+"scoped_name : scoped_name IDL_SCOPE_DELIMITOR $$34 id",
+"id : IDENTIFIER",
+"forward : interface_decl",
+"$$35 :",
+"$$36 :",
+"$$37 :",
+"$$38 :",
+"const_dcl : IDL_CONST $$35 const_type $$36 id $$37 '=' $$38 expression",
"const_type : integer_type",
"const_type : char_type",
"const_type : octet_type",
@@ -585,14 +701,14 @@ char *tao_yyrule[] = {
"literal : IDL_TRUETOK",
"literal : IDL_FALSETOK",
"positive_int_expr : const_expr",
-"$$29 :",
-"type_dcl : IDL_TYPEDEF $$29 type_declarator",
+"$$39 :",
+"type_dcl : IDL_TYPEDEF $$39 type_declarator",
"type_dcl : struct_type",
"type_dcl : union_type",
"type_dcl : enum_type",
"type_dcl : IDL_NATIVE simple_declarator",
-"$$30 :",
-"type_declarator : type_spec $$30 at_least_one_declarator",
+"$$40 :",
+"type_declarator : type_spec $$40 at_least_one_declarator",
"type_spec : simple_type_spec",
"type_spec : constructed_type_spec",
"simple_type_spec : base_type_spec",
@@ -611,14 +727,14 @@ char *tao_yyrule[] = {
"constructed_type_spec : union_type",
"constructed_type_spec : enum_type",
"at_least_one_declarator : declarator declarators",
-"$$31 :",
-"declarators : declarators ',' $$31 declarator",
+"$$41 :",
+"declarators : declarators ',' $$41 declarator",
"declarators :",
"declarator : simple_declarator",
"declarator : complex_declarator",
"at_least_one_simple_declarator : simple_declarator simple_declarators",
-"$$32 :",
-"simple_declarators : simple_declarators ',' $$32 simple_declarator",
+"$$42 :",
+"simple_declarators : simple_declarators ',' $$42 simple_declarator",
"simple_declarators :",
"simple_declarator : id",
"complex_declarator : array_declarator",
@@ -638,135 +754,138 @@ char *tao_yyrule[] = {
"octet_type : IDL_OCTET",
"boolean_type : IDL_BOOLEAN",
"any_type : IDL_ANY",
-"$$33 :",
-"$$34 :",
-"$$35 :",
-"$$36 :",
-"struct_type : IDL_STRUCT $$33 id $$34 '{' $$35 at_least_one_member $$36 '}'",
-"at_least_one_member : member members",
-"members : members member",
-"members :",
-"$$37 :",
-"$$38 :",
-"member : type_spec $$37 at_least_one_declarator $$38 ';'",
-"$$39 :",
-"member : error $$39 ';'",
-"$$40 :",
-"$$41 :",
-"$$42 :",
"$$43 :",
"$$44 :",
"$$45 :",
"$$46 :",
+"struct_type : IDL_STRUCT $$43 id $$44 '{' $$45 at_least_one_member $$46 '}'",
+"at_least_one_member : member members",
+"members : members member",
+"members :",
"$$47 :",
-"union_type : IDL_UNION $$40 id $$41 IDL_SWITCH $$42 '(' $$43 switch_type_spec $$44 ')' $$45 '{' $$46 at_least_one_case_branch $$47 '}'",
-"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 :",
+"member : $$47 member_i",
"$$48 :",
"$$49 :",
-"case_branch : at_least_one_case_label $$48 element_spec $$49 ';'",
+"member_i : type_spec $$48 at_least_one_declarator $$49 ';'",
"$$50 :",
-"case_branch : error $$50 ';'",
-"at_least_one_case_label : case_label case_labels",
-"case_labels : case_labels case_label",
-"case_labels :",
+"member_i : error $$50 ';'",
"$$51 :",
-"case_label : IDL_DEFAULT $$51 ':'",
"$$52 :",
"$$53 :",
-"case_label : IDL_CASE $$52 const_expr $$53 ':'",
"$$54 :",
-"element_spec : type_spec $$54 declarator",
"$$55 :",
"$$56 :",
"$$57 :",
"$$58 :",
-"enum_type : IDL_ENUM $$55 id $$56 '{' $$57 at_least_one_enumerator $$58 '}'",
-"at_least_one_enumerator : enumerator enumerators",
+"union_type : IDL_UNION $$51 id $$52 IDL_SWITCH $$53 '(' $$54 switch_type_spec $$55 ')' $$56 '{' $$57 at_least_one_case_branch $$58 '}'",
+"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 :",
"$$59 :",
-"enumerators : enumerators ',' $$59 enumerator",
-"enumerators :",
-"enumerator : IDENTIFIER",
"$$60 :",
+"case_branch : at_least_one_case_label $$59 element_spec $$60 ';'",
"$$61 :",
-"sequence_type_spec : seq_head ',' $$60 positive_int_expr $$61 '>'",
-"sequence_type_spec : seq_head '>'",
+"case_branch : error $$61 ';'",
+"at_least_one_case_label : case_label case_labels",
+"case_labels : case_labels case_label",
+"case_labels :",
"$$62 :",
+"case_label : IDL_DEFAULT $$62 ':'",
"$$63 :",
-"seq_head : IDL_SEQUENCE $$62 '<' $$63 simple_type_spec",
"$$64 :",
+"case_label : IDL_CASE $$63 const_expr $$64 ':'",
"$$65 :",
-"string_type_spec : string_head '<' $$64 positive_int_expr $$65 '>'",
-"string_type_spec : string_head",
-"string_head : IDL_STRING",
+"element_spec : type_spec $$65 declarator",
"$$66 :",
"$$67 :",
-"wstring_type_spec : wstring_head '<' $$66 positive_int_expr $$67 '>'",
-"wstring_type_spec : wstring_head",
-"wstring_head : IDL_WSTRING",
"$$68 :",
-"array_declarator : id $$68 at_least_one_array_dim",
-"at_least_one_array_dim : array_dim array_dims",
-"array_dims : array_dims array_dim",
-"array_dims :",
"$$69 :",
+"enum_type : IDL_ENUM $$66 id $$67 '{' $$68 at_least_one_enumerator $$69 '}'",
+"at_least_one_enumerator : enumerator enumerators",
"$$70 :",
-"array_dim : '[' $$69 positive_int_expr $$70 ']'",
+"enumerators : enumerators ',' $$70 enumerator",
+"enumerators :",
+"enumerator : IDENTIFIER",
"$$71 :",
"$$72 :",
-"attribute : opt_readonly IDL_ATTRIBUTE $$71 param_type_spec $$72 at_least_one_simple_declarator",
-"opt_readonly : IDL_READONLY",
-"opt_readonly :",
+"sequence_type_spec : seq_head ',' $$71 positive_int_expr $$72 '>'",
+"sequence_type_spec : seq_head '>'",
"$$73 :",
"$$74 :",
+"seq_head : IDL_SEQUENCE $$73 '<' $$74 simple_type_spec",
"$$75 :",
"$$76 :",
-"exception : IDL_EXCEPTION $$73 id $$74 '{' $$75 members $$76 '}'",
+"string_type_spec : string_head '<' $$75 positive_int_expr $$76 '>'",
+"string_type_spec : string_head",
+"string_head : IDL_STRING",
"$$77 :",
"$$78 :",
+"wstring_type_spec : wstring_head '<' $$77 positive_int_expr $$78 '>'",
+"wstring_type_spec : wstring_head",
+"wstring_head : IDL_WSTRING",
"$$79 :",
+"array_declarator : id $$79 at_least_one_array_dim",
+"at_least_one_array_dim : array_dim array_dims",
+"array_dims : array_dims array_dim",
+"array_dims :",
"$$80 :",
-"operation : opt_op_attribute op_type_spec $$77 IDENTIFIER $$78 parameter_list $$79 opt_raises $$80 opt_context",
+"$$81 :",
+"array_dim : '[' $$80 positive_int_expr $$81 ']'",
+"$$82 :",
+"$$83 :",
+"attribute : opt_readonly IDL_ATTRIBUTE $$82 param_type_spec $$83 at_least_one_simple_declarator",
+"opt_readonly : IDL_READONLY",
+"opt_readonly :",
+"$$84 :",
+"$$85 :",
+"$$86 :",
+"$$87 :",
+"exception : IDL_EXCEPTION $$84 id $$85 '{' $$86 members $$87 '}'",
+"$$88 :",
+"$$89 :",
+"$$90 :",
+"$$91 :",
+"operation : opt_op_attribute op_type_spec $$88 IDENTIFIER $$89 parameter_list $$90 opt_raises $$91 opt_context",
"opt_op_attribute : IDL_ONEWAY",
"opt_op_attribute : IDL_IDEMPOTENT",
"opt_op_attribute :",
"op_type_spec : param_type_spec",
"op_type_spec : IDL_VOID",
-"$$81 :",
-"parameter_list : '(' $$81 ')'",
-"$$82 :",
-"parameter_list : '(' $$82 at_least_one_parameter ')'",
+"init_decl : IDL_INIT",
+"$$92 :",
+"parameter_list : '(' $$92 ')'",
+"$$93 :",
+"parameter_list : '(' $$93 at_least_one_parameter ')'",
"at_least_one_parameter : parameter parameters",
-"$$83 :",
-"parameters : parameters ',' $$83 parameter",
+"$$94 :",
+"parameters : parameters ',' $$94 parameter",
"parameters :",
-"$$84 :",
-"$$85 :",
-"parameter : direction $$84 param_type_spec $$85 declarator",
+"$$95 :",
+"$$96 :",
+"parameter : direction $$95 param_type_spec $$96 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",
-"$$86 :",
-"$$87 :",
-"opt_raises : IDL_RAISES $$86 '(' $$87 at_least_one_scoped_name ')'",
+"$$97 :",
+"$$98 :",
+"opt_raises : IDL_RAISES $$97 '(' $$98 at_least_one_scoped_name ')'",
"opt_raises :",
-"$$88 :",
-"$$89 :",
-"opt_context : IDL_CONTEXT $$88 '(' $$89 at_least_one_string_literal ')'",
+"$$99 :",
+"$$100 :",
+"opt_context : IDL_CONTEXT $$99 '(' $$100 at_least_one_string_literal ')'",
"opt_context :",
"at_least_one_string_literal : IDL_STRING_LITERAL string_literals",
-"$$90 :",
-"string_literals : string_literals ',' $$90 IDL_STRING_LITERAL",
+"$$101 :",
+"string_literals : string_literals ',' $$101 IDL_STRING_LITERAL",
"string_literals :",
};
#endif
@@ -790,7 +909,7 @@ TAO_YYSTYPE tao_yylval;
#define tao_yystacksize TAO_YYSTACKSIZE
short tao_yyss[TAO_YYSTACKSIZE];
TAO_YYSTYPE tao_yyvs[TAO_YYSTACKSIZE];
-#line 2294 "fe/idl.tao_yy"
+#line 2521 "fe/idl.tao_yy"
/* programs */
/*
@@ -812,7 +931,7 @@ void
tao_yyerror(const char *)
{
}
-#line 815 "y.tab.cpp"
+#line 934 "y.tab.cpp"
#define TAO_YYABORT goto tao_yyabort
#define TAO_YYACCEPT goto tao_yyaccept
#define TAO_YYERROR goto tao_yyerrlab
@@ -1097,7 +1216,7 @@ tao_yyinrecovery:
if (5 < tao_yydebug)
printf("tao_yydebug: state %d, error recovery discards token %d (%s)\n",
tao_yystate, tao_yychar, tao_yys);
- else
+ else
TAO_YYDEBUG_DISCARD_TOKEN(tao_yystate, tao_yychar, tao_yys, tao_yyssp-tao_yyss);
}
#endif
@@ -1118,2189 +1237,2386 @@ tao_yyreduce:
switch (tao_yyn)
{
case 4:
-#line 240 "fe/idl.tao_yy"
+#line 253 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_TypeDeclSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_TypeDeclSeen);
}
break;
case 5:
-#line 244 "fe/idl.tao_yy"
+#line 257 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
+ idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
}
break;
case 6:
-#line 248 "fe/idl.tao_yy"
+#line 261 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_ConstDeclSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_ConstDeclSeen);
}
break;
case 7:
-#line 252 "fe/idl.tao_yy"
+#line 265 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
+ idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
}
break;
case 8:
-#line 256 "fe/idl.tao_yy"
+#line 269 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_ExceptDeclSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_ExceptDeclSeen);
}
break;
case 9:
-#line 260 "fe/idl.tao_yy"
+#line 273 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
+ idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
}
break;
case 10:
-#line 264 "fe/idl.tao_yy"
+#line 277 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceDeclSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceDeclSeen);
}
break;
case 11:
-#line 268 "fe/idl.tao_yy"
+#line 281 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
+ idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
}
break;
case 12:
-#line 272 "fe/idl.tao_yy"
+#line 285 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_ModuleDeclSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_ModuleDeclSeen);
}
break;
case 13:
-#line 276 "fe/idl.tao_yy"
+#line 289 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
+ idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
}
break;
case 14:
-#line 280 "fe/idl.tao_yy"
+#line 293 "fe/idl.tao_yy"
{
- idl_global->err()->syntax_error(idl_global->parse_state());
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_ValuetypeDeclSeen);
+ }
break;
case 15:
-#line 284 "fe/idl.tao_yy"
+#line 297 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- tao_yyerrok;
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
+ }
break;
case 16:
-#line 291 "fe/idl.tao_yy"
+#line 301 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_ModuleSeen);
- }
+ idl_global->err()->syntax_error(idl_global->parse_state());
+ }
break;
case 17:
-#line 295 "fe/idl.tao_yy"
+#line 305 "fe/idl.tao_yy"
{
- UTL_ScopedName *n =
- new UTL_ScopedName(new Identifier(tao_yyvsp[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);
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
+ tao_yyerrok;
+ }
break;
case 18:
-#line 316 "fe/idl.tao_yy"
+#line 312 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_ModuleSqSeen);
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_ModuleSeen);
+ }
break;
case 19:
-#line 320 "fe/idl.tao_yy"
+#line 316 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_ModuleBodySeen);
- }
+ UTL_ScopedName *n =
+ new UTL_ScopedName(new Identifier(tao_yyvsp[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 20:
-#line 324 "fe/idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_ModuleQsSeen);
- /*
- * Finished with this module - pop it from the scope stack
- */
- UTL_Scope* s = idl_global->scopes()->top();
- AST_Module* m = AST_Module::narrow_from_scope (s);
- UTL_StrList *p = m->pragmas ();
- if (p != 0)
- p = (UTL_StrList*)p->copy ();
- idl_global->set_pragmas (p);
- idl_global->scopes()->pop();
- }
-break;
-case 23:
-#line 346 "fe/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_yyvsp[0].ihval != NULL) {
- i = idl_global->gen()->create_interface(tao_yyvsp[0].ihval->interface_name(),
- tao_yyvsp[0].ihval->inherits(),
- tao_yyvsp[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_yyvsp[0].ihval->inherits());
- fd->set_n_inherits(tao_yyvsp[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 430 "fe/idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceSqSeen);
- }
+#line 337 "fe/idl.tao_yy"
+{
+ idl_global->set_parse_state(IDL_GlobalData::PS_ModuleSqSeen);
+ }
+break;
+case 21:
+#line 341 "fe/idl.tao_yy"
+{
+ idl_global->set_parse_state(IDL_GlobalData::PS_ModuleBodySeen);
+ }
+break;
+case 22:
+#line 345 "fe/idl.tao_yy"
+{
+ idl_global->set_parse_state(IDL_GlobalData::PS_ModuleQsSeen);
+ /*
+ * Finished with this module - pop it from the scope stack
+ */
+ UTL_Scope* s = idl_global->scopes()->top();
+ AST_Module* m = AST_Module::narrow_from_scope (s);
+ UTL_StrList *p = m->pragmas ();
+ if (p != 0)
+ p = (UTL_StrList*)p->copy ();
+ idl_global->set_pragmas (p);
+ idl_global->scopes()->pop();
+ }
break;
case 25:
-#line 434 "fe/idl.tao_yy"
+#line 367 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceBodySeen);
- }
+ UTL_Scope *s = idl_global->scopes()->top_non_null();
+ AST_Interface *i = NULL;
+ AST_Decl *v = NULL;
+ UTL_StrList *p = idl_global->pragmas();
+ ACE_UNUSED_ARG (v);
+
+ /*
+ * Make a new interface node and add it to its enclosing scope
+ */
+ if (s != NULL && tao_yyvsp[0].ihval != NULL) {
+ i = idl_global->gen()->create_interface(tao_yyvsp[0].ihval->interface_name(),
+ tao_yyvsp[0].ihval->inherits(),
+ tao_yyvsp[0].ihval->n_inherits(),
+ p);
+ AST_Interface::fwd_redefinition_helper (i,s,p);
+ /*
+ * 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 26:
-#line 438 "fe/idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceQsSeen);
- /*
- * Done with this interface - pop it off the scopes stack
- */
- UTL_Scope* s = idl_global->scopes()->top();
- AST_Interface* m = AST_Interface::narrow_from_scope (s);
- UTL_StrList *p = m->pragmas ();
- if (p != 0)
- p = (UTL_StrList*)p->copy ();
- idl_global->set_pragmas (p);
- idl_global->scopes()->pop();
- }
+#line 394 "fe/idl.tao_yy"
+{
+ idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceSqSeen);
+ }
break;
case 27:
-#line 455 "fe/idl.tao_yy"
+#line 398 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceSeen);
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceBodySeen);
+ }
break;
case 28:
-#line 459 "fe/idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceIDSeen);
- tao_yyval.idval = tao_yyvsp[0].idval;
- }
+#line 402 "fe/idl.tao_yy"
+{
+ idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceQsSeen);
+ /*
+ * Done with this interface - pop it off the scopes stack
+ */
+ UTL_Scope* s = idl_global->scopes()->top();
+ AST_Interface* m = AST_Interface::narrow_from_scope (s);
+ UTL_StrList *p = m->pragmas ();
+ if (p != 0)
+ p = (UTL_StrList*)p->copy ();
+ idl_global->set_pragmas (p);
+ idl_global->scopes()->pop();
+ }
break;
case 29:
-#line 467 "fe/idl.tao_yy"
+#line 419 "fe/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_yyvsp[-1].idval, NULL), tao_yyvsp[0].nlval);
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceSeen);
+ }
break;
case 30:
-#line 481 "fe/idl.tao_yy"
+#line 423 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_InheritColonSeen);
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceIDSeen);
+ tao_yyval.idval = tao_yyvsp[0].idval;
+ }
break;
case 31:
-#line 485 "fe/idl.tao_yy"
+#line 431 "fe/idl.tao_yy"
{
- tao_yyval.nlval = tao_yyvsp[0].nlval;
- }
-break;
-case 32:
-#line 489 "fe/idl.tao_yy"
-{
- tao_yyval.nlval = NULL;
- }
-break;
-case 35:
-#line 501 "fe/idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_TypeDeclSeen);
+ 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_yyvsp[-1].idval, NULL), tao_yyvsp[0].nlval);
}
break;
-case 36:
-#line 505 "fe/idl.tao_yy"
+case 32:
+#line 445 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
+ idl_global->set_parse_state(IDL_GlobalData::PS_InheritColonSeen);
}
break;
-case 37:
-#line 509 "fe/idl.tao_yy"
+case 33:
+#line 449 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_ConstDeclSeen);
+ tao_yyval.nlval = tao_yyvsp[0].nlval;
}
break;
-case 38:
-#line 513 "fe/idl.tao_yy"
+case 34:
+#line 453 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
+ tao_yyval.nlval = NULL;
}
break;
case 39:
-#line 517 "fe/idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_ExceptDeclSeen);
- }
-break;
-case 40:
-#line 521 "fe/idl.tao_yy"
+#line 467 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
+ cerr << "error in " << idl_global->filename()->get_string()
+ << " line " << idl_global->lineno() << ":\n" ;
+ cerr << "Sorry, I (TAO_IDL) can't handle custom yet\n";
+ /* set custom (if not truncatable) */
}
break;
case 41:
-#line 525 "fe/idl.tao_yy"
+#line 478 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_AttrDeclSeen);
+ UTL_Scope *s = idl_global->scopes()->top_non_null();
+ AST_Interface *i = NULL;
+ UTL_StrList *p = idl_global->pragmas();
+
+ if (s != NULL && tao_yyvsp[0].vhval != NULL) {
+ i = idl_global->gen()->create_valuetype(tao_yyvsp[0].vhval->interface_name(),
+ tao_yyvsp[0].vhval->inherits(),
+ tao_yyvsp[0].vhval->n_inherits(),
+ p);
+ AST_Interface::fwd_redefinition_helper (i,s,p);
+ /*
+ * Add the valuetype to its definition scope
+ */
+ (void) s->fe_add_interface(i);
+ }
+ /*
+ * Push it on the scope stack
+ */
+ idl_global->scopes()->push(i);
}
break;
case 42:
-#line 529 "fe/idl.tao_yy"
+#line 500 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
+ idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceSqSeen);
}
break;
case 43:
-#line 533 "fe/idl.tao_yy"
+#line 504 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpDeclSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceBodySeen);
}
break;
case 44:
-#line 537 "fe/idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
+#line 508 "fe/idl.tao_yy"
+{
+ idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceQsSeen);
+ /*
+ * Done with this interface - pop it off the scopes stack
+ */
+ UTL_Scope* s = idl_global->scopes()->top();
+ AST_Interface* m = AST_Interface::narrow_from_scope (s);
+ UTL_StrList *p = m->pragmas ();
+ if (p != 0) p = (UTL_StrList*)p->copy ();
+ idl_global->set_pragmas (p);
+ idl_global->scopes()->pop();
}
break;
case 45:
-#line 541 "fe/idl.tao_yy"
+#line 525 "fe/idl.tao_yy"
{
- idl_global->err()->syntax_error(idl_global->parse_state());
- }
+ UTL_Scope *s = idl_global->scopes()->top_non_null();
+ AST_Interface *i = NULL;
+ UTL_StrList *p = idl_global->pragmas();
+
+ if (s != NULL && tao_yyvsp[0].vhval != NULL) {
+
+ if (tao_yyvsp[0].vhval->n_concrete() > 0) {
+ idl_global->err()->abstract_inheritance_error (tao_yyvsp[0].vhval->interface_name ());
+ }
+
+ i = idl_global->gen()->create_valuetype(tao_yyvsp[0].vhval->interface_name(),
+ tao_yyvsp[0].vhval->inherits(),
+ tao_yyvsp[0].vhval->n_inherits(),
+ p);
+ i->set_abstract_valuetype ();
+ AST_Interface::fwd_redefinition_helper (i,s,p);
+ /*
+ * Add the valuetype to its definition scope
+ */
+ (void) s->fe_add_interface(i);
+ }
+ /*
+ * Push it on the scope stack
+ */
+ idl_global->scopes()->push(i);
+ }
break;
case 46:
-#line 545 "fe/idl.tao_yy"
+#line 553 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- tao_yyerrok;
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceSqSeen);
+ }
break;
case 47:
-#line 553 "fe/idl.tao_yy"
+#line 557 "fe/idl.tao_yy"
{
- tao_yyval.nlval = new UTL_NameList(tao_yyvsp[-1].idlist, tao_yyvsp[0].nlval);
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceBodySeen);
+ }
break;
case 48:
#line 561 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_SNListCommaSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceQsSeen);
+ /*
+ * Done with this interface - pop it off the scopes stack
+ */
+ UTL_Scope* s = idl_global->scopes()->top();
+ AST_Interface* m = AST_Interface::narrow_from_scope (s);
+ UTL_StrList *p = m->pragmas ();
+ if (p != 0) p = (UTL_StrList*)p->copy ();
+ idl_global->set_pragmas (p);
+ idl_global->scopes()->pop();
}
break;
case 49:
-#line 565 "fe/idl.tao_yy"
+#line 581 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_ScopedNameSeen);
-
- if (tao_yyvsp[-3].nlval == NULL)
- tao_yyval.nlval = new UTL_NameList(tao_yyvsp[0].idlist, NULL);
- else {
- tao_yyvsp[-3].nlval->nconc(new UTL_NameList(tao_yyvsp[0].idlist, NULL));
- tao_yyval.nlval = tao_yyvsp[-3].nlval;
- }
- }
+ tao_yyval.vhval = new FE_obv_header (new UTL_ScopedName (tao_yyvsp[-3].idval, NULL), tao_yyvsp[-1].nlval, tao_yyvsp[0].nlval);
+ }
break;
case 50:
-#line 576 "fe/idl.tao_yy"
+#line 588 "fe/idl.tao_yy"
{
- tao_yyval.nlval = NULL;
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_ValuetypeSeen);
+ }
break;
case 51:
-#line 583 "fe/idl.tao_yy"
+#line 592 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_SN_IDSeen);
-
- tao_yyval.idlist = new UTL_IdList(tao_yyvsp[0].idval, NULL);
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_ValuetypeIDSeen);
+ tao_yyval.idval = tao_yyvsp[0].idval;
+ }
break;
case 52:
-#line 589 "fe/idl.tao_yy"
+#line 600 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_ScopeDelimSeen);
- }
+ cerr << "warning in " << idl_global->filename()->get_string()
+ << " line " << idl_global->lineno() << ":\n" ;
+ cerr << "truncatable modifier not supported and is ignored\n";
+ tao_yyval.bval = I_FALSE;
+ /* $$ = I_TRUE; */
+ }
break;
case 53:
-#line 593 "fe/idl.tao_yy"
+#line 608 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_SN_IDSeen);
-
- tao_yyval.idlist = new UTL_IdList(new Identifier(tao_yyvsp[-2].strval, 1, 0, I_FALSE),
- new UTL_IdList(tao_yyvsp[0].idval, NULL));
- }
+ tao_yyval.bval = I_FALSE;
+ }
break;
case 54:
-#line 601 "fe/idl.tao_yy"
+#line 616 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_ScopeDelimSeen);
- }
+ tao_yyval.nlval = new UTL_NameList(tao_yyvsp[0].idlist, NULL);
+ }
break;
case 55:
-#line 605 "fe/idl.tao_yy"
+#line 620 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_SN_IDSeen);
-
- tao_yyvsp[-3].idlist->nconc(new UTL_IdList(tao_yyvsp[0].idval, NULL));
- tao_yyval.idlist = tao_yyvsp[-3].idlist;
- }
+ tao_yyval.nlval = NULL;
+ }
break;
case 56:
-#line 614 "fe/idl.tao_yy"
+#line 628 "fe/idl.tao_yy"
{
- tao_yyval.idval = new Identifier(tao_yyvsp[0].strval, 1, 0, I_FALSE);
+ UTL_Scope *s = idl_global->scopes()->top_non_null();
+ UTL_ScopedName *n = new UTL_ScopedName(tao_yyvsp[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
+ * valuetype. Store it in the enclosing scope
+ */
+ if (s != NULL) {
+ f = idl_global->gen()->create_valuetype_fwd(n, p);
+ /* if ($1)*/
+ f->set_abstract_valuetype ();
+ (void) s->fe_add_interface_fwd(f);
+ }
}
break;
case 57:
-#line 621 "fe/idl.tao_yy"
+#line 648 "fe/idl.tao_yy"
{
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- UTL_ScopedName *n = new UTL_ScopedName(tao_yyvsp[0].idval, NULL);
- AST_InterfaceFwd *f = NULL;
- UTL_StrList *p = idl_global->pragmas();
+ UTL_Scope *s = idl_global->scopes()->top_non_null();
+ UTL_ScopedName *n = new UTL_ScopedName(tao_yyvsp[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);
- }
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_ForwardDeclSeen);
+ /*
+ * Create a node representing a forward declaration of an
+ * valuetype. Store it in the enclosing scope
+ */
+ if (s != NULL) {
+ f = idl_global->gen()->create_valuetype_fwd(n, p);
+ (void) s->fe_add_interface_fwd(f);
+ }
+ }
break;
case 58:
-#line 641 "fe/idl.tao_yy"
+#line 669 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_ConstSeen);
+ cerr << "error in " << idl_global->filename()->get_string()
+ << " line " << idl_global->lineno() << ":\n" ;
+ cerr << "Sorry, I (TAO_IDL) can't handle boxes yet\n";
}
break;
-case 59:
-#line 645 "fe/idl.tao_yy"
+case 64:
+#line 689 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_ConstTypeSeen);
- }
+ /* is $0 to member_i */
+ tao_yyval.vival = AST_Field::vis_PUBLIC;
+ }
break;
-case 60:
-#line 649 "fe/idl.tao_yy"
+case 66:
+#line 695 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_ConstIDSeen);
+ /* is $0 to member_i */
+ tao_yyval.vival = AST_Field::vis_PRIVATE;
+ }
+break;
+case 70:
+#line 709 "fe/idl.tao_yy"
+{
+ idl_global->set_parse_state(IDL_GlobalData::PS_TypeDeclSeen);
}
break;
-case 61:
-#line 653 "fe/idl.tao_yy"
+case 71:
+#line 713 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_ConstAssignSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
}
break;
-case 62:
-#line 657 "fe/idl.tao_yy"
+case 72:
+#line 717 "fe/idl.tao_yy"
{
- UTL_ScopedName *n = new UTL_ScopedName(tao_yyvsp[-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_yyvsp[0].exval != NULL && s != NULL) {
- if (tao_yyvsp[0].exval->coerce(tao_yyvsp[-6].etval) == NULL)
- idl_global->err()->coercion_error(tao_yyvsp[0].exval, tao_yyvsp[-6].etval);
- else {
- c =
- idl_global->gen()->create_constant(tao_yyvsp[-6].etval, tao_yyvsp[0].exval, n, p);
- (void) s->fe_add_constant(c);
- }
- }
- }
-break;
-case 68:
-#line 690 "fe/idl.tao_yy"
-{
- tao_yyval.etval = AST_Expression::EV_string;
- }
-break;
-case 69:
-#line 694 "fe/idl.tao_yy"
-{
- tao_yyval.etval = AST_Expression::EV_wstring;
+ idl_global->set_parse_state(IDL_GlobalData::PS_ConstDeclSeen);
}
break;
-case 70:
-#line 698 "fe/idl.tao_yy"
+case 73:
+#line 721 "fe/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_yyvsp[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 if (d->node_type () == AST_Decl::NT_string) {
- tao_yyval.etval = AST_Expression::EV_string;
- /* @ASG@ we will need a similar one for wstring after it
- is implemented */
- } else
- tao_yyval.etval = AST_Expression::EV_any;
- } else
- tao_yyval.etval = AST_Expression::EV_any;
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
+ }
break;
case 74:
-#line 744 "fe/idl.tao_yy"
+#line 725 "fe/idl.tao_yy"
{
- tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_or, tao_yyvsp[-2].exval, tao_yyvsp[0].exval);
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_ExceptDeclSeen);
+ }
+break;
+case 75:
+#line 729 "fe/idl.tao_yy"
+{
+ idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
+ }
break;
case 76:
-#line 752 "fe/idl.tao_yy"
+#line 733 "fe/idl.tao_yy"
{
- tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_xor, tao_yyvsp[-2].exval, tao_yyvsp[0].exval);
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_AttrDeclSeen);
+ }
+break;
+case 77:
+#line 737 "fe/idl.tao_yy"
+{
+ idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
+ }
break;
case 78:
-#line 760 "fe/idl.tao_yy"
+#line 741 "fe/idl.tao_yy"
+{
+ idl_global->set_parse_state(IDL_GlobalData::PS_OpDeclSeen);
+ }
+break;
+case 79:
+#line 745 "fe/idl.tao_yy"
{
- tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_and, tao_yyvsp[-2].exval, tao_yyvsp[0].exval);
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
+ }
break;
case 80:
-#line 768 "fe/idl.tao_yy"
+#line 749 "fe/idl.tao_yy"
{
- tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_right,tao_yyvsp[-2].exval,tao_yyvsp[0].exval);
- }
+ idl_global->err()->syntax_error(idl_global->parse_state());
+ }
break;
case 81:
-#line 772 "fe/idl.tao_yy"
+#line 753 "fe/idl.tao_yy"
+{
+ idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
+ tao_yyerrok;
+ }
+break;
+case 82:
+#line 761 "fe/idl.tao_yy"
{
- tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_left,tao_yyvsp[-2].exval,tao_yyvsp[0].exval);
- }
+ tao_yyval.nlval = new UTL_NameList(tao_yyvsp[-1].idlist, tao_yyvsp[0].nlval);
+ }
break;
case 83:
-#line 780 "fe/idl.tao_yy"
+#line 769 "fe/idl.tao_yy"
{
- tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_add, tao_yyvsp[-2].exval, tao_yyvsp[0].exval);
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_SNListCommaSeen);
+ }
break;
case 84:
+#line 773 "fe/idl.tao_yy"
+{
+ idl_global->set_parse_state(IDL_GlobalData::PS_ScopedNameSeen);
+
+ if (tao_yyvsp[-3].nlval == NULL)
+ tao_yyval.nlval = new UTL_NameList(tao_yyvsp[0].idlist, NULL);
+ else {
+ tao_yyvsp[-3].nlval->nconc(new UTL_NameList(tao_yyvsp[0].idlist, NULL));
+ tao_yyval.nlval = tao_yyvsp[-3].nlval;
+ }
+ }
+break;
+case 85:
#line 784 "fe/idl.tao_yy"
{
- tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_minus,tao_yyvsp[-2].exval,tao_yyvsp[0].exval);
- }
+ tao_yyval.nlval = NULL;
+ }
break;
case 86:
-#line 792 "fe/idl.tao_yy"
+#line 791 "fe/idl.tao_yy"
{
- tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_mul, tao_yyvsp[-2].exval, tao_yyvsp[0].exval);
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_SN_IDSeen);
+
+ tao_yyval.idlist = new UTL_IdList(tao_yyvsp[0].idval, NULL);
+ }
break;
case 87:
-#line 796 "fe/idl.tao_yy"
+#line 797 "fe/idl.tao_yy"
{
- tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_div, tao_yyvsp[-2].exval, tao_yyvsp[0].exval);
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_ScopeDelimSeen);
+ }
break;
case 88:
-#line 800 "fe/idl.tao_yy"
+#line 801 "fe/idl.tao_yy"
{
- tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_mod, tao_yyvsp[-2].exval, tao_yyvsp[0].exval);
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_SN_IDSeen);
+
+ tao_yyval.idlist = new UTL_IdList(new Identifier(tao_yyvsp[-2].strval, 1, 0, I_FALSE),
+ new UTL_IdList(tao_yyvsp[0].idval, NULL));
+ }
+break;
+case 89:
+#line 809 "fe/idl.tao_yy"
+{
+ idl_global->set_parse_state(IDL_GlobalData::PS_ScopeDelimSeen);
+ }
break;
case 90:
-#line 808 "fe/idl.tao_yy"
+#line 813 "fe/idl.tao_yy"
{
- tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_u_plus,
- tao_yyvsp[0].exval,
- NULL);
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_SN_IDSeen);
+
+ tao_yyvsp[-3].idlist->nconc(new UTL_IdList(tao_yyvsp[0].idval, NULL));
+ tao_yyval.idlist = tao_yyvsp[-3].idlist;
+ }
break;
case 91:
-#line 814 "fe/idl.tao_yy"
+#line 822 "fe/idl.tao_yy"
{
- tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_u_minus,
- tao_yyvsp[0].exval,
- NULL);
- }
+ tao_yyval.idval = new Identifier(tao_yyvsp[0].strval, 1, 0, I_FALSE);
+ }
break;
case 92:
-#line 820 "fe/idl.tao_yy"
+#line 829 "fe/idl.tao_yy"
{
- tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_bit_neg,
- tao_yyvsp[0].exval,
- NULL);
- }
+ UTL_Scope *s = idl_global->scopes()->top_non_null();
+ UTL_ScopedName *n = new UTL_ScopedName(tao_yyvsp[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 93:
-#line 829 "fe/idl.tao_yy"
+#line 849 "fe/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_yyvsp[0].idlist);
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_ConstSeen);
+ }
+break;
+case 94:
+#line 853 "fe/idl.tao_yy"
+{
+ idl_global->set_parse_state(IDL_GlobalData::PS_ConstTypeSeen);
+ }
break;
case 95:
-#line 839 "fe/idl.tao_yy"
+#line 857 "fe/idl.tao_yy"
{
- tao_yyval.exval = tao_yyvsp[-1].exval;
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_ConstIDSeen);
+ }
break;
case 96:
-#line 846 "fe/idl.tao_yy"
+#line 861 "fe/idl.tao_yy"
{
- tao_yyval.exval = idl_global->gen()->create_expr(tao_yyvsp[0].ival);
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_ConstAssignSeen);
+ }
break;
case 97:
-#line 850 "fe/idl.tao_yy"
+#line 865 "fe/idl.tao_yy"
+{
+ UTL_ScopedName *n = new UTL_ScopedName(tao_yyvsp[-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_yyvsp[0].exval != NULL && s != NULL) {
+ if (tao_yyvsp[0].exval->coerce(tao_yyvsp[-6].etval) == NULL)
+ idl_global->err()->coercion_error(tao_yyvsp[0].exval, tao_yyvsp[-6].etval);
+ else {
+ c =
+ idl_global->gen()->create_constant(tao_yyvsp[-6].etval, tao_yyvsp[0].exval, n, p);
+ (void) s->fe_add_constant(c);
+ }
+ }
+ }
+break;
+case 103:
+#line 898 "fe/idl.tao_yy"
+{
+ tao_yyval.etval = AST_Expression::EV_string;
+ }
+break;
+case 104:
+#line 902 "fe/idl.tao_yy"
{
- tao_yyval.exval = idl_global->gen()->create_expr(tao_yyvsp[0].sval);
- }
+ tao_yyval.etval = AST_Expression::EV_wstring;
+ }
break;
-case 98:
-#line 854 "fe/idl.tao_yy"
+case 105:
+#line 906 "fe/idl.tao_yy"
{
- tao_yyval.exval = idl_global->gen()->create_expr(tao_yyvsp[0].cval);
- }
+ 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_yyvsp[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 if (d->node_type () == AST_Decl::NT_string) {
+ tao_yyval.etval = AST_Expression::EV_string;
+ /* @ASG@ we will need a similar one for wstring after it
+ is implemented */
+ } else
+ tao_yyval.etval = AST_Expression::EV_any;
+ } else
+ tao_yyval.etval = AST_Expression::EV_any;
+ }
break;
-case 99:
-#line 858 "fe/idl.tao_yy"
+case 109:
+#line 952 "fe/idl.tao_yy"
{
- tao_yyval.exval = idl_global->gen()->create_expr(tao_yyvsp[0].dval);
- }
+ tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_or, tao_yyvsp[-2].exval, tao_yyvsp[0].exval);
+ }
break;
-case 100:
-#line 862 "fe/idl.tao_yy"
+case 111:
+#line 960 "fe/idl.tao_yy"
{
- tao_yyval.exval = idl_global->gen()->create_expr((idl_bool) I_TRUE,
- AST_Expression::EV_bool);
- }
+ tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_xor, tao_yyvsp[-2].exval, tao_yyvsp[0].exval);
+ }
break;
-case 101:
-#line 867 "fe/idl.tao_yy"
+case 113:
+#line 968 "fe/idl.tao_yy"
{
- tao_yyval.exval = idl_global->gen()->create_expr((idl_bool) I_FALSE,
- AST_Expression::EV_bool);
- }
+ tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_and, tao_yyvsp[-2].exval, tao_yyvsp[0].exval);
+ }
break;
-case 102:
-#line 875 "fe/idl.tao_yy"
+case 115:
+#line 976 "fe/idl.tao_yy"
{
- tao_yyvsp[0].exval->evaluate(AST_Expression::EK_const);
- tao_yyval.exval = idl_global->gen()->create_expr(tao_yyvsp[0].exval, AST_Expression::EV_ulong);
- }
+ tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_right,tao_yyvsp[-2].exval,tao_yyvsp[0].exval);
+ }
break;
-case 103:
-#line 883 "fe/idl.tao_yy"
+case 116:
+#line 980 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_TypedefSeen);
- }
+ tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_left,tao_yyvsp[-2].exval,tao_yyvsp[0].exval);
+ }
break;
-case 104:
-#line 886 "fe/idl.tao_yy"
+case 118:
+#line 988 "fe/idl.tao_yy"
+{
+ tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_add, tao_yyvsp[-2].exval, tao_yyvsp[0].exval);
+ }
+break;
+case 119:
+#line 992 "fe/idl.tao_yy"
+{
+ tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_minus,tao_yyvsp[-2].exval,tao_yyvsp[0].exval);
+ }
+break;
+case 121:
+#line 1000 "fe/idl.tao_yy"
+{
+ tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_mul, tao_yyvsp[-2].exval, tao_yyvsp[0].exval);
+ }
+break;
+case 122:
+#line 1004 "fe/idl.tao_yy"
+{
+ tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_div, tao_yyvsp[-2].exval, tao_yyvsp[0].exval);
+ }
+break;
+case 123:
+#line 1008 "fe/idl.tao_yy"
+{
+ tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_mod, tao_yyvsp[-2].exval, tao_yyvsp[0].exval);
+ }
+break;
+case 125:
+#line 1016 "fe/idl.tao_yy"
+{
+ tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_u_plus,
+ tao_yyvsp[0].exval,
+ NULL);
+ }
+break;
+case 126:
+#line 1022 "fe/idl.tao_yy"
+{
+ tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_u_minus,
+ tao_yyvsp[0].exval,
+ NULL);
+ }
+break;
+case 127:
+#line 1028 "fe/idl.tao_yy"
+{
+ tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_bit_neg,
+ tao_yyvsp[0].exval,
+ NULL);
+ }
+break;
+case 128:
+#line 1037 "fe/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_yyvsp[0].idlist);
+ }
+break;
+case 130:
+#line 1047 "fe/idl.tao_yy"
+{
+ tao_yyval.exval = tao_yyvsp[-1].exval;
+ }
+break;
+case 131:
+#line 1054 "fe/idl.tao_yy"
+{
+ tao_yyval.exval = idl_global->gen()->create_expr(tao_yyvsp[0].ival);
+ }
+break;
+case 132:
+#line 1058 "fe/idl.tao_yy"
+{
+ tao_yyval.exval = idl_global->gen()->create_expr(tao_yyvsp[0].sval);
+ }
+break;
+case 133:
+#line 1062 "fe/idl.tao_yy"
+{
+ tao_yyval.exval = idl_global->gen()->create_expr(tao_yyvsp[0].cval);
+ }
+break;
+case 134:
+#line 1066 "fe/idl.tao_yy"
+{
+ tao_yyval.exval = idl_global->gen()->create_expr(tao_yyvsp[0].dval);
+ }
+break;
+case 135:
+#line 1070 "fe/idl.tao_yy"
+{
+ tao_yyval.exval = idl_global->gen()->create_expr((idl_bool) I_TRUE,
+ AST_Expression::EV_bool);
+ }
+break;
+case 136:
+#line 1075 "fe/idl.tao_yy"
+{
+ tao_yyval.exval = idl_global->gen()->create_expr((idl_bool) I_FALSE,
+ AST_Expression::EV_bool);
+ }
+break;
+case 137:
+#line 1083 "fe/idl.tao_yy"
+{
+ tao_yyvsp[0].exval->evaluate(AST_Expression::EK_const);
+ tao_yyval.exval = idl_global->gen()->create_expr(tao_yyvsp[0].exval, AST_Expression::EV_ulong);
+ }
+break;
+case 138:
+#line 1091 "fe/idl.tao_yy"
+{
+ idl_global->set_parse_state(IDL_GlobalData::PS_TypedefSeen);
+ }
+break;
+case 139:
+#line 1094 "fe/idl.tao_yy"
{tao_yyval.ival = 0;}
break;
-case 105:
-#line 887 "fe/idl.tao_yy"
+case 140:
+#line 1095 "fe/idl.tao_yy"
{ tao_yyval.ival = 0;}
break;
-case 106:
-#line 888 "fe/idl.tao_yy"
+case 141:
+#line 1096 "fe/idl.tao_yy"
{ tao_yyval.ival = 0;}
break;
-case 107:
-#line 889 "fe/idl.tao_yy"
+case 142:
+#line 1097 "fe/idl.tao_yy"
{ tao_yyval.ival = 0;}
break;
-case 108:
-#line 891 "fe/idl.tao_yy"
+case 143:
+#line 1099 "fe/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();
+ 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_yyvsp[0].deval->name (), p);
- /*
- * Add it to its defining scope
- */
- (void) s->fe_add_native (node);
- }
- }
+ 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_yyvsp[0].deval->name (), p);
+ /*
+ * Add it to its defining scope
+ */
+ (void) s->fe_add_native (node);
+ }
+ }
break;
-case 109:
-#line 916 "fe/idl.tao_yy"
+case 144:
+#line 1124 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_TypeSpecSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_TypeSpecSeen);
}
break;
-case 110:
-#line 920 "fe/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();
+case 145:
+#line 1128 "fe/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_yyvsp[-2].dcval != NULL && tao_yyvsp[0].dlval != NULL) {
- l = new UTL_DecllistActiveIterator(tao_yyvsp[0].dlval);
- for (;!(l->is_done()); l->next()) {
- d = l->item();
- if (d == NULL)
- continue;
+ 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_yyvsp[-2].dcval != NULL && tao_yyvsp[0].dlval != NULL) {
+ l = new UTL_DecllistActiveIterator(tao_yyvsp[0].dlval);
+ for (;!(l->is_done()); l->next()) {
+ d = l->item();
+ if (d == NULL)
+ continue;
AST_Type * tp = d->compose(tao_yyvsp[-2].dcval);
if (tp == NULL)
- continue;
- t = idl_global->gen()->create_typedef(tp, d->name(), p);
- (void) s->fe_add_typedef(t);
- }
- delete l;
- }
- }
+ continue;
+ t = idl_global->gen()->create_typedef(tp, d->name(), p);
+ (void) s->fe_add_typedef(t);
+ }
+ delete l;
+ }
+ }
break;
-case 113:
-#line 959 "fe/idl.tao_yy"
+case 148:
+#line 1167 "fe/idl.tao_yy"
{
- tao_yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(tao_yyvsp[0].etval);
- }
+ tao_yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(tao_yyvsp[0].etval);
+ }
break;
-case 115:
-#line 964 "fe/idl.tao_yy"
+case 150:
+#line 1172 "fe/idl.tao_yy"
{
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- AST_Decl *d = NULL;
+ UTL_Scope *s = idl_global->scopes()->top_non_null();
+ AST_Decl *d = NULL;
- if (s != NULL)
- d = s->lookup_by_name(tao_yyvsp[0].idlist, I_TRUE);
- if (d == NULL)
- idl_global->err()->lookup_error(tao_yyvsp[0].idlist);
- tao_yyval.dcval = d;
- }
+ if (s != NULL)
+ d = s->lookup_by_name(tao_yyvsp[0].idlist, I_TRUE);
+ if (d == NULL)
+ idl_global->err()->lookup_error(tao_yyvsp[0].idlist);
+ tao_yyval.dcval = d;
+ }
break;
-case 128:
-#line 999 "fe/idl.tao_yy"
+case 163:
+#line 1207 "fe/idl.tao_yy"
{
- tao_yyval.dlval = new UTL_DeclList(tao_yyvsp[-1].deval, tao_yyvsp[0].dlval);
- }
+ tao_yyval.dlval = new UTL_DeclList(tao_yyvsp[-1].deval, tao_yyvsp[0].dlval);
+ }
break;
-case 129:
-#line 1007 "fe/idl.tao_yy"
+case 164:
+#line 1215 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_DeclsCommaSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_DeclsCommaSeen);
}
break;
-case 130:
-#line 1011 "fe/idl.tao_yy"
+case 165:
+#line 1219 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_DeclsDeclSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_DeclsDeclSeen);
- if (tao_yyvsp[-3].dlval == NULL)
- tao_yyval.dlval = new UTL_DeclList(tao_yyvsp[0].deval, NULL);
- else {
- tao_yyvsp[-3].dlval->nconc(new UTL_DeclList(tao_yyvsp[0].deval, NULL));
- tao_yyval.dlval = tao_yyvsp[-3].dlval;
- }
- }
+ if (tao_yyvsp[-3].dlval == NULL)
+ tao_yyval.dlval = new UTL_DeclList(tao_yyvsp[0].deval, NULL);
+ else {
+ tao_yyvsp[-3].dlval->nconc(new UTL_DeclList(tao_yyvsp[0].deval, NULL));
+ tao_yyval.dlval = tao_yyvsp[-3].dlval;
+ }
+ }
break;
-case 131:
-#line 1022 "fe/idl.tao_yy"
+case 166:
+#line 1230 "fe/idl.tao_yy"
{
- tao_yyval.dlval = NULL;
- }
+ tao_yyval.dlval = NULL;
+ }
break;
-case 134:
-#line 1034 "fe/idl.tao_yy"
+case 169:
+#line 1242 "fe/idl.tao_yy"
{
- tao_yyval.dlval = new UTL_DeclList(tao_yyvsp[-1].deval, tao_yyvsp[0].dlval);
- }
+ tao_yyval.dlval = new UTL_DeclList(tao_yyvsp[-1].deval, tao_yyvsp[0].dlval);
+ }
break;
-case 135:
-#line 1042 "fe/idl.tao_yy"
+case 170:
+#line 1250 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_DeclsCommaSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_DeclsCommaSeen);
}
break;
-case 136:
-#line 1046 "fe/idl.tao_yy"
+case 171:
+#line 1254 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_DeclsDeclSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_DeclsDeclSeen);
- if (tao_yyvsp[-3].dlval == NULL)
- tao_yyval.dlval = new UTL_DeclList(tao_yyvsp[0].deval, NULL);
- else {
- tao_yyvsp[-3].dlval->nconc(new UTL_DeclList(tao_yyvsp[0].deval, NULL));
- tao_yyval.dlval = tao_yyvsp[-3].dlval;
- }
- }
+ if (tao_yyvsp[-3].dlval == NULL)
+ tao_yyval.dlval = new UTL_DeclList(tao_yyvsp[0].deval, NULL);
+ else {
+ tao_yyvsp[-3].dlval->nconc(new UTL_DeclList(tao_yyvsp[0].deval, NULL));
+ tao_yyval.dlval = tao_yyvsp[-3].dlval;
+ }
+ }
break;
-case 137:
-#line 1057 "fe/idl.tao_yy"
+case 172:
+#line 1265 "fe/idl.tao_yy"
{
- tao_yyval.dlval = NULL;
- }
+ tao_yyval.dlval = NULL;
+ }
break;
-case 138:
-#line 1064 "fe/idl.tao_yy"
+case 173:
+#line 1272 "fe/idl.tao_yy"
{
- tao_yyval.deval = new FE_Declarator(new UTL_ScopedName(tao_yyvsp[0].idval, NULL),
- FE_Declarator::FD_simple, NULL);
- }
+ tao_yyval.deval = new FE_Declarator(new UTL_ScopedName(tao_yyvsp[0].idval, NULL),
+ FE_Declarator::FD_simple, NULL);
+ }
break;
-case 139:
-#line 1072 "fe/idl.tao_yy"
+case 174:
+#line 1280 "fe/idl.tao_yy"
{
- tao_yyval.deval = new FE_Declarator(new UTL_ScopedName(tao_yyvsp[0].dcval->local_name(), NULL),
- FE_Declarator::FD_complex,
- tao_yyvsp[0].dcval);
- }
+ tao_yyval.deval = new FE_Declarator(new UTL_ScopedName(tao_yyvsp[0].dcval->local_name(), NULL),
+ FE_Declarator::FD_complex,
+ tao_yyvsp[0].dcval);
+ }
break;
-case 142:
-#line 1086 "fe/idl.tao_yy"
+case 177:
+#line 1294 "fe/idl.tao_yy"
{
- tao_yyval.etval = AST_Expression::EV_long;
- }
+ tao_yyval.etval = AST_Expression::EV_long;
+ }
break;
-case 143:
-#line 1090 "fe/idl.tao_yy"
+case 178:
+#line 1298 "fe/idl.tao_yy"
{
- tao_yyval.etval = AST_Expression::EV_longlong;
+ tao_yyval.etval = AST_Expression::EV_longlong;
}
break;
-case 144:
-#line 1094 "fe/idl.tao_yy"
+case 179:
+#line 1302 "fe/idl.tao_yy"
{
- tao_yyval.etval = AST_Expression::EV_short;
- }
+ tao_yyval.etval = AST_Expression::EV_short;
+ }
break;
-case 145:
-#line 1101 "fe/idl.tao_yy"
+case 180:
+#line 1309 "fe/idl.tao_yy"
{
- tao_yyval.etval = AST_Expression::EV_ulong;
- }
+ tao_yyval.etval = AST_Expression::EV_ulong;
+ }
break;
-case 146:
-#line 1105 "fe/idl.tao_yy"
+case 181:
+#line 1313 "fe/idl.tao_yy"
{
- tao_yyval.etval = AST_Expression::EV_ulonglong;
+ tao_yyval.etval = AST_Expression::EV_ulonglong;
}
break;
-case 147:
-#line 1109 "fe/idl.tao_yy"
+case 182:
+#line 1317 "fe/idl.tao_yy"
{
- tao_yyval.etval = AST_Expression::EV_ushort;
- }
+ tao_yyval.etval = AST_Expression::EV_ushort;
+ }
break;
-case 148:
-#line 1116 "fe/idl.tao_yy"
+case 183:
+#line 1324 "fe/idl.tao_yy"
{
- tao_yyval.etval = AST_Expression::EV_double;
- }
+ tao_yyval.etval = AST_Expression::EV_double;
+ }
break;
-case 149:
-#line 1120 "fe/idl.tao_yy"
+case 184:
+#line 1328 "fe/idl.tao_yy"
{
- tao_yyval.etval = AST_Expression::EV_float;
- }
+ tao_yyval.etval = AST_Expression::EV_float;
+ }
break;
-case 150:
-#line 1124 "fe/idl.tao_yy"
+case 185:
+#line 1332 "fe/idl.tao_yy"
{
- tao_yyval.etval = AST_Expression::EV_longdouble;
+ tao_yyval.etval = AST_Expression::EV_longdouble;
}
break;
-case 151:
-#line 1131 "fe/idl.tao_yy"
+case 186:
+#line 1339 "fe/idl.tao_yy"
{
- tao_yyval.etval = AST_Expression::EV_char;
- }
+ tao_yyval.etval = AST_Expression::EV_char;
+ }
break;
-case 152:
-#line 1135 "fe/idl.tao_yy"
+case 187:
+#line 1343 "fe/idl.tao_yy"
{
- tao_yyval.etval = AST_Expression::EV_wchar;
+ tao_yyval.etval = AST_Expression::EV_wchar;
}
break;
-case 153:
-#line 1142 "fe/idl.tao_yy"
+case 188:
+#line 1350 "fe/idl.tao_yy"
{
tao_yyval.etval = AST_Expression::EV_octet;
- }
+ }
break;
-case 154:
-#line 1149 "fe/idl.tao_yy"
+case 189:
+#line 1357 "fe/idl.tao_yy"
{
- tao_yyval.etval = AST_Expression::EV_bool;
+ tao_yyval.etval = AST_Expression::EV_bool;
}
break;
-case 155:
-#line 1156 "fe/idl.tao_yy"
+case 190:
+#line 1364 "fe/idl.tao_yy"
{
- tao_yyval.etval = AST_Expression::EV_any;
- }
+ tao_yyval.etval = AST_Expression::EV_any;
+ }
break;
-case 156:
-#line 1163 "fe/idl.tao_yy"
+case 191:
+#line 1371 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_StructSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_StructSeen);
}
break;
-case 157:
-#line 1167 "fe/idl.tao_yy"
+case 192:
+#line 1375 "fe/idl.tao_yy"
{
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- UTL_ScopedName *n = new UTL_ScopedName(tao_yyvsp[0].idval, NULL);
- AST_Structure *d = NULL;
- UTL_StrList *p = idl_global->pragmas();
- AST_Decl *v = NULL;
+ UTL_Scope *s = idl_global->scopes()->top_non_null();
+ UTL_ScopedName *n = new UTL_ScopedName(tao_yyvsp[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);
- }
+ 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 1191 "fe/idl.tao_yy"
+case 193:
+#line 1399 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_StructSqSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_StructSqSeen);
}
break;
-case 159:
-#line 1195 "fe/idl.tao_yy"
+case 194:
+#line 1403 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_StructBodySeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_StructBodySeen);
}
break;
-case 160:
-#line 1199 "fe/idl.tao_yy"
+case 195:
+#line 1407 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_StructQsSeen);
- /*
- * Done with this struct. Pop its scope off the scopes stack
- */
+ idl_global->set_parse_state(IDL_GlobalData::PS_StructQsSeen);
+ /*
+ * Done with this struct. Pop its scope off the scopes stack
+ */
tao_yyval.dcval =
- AST_Structure::narrow_from_scope(
- idl_global->scopes()->top_non_null());
- UTL_StrList *p = tao_yyval.dcval->pragmas ();
- if (p != 0)
- p = (UTL_StrList*)p->copy ();
- idl_global->set_pragmas (p);
+ AST_Structure::narrow_from_scope(
+ idl_global->scopes()->top_non_null());
+ UTL_StrList *p = tao_yyval.dcval->pragmas ();
+ if (p != 0)
+ p = (UTL_StrList*)p->copy ();
+ idl_global->set_pragmas (p);
idl_global->scopes()->pop();
- }
+ }
break;
-case 164:
-#line 1224 "fe/idl.tao_yy"
+case 199:
+#line 1431 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_MemberTypeSeen);
+ /* is $0 to member_i */
+ tao_yyval.vival = AST_Field::vis_NA;
}
break;
-case 165:
-#line 1228 "fe/idl.tao_yy"
+case 201:
+#line 1440 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_MemberDeclsSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_MemberTypeSeen);
}
break;
-case 166:
-#line 1232 "fe/idl.tao_yy"
+case 202:
+#line 1444 "fe/idl.tao_yy"
+{
+ idl_global->set_parse_state(IDL_GlobalData::PS_MemberDeclsSeen);
+ }
+break;
+case 203:
+#line 1448 "fe/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();
+ 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_yyvsp[-4].dcval != NULL && AST_illegal_recursive_type(tao_yyvsp[-4].dcval))
- idl_global->err()->error1(UTL_Error::EIDL_RECURSIVE_TYPE, tao_yyvsp[-4].dcval);
- /*
- * Create a node representing a struct or exception member
- * Add it to the enclosing scope
- */
- else if (s != NULL && tao_yyvsp[-4].dcval != NULL && tao_yyvsp[-2].dlval != NULL) {
- l = new UTL_DecllistActiveIterator(tao_yyvsp[-2].dlval);
- for (;!(l->is_done()); l->next()) {
- d = l->item();
- if (d == NULL)
- continue;
- AST_Type *tp = d->compose(tao_yyvsp[-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 1265 "fe/idl.tao_yy"
+ idl_global->set_parse_state(IDL_GlobalData::PS_MemberDeclsCompleted);
+ /*
+ * Check for illegal recursive use of type
+ */
+ if (tao_yyvsp[-4].dcval != NULL && AST_illegal_recursive_type(tao_yyvsp[-4].dcval))
+ idl_global->err()->error1(UTL_Error::EIDL_RECURSIVE_TYPE, tao_yyvsp[-4].dcval);
+ /*
+ * Create a node representing a struct or exception member
+ * Add it to the enclosing scope
+ */
+ else if (s != NULL && tao_yyvsp[-4].dcval != NULL && tao_yyvsp[-2].dlval != NULL) {
+ l = new UTL_DecllistActiveIterator(tao_yyvsp[-2].dlval);
+ for (;!(l->is_done()); l->next()) {
+ d = l->item();
+ if (d == NULL)
+ continue;
+ AST_Type *tp = d->compose(tao_yyvsp[-4].dcval);
+ if (tp == NULL)
+ continue;
+ /* $0 denotes Visibility, must be on yacc reduction stack */
+ f = idl_global->gen()->create_field(tp, d->name(), p, tao_yyvsp[-5].vival);
+ (void) s->fe_add_field(f);
+ }
+ delete l;
+ }
+ }
+break;
+case 204:
+#line 1482 "fe/idl.tao_yy"
{
- idl_global->err()->syntax_error(idl_global->parse_state());
- }
+ idl_global->err()->syntax_error(idl_global->parse_state());
+ }
break;
-case 168:
-#line 1269 "fe/idl.tao_yy"
+case 205:
+#line 1486 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- tao_yyerrok;
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
+ tao_yyerrok;
+ }
break;
-case 169:
-#line 1277 "fe/idl.tao_yy"
+case 206:
+#line 1494 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_UnionSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_UnionSeen);
}
break;
-case 170:
-#line 1281 "fe/idl.tao_yy"
+case 207:
+#line 1498 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_UnionIDSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_UnionIDSeen);
}
break;
-case 171:
-#line 1285 "fe/idl.tao_yy"
+case 208:
+#line 1502 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_SwitchSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_SwitchSeen);
}
break;
-case 172:
-#line 1289 "fe/idl.tao_yy"
+case 209:
+#line 1506 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_SwitchOpenParSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_SwitchOpenParSeen);
}
break;
-case 173:
-#line 1293 "fe/idl.tao_yy"
+case 210:
+#line 1510 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_SwitchTypeSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_SwitchTypeSeen);
}
break;
-case 174:
-#line 1297 "fe/idl.tao_yy"
+case 211:
+#line 1514 "fe/idl.tao_yy"
{
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- UTL_ScopedName *n = new UTL_ScopedName(tao_yyvsp[-8].idval, NULL);
- AST_Union *u = NULL;
- AST_Decl *v = NULL;
- UTL_StrList *p = idl_global->pragmas();
+ UTL_Scope *s = idl_global->scopes()->top_non_null();
+ UTL_ScopedName *n = new UTL_ScopedName(tao_yyvsp[-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_yyvsp[-2].dcval != NULL && s != NULL) {
- AST_ConcreteType *tp = AST_ConcreteType::narrow_from_decl(tao_yyvsp[-2].dcval);
+ idl_global->set_parse_state(IDL_GlobalData::PS_SwitchCloseParSeen);
+ /*
+ * Create a node representing a union. Add it to its enclosing
+ * scope
+ */
+ if (tao_yyvsp[-2].dcval != NULL && s != NULL) {
+ AST_ConcreteType *tp = AST_ConcreteType::narrow_from_decl(tao_yyvsp[-2].dcval);
if (tp == NULL) {
idl_global->err()->not_a_type(tao_yyvsp[-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);
- }
+ 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 1326 "fe/idl.tao_yy"
+case 212:
+#line 1543 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_UnionSqSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_UnionSqSeen);
}
break;
-case 176:
-#line 1330 "fe/idl.tao_yy"
+case 213:
+#line 1547 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_UnionBodySeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_UnionBodySeen);
}
break;
-case 177:
-#line 1334 "fe/idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_UnionQsSeen);
- /*
- * Done with this union. Pop its scope from the scopes stack
- */
- tao_yyval.dcval =
- AST_Union::narrow_from_scope(
- idl_global->scopes()->top_non_null());
- UTL_StrList *p = tao_yyval.dcval->pragmas ();
- if (p != 0)
- p = (UTL_StrList*)p->copy ();
- idl_global->set_pragmas (p);
- idl_global->scopes()->pop();
- }
+case 214:
+#line 1551 "fe/idl.tao_yy"
+{
+ idl_global->set_parse_state(IDL_GlobalData::PS_UnionQsSeen);
+ /*
+ * Done with this union. Pop its scope from the scopes stack
+ */
+ tao_yyval.dcval =
+ AST_Union::narrow_from_scope(
+ idl_global->scopes()->top_non_null());
+ UTL_StrList *p = tao_yyval.dcval->pragmas ();
+ if (p != 0)
+ p = (UTL_StrList*)p->copy ();
+ idl_global->set_pragmas (p);
+ idl_global->scopes()->pop();
+ }
break;
-case 178:
-#line 1352 "fe/idl.tao_yy"
+case 215:
+#line 1569 "fe/idl.tao_yy"
{
- tao_yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(tao_yyvsp[0].etval);
- }
+ tao_yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(tao_yyvsp[0].etval);
+ }
break;
-case 179:
-#line 1356 "fe/idl.tao_yy"
+case 216:
+#line 1573 "fe/idl.tao_yy"
{
- tao_yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(tao_yyvsp[0].etval);
- }
+ tao_yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(tao_yyvsp[0].etval);
+ }
break;
-case 180:
-#line 1360 "fe/idl.tao_yy"
+case 217:
+#line 1577 "fe/idl.tao_yy"
{
/* octets are not allowed*/
idl_global->err ()->error0 (UTL_Error::EIDL_DISC_TYPE);
- }
+ }
break;
-case 181:
-#line 1365 "fe/idl.tao_yy"
+case 218:
+#line 1582 "fe/idl.tao_yy"
{
- tao_yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(tao_yyvsp[0].etval);
- }
+ tao_yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(tao_yyvsp[0].etval);
+ }
break;
-case 183:
-#line 1370 "fe/idl.tao_yy"
+case 220:
+#line 1587 "fe/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;
+ 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_yyvsp[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_boolean:
- tao_yyval.dcval = p;
- found = I_TRUE;
- break;
- case AST_PredefinedType::PT_octet:
+ /*
+ * 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_yyvsp[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_boolean:
+ tao_yyval.dcval = p;
+ found = I_TRUE;
+ break;
+ case AST_PredefinedType::PT_octet:
/* octets are not allowed*/
idl_global->err ()->error0 (UTL_Error::EIDL_DISC_TYPE);
tao_yyval.dcval = NULL;
- found = I_TRUE;
- break;
- default:
- tao_yyval.dcval = NULL;
- found = I_TRUE;
- break;
- }
- } else
+ found = I_TRUE;
+ break;
+ default:
+ tao_yyval.dcval = NULL;
+ found = I_TRUE;
+ break;
+ }
+ } else
{
- tao_yyval.dcval = NULL;
- found = I_TRUE;
+ tao_yyval.dcval = NULL;
+ found = I_TRUE;
}
- 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;
+ 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_yyvsp[0].idlist);
- }
+ if (tao_yyval.dcval == NULL)
+ idl_global->err()->lookup_error(tao_yyvsp[0].idlist);
+ }
break;
-case 187:
-#line 1449 "fe/idl.tao_yy"
+case 224:
+#line 1666 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_UnionLabelSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_UnionLabelSeen);
}
break;
-case 188:
-#line 1453 "fe/idl.tao_yy"
+case 225:
+#line 1670 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_UnionElemSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_UnionElemSeen);
}
break;
-case 189:
-#line 1457 "fe/idl.tao_yy"
+case 226:
+#line 1674 "fe/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_yyvsp[-2].ffval;
+ 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_yyvsp[-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_yyvsp[-4].llval != NULL && tao_yyvsp[-2].ffval != NULL) {
- l = new UTL_LabellistActiveIterator(tao_yyvsp[-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;
- }
- }
+ 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_yyvsp[-4].llval != NULL && tao_yyvsp[-2].ffval != NULL) {
+ l = new UTL_LabellistActiveIterator(tao_yyvsp[-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 1485 "fe/idl.tao_yy"
+case 227:
+#line 1702 "fe/idl.tao_yy"
{
- idl_global->err()->syntax_error(idl_global->parse_state());
- }
+ idl_global->err()->syntax_error(idl_global->parse_state());
+ }
break;
-case 191:
-#line 1490 "fe/idl.tao_yy"
+case 228:
+#line 1707 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
- tao_yyerrok;
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
+ tao_yyerrok;
+ }
break;
-case 192:
-#line 1498 "fe/idl.tao_yy"
+case 229:
+#line 1715 "fe/idl.tao_yy"
{
- tao_yyval.llval = new UTL_LabelList(tao_yyvsp[-1].ulval, tao_yyvsp[0].llval);
- }
+ tao_yyval.llval = new UTL_LabelList(tao_yyvsp[-1].ulval, tao_yyvsp[0].llval);
+ }
break;
-case 193:
-#line 1505 "fe/idl.tao_yy"
+case 230:
+#line 1722 "fe/idl.tao_yy"
{
- if (tao_yyvsp[-1].llval == NULL)
- tao_yyval.llval = new UTL_LabelList(tao_yyvsp[0].ulval, NULL);
- else {
- tao_yyvsp[-1].llval->nconc(new UTL_LabelList(tao_yyvsp[0].ulval, NULL));
- tao_yyval.llval = tao_yyvsp[-1].llval;
- }
- }
+ if (tao_yyvsp[-1].llval == NULL)
+ tao_yyval.llval = new UTL_LabelList(tao_yyvsp[0].ulval, NULL);
+ else {
+ tao_yyvsp[-1].llval->nconc(new UTL_LabelList(tao_yyvsp[0].ulval, NULL));
+ tao_yyval.llval = tao_yyvsp[-1].llval;
+ }
+ }
break;
-case 194:
-#line 1514 "fe/idl.tao_yy"
+case 231:
+#line 1731 "fe/idl.tao_yy"
{
- tao_yyval.llval = NULL;
- }
+ tao_yyval.llval = NULL;
+ }
break;
-case 195:
-#line 1521 "fe/idl.tao_yy"
+case 232:
+#line 1738 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_DefaultSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_DefaultSeen);
}
break;
-case 196:
-#line 1525 "fe/idl.tao_yy"
+case 233:
+#line 1742 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_LabelColonSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_LabelColonSeen);
- tao_yyval.ulval = idl_global->gen()->
- create_union_label(AST_UnionLabel::UL_default,
- NULL);
- }
+ tao_yyval.ulval = idl_global->gen()->
+ create_union_label(AST_UnionLabel::UL_default,
+ NULL);
+ }
break;
-case 197:
-#line 1533 "fe/idl.tao_yy"
+case 234:
+#line 1750 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_CaseSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_CaseSeen);
}
break;
-case 198:
-#line 1537 "fe/idl.tao_yy"
+case 235:
+#line 1754 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_LabelExprSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_LabelExprSeen);
}
break;
-case 199:
-#line 1541 "fe/idl.tao_yy"
+case 236:
+#line 1758 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_LabelColonSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_LabelColonSeen);
- tao_yyval.ulval = idl_global->gen()->create_union_label(AST_UnionLabel::UL_label,
- tao_yyvsp[-2].exval);
- }
+ tao_yyval.ulval = idl_global->gen()->create_union_label(AST_UnionLabel::UL_label,
+ tao_yyvsp[-2].exval);
+ }
break;
-case 200:
-#line 1551 "fe/idl.tao_yy"
+case 237:
+#line 1768 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_UnionElemTypeSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_UnionElemTypeSeen);
}
break;
-case 201:
-#line 1555 "fe/idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_UnionElemDeclSeen);
- /*
- * Check for illegal recursive use of type
- */
- if (tao_yyvsp[-2].dcval != NULL && AST_illegal_recursive_type(tao_yyvsp[-2].dcval))
- idl_global->err()->error1(UTL_Error::EIDL_RECURSIVE_TYPE, tao_yyvsp[-2].dcval);
- /*
- * Create a field in a union branch
- */
- else if (tao_yyvsp[-2].dcval == NULL || tao_yyvsp[0].deval == NULL)
- tao_yyval.ffval = NULL;
- else {
- AST_Type *tp = tao_yyvsp[0].deval->compose(tao_yyvsp[-2].dcval);
- if (tp == NULL)
- tao_yyval.ffval = NULL;
- else
- tao_yyval.ffval = idl_global->gen()->create_field(tp,
- tao_yyvsp[0].deval->name(),
- idl_global->pragmas());
- }
- }
+case 238:
+#line 1772 "fe/idl.tao_yy"
+{
+ idl_global->set_parse_state(IDL_GlobalData::PS_UnionElemDeclSeen);
+ /*
+ * Check for illegal recursive use of type
+ */
+ if (tao_yyvsp[-2].dcval != NULL && AST_illegal_recursive_type(tao_yyvsp[-2].dcval))
+ idl_global->err()->error1(UTL_Error::EIDL_RECURSIVE_TYPE, tao_yyvsp[-2].dcval);
+ /*
+ * Create a field in a union branch
+ */
+ else if (tao_yyvsp[-2].dcval == NULL || tao_yyvsp[0].deval == NULL)
+ tao_yyval.ffval = NULL;
+ else {
+ AST_Type *tp = tao_yyvsp[0].deval->compose(tao_yyvsp[-2].dcval);
+ if (tp == NULL)
+ tao_yyval.ffval = NULL;
+ else
+ tao_yyval.ffval = idl_global->gen()->create_field(tp,
+ tao_yyvsp[0].deval->name(),
+ idl_global->pragmas());
+ }
+ }
break;
-case 202:
-#line 1581 "fe/idl.tao_yy"
+case 239:
+#line 1798 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_EnumSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_EnumSeen);
}
break;
-case 203:
-#line 1585 "fe/idl.tao_yy"
+case 240:
+#line 1802 "fe/idl.tao_yy"
{
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- UTL_ScopedName *n = new UTL_ScopedName(tao_yyvsp[0].idval, NULL);
- AST_Enum *e = NULL;
- AST_Decl *v = NULL;
- UTL_StrList *p = idl_global->pragmas();
+ UTL_Scope *s = idl_global->scopes()->top_non_null();
+ UTL_ScopedName *n = new UTL_ScopedName(tao_yyvsp[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);
- }
+ 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 1612 "fe/idl.tao_yy"
+case 241:
+#line 1829 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_EnumSqSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_EnumSqSeen);
}
break;
-case 205:
-#line 1616 "fe/idl.tao_yy"
+case 242:
+#line 1833 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_EnumBodySeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_EnumBodySeen);
}
break;
-case 206:
-#line 1620 "fe/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();
- }
- }
+case 243:
+#line 1837 "fe/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 1639 "fe/idl.tao_yy"
+case 245:
+#line 1856 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_EnumCommaSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_EnumCommaSeen);
}
break;
-case 211:
-#line 1648 "fe/idl.tao_yy"
-{
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- UTL_ScopedName *n =
- new UTL_ScopedName(new Identifier(tao_yyvsp[0].strval, 1, 0, I_FALSE), NULL);
- AST_EnumVal *e = NULL;
- AST_Enum *c = NULL;
- UTL_StrList *p = idl_global->pragmas();
+case 248:
+#line 1865 "fe/idl.tao_yy"
+{
+ UTL_Scope *s = idl_global->scopes()->top_non_null();
+ UTL_ScopedName *n =
+ new UTL_ScopedName(new Identifier(tao_yyvsp[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);
- }
- }
+ /*
+ * 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 1672 "fe/idl.tao_yy"
+case 249:
+#line 1889 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_SequenceCommaSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_SequenceCommaSeen);
}
break;
-case 213:
-#line 1676 "fe/idl.tao_yy"
+case 250:
+#line 1893 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_SequenceExprSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_SequenceExprSeen);
}
break;
-case 214:
-#line 1680 "fe/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_yyvsp[-2].exval == NULL || tao_yyvsp[-2].exval->coerce(AST_Expression::EV_ulong) == NULL) {
- idl_global->err()->coercion_error(tao_yyvsp[-2].exval, AST_Expression::EV_ulong);
- tao_yyval.dcval = NULL;
- } else if (tao_yyvsp[-5].dcval == NULL) {
- tao_yyval.dcval = NULL;
- } else {
- AST_Type *tp = AST_Type::narrow_from_decl(tao_yyvsp[-5].dcval);
- if (tp == NULL)
- tao_yyval.dcval = NULL;
- else {
- tao_yyval.dcval = idl_global->gen()->create_sequence(tao_yyvsp[-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));
- }
- }
- }
+case 251:
+#line 1897 "fe/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_yyvsp[-2].exval == NULL || tao_yyvsp[-2].exval->coerce(AST_Expression::EV_ulong) == NULL) {
+ idl_global->err()->coercion_error(tao_yyvsp[-2].exval, AST_Expression::EV_ulong);
+ tao_yyval.dcval = NULL;
+ } else if (tao_yyvsp[-5].dcval == NULL) {
+ tao_yyval.dcval = NULL;
+ } else {
+ AST_Type *tp = AST_Type::narrow_from_decl(tao_yyvsp[-5].dcval);
+ if (tp == NULL)
+ tao_yyval.dcval = NULL;
+ else {
+ tao_yyval.dcval = idl_global->gen()->create_sequence(tao_yyvsp[-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 1711 "fe/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_yyvsp[-1].dcval == NULL)
- tao_yyval.dcval = NULL;
- else {
- AST_Type *tp = AST_Type::narrow_from_decl(tao_yyvsp[-1].dcval);
- if (tp == NULL)
- tao_yyval.dcval = NULL;
+case 252:
+#line 1928 "fe/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_yyvsp[-1].dcval == NULL)
+ tao_yyval.dcval = NULL;
+ else {
+ AST_Type *tp = AST_Type::narrow_from_decl(tao_yyvsp[-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));
- }
- }
- }
+ 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 1744 "fe/idl.tao_yy"
+case 253:
+#line 1961 "fe/idl.tao_yy"
{
- 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_SequenceSeen);
+ /*
+ * Push a sequence marker on scopes stack
+ */
+ idl_global->scopes()->push(NULL);
+ }
break;
-case 217:
-#line 1752 "fe/idl.tao_yy"
+case 254:
+#line 1969 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_SequenceSqSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_SequenceSqSeen);
}
break;
-case 218:
-#line 1756 "fe/idl.tao_yy"
+case 255:
+#line 1973 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_SequenceTypeSeen);
- tao_yyval.dcval = tao_yyvsp[0].dcval;
+ idl_global->set_parse_state(IDL_GlobalData::PS_SequenceTypeSeen);
+ tao_yyval.dcval = tao_yyvsp[0].dcval;
}
break;
-case 219:
-#line 1765 "fe/idl.tao_yy"
+case 256:
+#line 1982 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_StringSqSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_StringSqSeen);
}
break;
-case 220:
-#line 1769 "fe/idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_StringExprSeen);
- }
-break;
-case 221:
-#line 1773 "fe/idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_StringQsSeen);
- /*
- * Create a node representing a string
- */
- if (tao_yyvsp[-2].exval == NULL || tao_yyvsp[-2].exval->coerce(AST_Expression::EV_ulong) == NULL) {
- idl_global->err()->coercion_error(tao_yyvsp[-2].exval, AST_Expression::EV_ulong);
- tao_yyval.dcval = NULL;
- } else {
- tao_yyval.dcval = idl_global->gen()->create_string(tao_yyvsp[-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 1791 "fe/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 1809 "fe/idl.tao_yy"
+case 257:
+#line 1986 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_StringSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_StringExprSeen);
}
break;
-case 224:
-#line 1817 "fe/idl.tao_yy"
+case 258:
+#line 1990 "fe/idl.tao_yy"
+{
+ idl_global->set_parse_state(IDL_GlobalData::PS_StringQsSeen);
+ /*
+ * Create a node representing a string
+ */
+ if (tao_yyvsp[-2].exval == NULL || tao_yyvsp[-2].exval->coerce(AST_Expression::EV_ulong) == NULL) {
+ idl_global->err()->coercion_error(tao_yyvsp[-2].exval, AST_Expression::EV_ulong);
+ tao_yyval.dcval = NULL;
+ } else {
+ tao_yyval.dcval = idl_global->gen()->create_string(tao_yyvsp[-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 259:
+#line 2008 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_StringSqSeen);
+ 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 225:
-#line 1821 "fe/idl.tao_yy"
+case 260:
+#line 2026 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_StringExprSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_StringSeen);
}
break;
-case 226:
-#line 1825 "fe/idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_StringQsSeen);
- /*
- * Create a node representing a string
- */
- if (tao_yyvsp[-2].exval == NULL || tao_yyvsp[-2].exval->coerce(AST_Expression::EV_ulong) == NULL) {
- idl_global->err()->coercion_error(tao_yyvsp[-2].exval, AST_Expression::EV_ulong);
- tao_yyval.dcval = NULL;
- } else {
- tao_yyval.dcval = idl_global->gen()->create_wstring(tao_yyvsp[-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));
- }
- }
+case 261:
+#line 2034 "fe/idl.tao_yy"
+{
+ idl_global->set_parse_state(IDL_GlobalData::PS_StringSqSeen);
+ }
break;
-case 227:
-#line 1843 "fe/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()
+case 262:
+#line 2038 "fe/idl.tao_yy"
+{
+ idl_global->set_parse_state(IDL_GlobalData::PS_StringExprSeen);
+ }
+break;
+case 263:
+#line 2042 "fe/idl.tao_yy"
+{
+ idl_global->set_parse_state(IDL_GlobalData::PS_StringQsSeen);
+ /*
+ * Create a node representing a string
+ */
+ if (tao_yyvsp[-2].exval == NULL || tao_yyvsp[-2].exval->coerce(AST_Expression::EV_ulong) == NULL) {
+ idl_global->err()->coercion_error(tao_yyvsp[-2].exval, AST_Expression::EV_ulong);
+ tao_yyval.dcval = NULL;
+ } else {
+ tao_yyval.dcval = idl_global->gen()->create_wstring(tao_yyvsp[-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 264:
+#line 2060 "fe/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 1861 "fe/idl.tao_yy"
+case 265:
+#line 2078 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_StringSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_StringSeen);
}
break;
-case 229:
-#line 1868 "fe/idl.tao_yy"
+case 266:
+#line 2085 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_ArrayIDSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_ArrayIDSeen);
}
break;
-case 230:
-#line 1872 "fe/idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_ArrayCompleted);
- /*
- * Create a node representing an array
- */
- if (tao_yyvsp[0].elval != NULL) {
- tao_yyval.dcval = idl_global->gen()->create_array(new UTL_ScopedName(tao_yyvsp[-2].idval, NULL),
- tao_yyvsp[0].elval->length(), tao_yyvsp[0].elval);
- }
- }
+case 267:
+#line 2089 "fe/idl.tao_yy"
+{
+ idl_global->set_parse_state(IDL_GlobalData::PS_ArrayCompleted);
+ /*
+ * Create a node representing an array
+ */
+ if (tao_yyvsp[0].elval != NULL) {
+ tao_yyval.dcval = idl_global->gen()->create_array(new UTL_ScopedName(tao_yyvsp[-2].idval, NULL),
+ tao_yyvsp[0].elval->length(), tao_yyvsp[0].elval);
+ }
+ }
break;
-case 231:
-#line 1886 "fe/idl.tao_yy"
+case 268:
+#line 2103 "fe/idl.tao_yy"
{
- tao_yyval.elval = new UTL_ExprList(tao_yyvsp[-1].exval, tao_yyvsp[0].elval);
- }
+ tao_yyval.elval = new UTL_ExprList(tao_yyvsp[-1].exval, tao_yyvsp[0].elval);
+ }
break;
-case 232:
-#line 1893 "fe/idl.tao_yy"
+case 269:
+#line 2110 "fe/idl.tao_yy"
{
- if (tao_yyvsp[-1].elval == NULL)
- tao_yyval.elval = new UTL_ExprList(tao_yyvsp[0].exval, NULL);
- else {
- tao_yyvsp[-1].elval->nconc(new UTL_ExprList(tao_yyvsp[0].exval, NULL));
- tao_yyval.elval = tao_yyvsp[-1].elval;
- }
- }
+ if (tao_yyvsp[-1].elval == NULL)
+ tao_yyval.elval = new UTL_ExprList(tao_yyvsp[0].exval, NULL);
+ else {
+ tao_yyvsp[-1].elval->nconc(new UTL_ExprList(tao_yyvsp[0].exval, NULL));
+ tao_yyval.elval = tao_yyvsp[-1].elval;
+ }
+ }
break;
-case 233:
-#line 1902 "fe/idl.tao_yy"
+case 270:
+#line 2119 "fe/idl.tao_yy"
{
- tao_yyval.elval = NULL;
- }
+ tao_yyval.elval = NULL;
+ }
break;
-case 234:
-#line 1909 "fe/idl.tao_yy"
+case 271:
+#line 2126 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_DimSqSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_DimSqSeen);
}
break;
-case 235:
-#line 1913 "fe/idl.tao_yy"
+case 272:
+#line 2130 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_DimExprSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_DimExprSeen);
}
break;
-case 236:
-#line 1917 "fe/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_yyvsp[-2].exval == NULL || tao_yyvsp[-2].exval->coerce(AST_Expression::EV_ulong) == NULL) {
- idl_global->err()->coercion_error(tao_yyvsp[-2].exval, AST_Expression::EV_ulong);
- tao_yyval.exval = NULL;
- } else
- tao_yyval.exval = tao_yyvsp[-2].exval;
- }
+case 273:
+#line 2134 "fe/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_yyvsp[-2].exval == NULL || tao_yyvsp[-2].exval->coerce(AST_Expression::EV_ulong) == NULL) {
+ idl_global->err()->coercion_error(tao_yyvsp[-2].exval, AST_Expression::EV_ulong);
+ tao_yyval.exval = NULL;
+ } else
+ tao_yyval.exval = tao_yyvsp[-2].exval;
+ }
break;
-case 237:
-#line 1934 "fe/idl.tao_yy"
+case 274:
+#line 2151 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_AttrSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_AttrSeen);
}
break;
-case 238:
-#line 1938 "fe/idl.tao_yy"
+case 275:
+#line 2155 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_AttrTypeSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_AttrTypeSeen);
}
break;
-case 239:
-#line 1942 "fe/idl.tao_yy"
+case 276:
+#line 2159 "fe/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();
+ 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_yyvsp[-2].dcval != NULL && tao_yyvsp[0].dlval != NULL) {
- l = new UTL_DecllistActiveIterator(tao_yyvsp[0].dlval);
- for (;!(l->is_done()); l->next()) {
- d = l->item();
- if (d == NULL)
- continue;
- AST_Type *tp = d->compose(tao_yyvsp[-2].dcval);
- if (tp == NULL)
- continue;
- a = idl_global->gen()->create_attribute(tao_yyvsp[-5].bval, tp, d->name(), p);
- /*
- * Add one attribute to the enclosing scope
- */
- (void) s->fe_add_attribute(a);
- }
- delete l;
- }
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_AttrCompleted);
+ /*
+ * Create nodes representing attributes and add them to the
+ * enclosing scope
+ */
+ if (s != NULL && tao_yyvsp[-2].dcval != NULL && tao_yyvsp[0].dlval != NULL) {
+ l = new UTL_DecllistActiveIterator(tao_yyvsp[0].dlval);
+ for (;!(l->is_done()); l->next()) {
+ d = l->item();
+ if (d == NULL)
+ continue;
+ AST_Type *tp = d->compose(tao_yyvsp[-2].dcval);
+ if (tp == NULL)
+ continue;
+ a = idl_global->gen()->create_attribute(tao_yyvsp[-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 1976 "fe/idl.tao_yy"
+case 277:
+#line 2193 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_AttrROSeen);
- tao_yyval.bval = I_TRUE;
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_AttrROSeen);
+ tao_yyval.bval = I_TRUE;
+ }
break;
-case 241:
-#line 1981 "fe/idl.tao_yy"
+case 278:
+#line 2198 "fe/idl.tao_yy"
{
- tao_yyval.bval = I_FALSE;
- }
+ tao_yyval.bval = I_FALSE;
+ }
break;
-case 242:
-#line 1988 "fe/idl.tao_yy"
+case 279:
+#line 2205 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_ExceptSeen);
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_ExceptSeen);
+ }
break;
-case 243:
-#line 1992 "fe/idl.tao_yy"
+case 280:
+#line 2209 "fe/idl.tao_yy"
{
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- UTL_ScopedName *n = new UTL_ScopedName(tao_yyvsp[0].idval, NULL);
- AST_Exception *e = NULL;
- UTL_StrList *p = idl_global->pragmas();
- AST_Decl *v = NULL;
+ UTL_Scope *s = idl_global->scopes()->top_non_null();
+ UTL_ScopedName *n = new UTL_ScopedName(tao_yyvsp[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 2016 "fe/idl.tao_yy"
-{
- idl_global->set_parse_state(IDL_GlobalData::PS_ExceptSqSeen);
+ 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 245:
-#line 2020 "fe/idl.tao_yy"
+case 281:
+#line 2233 "fe/idl.tao_yy"
+{
+ idl_global->set_parse_state(IDL_GlobalData::PS_ExceptSqSeen);
+ }
+break;
+case 282:
+#line 2237 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_ExceptBodySeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_ExceptBodySeen);
}
break;
-case 246:
-#line 2024 "fe/idl.tao_yy"
+case 283:
+#line 2241 "fe/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();
- }
+ 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 2036 "fe/idl.tao_yy"
+case 284:
+#line 2253 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpTypeSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_OpTypeSeen);
}
break;
-case 248:
-#line 2040 "fe/idl.tao_yy"
+case 285:
+#line 2257 "fe/idl.tao_yy"
{
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- UTL_ScopedName *n =
- new UTL_ScopedName(new Identifier(tao_yyvsp[0].strval, 1, 0, I_FALSE), NULL);
- AST_Operation *o = NULL;
- UTL_StrList *p = idl_global->pragmas();
+ UTL_Scope *s = idl_global->scopes()->top_non_null();
+ UTL_ScopedName *n =
+ new UTL_ScopedName(new Identifier(tao_yyvsp[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_yyvsp[-2].dcval != NULL) {
- AST_Type *tp = AST_Type::narrow_from_decl(tao_yyvsp[-2].dcval);
+ 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_yyvsp[-2].dcval != NULL) {
+ AST_Type *tp = AST_Type::narrow_from_decl(tao_yyvsp[-2].dcval);
if (tp == NULL) {
idl_global->err()->not_a_type(tao_yyvsp[-2].dcval);
} else if (tp->node_type() == AST_Decl::NT_except) {
idl_global->err()->not_a_type(tao_yyvsp[-2].dcval);
} else {
- o = idl_global->gen()->create_operation(tp, tao_yyvsp[-3].ofval, n, p);
- (void) s->fe_add_operation(o);
- }
- }
- /*
- * Push the operation scope onto the scopes stack
- */
- idl_global->scopes()->push(o);
- }
+ o = idl_global->gen()->create_operation(tp, tao_yyvsp[-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 2069 "fe/idl.tao_yy"
+case 286:
+#line 2286 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpParsCompleted);
+ idl_global->set_parse_state(IDL_GlobalData::PS_OpParsCompleted);
}
break;
-case 250:
-#line 2073 "fe/idl.tao_yy"
+case 287:
+#line 2290 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseCompleted);
+ idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseCompleted);
}
break;
-case 251:
-#line 2077 "fe/idl.tao_yy"
+case 288:
+#line 2294 "fe/idl.tao_yy"
{
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- AST_Operation *o = NULL;
+ 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);
+ 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_yyvsp[-2].nlval != NULL && o != NULL)
- (void) o->fe_add_exceptions(tao_yyvsp[-2].nlval);
- if (tao_yyvsp[0].slval != NULL)
- (void) o->fe_add_context(tao_yyvsp[0].slval);
- }
- /*
- * Done with this operation. Pop its scope from the scopes stack
- */
- idl_global->scopes()->pop();
- }
+ if (tao_yyvsp[-2].nlval != NULL && o != NULL)
+ (void) o->fe_add_exceptions(tao_yyvsp[-2].nlval);
+ if (tao_yyvsp[0].slval != NULL)
+ (void) o->fe_add_context(tao_yyvsp[0].slval);
+ }
+ /*
+ * Done with this operation. Pop its scope from the scopes stack
+ */
+ idl_global->scopes()->pop();
+ }
break;
-case 252:
-#line 2102 "fe/idl.tao_yy"
+case 289:
+#line 2319 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpAttrSeen);
- tao_yyval.ofval = AST_Operation::OP_oneway;
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_OpAttrSeen);
+ tao_yyval.ofval = AST_Operation::OP_oneway;
+ }
break;
-case 253:
-#line 2107 "fe/idl.tao_yy"
+case 290:
+#line 2324 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpAttrSeen);
- tao_yyval.ofval = AST_Operation::OP_idempotent;
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_OpAttrSeen);
+ tao_yyval.ofval = AST_Operation::OP_idempotent;
+ }
break;
-case 254:
-#line 2112 "fe/idl.tao_yy"
+case 291:
+#line 2329 "fe/idl.tao_yy"
{
- tao_yyval.ofval = AST_Operation::OP_noflags;
- }
+ tao_yyval.ofval = AST_Operation::OP_noflags;
+ }
break;
-case 256:
-#line 2120 "fe/idl.tao_yy"
+case 293:
+#line 2337 "fe/idl.tao_yy"
{
- tao_yyval.dcval =
- idl_global->scopes()->bottom()
- ->lookup_primitive_type(AST_Expression::EV_void);
- }
+ tao_yyval.dcval =
+ idl_global->scopes()->bottom()
+ ->lookup_primitive_type(AST_Expression::EV_void);
+ }
break;
-case 257:
-#line 2129 "fe/idl.tao_yy"
+case 294:
+#line 2346 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpSqSeen);
+ cerr << "error in " << idl_global->filename()->get_string()
+ << " line " << idl_global->lineno() << ":\n" ;
+ cerr << "Sorry, I (TAO_IDL) can't handle init yet\n";
}
break;
-case 258:
-#line 2133 "fe/idl.tao_yy"
+case 295:
+#line 2356 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpQsSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_OpSqSeen);
}
break;
-case 259:
-#line 2137 "fe/idl.tao_yy"
+case 296:
+#line 2360 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpSqSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_OpQsSeen);
}
break;
-case 260:
-#line 2142 "fe/idl.tao_yy"
+case 297:
+#line 2364 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpQsSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_OpSqSeen);
}
break;
-case 262:
-#line 2152 "fe/idl.tao_yy"
+case 298:
+#line 2369 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpParCommaSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_OpQsSeen);
}
break;
-case 265:
-#line 2161 "fe/idl.tao_yy"
+case 300:
+#line 2379 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpParDirSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_OpParCommaSeen);
}
break;
-case 266:
-#line 2165 "fe/idl.tao_yy"
+case 303:
+#line 2388 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpParTypeSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_OpParDirSeen);
}
break;
-case 267:
-#line 2169 "fe/idl.tao_yy"
+case 304:
+#line 2392 "fe/idl.tao_yy"
+{
+ idl_global->set_parse_state(IDL_GlobalData::PS_OpParTypeSeen);
+ }
+break;
+case 305:
+#line 2396 "fe/idl.tao_yy"
{
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- AST_Argument *a = NULL;
- UTL_StrList *p = idl_global->pragmas();
+ 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_yyvsp[-2].dcval != NULL && tao_yyvsp[0].deval != NULL && s != NULL) {
- AST_Type *tp = tao_yyvsp[0].deval->compose(tao_yyvsp[-2].dcval);
- if (tp != NULL) {
- a = idl_global->gen()->create_argument(tao_yyvsp[-4].dival, tp, tao_yyvsp[0].deval->name(), p);
- (void) s->fe_add_argument(a);
- }
- }
- }
+ 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_yyvsp[-2].dcval != NULL && tao_yyvsp[0].deval != NULL && s != NULL) {
+ AST_Type *tp = tao_yyvsp[0].deval->compose(tao_yyvsp[-2].dcval);
+ if (tp != NULL) {
+ a = idl_global->gen()->create_argument(tao_yyvsp[-4].dival, tp, tao_yyvsp[0].deval->name(), p);
+ (void) s->fe_add_argument(a);
+ }
+ }
+ }
break;
-case 268:
-#line 2191 "fe/idl.tao_yy"
+case 306:
+#line 2418 "fe/idl.tao_yy"
{
- tao_yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(tao_yyvsp[0].etval);
- }
+ tao_yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(tao_yyvsp[0].etval);
+ }
break;
-case 270:
-#line 2196 "fe/idl.tao_yy"
+case 308:
+#line 2423 "fe/idl.tao_yy"
{
- UTL_Scope *s = idl_global->scopes()->top_non_null();
- AST_Decl *d = NULL;
+ UTL_Scope *s = idl_global->scopes()->top_non_null();
+ AST_Decl *d = NULL;
- if (s != NULL)
- d = s->lookup_by_name(tao_yyvsp[0].idlist, I_TRUE);
- if (d == NULL)
- idl_global->err()->lookup_error(tao_yyvsp[0].idlist);
- tao_yyval.dcval = d;
- }
+ if (s != NULL)
+ d = s->lookup_by_name(tao_yyvsp[0].idlist, I_TRUE);
+ if (d == NULL)
+ idl_global->err()->lookup_error(tao_yyvsp[0].idlist);
+ tao_yyval.dcval = d;
+ }
break;
-case 271:
-#line 2210 "fe/idl.tao_yy"
+case 309:
+#line 2437 "fe/idl.tao_yy"
{
- tao_yyval.dival = AST_Argument::dir_IN;
- }
+ tao_yyval.dival = AST_Argument::dir_IN;
+ }
break;
-case 272:
-#line 2214 "fe/idl.tao_yy"
+case 310:
+#line 2441 "fe/idl.tao_yy"
{
- tao_yyval.dival = AST_Argument::dir_OUT;
- }
+ tao_yyval.dival = AST_Argument::dir_OUT;
+ }
break;
-case 273:
-#line 2218 "fe/idl.tao_yy"
+case 311:
+#line 2445 "fe/idl.tao_yy"
{
- tao_yyval.dival = AST_Argument::dir_INOUT;
- }
+ tao_yyval.dival = AST_Argument::dir_INOUT;
+ }
break;
-case 274:
-#line 2225 "fe/idl.tao_yy"
+case 312:
+#line 2452 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseSeen);
}
break;
-case 275:
-#line 2229 "fe/idl.tao_yy"
+case 313:
+#line 2456 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseSqSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseSqSeen);
}
break;
-case 276:
-#line 2234 "fe/idl.tao_yy"
+case 314:
+#line 2461 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseQsSeen);
- tao_yyval.nlval = tao_yyvsp[-1].nlval;
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseQsSeen);
+ tao_yyval.nlval = tao_yyvsp[-1].nlval;
+ }
break;
-case 277:
-#line 2239 "fe/idl.tao_yy"
+case 315:
+#line 2466 "fe/idl.tao_yy"
{
- tao_yyval.nlval = NULL;
- }
+ tao_yyval.nlval = NULL;
+ }
break;
-case 278:
-#line 2246 "fe/idl.tao_yy"
+case 316:
+#line 2473 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpContextSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_OpContextSeen);
}
break;
-case 279:
-#line 2250 "fe/idl.tao_yy"
+case 317:
+#line 2477 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpContextSqSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_OpContextSqSeen);
}
break;
-case 280:
-#line 2255 "fe/idl.tao_yy"
+case 318:
+#line 2482 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpContextQsSeen);
- tao_yyval.slval = tao_yyvsp[-1].slval;
- }
+ idl_global->set_parse_state(IDL_GlobalData::PS_OpContextQsSeen);
+ tao_yyval.slval = tao_yyvsp[-1].slval;
+ }
break;
-case 281:
-#line 2260 "fe/idl.tao_yy"
+case 319:
+#line 2487 "fe/idl.tao_yy"
{
- tao_yyval.slval = NULL;
- }
+ tao_yyval.slval = NULL;
+ }
break;
-case 282:
-#line 2267 "fe/idl.tao_yy"
+case 320:
+#line 2494 "fe/idl.tao_yy"
{
- tao_yyval.slval = new UTL_StrList(tao_yyvsp[-1].sval, tao_yyvsp[0].slval);
- }
+ tao_yyval.slval = new UTL_StrList(tao_yyvsp[-1].sval, tao_yyvsp[0].slval);
+ }
break;
-case 283:
-#line 2275 "fe/idl.tao_yy"
+case 321:
+#line 2502 "fe/idl.tao_yy"
{
- idl_global->set_parse_state(IDL_GlobalData::PS_OpContextCommaSeen);
+ idl_global->set_parse_state(IDL_GlobalData::PS_OpContextCommaSeen);
}
break;
-case 284:
-#line 2279 "fe/idl.tao_yy"
+case 322:
+#line 2506 "fe/idl.tao_yy"
{
- if (tao_yyvsp[-3].slval == NULL)
- tao_yyval.slval = new UTL_StrList(tao_yyvsp[0].sval, NULL);
- else {
- tao_yyvsp[-3].slval->nconc(new UTL_StrList(tao_yyvsp[0].sval, NULL));
- tao_yyval.slval = tao_yyvsp[-3].slval;
- }
- }
+ if (tao_yyvsp[-3].slval == NULL)
+ tao_yyval.slval = new UTL_StrList(tao_yyvsp[0].sval, NULL);
+ else {
+ tao_yyvsp[-3].slval->nconc(new UTL_StrList(tao_yyvsp[0].sval, NULL));
+ tao_yyval.slval = tao_yyvsp[-3].slval;
+ }
+ }
break;
-case 285:
-#line 2288 "fe/idl.tao_yy"
+case 323:
+#line 2515 "fe/idl.tao_yy"
{
- tao_yyval.slval = NULL;
- }
+ tao_yyval.slval = NULL;
+ }
break;
-#line 3303 "y.tab.cpp"
+#line 3619 "y.tab.cpp"
}
tao_yyssp -= tao_yym;
tao_yystate = *tao_yyssp;
diff --git a/TAO/TAO_IDL/fe/y.tab.h b/TAO/TAO_IDL/fe/y.tab.h
index f68f2acb310..9072bf04bde 100644
--- a/TAO/TAO_IDL/fe/y.tab.h
+++ b/TAO/TAO_IDL/fe/y.tab.h
@@ -35,39 +35,49 @@
#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
+#define IDL_ABSTRACT 293
+#define IDL_CUSTOM 294
+#define IDL_INIT 295
+#define IDL_PRIVATE 296
+#define IDL_PUBLIC 297
+#define IDL_SUPPORTS 298
+#define IDL_TRUNCATABLE 299
+#define IDL_VALUETYPE 300
+#define IDL_INTEGER_LITERAL 301
+#define IDL_STRING_LITERAL 302
+#define IDL_CHARACTER_LITERAL 303
+#define IDL_FLOATING_PT_LITERAL 304
+#define IDL_TRUETOK 305
+#define IDL_FALSETOK 306
+#define IDL_SCOPE_DELIMITOR 307
+#define IDL_LEFT_SHIFT 308
+#define IDL_RIGHT_SHIFT 309
typedef 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 */
+ 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 */
+ FE_obv_header *vhval; /* Valuetype header */
+ AST_Expression *exval; /* Expression value */
+ AST_UnionLabel *ulval; /* Union label */
+ AST_Field *ffval; /* Field value */
+ AST_Field::Visibility vival; /* N/A, pub or priv */
+ 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 */
+ String *sval; /* String value */
+ char *strval; /* char * value */
+ Identifier *idval; /* Identifier */
+ UTL_IdList *idlist; /* Identifier list */
} TAO_YYSTYPE;
extern TAO_YYSTYPE tao_yylval;