2 * CDE - Common Desktop Environment
4 * Copyright (c) 1993-2012, The Open Group. All rights reserved.
6 * These libraries and programs are free software; you can
7 * redistribute them and/or modify them under the terms of the GNU
8 * Lesser General Public License as published by the Free Software
9 * Foundation; either version 2 of the License, or (at your option)
12 * These libraries and programs are distributed in the hope that
13 * they will be useful, but WITHOUT ANY WARRANTY; without even the
14 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU Lesser General Public License for more
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with these librararies and programs; if not, write
20 * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
21 * Floor, Boston, MA 02110-1301 USA
23 /* $TOG: frozen.mp_types_gram.C /main/4 1999/10/15 12:31:31 mgreess $ */
25 # line 16 "mp_types_gram.y"
30 #include "mp/mp_arg.h"
33 #include "mp_signature.h"
34 #include "mp_types_table.h"
40 # line 33 "mp_types_gram.y"
50 # define PER_SESSION 258
52 # define FILE_SCOPE 260
53 # define SESSION_SCOPE 261
54 # define FILE_IN_SESSION 262
56 # define NOTIFICATION 264
57 # define VOID_ARGS 265
69 # define HANDLE_PUSH 277
70 # define HANDLE_ROTATE 278
72 # define SEMICOLON 280
81 # define TT_IDENTIFIER 289
82 # define TT_STRING 290
83 # define TT_NUMBER 291
90 * On HP MAXINT is defined in both <values.h> and <sys/param.h>
94 #if defined(CSRG_BASED)
95 #define MAXINT INT_MAX
103 void yyerror(const char *);
108 extern "C" { int yylex(void); }
116 #define yyclearin yychar = -1
117 #define yyerrok yyerrflag = 0
119 extern int yyerrflag;
122 typedef int yytabelem;
124 #define YYMAXDEPTH 150
127 int yy_yys[YYMAXDEPTH], *yys = yy_yys;
128 YYSTYPE yy_yyv[YYMAXDEPTH], *yyv = yy_yyv;
129 #else /* user does initial allocation */
133 static int yymaxdepth = YYMAXDEPTH;
134 # define YYERRCODE 256
136 # line 427 "mp_types_gram.y"
138 yytabelem yyexca[] ={
159 67, 66, 136, 8, 104, 76, 7, 107, 14, 53,
160 110, 12, 78, 134, 115, 116, 94, 124, 93, 69,
161 12, 5, 60, 61, 62, 63, 92, 91, 127, 54,
162 24, 25, 26, 27, 28, 10, 112, 18, 75, 32,
163 74, 73, 72, 71, 36, 35, 34, 33, 30, 104,
164 80, 130, 126, 84, 85, 86, 84, 85, 86, 98,
165 99, 100, 47, 48, 49, 122, 129, 103, 121, 77,
166 125, 106, 97, 68, 13, 52, 82, 11, 2, 87,
167 9, 31, 40, 105, 109, 83, 81, 79, 123, 96,
168 59, 58, 57, 56, 55, 45, 44, 37, 16, 132,
169 113, 101, 51, 23, 22, 39, 21, 20, 19, 38,
170 29, 17, 15, 50, 6, 4, 3, 41, 42, 43,
171 65, 64, 46, 1, 0, 0, 0, 0, 0, 0,
172 0, 0, 0, 0, 0, 0, 70, 0, 0, 0,
173 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
174 0, 0, 88, 89, 90, 0, 0, 0, 0, 0,
175 0, 0, 95, 0, 0, 0, 0, 0, 0, 102,
176 0, 108, 0, 111, 0, 0, 0, 0, 0, 114,
177 0, 0, 0, 0, 0, 117, 118, 120, 119, 0,
178 0, 0, 0, 128, 0, 0, 0, 133, 135, 131 };
181 -268, -268,-10000000,-10000000,-10000000,-10000000, -246, -278, -281,-10000000,
182 -10000000,-10000000,-10000000,-10000000,-10000000, -245, -247, -231, -241,-10000000,
183 -10000000,-10000000,-10000000,-10000000, -232, -233, -234, -235,-10000000,-10000000,
184 -281,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, -195, -281,-10000000,
185 -280, -280, -280, -280, -253,-10000000, -290,-10000000,-10000000,-10000000,
186 -10000000,-10000000, -265,-10000000, -241,-10000000,-10000000,-10000000,-10000000,-10000000,
187 -236, -237, -238, -239, -242, -285,-10000000,-10000000, -276, -215,
188 -10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, -256, -258, -267,
189 -10000000, -270,-10000000, -268,-10000000,-10000000,-10000000, -201, -201, -201,
190 -201, -269, -282,-10000000, -212, -279,-10000000, -280,-10000000,-10000000,
191 -10000000, -244,-10000000,-10000000, -281, -271,-10000000,-10000000,-10000000,-10000000,
192 -10000000, -265,-10000000, -201,-10000000,-10000000, -282, -276, -194,-10000000,
193 -266, -214,-10000000, -252, -194, -216,-10000000,-10000000, -214, -224,
194 -274, -216,-10000000,-10000000, -289,-10000000,-10000000 };
197 0, 123, 122, 121, 120, 78, 116, 115, 114, 112,
198 81, 74, 111, 110, 109, 108, 107, 106, 104, 103,
199 82, 102, 75, 73, 69, 101, 77, 100, 72, 68,
200 70, 66, 99, 67, 98, 97, 96, 95, 94, 93,
201 92, 91, 90, 79, 89, 88, 87, 86, 76, 85,
205 0, 1, 1, 5, 5, 6, 12, 8, 11, 13,
206 13, 14, 14, 9, 9, 15, 15, 15, 15, 16,
207 17, 18, 19, 20, 20, 21, 27, 25, 25, 32,
208 32, 33, 34, 7, 26, 35, 35, 37, 36, 36,
209 38, 38, 38, 38, 2, 2, 2, 4, 4, 3,
210 3, 39, 40, 41, 42, 10, 10, 43, 43, 44,
211 28, 28, 28, 28, 22, 23, 46, 46, 46, 47,
212 47, 48, 49, 49, 49, 5, 50, 24, 24, 51,
213 51, 52, 45, 45, 29, 29, 30, 30, 31, 31 };
216 0, 2, 4, 2, 2, 11, 1, 9, 3, 0,
217 4, 3, 5, 0, 4, 2, 2, 2, 2, 7,
218 7, 7, 7, 0, 4, 13, 1, 14, 2, 0,
219 2, 5, 1, 17, 2, 0, 4, 7, 0, 4,
220 2, 2, 2, 2, 3, 3, 3, 3, 5, 2,
221 3, 7, 7, 7, 7, 0, 2, 0, 4, 13,
222 0, 3, 3, 3, 3, 6, 0, 2, 2, 6,
223 2, 7, 3, 3, 3, 3, 3, 0, 8, 6,
224 2, 3, 0, 8, 0, 3, 0, 3, 0, 7 };
227 -10000000, -1, -5, -6, -7, 289, -8, 274, 271, -5,
228 281, -26, 289, -11, 289, -9, -34, -12, 282, -15,
229 -16, -17, -18, -19, 275, 276, 277, 278, 281, -13,
230 279, -10, 280, 279, 279, 279, 279, -35, -14, -11,
231 -20, -20, -20, -20, -36, -37, -2, 257, 258, 259,
232 -11, -21, -22, 289, 282, -38, -39, -40, -41, -42,
233 275, 276, 277, 278, -3, -4, 291, 290, -23, 284,
234 -10, 279, 279, 279, 279, 280, 290, -24, 288, -46,
235 265, -47, -48, -49, 268, 269, 270, -43, -43, -43,
236 -43, 283, 284, 285, 286, -5, -44, -28, 260, 261,
237 262, -25, -26, -33, 273, -51, -52, 289, -48, -50,
238 289, -22, 280, -27, -11, 285, 286, -23, -28, -52,
239 -24, -29, 259, -45, 283, -30, 266, 280, -29, -31,
240 267, -30, -32, -33, 287, -31, 291 };
243 0, -2, 1, 3, 4, 75, 0, 0, 0, 2,
244 13, 32, 34, 6, 8, 0, 0, 9, 55, 14,
245 15, 16, 17, 18, 0, 0, 0, 0, 35, 7,
246 0, 5, 56, 23, 23, 23, 23, 38, 10, 11,
247 19, 20, 21, 22, 0, 36, 0, 44, 45, 46,
248 12, 24, 0, 64, 55, 39, 40, 41, 42, 43,
249 0, 0, 0, 0, 0, 49, 50, 47, 77, 66,
250 33, 57, 57, 57, 57, 37, 48, 0, 0, 0,
251 67, 68, 70, 0, 72, 73, 74, -2, -2, -2,
252 -2, 0, 0, 65, 0, 0, 58, 0, 61, 62,
253 63, 0, 26, 28, 0, 0, 80, 81, 69, 71,
254 76, 0, 25, 60, 31, 78, 0, 77, 84, 79,
255 82, 86, 85, 0, 84, 88, 87, 59, 86, 29,
256 0, 88, 27, 30, 0, 83, 89 };
261 { char *t_name; int t_val; } yytoktype;
263 # define YYDEBUG 0 /* don't allow debugging */
274 "SESSION_SCOPE", 261,
275 "FILE_IN_SESSION", 262,
291 "HANDLE_ROTATE", 278,
302 "TT_IDENTIFIER", 289,
305 "-unknown-", -1 /* ends search */
310 "-no such reduction-",
312 "types : types type",
315 "otype : header LCURL otype_body_list RCURL opt_del",
316 "header : OTYPE otid",
317 "header : OTYPE otid inheritance_opt",
318 "otid : TT_IDENTIFIER",
319 "inheritance_opt : /* empty */",
320 "inheritance_opt : COLON otid_list",
322 "otid_list : otid_list otid",
323 "otype_body_list : /* empty */",
324 "otype_body_list : otype_body_list otype_body",
325 "otype_body : otype_observe",
326 "otype_body : otype_handle",
327 "otype_body : otype_handle_push",
328 "otype_body : otype_handle_rotate",
329 "otype_observe : OBSERVE COLON osig_list",
330 "otype_handle : HANDLE COLON osig_list",
331 "otype_handle_push : HANDLE_PUSH COLON osig_list",
332 "otype_handle_rotate : HANDLE_ROTATE COLON osig_list",
333 "osig_list : /* empty */",
334 "osig_list : osig_list osig",
335 "osig : op args cntxt_opt INFER rhs SEMICOLON",
337 "rhs : ptid scope_opt start_opt queue_opt opnum_opt inherit_opt",
339 "inherit_opt : /* empty */",
340 "inherit_opt : inherit",
341 "inherit : FROM otid",
342 "ptype : PTYPE ptid",
343 "ptype : PTYPE ptid LCURL prop_list ptype_body_list RCURL opt_del",
344 "ptid : TT_IDENTIFIER",
345 "prop_list : /* empty */",
346 "prop_list : prop_list prop",
347 "prop : prop_id value SEMICOLON",
348 "ptype_body_list : /* empty */",
349 "ptype_body_list : ptype_body_list ptype_body",
350 "ptype_body : observe",
351 "ptype_body : handle",
352 "ptype_body : handle_push",
353 "ptype_body : handle_rotate",
354 "prop_id : PER_FILE",
355 "prop_id : PER_SESSION",
357 "string_lit : TT_STRING",
358 "string_lit : string_lit TT_STRING",
359 "value : string_lit",
361 "observe : OBSERVE COLON psig_list",
362 "handle : HANDLE COLON psig_list",
363 "handle_push : HANDLE_PUSH COLON psig_list",
364 "handle_rotate : HANDLE_ROTATE COLON psig_list",
365 "opt_del : /* empty */",
366 "opt_del : SEMICOLON",
367 "psig_list : /* empty */",
368 "psig_list : psig_list psig",
369 "psig : scope_opt op args cntxt_opt infer_opt SEMICOLON",
370 "scope_opt : /* empty */",
371 "scope_opt : FILE_SCOPE",
372 "scope_opt : SESSION_SCOPE",
373 "scope_opt : FILE_IN_SESSION",
374 "op : TT_IDENTIFIER",
375 "args : LPAREN args_aux RPAREN",
376 "args_aux : /* empty */",
377 "args_aux : VOID_ARGS",
378 "args_aux : argspecs",
379 "argspecs : argspecs COMMA argspec",
380 "argspecs : argspec",
381 "argspec : mode type name",
385 "type : TT_IDENTIFIER",
386 "name : TT_IDENTIFIER",
387 "cntxt_opt : /* empty */",
388 "cntxt_opt : CONTEXT LPAREN cntxt_list RPAREN",
389 "cntxt_list : cntxt_list COMMA cntxt",
390 "cntxt_list : cntxt",
391 "cntxt : TT_IDENTIFIER",
392 "infer_opt : /* empty */",
393 "infer_opt : INFER start_opt queue_opt opnum_opt",
394 "start_opt : /* empty */",
396 "queue_opt : /* empty */",
398 "opnum_opt : /* empty */",
399 "opnum_opt : OPNUM EQUAL TT_NUMBER",
403 * Copyright (c) 1993 by Sun Microsystems, Inc.
407 ** Skeleton parser driver for yacc output
411 ** yacc user known macros and defines
413 #define YYERROR goto yyerrlab
414 #define YYACCEPT return(0)
415 #define YYABORT return(1)
416 #define YYBACKUP( newtoken, newvalue )\
418 if ( yychar >= 0 || ( yyr2[ yytmp ] >> 1 ) != 1 )\
420 yyerror( "syntax error - cannot backup" );\
428 #define YYRECOVERING() (!!yyerrflag)
429 #define YYNEW(type) malloc(sizeof(type) * yynewmax)
430 #define YYCOPY(to, from, type) \
431 (type *) memcpy(to, (char *) from, yynewmax * sizeof(type))
432 #define YYENLARGE( from, type) \
433 (type *) realloc((char *) from, yynewmax * sizeof(type))
435 # define YYDEBUG 1 /* make debugging available */
439 ** user known globals
441 int yydebug; /* set to 1 to get debugging */
444 ** driver internal defines
446 #define YYFLAG (-10000000)
449 ** global variables used by the parser
451 YYSTYPE *yypv; /* top of value stack */
452 int *yyps; /* top of state stack */
454 int yystate; /* current state */
455 int yytmp; /* extra var (lasts between blocks) */
457 int yynerrs; /* number of errors */
458 int yyerrflag; /* error recovery flag */
459 int yychar; /* current input token number */
464 #define YYLEX() yycvtok(yylex())
466 ** yycvtok - return a token if i is a wchar_t value that exceeds 255.
467 ** If i<255, i itself is the token. If i>255 but the neither
468 ** of the 30th or 31st bit is on, i is already a token.
470 #if defined(__STDC__) || defined(__cplusplus)
473 int yycvtok(i) int i;
477 int last = YYNMBCHARS - 1;
481 if(i&0x60000000){/*Must convert to a token. */
482 if( yymbchars[last].character < i ){
483 return i;/*Giving up*/
485 while ((last>=first)&&(first>=0)) {/*Binary search loop*/
486 mid = (first+last)/2;
487 j = yymbchars[mid].character;
489 return yymbchars[mid].tvalue;
496 /*No entry in the table.*/
497 return i;/* Giving up.*/
498 }else{/* i is already a token. */
503 #define YYLEX() yylex()
504 #endif/*!YYNMBCHARS*/
507 ** yyparse - return 0 if worked, 1 if syntax error not recovered from
509 #if defined(__STDC__) || defined(__cplusplus)
510 int _Tt_types_table::yyparse(void)
512 int _Tt_types_table::yyparse()
515 register YYSTYPE *yypvt; /* top of value stack for $vars */
517 #if defined(__cplusplus) || defined(lint)
519 hacks to please C++ and lint - goto's inside switch should never be
520 executed; yypvt is set to 0 to avoid "used before set" warning.
522 static int __yaccpar_lint_hack__ = 0;
523 switch (__yaccpar_lint_hack__)
525 case 1: goto yyerrlab;
526 case 2: goto yynewstate;
532 ** Initialize externals - yyparse may be called more than once
545 if ((yymaxdepth = YYEXPAND(0)) <= 0)
547 yyerror("yacc initialization error");
554 register YYSTYPE *yy_pv; /* top of value stack */
555 register int *yy_ps; /* top of state stack */
556 register int yy_state; /* current state */
557 register int yy_n; /* internal state number info */
558 goto yystack; /* moved from 6 lines above to here to please C++ */
561 ** get globals into registers.
562 ** branch to here only if YYBACKUP was called.
571 ** get globals into registers.
572 ** either we just started, or we just finished a reduction
580 ** top of for (;;) loop while no reductions done
584 ** put a state and value onto the stacks
588 ** if debugging, look up token value in list of value vs.
589 ** name pairs. 0 and negative (-1) are special values.
590 ** Note: linear search is used since time is not a real
591 ** consideration while debugging.
597 printf( "State %d, token ", yy_state );
599 printf( "end-of-file\n" );
600 else if ( yychar < 0 )
601 printf( "-none-\n" );
604 for ( yy_i = 0; yytoks[yy_i].t_val >= 0;
607 if ( yytoks[yy_i].t_val == yychar )
610 printf( "%s\n", yytoks[yy_i].t_name );
614 if ( ++yy_ps >= &yys[ yymaxdepth ] ) /* room on stack? */
617 ** reallocate and recover. Note that pointers
618 ** have to be reset, or bad things will happen
620 int yyps_index = (yy_ps - yys);
621 int yypv_index = (yy_pv - yyv);
622 int yypvt_index = (yypvt - yyv);
625 yynewmax = YYEXPAND(yymaxdepth);
627 yynewmax = 2 * yymaxdepth; /* double table size */
628 if (yymaxdepth == YYMAXDEPTH) /* first time growth */
630 char *newyys = (char *)YYNEW(int);
631 char *newyyv = (char *)YYNEW(YYSTYPE);
632 if (newyys != 0 && newyyv != 0)
634 yys = YYCOPY(newyys, yys, int);
635 yyv = YYCOPY(newyyv, yyv, YYSTYPE);
638 yynewmax = 0; /* failed */
640 else /* not first time */
642 yys = YYENLARGE(yys, int);
643 yyv = YYENLARGE(yyv, YYSTYPE);
644 if (yys == 0 || yyv == 0)
645 yynewmax = 0; /* failed */
648 if (yynewmax <= yymaxdepth) /* tables not expanded */
650 yyerror( "yacc stack overflow" );
653 yymaxdepth = yynewmax;
655 yy_ps = yys + yyps_index;
656 yy_pv = yyv + yypv_index;
657 yypvt = yyv + yypvt_index;
663 ** we have a new state - find out what to do
666 if ( ( yy_n = yypact[ yy_state ] ) <= YYFLAG )
667 goto yydefault; /* simple state */
670 ** if debugging, need to mark whether new token grabbed
674 if ( ( yychar < 0 ) && ( ( yychar = YYLEX() ) < 0 ) )
675 yychar = 0; /* reached EOF */
677 if ( yydebug && yytmp )
681 printf( "Received token " );
683 printf( "end-of-file\n" );
684 else if ( yychar < 0 )
685 printf( "-none-\n" );
688 for ( yy_i = 0; yytoks[yy_i].t_val >= 0;
691 if ( yytoks[yy_i].t_val == yychar )
694 printf( "%s\n", yytoks[yy_i].t_name );
698 if ( ( ( yy_n += yychar ) < 0 ) || ( yy_n >= YYLAST ) )
700 if ( yychk[ yy_n = yyact[ yy_n ] ] == yychar ) /*valid shift*/
711 if ( ( yy_n = yydef[ yy_state ] ) == -2 )
716 if ( ( yychar < 0 ) && ( ( yychar = YYLEX() ) < 0 ) )
717 yychar = 0; /* reached EOF */
719 if ( yydebug && yytmp )
723 printf( "Received token " );
725 printf( "end-of-file\n" );
726 else if ( yychar < 0 )
727 printf( "-none-\n" );
731 yytoks[yy_i].t_val >= 0;
734 if ( yytoks[yy_i].t_val
740 printf( "%s\n", yytoks[yy_i].t_name );
745 ** look through exception table
748 register int *yyxi = yyexca;
750 while ( ( *yyxi != -1 ) ||
751 ( yyxi[1] != yy_state ) )
755 while ( ( *(yyxi += 2) >= 0 ) &&
756 ( *yyxi != yychar ) )
758 if ( ( yy_n = yyxi[1] ) < 0 )
764 ** check for syntax error
766 if ( yy_n == 0 ) /* have an error */
768 /* no worry about speed here! */
771 case 0: /* new error */
772 yyerror( "syntax error" );
776 ** get globals into registers.
777 ** we have a user generated syntax type error
786 case 2: /* incompletely recovered error */
790 ** find state where "error" is a legal
793 while ( yy_ps >= yys )
795 yy_n = yypact[ *yy_ps ] + YYERRCODE;
796 if ( yy_n >= 0 && yy_n < YYLAST &&
797 yychk[yyact[yy_n]] == YYERRCODE) {
799 ** simulate shift of "error"
801 yy_state = yyact[ yy_n ];
805 ** current state has no shift on
806 ** "error", pop stack
809 # define _POP_ "Error recovery pops state %d, uncovers state %d\n"
811 printf( _POP_, *yy_ps,
819 ** there is no state on stack with "error" as
820 ** a valid shift. give up.
823 case 3: /* no shift yet; eat a token */
826 ** if debugging, look up token in list of
827 ** pairs. 0 and negative shouldn't occur,
828 ** but since timing doesn't matter when
829 ** debugging, it doesn't hurt to leave the
836 printf( "Error recovery discards " );
838 printf( "token end-of-file\n" );
839 else if ( yychar < 0 )
840 printf( "token -none-\n" );
844 yytoks[yy_i].t_val >= 0;
847 if ( yytoks[yy_i].t_val
853 printf( "token %s\n",
854 yytoks[yy_i].t_name );
858 if ( yychar == 0 ) /* reached EOF. quit */
863 }/* end if ( yy_n == 0 ) */
865 ** reduction by production yy_n
866 ** put stack tops, etc. so things right after switch
870 ** if debugging, print the string that is the user's
871 ** specification of the reduction which is just about
875 printf( "Reduce by (%d) \"%s\"\n",
876 yy_n, yyreds[ yy_n ] );
878 yytmp = yy_n; /* value to switch over */
879 yypvt = yy_pv; /* $vars top of value stack */
881 ** Look in goto table for next state
882 ** Sorry about using yy_state here as temporary
883 ** register variable, but why not, if it works...
884 ** If yyr2[ yy_n ] doesn't have the low order bit
885 ** set, then there is no action to be done for
886 ** this reduction. So, no saving & unsaving of
887 ** registers done. The only difference between the
888 ** code just after the if and the body of the if is
889 ** the goto yy_stack in the body. This way the test
890 ** can be made before the choice of what to do is needed.
893 /* length of production doubled with extra bit */
894 register int yy_len = yyr2[ yy_n ];
896 if ( !( yy_len & 01 ) )
899 yyval = ( yy_pv -= yy_len )[1]; /* $$ = $1 */
900 yy_state = yypgo[ yy_n = yyr1[ yy_n ] ] +
901 *( yy_ps -= yy_len ) + 1;
902 if ( yy_state >= YYLAST ||
904 yyact[ yy_state ] ] != -yy_n )
906 yy_state = yyact[ yypgo[ yy_n ] ];
911 yyval = ( yy_pv -= yy_len )[1]; /* $$ = $1 */
912 yy_state = yypgo[ yy_n = yyr1[ yy_n ] ] +
913 *( yy_ps -= yy_len ) + 1;
914 if ( yy_state >= YYLAST ||
915 yychk[ yy_state = yyact[ yy_state ] ] != -yy_n )
917 yy_state = yyact[ yypgo[ yy_n ] ];
920 /* save until reenter driver code */
926 ** code supplied by user is placed in this switch
932 # line 86 "mp_types_gram.y"
934 insert_otype(tmp_otype);
935 tmp_otype = new _Tt_otype();
938 # line 92 "mp_types_gram.y"
939 { tmp_otype->set_otid(tmp_otid); } break;
941 # line 94 "mp_types_gram.y"
943 tmp_otype->set_ancestors(tmp_otidl);
944 tmp_otidl = new _Tt_string_list();
947 # line 101 "mp_types_gram.y"
952 # line 111 "mp_types_gram.y"
954 tmp_otidl->append(tmp_otid);
957 # line 115 "mp_types_gram.y"
959 tmp_otidl->append(tmp_otid);
962 # line 131 "mp_types_gram.y"
964 tmp_otype->append_osigs(tmp_sigl);
965 tmp_sigl = new _Tt_signature_list();
968 # line 138 "mp_types_gram.y"
970 tmp_otype->append_hsigs(tmp_sigl, TT_HANDLE);
971 tmp_sigl = new _Tt_signature_list();
974 # line 145 "mp_types_gram.y"
976 tmp_otype->append_hsigs(tmp_sigl, TT_HANDLE_PUSH);
977 tmp_sigl = new _Tt_signature_list();
980 # line 152 "mp_types_gram.y"
982 tmp_otype->append_hsigs(tmp_sigl, TT_HANDLE_ROTATE);
983 tmp_sigl = new _Tt_signature_list();
986 # line 163 "mp_types_gram.y"
988 tmp_sig->set_otid(tmp_otype->otid());
989 tmp_sig->set_super_otid(tmp_otid);
991 tmp_sig = new _Tt_signature();
994 # line 171 "mp_types_gram.y"
995 { tmp_sig->set_ptid(yytext); } break;
997 # line 182 "mp_types_gram.y"
999 tmp_sig->set_super_otid(tmp_otid);
1002 # line 218 "mp_types_gram.y"
1003 { tmp_ptype->set_ptid(yytext); } break;
1005 # line 220 "mp_types_gram.y"
1007 insert_ptype(tmp_ptype);
1008 tmp_ptype = new _Tt_ptype();
1011 # line 234 "mp_types_gram.y"
1013 tmp_ptype->appendprop(tmp_propname, tmp_propvalue);
1014 tmp_propname = tmp_propvalue = 0;
1017 # line 251 "mp_types_gram.y"
1018 { set_tmp_propname(_Tt_string((const unsigned char *)yytext, yyleng)); } break;
1020 # line 253 "mp_types_gram.y"
1021 { set_tmp_propname(_Tt_string((const unsigned char *)yytext, yyleng));} break;
1023 # line 255 "mp_types_gram.y"
1024 { set_tmp_propname(_Tt_string((const unsigned char *)yytext,yyleng)); } break;
1026 # line 261 "mp_types_gram.y"
1028 tmp_propvalue.set((const unsigned char *)yytext+1,
1032 # line 266 "mp_types_gram.y"
1034 _Tt_string stringfrag;
1035 stringfrag.set((const unsigned char *)yytext+1,
1037 tmp_propvalue = tmp_propvalue.cat(stringfrag);
1040 # line 276 "mp_types_gram.y"
1042 tmp_propvalue = yytext;
1045 # line 282 "mp_types_gram.y"
1047 tmp_ptype->append_osigs(tmp_sigl);
1048 tmp_sigl = new _Tt_signature_list();
1051 # line 289 "mp_types_gram.y"
1053 tmp_ptype->append_hsigs(tmp_sigl, TT_HANDLE);
1054 tmp_sigl = new _Tt_signature_list();
1057 # line 296 "mp_types_gram.y"
1059 tmp_ptype->append_hsigs(tmp_sigl, TT_HANDLE_PUSH);
1060 tmp_sigl = new _Tt_signature_list();
1063 # line 303 "mp_types_gram.y"
1065 tmp_ptype->append_hsigs(tmp_sigl, TT_HANDLE_ROTATE);
1066 tmp_sigl = new _Tt_signature_list();
1069 # line 320 "mp_types_gram.y"
1071 tmp_sig->set_ptid(tmp_ptype->ptid());
1072 append_sig(tmp_sig);
1073 tmp_sig = new _Tt_signature();
1076 # line 328 "mp_types_gram.y"
1078 tmp_sig->set_scope(TT_FILE);
1081 # line 331 "mp_types_gram.y"
1083 tmp_sig->set_scope(TT_SESSION);
1086 # line 334 "mp_types_gram.y"
1088 tmp_sig->set_scope(TT_FILE_IN_SESSION);
1091 # line 340 "mp_types_gram.y"
1093 tmp_sig->set_op(yytext);
1096 # line 365 "mp_types_gram.y"
1098 tmp_sig->append_arg(tmp_arg);
1099 tmp_arg = new _Tt_arg();
1102 # line 371 "mp_types_gram.y"
1103 { tmp_arg->set_mode(TT_IN); } break;
1105 # line 372 "mp_types_gram.y"
1106 { tmp_arg->set_mode(TT_OUT); } break;
1108 # line 373 "mp_types_gram.y"
1109 { tmp_arg->set_mode(TT_INOUT); } break;
1111 # line 377 "mp_types_gram.y"
1113 _Tt_string tmptext(yytext);
1114 tmp_arg->set_type(tmptext);
1117 # line 384 "mp_types_gram.y"
1119 _Tt_string tmptext(yytext);
1120 tmp_arg->set_name(tmptext);
1123 # line 399 "mp_types_gram.y"
1125 _Tt_context_ptr tmpcntxt = new _Tt_context;
1126 tmpcntxt->setName(yytext);
1127 tmp_sig->append_context(tmpcntxt);
1130 # line 414 "mp_types_gram.y"
1131 { tmp_sig->set_reliability(TT_START); } break;
1133 # line 418 "mp_types_gram.y"
1134 { tmp_sig->set_reliability(TT_QUEUE); } break;
1136 # line 424 "mp_types_gram.y"
1137 { tmp_sig->set_opnum(atoi(yytext)); } break;
1139 goto yystack; /* reset registers in driver code */