diff options
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Trader/Constraint_y.cpp')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/Trader/Constraint_y.cpp | 1397 |
1 files changed, 826 insertions, 571 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Trader/Constraint_y.cpp b/TAO/orbsvcs/orbsvcs/Trader/Constraint_y.cpp index a47090bb330..4376a5b05ba 100644 --- a/TAO/orbsvcs/orbsvcs/Trader/Constraint_y.cpp +++ b/TAO/orbsvcs/orbsvcs/Trader/Constraint_y.cpp @@ -1,645 +1,900 @@ -#ifndef lint -static char const -yyrcsid[] = "$FreeBSD: src/usr.bin/yacc/skeleton.c,v 1.28 2000/01/17 02:04:06 bde Exp $"; -#endif -#include <stdlib.h> -#define YYBYACC 1 -#define YYMAJOR 1 -#define YYMINOR 9 -#define YYLEX yylex() -#define YYEMPTY -1 -#define yyclearin (yychar=(YYEMPTY)) -#define yyerrok (yyerrflag=0) -#define YYRECOVERING() (yyerrflag!=0) - -#define YYPREFIX "yy" - /* $Id$*/ -/* ========================================================================*/ -/**/ -/* = LIBRARY*/ -/* orbsvcs*/ -/* */ -/* = FILENAME*/ -/* constraint.y*/ -/**/ -/* = AUTHOR*/ -/* Seth Widoff <sbw1@cs.wustl.edu>*/ -/**/ -/* ========================================================================*/ + + // $Id$ +// ======================================================================== +// +// = LIBRARY +// orbsvcs +// +// = FILENAME +// constraint.y +// +// = AUTHOR +// Seth Widoff <sbw1@cs.wustl.edu> +// +// ======================================================================== #include "ace/OS_NS_string.h" -#include "ace/OS_NS_stdlib.h" #include "orbsvcs/Trader/Constraint_Interpreter.h" #include "orbsvcs/Trader/Constraint_Nodes.h" TAO_BEGIN_VERSIONED_NAMESPACE_DECL -/*#define YYDEBUG 1*/ -#define YYERRCODE 256 -#define TAO_GT 257 -#define TAO_GE 258 -#define TAO_LT 259 -#define TAO_LE 260 -#define TAO_EQ 261 -#define TAO_NE 262 -#define TAO_EXIST 263 -#define TAO_AND 264 -#define TAO_OR 265 -#define TAO_NOT 266 -#define TAO_IN 267 -#define TAO_TWIDDLE 268 -#define TAO_BOOLEAN 269 -#define TAO_PLUS 270 -#define TAO_MINUS 271 -#define TAO_MULT 272 -#define TAO_DIV 273 -#define TAO_UMINUS 274 -#define TAO_NUMBER 275 -#define TAO_RPAREN 276 -#define TAO_LPAREN 277 -#define TAO_IDENT 278 -#define TAO_STRING 279 -#define TAO_UNKNOWN 280 -#define TAO_SIGNED 281 -#define TAO_UNSIGNED 282 -#define TAO_DOUBLE 283 -#define TAO_CONSTRAINT 284 -#define TAO_SEQUENCE 285 -#define TAO_WITH 286 -#define TAO_MAX 287 -#define TAO_MIN 288 -#define TAO_FIRST 289 -#define TAO_RANDOM 290 -const short yylhs[] = { -1, - 0, 0, 1, 1, 1, 1, 1, 2, 2, 3, - 3, 4, 4, 4, 4, 4, 4, 4, 5, 5, - 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, - 10, 10, 10, 10, 10, 10, 10, -}; -const short yylen[] = { 2, - 1, 1, 2, 2, 2, 1, 1, 3, 1, 3, - 1, 3, 3, 3, 3, 3, 3, 1, 3, 1, - 3, 1, 3, 3, 1, 3, 3, 1, 2, 1, - 3, 2, 1, 1, 2, 1, 1, -}; -const short yydefred[] = { 0, - 0, 0, 37, 0, 34, 0, 33, 36, 0, 0, - 0, 6, 7, 0, 2, 0, 0, 11, 0, 0, - 0, 0, 28, 30, 32, 29, 35, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 31, 0, 10, 14, 15, - 16, 17, 12, 13, 19, 0, 0, 0, 26, 27, -}; -const short yydgoto[] = { 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, -}; -const short yysindex[] = { -253, - -278, -219, 0, -271, 0, -224, 0, 0, -224, -224, - -224, 0, 0, 0, 0, -256, -252, 0, -195, -244, - -251, -243, 0, 0, 0, 0, 0, -262, -256, -256, - -256, -224, -224, -224, -224, -224, -224, -224, -224, -263, - -224, -224, -224, -224, -224, 0, -252, 0, 0, 0, - 0, 0, 0, 0, 0, -239, -243, -243, 0, 0, -}; -const short yyrindex[] = { 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 27, 8, 0, 11, 87, - 61, 1, 0, 0, 0, 0, 0, 0, 38, 40, - 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, - 0, 0, 0, 0, 0, 74, 21, 41, 0, 0, -}; -const short yygindex[] = { 0, - 0, -4, 14, 24, 34, 0, 36, 6, 31, 76, -}; -#define YYTABLESIZE 363 -const short yytable[] = { 25, - 25, 28, 32, 27, 29, 30, 31, 9, 32, 1, - 18, 33, 2, 46, 55, 3, 41, 4, 42, 43, - 23, 5, 40, 6, 7, 8, 1, 8, 44, 45, - 42, 43, 9, 10, 11, 12, 13, 5, 1, 4, - 24, 2, 3, 1, 3, 47, 4, 57, 58, 3, - 5, 4, 6, 7, 8, 5, 48, 6, 7, 8, - 22, 34, 35, 36, 37, 38, 39, 49, 50, 51, - 52, 53, 54, 21, 59, 60, 56, 26, 0, 0, - 0, 0, 0, 0, 0, 0, 20, 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, - 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, 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, 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, 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, 0, 0, 0, 0, 0, 25, 25, 25, - 25, 25, 25, 0, 25, 25, 0, 25, 25, 0, - 25, 25, 9, 0, 18, 18, 25, 23, 23, 23, - 23, 23, 23, 9, 23, 23, 18, 23, 23, 0, - 23, 23, 8, 0, 0, 0, 23, 24, 24, 24, - 24, 24, 24, 8, 24, 24, 0, 24, 24, 0, - 24, 24, 0, 0, 0, 0, 24, 22, 22, 22, - 22, 22, 22, 0, 22, 22, 0, 22, 0, 0, - 21, 21, 21, 21, 21, 21, 22, 21, 21, 0, - 21, 0, 0, 20, 20, 20, 20, 20, 20, 21, - 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 20, -}; -const short yycheck[] = { 278, - 0, 6, 265, 275, 9, 10, 11, 0, 265, 263, - 0, 264, 266, 276, 278, 269, 268, 271, 270, 271, - 0, 275, 267, 277, 278, 279, 0, 0, 272, 273, - 270, 271, 286, 287, 288, 289, 290, 0, 263, 0, - 0, 266, 0, 263, 269, 32, 271, 42, 43, 269, - 275, 271, 277, 278, 279, 275, 33, 277, 278, 279, - 0, 257, 258, 259, 260, 261, 262, 34, 35, 36, - 37, 38, 39, 0, 44, 45, 41, 2, -1, -1, - -1, -1, -1, -1, -1, -1, 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, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 257, 258, 259, - 260, 261, 262, -1, 264, 265, -1, 267, 268, -1, - 270, 271, 265, -1, 264, 265, 276, 257, 258, 259, - 260, 261, 262, 276, 264, 265, 276, 267, 268, -1, - 270, 271, 265, -1, -1, -1, 276, 257, 258, 259, - 260, 261, 262, 276, 264, 265, -1, 267, 268, -1, - 270, 271, -1, -1, -1, -1, 276, 257, 258, 259, - 260, 261, 262, -1, 264, 265, -1, 267, -1, -1, - 257, 258, 259, 260, 261, 262, 276, 264, 265, -1, - 267, -1, -1, 257, 258, 259, 260, 261, 262, 276, - 264, 265, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 276, -}; -#define YYFINAL 14 +//#define YYDEBUG 1 +# define TAO_GT 257 +# define TAO_GE 258 +# define TAO_LT 259 +# define TAO_LE 260 +# define TAO_EQ 261 +# define TAO_NE 262 +# define TAO_EXIST 263 +# define TAO_AND 264 +# define TAO_OR 265 +# define TAO_NOT 266 +# define TAO_IN 267 +# define TAO_TWIDDLE 268 +# define TAO_BOOLEAN 269 +# define TAO_PLUS 270 +# define TAO_MINUS 271 +# define TAO_MULT 272 +# define TAO_DIV 273 +# define TAO_UMINUS 274 +# define TAO_NUMBER 275 +# define TAO_RPAREN 276 +# define TAO_LPAREN 277 +# define TAO_IDENT 278 +# define TAO_STRING 279 +# define TAO_UNKNOWN 280 +# define TAO_UNSIGNED 281 +# define TAO_SIGNED 282 +# define TAO_DOUBLE 283 +# define TAO_CONSTRAINT 284 +# define TAO_SEQUENCE 285 +# define TAO_WITH 286 +# define TAO_MAX 287 +# define TAO_MIN 288 +# define TAO_FIRST 289 +# define TAO_RANDOM 290 + +#ifdef __cplusplus + +#ifndef yyerror + void yyerror(const char *); +#endif + +#ifndef yylex +#ifdef __EXTERN_C__ + extern "C" { int yylex(void); } +#else + int yylex(void); +#endif +#endif + int yyparse(void); + +#endif +#define yyclearin yychar = -1 +#define yyerrok yyerrflag = 0 +extern int yychar; +extern int yyerrflag; +YYSTYPE yylval; +YYSTYPE yyval; +typedef int yytabelem; +#ifndef YYMAXDEPTH +#define YYMAXDEPTH 150 +#endif +#if YYMAXDEPTH > 0 +int yy_yys[YYMAXDEPTH], *yys = yy_yys; +YYSTYPE yy_yyv[YYMAXDEPTH], *yyv = yy_yyv; +#else /* user does initial allocation */ +int *yys; +YYSTYPE *yyv; +#endif +static int yymaxdepth = YYMAXDEPTH; +# define YYERRCODE 256 + + + + +//extern int yydebug = 1; +yytabelem yyexca[] ={ +-1, 1, + 0, -1, + -2, 0, + }; +# define YYNPROD 38 +# define YYLAST 93 +yytabelem yyact[]={ + + 19, 54, 44, 16, 45, 19, 24, 37, 22, 38, + 39, 24, 21, 22, 18, 20, 23, 21, 25, 18, + 20, 23, 36, 7, 6, 5, 8, 9, 19, 60, + 26, 16, 40, 41, 24, 25, 22, 38, 39, 15, + 21, 11, 18, 20, 23, 32, 33, 34, 35, 30, + 31, 14, 10, 17, 13, 12, 4, 3, 1, 2, + 0, 0, 0, 0, 0, 27, 28, 29, 0, 0, + 42, 0, 48, 49, 50, 51, 52, 53, 43, 47, + 58, 59, 46, 0, 0, 0, 0, 0, 0, 0, + 56, 57, 55 }; +yytabelem yypact[]={ + + -263,-10000000, -230,-10000000, -234, -235, -235, -235,-10000000,-10000000, +-10000000, -212, -245, -261, -240,-10000000, -258,-10000000, -235, -276, +-10000000,-10000000, -271,-10000000,-10000000, -235, -235, -230, -230, -230, + -235, -235, -235, -235, -235, -235, -277, -235, -235, -235, + -235, -235,-10000000, -247,-10000000,-10000000, -234,-10000000,-10000000,-10000000, +-10000000,-10000000,-10000000,-10000000,-10000000, -233, -240, -240,-10000000,-10000000, +-10000000 }; +yytabelem yypgo[]={ + + 0, 58, 57, 59, 56, 52, 41, 55, 54, 51, + 39, 53 }; +yytabelem yyr1[]={ + + 0, 1, 1, 2, 2, 2, 2, 2, 3, 3, + 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, + 6, 7, 7, 8, 8, 8, 9, 9, 9, 10, + 10, 11, 11, 11, 11, 11, 11, 11 }; +yytabelem yyr2[]={ + + 0, 3, 3, 5, 5, 5, 3, 3, 7, 3, + 7, 3, 7, 7, 7, 7, 7, 7, 3, 7, + 3, 7, 3, 7, 7, 3, 7, 7, 3, 5, + 3, 7, 5, 3, 3, 5, 3, 3 }; +yytabelem yychk[]={ + +-10000000, -1, -3, -2, -4, 288, 287, 286, 289, 290, + -5, -6, -7, -8, -9, -10, 266, -11, 277, 263, + 278, 275, 271, 279, 269, 265, 264, -3, -3, -3, + 261, 262, 257, 258, 259, 260, 267, 268, 270, 271, + 272, 273, -11, -3, 278, 275, -4, -5, -6, -6, + -6, -6, -6, -6, 278, -8, -9, -9, -10, -10, + 276 }; +yytabelem yydef[]={ + + 0, -2, 1, 2, 9, 0, 0, 0, 6, 7, + 11, 18, 20, 22, 25, 28, 0, 30, 0, 0, + 33, 34, 0, 36, 37, 0, 0, 3, 4, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 29, 0, 32, 35, 8, 10, 12, 13, + 14, 15, 16, 17, 19, 21, 23, 24, 26, 27, + 31 }; +typedef struct +#ifdef __cplusplus + yytoktype +#endif +{ char *t_name; int t_val; } yytoktype; #ifndef YYDEBUG -#define YYDEBUG 0 +# define YYDEBUG 0 /* don't allow debugging */ #endif -#define YYMAXTOKEN 290 + #if YYDEBUG -const char * const 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, -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,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,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,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,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,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,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,"TAO_GT","TAO_GE","TAO_LT", -"TAO_LE","TAO_EQ","TAO_NE","TAO_EXIST","TAO_AND","TAO_OR","TAO_NOT","TAO_IN", -"TAO_TWIDDLE","TAO_BOOLEAN","TAO_PLUS","TAO_MINUS","TAO_MULT","TAO_DIV", -"TAO_UMINUS","TAO_NUMBER","TAO_RPAREN","TAO_LPAREN","TAO_IDENT","TAO_STRING", -"TAO_UNKNOWN","TAO_SIGNED","TAO_UNSIGNED","TAO_DOUBLE","TAO_CONSTRAINT", -"TAO_SEQUENCE","TAO_WITH","TAO_MAX","TAO_MIN","TAO_FIRST","TAO_RANDOM", + +yytoktype yytoks[] = +{ + "TAO_GT", 257, + "TAO_GE", 258, + "TAO_LT", 259, + "TAO_LE", 260, + "TAO_EQ", 261, + "TAO_NE", 262, + "TAO_EXIST", 263, + "TAO_AND", 264, + "TAO_OR", 265, + "TAO_NOT", 266, + "TAO_IN", 267, + "TAO_TWIDDLE", 268, + "TAO_BOOLEAN", 269, + "TAO_PLUS", 270, + "TAO_MINUS", 271, + "TAO_MULT", 272, + "TAO_DIV", 273, + "TAO_UMINUS", 274, + "TAO_NUMBER", 275, + "TAO_RPAREN", 276, + "TAO_LPAREN", 277, + "TAO_IDENT", 278, + "TAO_STRING", 279, + "TAO_UNKNOWN", 280, + "TAO_UNSIGNED", 281, + "TAO_SIGNED", 282, + "TAO_DOUBLE", 283, + "TAO_CONSTRAINT", 284, + "TAO_SEQUENCE", 285, + "TAO_WITH", 286, + "TAO_MAX", 287, + "TAO_MIN", 288, + "TAO_FIRST", 289, + "TAO_RANDOM", 290, + "-unknown-", -1 /* ends search */ }; -const char * const yyrule[] = { -"$accept : constraint", -"constraint : bool_or", -"constraint : preference", -"preference : TAO_MIN bool_or", -"preference : TAO_MAX bool_or", -"preference : TAO_WITH bool_or", -"preference : TAO_FIRST", -"preference : TAO_RANDOM", -"bool_or : bool_or TAO_OR bool_and", -"bool_or : bool_and", -"bool_and : bool_and TAO_AND bool_compare", -"bool_and : bool_compare", -"bool_compare : expr_in TAO_EQ expr_in", -"bool_compare : expr_in TAO_NE expr_in", -"bool_compare : expr_in TAO_GT expr_in", -"bool_compare : expr_in TAO_GE expr_in", -"bool_compare : expr_in TAO_LT expr_in", -"bool_compare : expr_in TAO_LE expr_in", -"bool_compare : expr_in", -"expr_in : expr_twiddle TAO_IN TAO_IDENT", -"expr_in : expr_twiddle", -"expr_twiddle : expr TAO_TWIDDLE expr", -"expr_twiddle : expr", -"expr : expr TAO_PLUS term", -"expr : expr TAO_MINUS term", -"expr : term", -"term : term TAO_MULT factor_not", -"term : term TAO_DIV factor_not", -"term : factor_not", -"factor_not : TAO_NOT factor", -"factor_not : factor", -"factor : TAO_LPAREN bool_or TAO_RPAREN", -"factor : TAO_EXIST TAO_IDENT", -"factor : TAO_IDENT", -"factor : TAO_NUMBER", -"factor : TAO_MINUS TAO_NUMBER", -"factor : TAO_STRING", -"factor : TAO_BOOLEAN", + +char * yyreds[] = +{ + "-no such reduction-", + "constraint : bool_or", + "constraint : preference", + "preference : TAO_MIN bool_or", + "preference : TAO_MAX bool_or", + "preference : TAO_WITH bool_or", + "preference : TAO_FIRST", + "preference : TAO_RANDOM", + "bool_or : bool_or TAO_OR bool_and", + "bool_or : bool_and", + "bool_and : bool_and TAO_AND bool_compare", + "bool_and : bool_compare", + "bool_compare : expr_in TAO_EQ expr_in", + "bool_compare : expr_in TAO_NE expr_in", + "bool_compare : expr_in TAO_GT expr_in", + "bool_compare : expr_in TAO_GE expr_in", + "bool_compare : expr_in TAO_LT expr_in", + "bool_compare : expr_in TAO_LE expr_in", + "bool_compare : expr_in", + "expr_in : expr_twiddle TAO_IN TAO_IDENT", + "expr_in : expr_twiddle", + "expr_twiddle : expr TAO_TWIDDLE expr", + "expr_twiddle : expr", + "expr : expr TAO_PLUS term", + "expr : expr TAO_MINUS term", + "expr : term", + "term : term TAO_MULT factor_not", + "term : term TAO_DIV factor_not", + "term : factor_not", + "factor_not : TAO_NOT factor", + "factor_not : factor", + "factor : TAO_LPAREN bool_or TAO_RPAREN", + "factor : TAO_EXIST TAO_IDENT", + "factor : TAO_IDENT", + "factor : TAO_NUMBER", + "factor : TAO_MINUS TAO_NUMBER", + "factor : TAO_STRING", + "factor : TAO_BOOLEAN", }; +#endif /* YYDEBUG */ + +/* + * Copyright (c) 1993 by Sun Microsystems, Inc. + */ + +//#pragma ident "@(#)yaccpar 6.12 93/06/07 SMI" + +/* +** Skeleton parser driver for yacc output +*/ + +/* +** yacc user known macros and defines +*/ +#define YYERROR goto yyerrlab +#define YYACCEPT return(0) +#define YYABORT return(1) +#define YYBACKUP( newtoken, newvalue )\ +{\ + if ( yychar >= 0 || ( yyr2[ yytmp ] >> 1 ) != 1 )\ + {\ + yyerror( "syntax error - cannot backup" );\ + goto yyerrlab;\ + }\ + yychar = newtoken;\ + yystate = *yyps;\ + yylval = newvalue;\ + goto yynewstate;\ +} +#define YYRECOVERING() (!!yyerrflag) +#define YYNEW(type) malloc(sizeof(type) * yynewmax) +#define YYCOPY(to, from, type) \ + (type *) ACE_OS::memcpy(to, (char *) from, yynewmax * sizeof(type)) +#define YYENLARGE( from, type) \ + (type *) realloc((char *) from, yynewmax * sizeof(type)) +#ifndef YYDEBUG +# define YYDEBUG 1 /* make debugging available */ #endif -#if YYDEBUG -#include <stdio.h> -#endif -#ifdef YYSTACKSIZE -#undef YYMAXDEPTH -#define YYMAXDEPTH YYSTACKSIZE -#else -#ifdef YYMAXDEPTH -#define YYSTACKSIZE YYMAXDEPTH + +/* +** user known globals +*/ +int yydebug; /* set to 1 to get debugging */ + +/* +** driver internal defines +*/ +#define YYFLAG (-10000000) + +/* +** global variables used by the parser +*/ +YYSTYPE *yypv; /* top of value stack */ +int *yyps; /* top of state stack */ + +int yystate; /* current state */ +int yytmp; /* extra var (lasts between blocks) */ + +int yynerrs; /* number of errors */ +int yyerrflag; /* error recovery flag */ +int yychar; /* current input token number */ + + + +#ifdef YYNMBCHARS +#define YYLEX() yycvtok(yylex()) +/* +** yycvtok - return a token if i is a wchar_t value that exceeds 255. +** If i<255, i itself is the token. If i>255 but the neither +** of the 30th or 31st bit is on, i is already a token. +*/ +#if defined(__STDC__) || defined(__cplusplus) +int yycvtok(int i) #else -#define YYSTACKSIZE 10000 -#define YYMAXDEPTH 10000 +int yycvtok(i) int i; #endif -#endif -#define YYINITSTACKSIZE 200 -int yydebug; -int yynerrs; -int yyerrflag; -int yychar; -short *yyssp; -YYSTYPE *yyvsp; -YYSTYPE yyval; -YYSTYPE yylval; -short *yyss; -short *yysslim; -YYSTYPE *yyvs; -int yystacksize; - -//extern int yydebug = 1; -/* allocate initial stack or double stack size, up to YYMAXDEPTH */ -static int yygrowstack() { - size_t newsize, i; - short *newss; - YYSTYPE *newvs; - - if ((newsize = yystacksize) == 0) - newsize = YYINITSTACKSIZE; - else if (newsize >= YYMAXDEPTH) - return -1; - else if ((newsize *= 2) > YYMAXDEPTH) - newsize = YYMAXDEPTH; - i = yyssp - yyss; - newss = yyss ? (short *)ACE_OS::realloc(yyss, newsize * sizeof *newss) : - (short *)ACE_OS::malloc(newsize * sizeof *newss); - if (newss == NULL) - return -1; - yyss = newss; - yyssp = newss + i; - newvs = yyvs ? (YYSTYPE *)ACE_OS::realloc(yyvs, newsize * sizeof *newvs) : - (YYSTYPE *)ACE_OS::malloc(newsize * sizeof *newvs); - if (newvs == NULL) - return -1; - yyvs = newvs; - yyvsp = newvs + i; - yystacksize = newsize; - yysslim = yyss + newsize - 1; - return 0; + int first = 0; + int last = YYNMBCHARS - 1; + int mid; + wchar_t j; + + if(i&0x60000000){/*Must convert to a token. */ + if( yymbchars[last].character < i ){ + return i;/*Giving up*/ + } + while ((last>=first)&&(first>=0)) {/*Binary search loop*/ + mid = (first+last)/2; + j = yymbchars[mid].character; + if( j==i ){/*Found*/ + return yymbchars[mid].tvalue; + }else if( j<i ){ + first = mid + 1; + }else{ + last = mid -1; + } + } + /*No entry in the table.*/ + return i;/* Giving up.*/ + }else{/* i is already a token. */ + return i; + } } +#else/*!YYNMBCHARS*/ +#define YYLEX() yylex() +#endif/*!YYNMBCHARS*/ -#define YYABORT goto yyabort -#define YYREJECT goto yyabort -#define YYACCEPT goto yyaccept -#define YYERROR goto yyerrlab - -#ifndef YYPARSE_PARAM -#if defined(__cplusplus) || __STDC__ -#define YYPARSE_PARAM_ARG void -#define YYPARSE_PARAM_DECL -#else /* ! ANSI-C/C++ */ -#define YYPARSE_PARAM_ARG -#define YYPARSE_PARAM_DECL -#endif /* ANSI-C/C++ */ -#else /* YYPARSE_PARAM */ -#ifndef YYPARSE_PARAM_TYPE -#define YYPARSE_PARAM_TYPE void * +/* +** yyparse - return 0 if worked, 1 if syntax error not recovered from +*/ +#if defined(__STDC__) || defined(__cplusplus) +int yyparse(void) +#else +int yyparse() #endif -#if defined(__cplusplus) || __STDC__ -#define YYPARSE_PARAM_ARG YYPARSE_PARAM_TYPE YYPARSE_PARAM -#define YYPARSE_PARAM_DECL -#else /* ! ANSI-C/C++ */ -#define YYPARSE_PARAM_ARG YYPARSE_PARAM -#define YYPARSE_PARAM_DECL YYPARSE_PARAM_TYPE YYPARSE_PARAM; -#endif /* ANSI-C/C++ */ -#endif /* ! YYPARSE_PARAM */ - -int -yyparse (YYPARSE_PARAM_ARG) - YYPARSE_PARAM_DECL { - register int yym, yyn, yystate; -#if YYDEBUG - register const char *yys; - - if ((yys = ACE_OS::getenv("YYDEBUG"))) - { - yyn = *yys; - if (yyn >= '0' && yyn <= '9') - yydebug = yyn - '0'; - } + register YYSTYPE *yypvt = 0; /* top of value stack for $vars */ + +#if defined(__cplusplus) || defined(lint) +/* + hacks to please C++ and lint - goto's inside switch should never be + executed; yypvt is set to 0 to avoid "used before set" warning. +*/ + static int __yaccpar_lint_hack__ = 0; + switch (__yaccpar_lint_hack__) + { + case 1: goto yyerrlab; + case 2: goto yynewstate; + } + yypvt = 0; #endif - yynerrs = 0; - yyerrflag = 0; - yychar = (-1); + /* + ** Initialize externals - yyparse may be called more than once + */ + yypv = &yyv[-1]; + yyps = &yys[-1]; + yystate = 0; + yytmp = 0; + yynerrs = 0; + yyerrflag = 0; + yychar = -1; + +#if YYMAXDEPTH <= 0 + if (yymaxdepth <= 0) + { + if ((yymaxdepth = YYEXPAND(0)) <= 0) + { + yyerror("yacc initialization error"); + YYABORT; + } + } +#endif + + { + register YYSTYPE *yy_pv; /* top of value stack */ + register int *yy_ps; /* top of state stack */ + register int yy_state; /* current state */ + register int yy_n; /* internal state number info */ + goto yystack; /* moved from 6 lines above to here to please C++ */ + + /* + ** get globals into registers. + ** branch to here only if YYBACKUP was called. + */ + yynewstate: + yy_pv = yypv; + yy_ps = yyps; + yy_state = yystate; + goto yy_newstate; - if (yyss == NULL && yygrowstack()) goto yyoverflow; - yyssp = yyss; - yyvsp = yyvs; - *yyssp = yystate = 0; + /* + ** get globals into registers. + ** either we just started, or we just finished a reduction + */ + yystack: + yy_pv = yypv; + yy_ps = yyps; + yy_state = yystate; -yyloop: - if ((yyn = yydefred[yystate])) goto yyreduce; - if (yychar < 0) - { - if ((yychar = yylex()) < 0) yychar = 0; + /* + ** top of for (;;) loop while no reductions done + */ + yy_stack: + /* + ** put a state and value onto the stacks + */ #if YYDEBUG - if (yydebug) - { - yys = 0; - if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; - if (!yys) yys = "illegal-symbol"; - printf("%sdebug: state %d, reading %d (%s)\n", - YYPREFIX, yystate, yychar, yys); - } + /* + ** if debugging, look up token value in list of value vs. + ** name pairs. 0 and negative (-1) are special values. + ** Note: linear search is used since time is not a real + ** consideration while debugging. + */ + if ( yydebug ) + { + register int yy_i; + + printf( "State %d, token ", yy_state ); + if ( yychar == 0 ) + printf( "end-of-file\n" ); + else if ( yychar < 0 ) + printf( "-none-\n" ); + else + { + for ( yy_i = 0; yytoks[yy_i].t_val >= 0; + yy_i++ ) + { + if ( yytoks[yy_i].t_val == yychar ) + break; + } + printf( "%s\n", yytoks[yy_i].t_name ); + } + } +#endif /* YYDEBUG */ + if ( ++yy_ps >= &yys[ yymaxdepth ] ) /* room on stack? */ + { + /* + ** reallocate and recover. Note that pointers + ** have to be reset, or bad things will happen + */ + int yyps_index = (yy_ps - yys); + int yypv_index = (yy_pv - yyv); + int yypvt_index = (yypvt - yyv); + int yynewmax; +#ifdef YYEXPAND + yynewmax = YYEXPAND(yymaxdepth); +#else + yynewmax = 2 * yymaxdepth; /* double table size */ + if (yymaxdepth == YYMAXDEPTH) /* first time growth */ + { + char *newyys = (char *)YYNEW(int); + char *newyyv = (char *)YYNEW(YYSTYPE); + if (newyys != 0 && newyyv != 0) + { + yys = YYCOPY(newyys, yys, int); + yyv = YYCOPY(newyyv, yyv, YYSTYPE); + } + else + yynewmax = 0; /* failed */ + } + else /* not first time */ + { + yys = YYENLARGE(yys, int); + yyv = YYENLARGE(yyv, YYSTYPE); + if (yys == 0 || yyv == 0) + yynewmax = 0; /* failed */ + } #endif - } - if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == yychar) - { + if (yynewmax <= yymaxdepth) /* tables not expanded */ + { + yyerror( "yacc stack overflow" ); + YYABORT; + } + yymaxdepth = yynewmax; + + yy_ps = yys + yyps_index; + yy_pv = yyv + yypv_index; + yypvt = yyv + yypvt_index; + } + *yy_ps = yy_state; + *++yy_pv = yyval; + + /* + ** we have a new state - find out what to do + */ + yy_newstate: + if ( ( yy_n = yypact[ yy_state ] ) <= YYFLAG ) + goto yydefault; /* simple state */ #if YYDEBUG - if (yydebug) - printf("%sdebug: state %d, shifting to state %d\n", - YYPREFIX, yystate, yytable[yyn]); + /* + ** if debugging, need to mark whether new token grabbed + */ + yytmp = yychar < 0; #endif - if (yyssp >= yysslim && yygrowstack()) - { - goto yyoverflow; - } - *++yyssp = yystate = yytable[yyn]; - *++yyvsp = yylval; - yychar = (-1); - if (yyerrflag > 0) --yyerrflag; - goto yyloop; - } - if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == yychar) - { - yyn = yytable[yyn]; - goto yyreduce; - } - if (yyerrflag) goto yyinrecovery; -#if defined(lint) || defined(__GNUC__) || defined (WIN32) || defined (__HP_aCC) - goto yynewerror; -#endif -yynewerror: - yyerror("syntax error"); -#if defined(lint) || defined(__GNUC__) || defined (WIN32) || defined (__HP_aCC) - goto yyerrlab; -#endif -yyerrlab: - ++yynerrs; -yyinrecovery: - if (yyerrflag < 3) - { - yyerrflag = 3; - for (;;) - { - if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE) - { + if ( ( yychar < 0 ) && ( ( yychar = YYLEX() ) < 0 ) ) + yychar = 0; /* reached EOF */ #if YYDEBUG - if (yydebug) - printf("%sdebug: state %d, error recovery shifting\ - to state %d\n", YYPREFIX, *yyssp, yytable[yyn]); -#endif - if (yyssp >= yysslim && yygrowstack()) - { - goto yyoverflow; - } - *++yyssp = yystate = yytable[yyn]; - *++yyvsp = yylval; - goto yyloop; - } - else - { + if ( yydebug && yytmp ) + { + register int yy_i; + + printf( "Received token " ); + if ( yychar == 0 ) + printf( "end-of-file\n" ); + else if ( yychar < 0 ) + printf( "-none-\n" ); + else + { + for ( yy_i = 0; yytoks[yy_i].t_val >= 0; + yy_i++ ) + { + if ( yytoks[yy_i].t_val == yychar ) + break; + } + printf( "%s\n", yytoks[yy_i].t_name ); + } + } +#endif /* YYDEBUG */ + if ( ( ( yy_n += yychar ) < 0 ) || ( yy_n >= YYLAST ) ) + goto yydefault; + if ( yychk[ yy_n = yyact[ yy_n ] ] == yychar ) /*valid shift*/ + { + yychar = -1; + yyval = yylval; + yy_state = yy_n; + if ( yyerrflag > 0 ) + yyerrflag--; + goto yy_stack; + } + + yydefault: + if ( ( yy_n = yydef[ yy_state ] ) == -2 ) + { #if YYDEBUG - if (yydebug) - printf("%sdebug: error recovery discarding state %d\n", - YYPREFIX, *yyssp); + yytmp = yychar < 0; #endif - if (yyssp <= yyss) goto yyabort; - --yyssp; - --yyvsp; - } - } - } - else - { - if (yychar == 0) goto yyabort; + if ( ( yychar < 0 ) && ( ( yychar = YYLEX() ) < 0 ) ) + yychar = 0; /* reached EOF */ #if YYDEBUG - if (yydebug) - { - yys = 0; - if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; - if (!yys) yys = "illegal-symbol"; - printf("%sdebug: state %d, error recovery discards token %d (%s)\n", - YYPREFIX, yystate, yychar, yys); - } + if ( yydebug && yytmp ) + { + register int yy_i; + + printf( "Received token " ); + if ( yychar == 0 ) + printf( "end-of-file\n" ); + else if ( yychar < 0 ) + printf( "-none-\n" ); + else + { + for ( yy_i = 0; + yytoks[yy_i].t_val >= 0; + yy_i++ ) + { + if ( yytoks[yy_i].t_val + == yychar ) + { + break; + } + } + printf( "%s\n", yytoks[yy_i].t_name ); + } + } +#endif /* YYDEBUG */ + /* + ** look through exception table + */ + { + register int *yyxi = yyexca; + + while ( ( *yyxi != -1 ) || + ( yyxi[1] != yy_state ) ) + { + yyxi += 2; + } + while ( ( *(yyxi += 2) >= 0 ) && + ( *yyxi != yychar ) ) + ; + if ( ( yy_n = yyxi[1] ) < 0 ) + YYACCEPT; + } + } + + /* + ** check for syntax error + */ + if ( yy_n == 0 ) /* have an error */ + { + /* no worry about speed here! */ + switch ( yyerrflag ) + { + case 0: /* new error */ + yyerror( "syntax error" ); + goto skip_init; + yyerrlab: + /* + ** get globals into registers. + ** we have a user generated syntax type error + */ + yy_pv = yypv; + yy_ps = yyps; + yy_state = yystate; + skip_init: + yynerrs++; + /* FALLTHRU */ + case 1: + case 2: /* incompletely recovered error */ + /* try again... */ + yyerrflag = 3; + /* + ** find state where "error" is a legal + ** shift action + */ + while ( yy_ps >= yys ) + { + yy_n = yypact[ *yy_ps ] + YYERRCODE; + if ( yy_n >= 0 && yy_n < YYLAST && + yychk[yyact[yy_n]] == YYERRCODE) { + /* + ** simulate shift of "error" + */ + yy_state = yyact[ yy_n ]; + goto yy_stack; + } + /* + ** current state has no shift on + ** "error", pop stack + */ +#if YYDEBUG +# define _POP_ "Error recovery pops state %d, uncovers state %d\n" + if ( yydebug ) + printf( _POP_, *yy_ps, + yy_ps[-1] ); +# undef _POP_ #endif - yychar = (-1); - goto yyloop; - } -yyreduce: + yy_ps--; + yy_pv--; + } + /* + ** there is no state on stack with "error" as + ** a valid shift. give up. + */ + YYABORT; + case 3: /* no shift yet; eat a token */ +#if YYDEBUG + /* + ** if debugging, look up token in list of + ** pairs. 0 and negative shouldn't occur, + ** but since timing doesn't matter when + ** debugging, it doesn't hurt to leave the + ** tests here. + */ + if ( yydebug ) + { + register int yy_i; + + printf( "Error recovery discards " ); + if ( yychar == 0 ) + printf( "token end-of-file\n" ); + else if ( yychar < 0 ) + printf( "token -none-\n" ); + else + { + for ( yy_i = 0; + yytoks[yy_i].t_val >= 0; + yy_i++ ) + { + if ( yytoks[yy_i].t_val + == yychar ) + { + break; + } + } + printf( "token %s\n", + yytoks[yy_i].t_name ); + } + } +#endif /* YYDEBUG */ + if ( yychar == 0 ) /* reached EOF. quit */ + YYABORT; + yychar = -1; + goto yy_newstate; + } + }/* end if ( yy_n == 0 ) */ + /* + ** reduction by production yy_n + ** put stack tops, etc. so things right after switch + */ #if YYDEBUG - if (yydebug) - printf("%sdebug: state %d, reducing by rule %d (%s)\n", - YYPREFIX, yystate, yyn, yyrule[yyn]); + /* + ** if debugging, print the string that is the user's + ** specification of the reduction which is just about + ** to be done. + */ + if ( yydebug ) + printf( "Reduce by (%d) \"%s\"\n", + yy_n, yyreds[ yy_n ] ); #endif - yym = yylen[yyn]; - yyval = yyvsp[1-yym]; - switch (yyn) - { + yytmp = yy_n; /* value to switch over */ + yypvt = yy_pv; /* $vars top of value stack */ + /* + ** Look in goto table for next state + ** Sorry about using yy_state here as temporary + ** register variable, but why not, if it works... + ** If yyr2[ yy_n ] doesn't have the low order bit + ** set, then there is no action to be done for + ** this reduction. So, no saving & unsaving of + ** registers done. The only difference between the + ** code just after the if and the body of the if is + ** the goto yy_stack in the body. This way the test + ** can be made before the choice of what to do is needed. + */ + { + /* length of production doubled with extra bit */ + register int yy_len = yyr2[ yy_n ]; + + if ( !( yy_len & 01 ) ) + { + yy_len >>= 1; + yyval = ( yy_pv -= yy_len )[1]; /* $$ = $1 */ + yy_state = yypgo[ yy_n = yyr1[ yy_n ] ] + + *( yy_ps -= yy_len ) + 1; + if ( yy_state >= YYLAST || + yychk[ yy_state = + yyact[ yy_state ] ] != -yy_n ) + { + yy_state = yyact[ yypgo[ yy_n ] ]; + } + goto yy_stack; + } + yy_len >>= 1; + yyval = ( yy_pv -= yy_len )[1]; /* $$ = $1 */ + yy_state = yypgo[ yy_n = yyr1[ yy_n ] ] + + *( yy_ps -= yy_len ) + 1; + if ( yy_state >= YYLAST || + yychk[ yy_state = yyact[ yy_state ] ] != -yy_n ) + { + yy_state = yyact[ yypgo[ yy_n ] ]; + } + } + /* save until reenter driver code */ + yystate = yy_state; + yyps = yy_ps; + yypv = yy_pv; + } + /* + ** code supplied by user is placed in this switch + */ + switch( yytmp ) + { + case 1: -{ yyval.constraint_ = new TAO_Unary_Constraint(TAO_CONSTRAINT, yyvsp[0].constraint_); } -break; + +{ yyval.constraint_ = new TAO_Unary_Constraint(TAO_CONSTRAINT, yypvt[-0].constraint_); } break; case 2: -{ yyval.constraint_ = yyvsp[0].constraint_; } -break; + +{ yyval.constraint_ = yypvt[-0].constraint_; } break; case 3: -{ yyval.constraint_ = new TAO_Unary_Constraint(TAO_MIN, yyvsp[0].constraint_); } -break; + +{ yyval.constraint_ = new TAO_Unary_Constraint(TAO_MIN, yypvt[-0].constraint_); } break; case 4: -{ yyval.constraint_ = new TAO_Unary_Constraint(TAO_MAX, yyvsp[0].constraint_); } -break; + +{ yyval.constraint_ = new TAO_Unary_Constraint(TAO_MAX, yypvt[-0].constraint_); } break; case 5: -{ yyval.constraint_ = new TAO_Unary_Constraint(TAO_WITH, yyvsp[0].constraint_); } -break; + +{ yyval.constraint_ = new TAO_Unary_Constraint(TAO_WITH, yypvt[-0].constraint_); } break; case 6: -{ yyval.constraint_ = new TAO_Noop_Constraint(TAO_FIRST); } -break; + +{ yyval.constraint_ = new TAO_Noop_Constraint(TAO_FIRST); } break; case 7: -{ yyval.constraint_ = new TAO_Noop_Constraint(TAO_RANDOM); } -break; + +{ yyval.constraint_ = new TAO_Noop_Constraint(TAO_RANDOM); } break; case 8: -{ yyval.constraint_ = new TAO_Binary_Constraint(TAO_OR, yyvsp[-2].constraint_, yyvsp[0].constraint_); } -break; + +{ yyval.constraint_ = new TAO_Binary_Constraint(TAO_OR, yypvt[-2].constraint_, yypvt[-0].constraint_); } break; case 9: -{ yyval.constraint_ = yyvsp[0].constraint_; } -break; + +{ yyval.constraint_ = yypvt[-0].constraint_; } break; case 10: -{ yyval.constraint_ = new TAO_Binary_Constraint(TAO_AND, yyvsp[-2].constraint_, yyvsp[0].constraint_); } -break; + +{ yyval.constraint_ = new TAO_Binary_Constraint(TAO_AND, yypvt[-2].constraint_, yypvt[-0].constraint_); } break; case 11: -{ yyval.constraint_ = yyvsp[0].constraint_; } -break; + +{ yyval.constraint_ = yypvt[-0].constraint_; } break; case 12: -{ yyval.constraint_ = new TAO_Binary_Constraint(TAO_EQ, yyvsp[-2].constraint_, yyvsp[0].constraint_); } -break; + +{ yyval.constraint_ = new TAO_Binary_Constraint(TAO_EQ, yypvt[-2].constraint_, yypvt[-0].constraint_); } break; case 13: -{ yyval.constraint_ = new TAO_Binary_Constraint(TAO_NE, yyvsp[-2].constraint_, yyvsp[0].constraint_); } -break; + +{ yyval.constraint_ = new TAO_Binary_Constraint(TAO_NE, yypvt[-2].constraint_, yypvt[-0].constraint_); } break; case 14: -{ yyval.constraint_ = new TAO_Binary_Constraint(TAO_GT, yyvsp[-2].constraint_, yyvsp[0].constraint_); } -break; + +{ yyval.constraint_ = new TAO_Binary_Constraint(TAO_GT, yypvt[-2].constraint_, yypvt[-0].constraint_); } break; case 15: -{ yyval.constraint_ = new TAO_Binary_Constraint(TAO_GE, yyvsp[-2].constraint_, yyvsp[0].constraint_); } -break; + +{ yyval.constraint_ = new TAO_Binary_Constraint(TAO_GE, yypvt[-2].constraint_, yypvt[-0].constraint_); } break; case 16: -{ yyval.constraint_ = new TAO_Binary_Constraint(TAO_LT, yyvsp[-2].constraint_, yyvsp[0].constraint_); } -break; + +{ yyval.constraint_ = new TAO_Binary_Constraint(TAO_LT, yypvt[-2].constraint_, yypvt[-0].constraint_); } break; case 17: -{ yyval.constraint_ = new TAO_Binary_Constraint(TAO_LE, yyvsp[-2].constraint_, yyvsp[0].constraint_); } -break; + +{ yyval.constraint_ = new TAO_Binary_Constraint(TAO_LE, yypvt[-2].constraint_, yypvt[-0].constraint_); } break; case 18: -{ yyval.constraint_ = yyvsp[0].constraint_; } -break; + +{ yyval.constraint_ = yypvt[-0].constraint_; } break; case 19: -{ yyval.constraint_ = new TAO_Binary_Constraint(TAO_IN, yyvsp[-2].constraint_, yyvsp[0].constraint_); } -break; + +{ yyval.constraint_ = new TAO_Binary_Constraint(TAO_IN, yypvt[-2].constraint_, yypvt[-0].constraint_); } break; case 20: -{ yyval.constraint_ = yyvsp[0].constraint_; } -break; + +{ yyval.constraint_ = yypvt[-0].constraint_; } break; case 21: -{ yyval.constraint_ = new TAO_Binary_Constraint(TAO_TWIDDLE, yyvsp[-2].constraint_, yyvsp[0].constraint_); } -break; + +{ yyval.constraint_ = new TAO_Binary_Constraint(TAO_TWIDDLE, yypvt[-2].constraint_, yypvt[-0].constraint_); } break; case 22: -{ yyval.constraint_ = yyvsp[0].constraint_; } -break; + +{ yyval.constraint_ = yypvt[-0].constraint_; } break; case 23: -{ yyval.constraint_ = new TAO_Binary_Constraint(TAO_PLUS, yyvsp[-2].constraint_, yyvsp[0].constraint_); } -break; + +{ yyval.constraint_ = new TAO_Binary_Constraint(TAO_PLUS, yypvt[-2].constraint_, yypvt[-0].constraint_); } break; case 24: -{ yyval.constraint_ = new TAO_Binary_Constraint(TAO_MINUS, yyvsp[-2].constraint_, yyvsp[0].constraint_); } -break; + +{ yyval.constraint_ = new TAO_Binary_Constraint(TAO_MINUS, yypvt[-2].constraint_, yypvt[-0].constraint_); } break; case 25: -{ yyval.constraint_ = yyvsp[0].constraint_; } -break; + +{ yyval.constraint_ = yypvt[-0].constraint_; } break; case 26: -{ yyval.constraint_ = new TAO_Binary_Constraint(TAO_MULT, yyvsp[-2].constraint_, yyvsp[0].constraint_); } -break; + +{ yyval.constraint_ = new TAO_Binary_Constraint(TAO_MULT, yypvt[-2].constraint_, yypvt[-0].constraint_); } break; case 27: -{ yyval.constraint_ = new TAO_Binary_Constraint(TAO_DIV, yyvsp[-2].constraint_, yyvsp[0].constraint_); } -break; + +{ yyval.constraint_ = new TAO_Binary_Constraint(TAO_DIV, yypvt[-2].constraint_, yypvt[-0].constraint_); } break; case 28: -{ yyval.constraint_ = yyvsp[0].constraint_; } -break; + +{ yyval.constraint_ = yypvt[-0].constraint_; } break; case 29: -{ yyval.constraint_ = new TAO_Unary_Constraint(TAO_NOT, yyvsp[0].constraint_); } -break; + +{ yyval.constraint_ = new TAO_Unary_Constraint(TAO_NOT, yypvt[-0].constraint_); } break; case 30: -{ yyval.constraint_ = yyvsp[0].constraint_; } -break; + +{ yyval.constraint_ = yypvt[-0].constraint_; } break; case 31: -{ yyval.constraint_ = yyvsp[-1].constraint_; } -break; + +{ yyval.constraint_ = yypvt[-1].constraint_; } break; case 32: -{ yyval.constraint_ = new TAO_Unary_Constraint(TAO_EXIST, yyvsp[0].constraint_); } -break; + +{ yyval.constraint_ = new TAO_Unary_Constraint(TAO_EXIST, yypvt[-0].constraint_); } break; case 33: -{ yyval.constraint_ = yyvsp[0].constraint_; } -break; + +{ yyval.constraint_ = yypvt[-0].constraint_; } break; case 34: -{ yyval.constraint_ = yyvsp[0].constraint_; } -break; + +{ yyval.constraint_ = yypvt[-0].constraint_; } break; case 35: -{ yyval.constraint_ = new TAO_Unary_Constraint(TAO_UMINUS, yyvsp[0].constraint_); } -break; + +{ yyval.constraint_ = new TAO_Unary_Constraint(TAO_UMINUS, yypvt[-0].constraint_); } break; case 36: -{ yyval.constraint_ = yyvsp[0].constraint_; } -break; + +{ yyval.constraint_ = yypvt[-0].constraint_; } break; case 37: -{ yyval.constraint_ = yyvsp[0].constraint_; } -break; - } - yyssp -= yym; - yystate = *yyssp; - yyvsp -= yym; - yym = yylhs[yyn]; - if (yystate == 0 && yym == 0) - { -#if YYDEBUG - if (yydebug) - printf("%sdebug: after reduction, shifting from state 0 to\ - state %d\n", YYPREFIX, YYFINAL); -#endif - yystate = YYFINAL; - *++yyssp = YYFINAL; - *++yyvsp = yyval; - if (yychar < 0) - { - if ((yychar = yylex()) < 0) yychar = 0; -#if YYDEBUG - if (yydebug) - { - yys = 0; - if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; - if (!yys) yys = "illegal-symbol"; - printf("%sdebug: state %d, reading %d (%s)\n", - YYPREFIX, YYFINAL, yychar, yys); - } -#endif - } - if (yychar == 0) goto yyaccept; - goto yyloop; - } - if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == yystate) - yystate = yytable[yyn]; - else - yystate = yydgoto[yym]; -#if YYDEBUG - if (yydebug) - printf("%sdebug: after reduction, shifting from state %d \ -to state %d\n", YYPREFIX, *yyssp, yystate); -#endif - if (yyssp >= yysslim && yygrowstack()) - { - goto yyoverflow; - } - *++yyssp = yystate; - *++yyvsp = yyval; - goto yyloop; -yyoverflow: - yyerror("yacc stack overflow"); -yyabort: - return (1); -yyaccept: - return (0); + +{ yyval.constraint_ = yypvt[-0].constraint_; } break; + + } + goto yystack; /* reset registers in driver code */ } + TAO_END_VERSIONED_NAMESPACE_DECL |