0001: //----------------------------------------------------
0002: // The following code was generated by CUP v0.9e
0003: // Sat Feb 17 20:20:48 CET 2007
0004: //----------------------------------------------------
0005:
0006: package org.jacorb.idl;
0007:
0008: import java.io.*;
0009: import java.util.*;
0010: import org.jacorb.idl.runtime.*;
0011: import org.apache.log.*;
0012: import org.apache.log.format.*;
0013: import org.apache.log.output.io.*;
0014:
0015: public class parser extends org.jacorb.idl.runtime.lr_parser {
0016:
0017: /** constructor */
0018: public parser() {
0019: super ();
0020: }
0021:
0022: /** production table */
0023: protected static final short _production_table[][] = { { 0, 2 },
0024: { 98, 0 }, { 7, 2 }, { 7, 1 }, { 9, 2 }, { 9, 1 },
0025: { 8, 2 }, { 8, 2 }, { 8, 2 }, { 8, 2 }, { 8, 2 }, { 8, 2 },
0026: { 10, 5 }, { 11, 6 }, { 11, 7 }, { 11, 7 }, { 11, 7 },
0027: { 11, 2 }, { 11, 3 }, { 11, 3 }, { 11, 3 }, { 12, 2 },
0028: { 12, 1 }, { 13, 2 }, { 13, 2 }, { 13, 2 }, { 13, 2 },
0029: { 13, 2 }, { 95, 2 }, { 95, 1 }, { 95, 1 }, { 92, 3 },
0030: { 92, 1 }, { 14, 1 }, { 14, 2 }, { 14, 3 }, { 14, 1 },
0031: { 16, 1 }, { 16, 1 }, { 16, 1 }, { 17, 3 }, { 19, 7 },
0032: { 19, 3 }, { 20, 2 }, { 20, 1 }, { 18, 7 }, { 18, 2 },
0033: { 18, 6 }, { 21, 3 }, { 21, 2 }, { 21, 2 }, { 21, 5 },
0034: { 21, 4 }, { 21, 1 }, { 21, 1 }, { 15, 1 }, { 22, 2 },
0035: { 22, 1 }, { 23, 1 }, { 23, 1 }, { 23, 1 }, { 24, 4 },
0036: { 24, 4 }, { 25, 7 }, { 25, 6 }, { 90, 1 }, { 90, 3 },
0037: { 26, 3 }, { 27, 5 }, { 28, 1 }, { 28, 1 }, { 28, 1 },
0038: { 28, 1 }, { 28, 1 }, { 28, 1 }, { 28, 1 }, { 28, 1 },
0039: { 29, 1 }, { 31, 1 }, { 31, 3 }, { 32, 1 }, { 32, 3 },
0040: { 33, 1 }, { 33, 3 }, { 34, 1 }, { 34, 3 }, { 34, 3 },
0041: { 35, 1 }, { 35, 3 }, { 35, 3 }, { 36, 1 }, { 36, 3 },
0042: { 36, 3 }, { 36, 3 }, { 37, 2 }, { 37, 1 }, { 6, 2 },
0043: { 6, 1 }, { 6, 1 }, { 38, 1 }, { 38, 1 }, { 38, 3 },
0044: { 74, 1 }, { 74, 2 }, { 74, 2 }, { 74, 1 }, { 74, 3 },
0045: { 74, 1 }, { 74, 1 }, { 74, 1 }, { 74, 1 }, { 74, 1 },
0046: { 75, 3 }, { 75, 2 }, { 75, 3 }, { 75, 2 }, { 30, 1 },
0047: { 39, 1 }, { 39, 1 }, { 39, 1 }, { 39, 1 }, { 39, 1 },
0048: { 45, 2 }, { 40, 2 }, { 41, 1 }, { 41, 1 }, { 46, 1 },
0049: { 46, 1 }, { 46, 1 }, { 57, 1 }, { 57, 1 }, { 57, 1 },
0050: { 57, 1 }, { 57, 1 }, { 57, 1 }, { 57, 1 }, { 47, 1 },
0051: { 47, 1 }, { 47, 1 }, { 48, 1 }, { 48, 1 }, { 48, 1 },
0052: { 94, 3 }, { 94, 1 }, { 77, 1 }, { 77, 1 }, { 78, 1 },
0053: { 59, 1 }, { 59, 1 }, { 60, 1 }, { 61, 1 }, { 62, 1 },
0054: { 62, 2 }, { 58, 1 }, { 58, 1 }, { 58, 2 }, { 58, 2 },
0055: { 58, 1 }, { 58, 2 }, { 63, 1 }, { 64, 1 }, { 65, 2 },
0056: { 66, 1 }, { 66, 1 }, { 67, 1 }, { 68, 1 }, { 69, 1 },
0057: { 50, 5 }, { 50, 2 }, { 87, 1 }, { 87, 2 }, { 76, 3 },
0058: { 52, 9 }, { 52, 2 }, { 44, 1 }, { 44, 1 }, { 44, 1 },
0059: { 44, 1 }, { 44, 1 }, { 54, 1 }, { 54, 2 }, { 55, 3 },
0060: { 88, 3 }, { 88, 2 }, { 88, 4 }, { 88, 3 }, { 56, 2 },
0061: { 49, 5 }, { 96, 1 }, { 96, 3 }, { 53, 2 }, { 72, 6 },
0062: { 72, 4 }, { 71, 4 }, { 71, 4 }, { 71, 1 }, { 71, 1 },
0063: { 73, 6 }, { 79, 2 }, { 97, 1 }, { 97, 2 }, { 80, 3 },
0064: { 85, 4 }, { 85, 5 }, { 85, 3 }, { 85, 4 }, { 86, 8 },
0065: { 86, 8 }, { 86, 4 }, { 86, 4 }, { 93, 1 }, { 93, 3 },
0066: { 51, 4 }, { 51, 5 }, { 84, 6 }, { 4, 1 }, { 4, 1 },
0067: { 42, 1 }, { 42, 1 }, { 70, 1 }, { 91, 3 }, { 91, 2 },
0068: { 89, 3 }, { 89, 1 }, { 81, 3 }, { 5, 1 }, { 5, 1 },
0069: { 5, 1 }, { 82, 4 }, { 82, 1 }, { 83, 4 }, { 1, 4 },
0070: { 1, 1 }, { 2, 1 }, { 2, 3 }, { 43, 1 }, { 43, 1 },
0071: { 43, 1 }, { 3, 0 } };
0072:
0073: /** access to production table */
0074: public short[][] production_table() {
0075: return _production_table;
0076: }
0077:
0078: /** parse action table */
0079: protected static final short[][] _action_table = {
0080: /*0*/{ 0, -239, 2, -2, 8, -2, 10, -2, 13, -2, 14, -2, 22,
0081: -2, 23, -2, 25, -2, 26, -2, 33, -2, 40, -2, 45, -2,
0082: 47, -2, 49, -2, -1, 0 },
0083: /*1*/{ 2, 30, 8, 27, 10, 8, 13, 28, 14, 11, 22, 29, 23,
0084: 14, 25, 21, 26, 13, 33, 23, 40, 12, 45, 24, 47, 26,
0085: 49, 17, -1, 0 },
0086: /*2*/{ 0, 5, -1, 0 },
0087: /*3*/{ 0, -4, -1, 0 },
0088: /*4*/{ 0, -1, -1, 0 },
0089: /*5*/{ 53, 429, -1, 0 },
0090: /*6*/{ 53, 428, -1, 0 },
0091: /*7*/{ 49, 422, -1, 0 },
0092: /*8*/{ 53, 421, -1, 0 },
0093: /*9*/{ 53, -121, -1, 0 },
0094: /*10*/{ 83, 416, -1, 0 },
0095: /*11*/{ 83, 407, -1, 0 },
0096: /*12*/{ 83, 199, -1, 0 },
0097: /*13*/{ 22, 400, -1, 0 },
0098: /*14*/{ 0, -6, 2, 30, 8, 27, 10, 8, 13, 28, 14, 11, 22,
0099: 29, 23, 14, 25, 21, 26, 13, 33, 23, 40, 12, 45, 24,
0100: 47, 26, 49, 17, 64, -6, -1, 0 },
0101: /*15*/{ 53, -38, -1, 0 },
0102: /*16*/{ 83, 363, -1, 0 },
0103: /*17*/{ 53, -40, -1, 0 },
0104: /*18*/{ 53, 362, -1, 0 },
0105: /*19*/{ 53, -122, -1, 0 },
0106: /*20*/{ 83, 358, -1, 0 },
0107: /*21*/{ 53, 357, -1, 0 },
0108: /*22*/{ 22, 351, -1, 0 },
0109: /*23*/{ 3, 85, 5, 80, 7, 66, 12, 94, 13, 28, 17, 308, 18,
0110: 82, 24, 63, 27, 78, 28, 91, 37, 317, 38, 89, 39,
0111: 81, 40, 12, 46, 72, 47, 26, 48, 74, 51, 90, 52, 92,
0112: 78, 71, 83, 77, -1, 0 },
0113: /*24*/{ 53, 344, -1, 0 },
0114: /*25*/{ 83, 284, -1, 0 },
0115: /*26*/{ 5, 80, 7, 66, 12, 94, 17, 279, 18, 82, 24, 63, 27,
0116: 78, 28, 91, 38, 89, 39, 81, 46, 72, 51, 90, 52, 92,
0117: 78, 71, 83, 77, -1, 0 },
0118: /*27*/{ 83, 264, -1, 0 },
0119: /*28*/{ 83, 259, -1, 0 },
0120: /*29*/{ 22, 36, 49, 37, -1, 0 },
0121: /*30*/{ 53, -39, -1, 0 },
0122: /*31*/{ 53, -120, -1, 0 },
0123: /*32*/{ 53, -118, -1, 0 },
0124: /*33*/{ 53, -119, -1, 0 },
0125: /*34*/{ 0, -3, -1, 0 },
0126: /*35*/{ 83, 248, -1, 0 },
0127: /*36*/{ 83, 38, -1, 0 },
0128: /*37*/{ 41, 41, 53, -43, 57, 39, 63, -239, -1, 0 },
0129: /*38*/{ 27, 78, 44, 240, 63, -54, 78, 71, 83, 77, -1, 0 },
0130: /*39*/{ 63, -55, -1, 0 },
0131: /*40*/{ 27, 78, 78, 71, 83, 77, -1, 0 },
0132: /*41*/{ 63, 43, -1, 0 },
0133: /*42*/{ 3, -239, 4, 46, 5, -239, 7, -239, 8, 27, 12, -239,
0134: 13, 28, 14, 11, 18, -239, 24, -239, 26, 13, 27,
0135: -239, 28, -239, 29, 47, 35, 45, 38, -239, 39, -239,
0136: 40, 12, 45, 24, 46, -239, 47, 26, 48, -239, 50,
0137: -239, 51, -239, 52, -239, 64, -239, 78, -239, 83,
0138: -239, -1, 0 },
0139: /*43*/{ 53, 238, -1, 0 },
0140: /*44*/{ 4, 229, -1, 0 },
0141: /*45*/{ 3, 85, 5, 80, 7, 66, 12, 94, 18, 82, 24, 63, 27,
0142: 78, 28, 91, 38, 89, 39, 81, 46, 72, 48, 74, 51, 90,
0143: 52, 92, 78, 71, 83, 77, -1, 0 },
0144: /*46*/{ 3, -216, 5, -216, 7, -216, 12, -216, 18, -216, 24,
0145: -216, 27, -216, 28, -216, 38, -216, 39, -216, 46,
0146: -216, 48, -216, 50, -216, 51, -216, 52, -216, 78,
0147: -216, 83, -216, -1, 0 },
0148: /*47*/{ 53, 205, -1, 0 },
0149: /*48*/{ 3, 85, 5, 80, 7, 66, 12, 94, 18, 82, 24, 63, 27,
0150: 78, 28, 91, 38, 89, 39, 81, 46, 72, 48, 74, 50, 93,
0151: 51, 90, 52, 92, 78, 71, 83, 77, -1, 0 },
0152: /*49*/{ 3, -217, 5, -217, 7, -217, 12, -217, 18, -217, 24,
0153: -217, 27, -217, 28, -217, 38, -217, 39, -217, 46,
0154: -217, 48, -217, 50, -217, 51, -217, 52, -217, 64,
0155: -45, 78, -217, 83, -217, -1, 0 },
0156: /*50*/{ 53, 60, -1, 0 },
0157: /*51*/{ 53, 59, -1, 0 },
0158: /*52*/{ 53, 58, -1, 0 },
0159: /*53*/{ 64, 57, -1, 0 },
0160: /*54*/{ 3, -239, 4, 46, 5, -239, 7, -239, 8, 27, 12, -239,
0161: 13, 28, 14, 11, 18, -239, 24, -239, 26, 13, 27,
0162: -239, 28, -239, 29, 47, 35, 45, 38, -239, 39, -239,
0163: 40, 12, 45, 24, 46, -239, 47, 26, 48, -239, 50,
0164: -239, 51, -239, 52, -239, 64, -239, 78, -239, 83,
0165: -239, -1, 0 },
0166: /*55*/{ 64, -44, -1, 0 },
0167: /*56*/{ 53, -42, -1, 0 },
0168: /*57*/{ 3, -26, 4, -26, 5, -26, 7, -26, 8, -26, 12, -26,
0169: 13, -26, 14, -26, 15, -26, 18, -26, 24, -26, 26,
0170: -26, 27, -26, 28, -26, 29, -26, 31, -26, 32, -26,
0171: 35, -26, 38, -26, 39, -26, 40, -26, 45, -26, 46,
0172: -26, 47, -26, 48, -26, 50, -26, 51, -26, 52, -26,
0173: 64, -26, 78, -26, 83, -26, -1, 0 },
0174: /*58*/{ 3, -28, 4, -28, 5, -28, 7, -28, 8, -28, 12, -28,
0175: 13, -28, 14, -28, 15, -28, 18, -28, 24, -28, 26,
0176: -28, 27, -28, 28, -28, 29, -28, 31, -28, 32, -28,
0177: 35, -28, 38, -28, 39, -28, 40, -28, 45, -28, 46,
0178: -28, 47, -28, 48, -28, 50, -28, 51, -28, 52, -28,
0179: 64, -28, 78, -28, 83, -28, -1, 0 },
0180: /*59*/{ 3, -25, 4, -25, 5, -25, 7, -25, 8, -25, 12, -25,
0181: 13, -25, 14, -25, 15, -25, 18, -25, 24, -25, 26,
0182: -25, 27, -25, 28, -25, 29, -25, 31, -25, 32, -25,
0183: 35, -25, 38, -25, 39, -25, 40, -25, 45, -25, 46,
0184: -25, 47, -25, 48, -25, 50, -25, 51, -25, 52, -25,
0185: 64, -25, 78, -25, 83, -25, -1, 0 },
0186: /*60*/{ 53, -134, 54, -134, 68, -134, 83, -134, -1, 0 },
0187: /*61*/{ 83, -237, -1, 0 },
0188: /*62*/{ 12, 204, 24, 168, 53, -161, 54, -161, 68, -161,
0189: 83, -161, -1, 0 },
0190: /*63*/{ 53, -132, 54, -132, 68, -132, 83, -132, -1, 0 },
0191: /*64*/{ 78, 159, 83, -238, -1, 0 },
0192: /*65*/{ 53, -163, 54, -163, 62, -163, 68, -163, 83, -163,
0193: -1, 0 },
0194: /*66*/{ 83, 170, -1, 0 },
0195: /*67*/{ 53, -158, 54, -158, 62, -158, 68, -158, 83, -158,
0196: -1, 0 },
0197: /*68*/{ 83, -218, -1, 0 },
0198: /*69*/{ 83, -236, -1, 0 },
0199: /*70*/{ 83, 169, -1, 0 },
0200: /*71*/{ 24, 164, 38, 89, -1, 0 },
0201: /*72*/{ 53, -131, 54, -131, 68, -131, 83, -131, -1, 0 },
0202: /*73*/{ 53, -136, 54, -136, 68, -136, 83, -136, -1, 0 },
0203: /*74*/{ 53, -148, 54, -148, 68, -148, 83, -148, -1, 0 },
0204: /*75*/{ 83, -219, -1, 0 },
0205: /*76*/{ 41, -34, 53, -34, 54, -34, 55, -34, 57, -34, 59,
0206: -34, 60, -34, 62, -34, 63, -34, 66, -34, 68, -34,
0207: 72, -34, 73, -34, 74, -34, 75, -34, 76, -34, 78,
0208: -34, 79, -34, 80, -34, 83, -34, -1, 0 },
0209: /*77*/{ 41, -37, 53, -37, 54, -37, 55, -37, 57, -37, 59,
0210: -37, 60, -37, 62, -37, 63, -37, 66, -37, 68, -37,
0211: 72, -37, 73, -37, 74, -37, 75, -37, 76, -37, 78,
0212: -37, 79, -37, 80, -37, 83, -37, -1, 0 },
0213: /*78*/{ 53, -133, 54, -133, 68, -133, 83, -133, -1, 0 },
0214: /*79*/{ 53, -165, 54, -165, 62, -165, 68, -165, 83, -165,
0215: -1, 0 },
0216: /*80*/{ 53, -196, 54, -196, 67, 161, 68, -196, 83, -196,
0217: -1, 0 },
0218: /*81*/{ 53, -150, 54, -150, 68, -150, 83, -150, -1, 0 },
0219: /*82*/{ 53, -135, 54, -135, 68, -135, 83, -135, -1, 0 },
0220: /*83*/{ 53, -149, 54, -149, 68, -149, 83, -149, -1, 0 },
0221: /*84*/{ 53, -167, 54, -167, 68, -167, 83, -167, -1, 0 },
0222: /*85*/{ 53, -155, 54, -155, 62, -155, 68, -155, 83, -155,
0223: -1, 0 },
0224: /*86*/{ 53, -154, 54, -154, 62, -154, 68, -154, 83, -154,
0225: -1, 0 },
0226: /*87*/{ 53, -130, 54, -130, 68, -130, 83, -130, -1, 0 },
0227: /*88*/{ 53, -160, 54, -160, 62, -160, 68, -160, 83, -160,
0228: -1, 0 },
0229: /*89*/{ 53, -164, 54, -164, 62, -164, 68, -164, 83, -164,
0230: -1, 0 },
0231: /*90*/{ 53, -166, 54, -166, 68, -166, 83, -166, -1, 0 },
0232: /*91*/{ 53, -197, 54, -197, 67, 95, 68, -197, 83, -197,
0233: -1, 0 },
0234: /*92*/{ 83, -220, -1, 0 },
0235: /*93*/{ 53, -152, 54, -152, 68, -152, 83, -152, -1, 0 },
0236: /*94*/{ 16, 113, 27, 78, 43, 103, 59, 98, 60, 114, 61,
0237: 104, 69, 108, 70, 102, 77, 105, 78, 71, 81, 119,
0238: 83, 77, 85, 110, 86, 100, 87, 97, 88, 99, -1, 0 },
0239: /*95*/{ 53, -79, 54, -79, 57, -79, 62, -79, 66, -79, 68,
0240: -79, 72, -79, 73, 149, -1, 0 },
0241: /*96*/{ 53, -110, 54, -110, 55, -110, 57, -110, 59, -110,
0242: 60, -110, 62, -110, 66, -110, 68, -110, 72, -110,
0243: 73, -110, 74, -110, 75, -110, 76, -110, 79, -110,
0244: 80, -110, -1, 0 },
0245: /*97*/{ 16, -98, 27, -98, 43, -98, 60, -98, 61, -98, 69,
0246: -98, 70, -98, 78, -98, 81, -98, 83, -98, 85, -98,
0247: 86, -98, 87, -98, 88, -98, -1, 0 },
0248: /*98*/{ 53, -109, 54, -109, 55, -109, 57, -109, 59, -109,
0249: 60, -109, 62, -109, 66, -109, 68, -109, 72, -109,
0250: 73, -109, 74, -109, 75, -109, 76, -109, 79, -109,
0251: 80, -109, -1, 0 },
0252: /*99*/{ 53, -106, 54, -106, 55, -106, 57, -106, 59, -106,
0253: 60, -106, 62, -106, 66, -106, 68, -106, 72, -106,
0254: 73, -106, 74, -106, 75, -106, 76, -106, 79, -106,
0255: 80, -106, -1, 0 },
0256: /*100*/{ 53, -100, 54, -100, 55, -100, 57, -100, 59, -100,
0257: 60, -100, 62, -100, 66, -100, 68, -100, 72, -100,
0258: 73, -100, 74, -100, 75, -100, 76, -100, 78, 159,
0259: 79, -100, 80, -100, -1, 0 },
0260: /*101*/{ 70, 156, 83, 157, -1, 0 },
0261: /*102*/{ 53, -111, 54, -111, 55, -111, 57, -111, 59, -111,
0262: 60, -111, 62, -111, 66, -111, 68, -111, 72, -111,
0263: 73, -111, 74, -111, 75, -111, 76, -111, 79, -111,
0264: 80, -111, -1, 0 },
0265: /*103*/{ 16, 113, 27, 78, 43, 103, 59, 98, 60, 114, 61,
0266: 104, 69, 108, 70, 102, 77, 105, 78, 71, 81, 119,
0267: 83, 77, 85, 110, 86, 100, 87, 97, 88, 99, -1, 0 },
0268: /*104*/{ 16, -99, 27, -99, 43, -99, 60, -99, 61, -99, 69,
0269: -99, 70, -99, 78, -99, 81, -99, 83, -99, 85, -99,
0270: 86, -99, 87, -99, 88, -99, -1, 0 },
0271: /*105*/{ 53, -85, 54, -85, 57, -85, 59, 130, 60, 131, 62,
0272: -85, 66, -85, 68, -85, 72, -85, 73, -85, 74, -85,
0273: 79, -85, 80, -85, -1, 0 },
0274: /*106*/{ 53, -91, 54, -91, 55, -91, 57, -91, 59, -91, 60,
0275: -91, 62, -91, 66, -91, 68, -91, 72, -91, 73, -91,
0276: 74, -91, 75, -91, 76, -91, 79, -91, 80, -91, -1, 0 },
0277: /*107*/{ 84, 152, -1, 0 },
0278: /*108*/{ 68, 151, -1, 0 },
0279: /*109*/{ 53, -103, 54, -103, 55, -103, 57, -103, 59, -103,
0280: 60, -103, 62, -103, 66, -103, 68, -103, 72, -103,
0281: 73, -103, 74, -103, 75, -103, 76, -103, 79, -103,
0282: 80, -103, -1, 0 },
0283: /*110*/{ 53, -78, 54, -78, 57, -78, 62, -78, 66, -78, 68,
0284: -78, 72, 147, -1, 0 },
0285: /*111*/{ 53, -96, 54, -96, 55, -96, 57, -96, 59, -96, 60,
0286: -96, 62, -96, 66, -96, 68, -96, 72, -96, 73, -96,
0287: 74, -96, 75, -96, 76, -96, 79, -96, 80, -96, -1, 0 },
0288: /*112*/{ 53, -112, 54, -112, 55, -112, 57, -112, 59, -112,
0289: 60, -112, 62, -112, 66, -112, 68, -112, 72, -112,
0290: 73, -112, 74, -112, 75, -112, 76, -112, 79, -112,
0291: 80, -112, -1, 0 },
0292: /*113*/{ 82, 146, 85, 126, 86, 125, -1, 0 },
0293: /*114*/{ 53, -101, 54, -101, 55, -101, 57, -101, 59, -101,
0294: 60, -101, 62, -101, 66, -101, 68, -101, 72, -101,
0295: 73, -101, 74, -101, 75, -101, 76, -101, 79, -101,
0296: 80, -101, -1, 0 },
0297: /*115*/{ 53, -108, 54, -108, 55, -108, 57, -108, 59, -108,
0298: 60, -108, 62, -108, 66, -108, 68, -108, 72, -108,
0299: 73, -108, 74, -108, 75, -108, 76, -108, 79, -108,
0300: 80, -108, -1, 0 },
0301: /*116*/{ 53, -81, 54, -81, 57, -81, 62, -81, 66, -81, 68,
0302: -81, 72, -81, 73, -81, 74, 144, -1, 0 },
0303: /*117*/{ 53, -88, 54, -88, 55, 133, 57, -88, 59, -88, 60,
0304: -88, 62, -88, 66, -88, 68, -88, 72, -88, 73, -88,
0305: 74, -88, 75, 135, 76, 134, 79, -88, 80, -88, -1, 0 },
0306: /*118*/{ 70, 142, 83, 141, -1, 0 },
0307: /*119*/{ 54, -117, 66, -117, 68, -117, -1, 0 },
0308: /*120*/{ 53, -83, 54, -83, 57, -83, 62, -83, 66, -83, 68,
0309: -83, 72, -83, 73, -83, 74, -83, 79, 128, 80, 127,
0310: -1, 0 },
0311: /*121*/{ 16, 113, 27, 78, 43, 103, 60, 124, 61, 104, 69,
0312: 108, 70, 102, 78, 71, 81, 119, 83, 77, 85, 110, 86,
0313: 100, 87, 97, 88, 99, -1, 0 },
0314: /*122*/{ 53, -95, 54, -95, 55, -95, 57, -95, 59, -95, 60,
0315: -95, 62, -95, 66, -95, 68, -95, 72, -95, 73, -95,
0316: 74, -95, 75, -95, 76, -95, 79, -95, 80, -95, -1, 0 },
0317: /*123*/{ 85, 126, 86, 125, -1, 0 },
0318: /*124*/{ 53, -105, 54, -105, 55, -105, 57, -105, 59, -105,
0319: 60, -105, 62, -105, 66, -105, 68, -105, 72, -105,
0320: 73, -105, 74, -105, 75, -105, 76, -105, 79, -105,
0321: 80, -105, -1, 0 },
0322: /*125*/{ 53, -104, 54, -104, 55, -104, 57, -104, 59, -104,
0323: 60, -104, 62, -104, 66, -104, 68, -104, 72, -104,
0324: 73, -104, 74, -104, 75, -104, 76, -104, 79, -104,
0325: 80, -104, -1, 0 },
0326: /*126*/{ 16, 113, 27, 78, 43, 103, 59, 98, 60, 114, 61,
0327: 104, 69, 108, 70, 102, 77, 105, 78, 71, 81, 119,
0328: 83, 77, 85, 110, 86, 100, 87, 97, 88, 99, -1, 0 },
0329: /*127*/{ 16, 113, 27, 78, 43, 103, 59, 98, 60, 114, 61,
0330: 104, 69, 108, 70, 102, 77, 105, 78, 71, 81, 119,
0331: 83, 77, 85, 110, 86, 100, 87, 97, 88, 99, -1, 0 },
0332: /*128*/{ 53, -87, 54, -87, 57, -87, 59, 130, 60, 131, 62,
0333: -87, 66, -87, 68, -87, 72, -87, 73, -87, 74, -87,
0334: 79, -87, 80, -87, -1, 0 },
0335: /*129*/{ 16, 113, 27, 78, 43, 103, 59, 98, 60, 114, 61,
0336: 104, 69, 108, 70, 102, 77, 105, 78, 71, 81, 119,
0337: 83, 77, 85, 110, 86, 100, 87, 97, 88, 99, -1, 0 },
0338: /*130*/{ 16, 113, 27, 78, 43, 103, 59, 98, 60, 114, 61,
0339: 104, 69, 108, 70, 102, 77, 105, 78, 71, 81, 119,
0340: 83, 77, 85, 110, 86, 100, 87, 97, 88, 99, -1, 0 },
0341: /*131*/{ 53, -90, 54, -90, 55, 133, 57, -90, 59, -90, 60,
0342: -90, 62, -90, 66, -90, 68, -90, 72, -90, 73, -90,
0343: 74, -90, 75, 135, 76, 134, 79, -90, 80, -90, -1, 0 },
0344: /*132*/{ 16, 113, 27, 78, 43, 103, 59, 98, 60, 114, 61,
0345: 104, 69, 108, 70, 102, 77, 105, 78, 71, 81, 119,
0346: 83, 77, 85, 110, 86, 100, 87, 97, 88, 99, -1, 0 },
0347: /*133*/{ 16, 113, 27, 78, 43, 103, 59, 98, 60, 114, 61,
0348: 104, 69, 108, 70, 102, 77, 105, 78, 71, 81, 119,
0349: 83, 77, 85, 110, 86, 100, 87, 97, 88, 99, -1, 0 },
0350: /*134*/{ 16, 113, 27, 78, 43, 103, 59, 98, 60, 114, 61,
0351: 104, 69, 108, 70, 102, 77, 105, 78, 71, 81, 119,
0352: 83, 77, 85, 110, 86, 100, 87, 97, 88, 99, -1, 0 },
0353: /*135*/{ 53, -93, 54, -93, 55, -93, 57, -93, 59, -93, 60,
0354: -93, 62, -93, 66, -93, 68, -93, 72, -93, 73, -93,
0355: 74, -93, 75, -93, 76, -93, 79, -93, 80, -93, -1, 0 },
0356: /*136*/{ 53, -94, 54, -94, 55, -94, 57, -94, 59, -94, 60,
0357: -94, 62, -94, 66, -94, 68, -94, 72, -94, 73, -94,
0358: 74, -94, 75, -94, 76, -94, 79, -94, 80, -94, -1, 0 },
0359: /*137*/{ 53, -92, 54, -92, 55, -92, 57, -92, 59, -92, 60,
0360: -92, 62, -92, 66, -92, 68, -92, 72, -92, 73, -92,
0361: 74, -92, 75, -92, 76, -92, 79, -92, 80, -92, -1, 0 },
0362: /*138*/{ 53, -89, 54, -89, 55, 133, 57, -89, 59, -89, 60,
0363: -89, 62, -89, 66, -89, 68, -89, 72, -89, 73, -89,
0364: 74, -89, 75, 135, 76, 134, 79, -89, 80, -89, -1, 0 },
0365: /*139*/{ 53, -86, 54, -86, 57, -86, 59, 130, 60, 131, 62,
0366: -86, 66, -86, 68, -86, 72, -86, 73, -86, 74, -86,
0367: 79, -86, 80, -86, -1, 0 },
0368: /*140*/{ 70, 143, -1, 0 },
0369: /*141*/{ 53, -116, 54, -116, 55, -116, 57, -116, 59, -116,
0370: 60, -116, 62, -116, 66, -116, 68, -116, 72, -116,
0371: 73, -116, 74, -116, 75, -116, 76, -116, 79, -116,
0372: 80, -116, -1, 0 },
0373: /*142*/{ 53, -115, 54, -115, 55, -115, 57, -115, 59, -115,
0374: 60, -115, 62, -115, 66, -115, 68, -115, 72, -115,
0375: 73, -115, 74, -115, 75, -115, 76, -115, 79, -115,
0376: 80, -115, -1, 0 },
0377: /*143*/{ 16, 113, 27, 78, 43, 103, 59, 98, 60, 114, 61,
0378: 104, 69, 108, 70, 102, 77, 105, 78, 71, 81, 119,
0379: 83, 77, 85, 110, 86, 100, 87, 97, 88, 99, -1, 0 },
0380: /*144*/{ 53, -84, 54, -84, 57, -84, 62, -84, 66, -84, 68,
0381: -84, 72, -84, 73, -84, 74, -84, 79, 128, 80, 127,
0382: -1, 0 },
0383: /*145*/{ 16, -97, 27, -97, 43, -97, 60, -97, 61, -97, 69,
0384: -97, 70, -97, 78, -97, 81, -97, 83, -97, 85, -97,
0385: 86, -97, 87, -97, 88, -97, -1, 0 },
0386: /*146*/{ 16, 113, 27, 78, 43, 103, 59, 98, 60, 114, 61,
0387: 104, 69, 108, 70, 102, 77, 105, 78, 71, 81, 119,
0388: 83, 77, 85, 110, 86, 100, 87, 97, 88, 99, -1, 0 },
0389: /*147*/{ 53, -80, 54, -80, 57, -80, 62, -80, 66, -80, 68,
0390: -80, 72, -80, 73, 149, -1, 0 },
0391: /*148*/{ 16, 113, 27, 78, 43, 103, 59, 98, 60, 114, 61,
0392: 104, 69, 108, 70, 102, 77, 105, 78, 71, 81, 119,
0393: 83, 77, 85, 110, 86, 100, 87, 97, 88, 99, -1, 0 },
0394: /*149*/{ 53, -82, 54, -82, 57, -82, 62, -82, 66, -82, 68,
0395: -82, 72, -82, 73, -82, 74, 144, -1, 0 },
0396: /*150*/{ 53, -195, 54, -195, 68, -195, 83, -195, -1, 0 },
0397: /*151*/{ 69, 153, -1, 0 },
0398: /*152*/{ 53, -107, 54, -107, 55, -107, 57, -107, 59, -107,
0399: 60, -107, 62, -107, 66, -107, 68, -107, 72, -107,
0400: 73, -107, 74, -107, 75, -107, 76, -107, 79, -107,
0401: 80, -107, -1, 0 },
0402: /*153*/{ 62, 155, -1, 0 },
0403: /*154*/{ 53, -102, 54, -102, 55, -102, 57, -102, 59, -102,
0404: 60, -102, 62, -102, 66, -102, 68, -102, 72, -102,
0405: 73, -102, 74, -102, 75, -102, 76, -102, 79, -102,
0406: 80, -102, -1, 0 },
0407: /*155*/{ 53, -114, 54, -114, 55, -114, 57, -114, 59, -114,
0408: 60, -114, 62, -114, 66, -114, 68, -114, 72, -114,
0409: 73, -114, 74, -114, 75, -114, 76, -114, 79, -114,
0410: 80, -114, -1, 0 },
0411: /*156*/{ 70, 158, -1, 0 },
0412: /*157*/{ 53, -113, 54, -113, 55, -113, 57, -113, 59, -113,
0413: 60, -113, 62, -113, 66, -113, 68, -113, 72, -113,
0414: 73, -113, 74, -113, 75, -113, 76, -113, 79, -113,
0415: 80, -113, -1, 0 },
0416: /*158*/{ 83, 160, -1, 0 },
0417: /*159*/{ 41, -36, 53, -36, 54, -36, 55, -36, 57, -36, 59,
0418: -36, 60, -36, 62, -36, 63, -36, 66, -36, 68, -36,
0419: 72, -36, 73, -36, 74, -36, 75, -36, 76, -36, 78,
0420: -36, 79, -36, 80, -36, 83, -36, -1, 0 },
0421: /*160*/{ 16, 113, 27, 78, 43, 103, 59, 98, 60, 114, 61,
0422: 104, 69, 108, 70, 102, 77, 105, 78, 71, 81, 119,
0423: 83, 77, 85, 110, 86, 100, 87, 97, 88, 99, -1, 0 },
0424: /*161*/{ 68, 163, -1, 0 },
0425: /*162*/{ 53, -194, 54, -194, 68, -194, 83, -194, -1, 0 },
0426: /*163*/{ 24, 168, 53, -161, 54, -161, 62, -161, 68, -161,
0427: 83, -161, -1, 0 },
0428: /*164*/{ 53, -159, 54, -159, 62, -159, 68, -159, 83, -159,
0429: -1, 0 },
0430: /*165*/{ 53, -157, 54, -157, 62, -157, 68, -157, 83, -157,
0431: -1, 0 },
0432: /*166*/{ 53, -156, 54, -156, 62, -156, 68, -156, 83, -156,
0433: -1, 0 },
0434: /*167*/{ 53, -162, 54, -162, 62, -162, 68, -162, 83, -162,
0435: -1, 0 },
0436: /*168*/{ 41, -35, 53, -35, 54, -35, 55, -35, 57, -35, 59,
0437: -35, 60, -35, 62, -35, 63, -35, 66, -35, 68, -35,
0438: 72, -35, 73, -35, 74, -35, 75, -35, 76, -35, 78,
0439: -35, 79, -35, 80, -35, 83, -35, -1, 0 },
0440: /*169*/{ 61, 171, -1, 0 },
0441: /*170*/{ 20, 192, 21, 195, 30, 191, 62, 193, -1, 0 },
0442: /*171*/{ 9, -239, 34, 173, 53, -239, -1, 0 },
0443: /*172*/{ 61, 185, -1, 0 },
0444: /*173*/{ 9, 178, 53, -239, -1, 0 },
0445: /*174*/{ 9, -230, 53, -230, -1, 0 },
0446: /*175*/{ 53, -215, -1, 0 },
0447: /*176*/{ 53, -233, -1, 0 },
0448: /*177*/{ 61, 179, -1, 0 },
0449: /*178*/{ 70, 102, 81, 119, -1, 0 },
0450: /*179*/{ 54, 183, 62, -234, -1, 0 },
0451: /*180*/{ 62, 182, -1, 0 },
0452: /*181*/{ 53, -232, -1, 0 },
0453: /*182*/{ 70, 102, 81, 119, -1, 0 },
0454: /*183*/{ 62, -235, -1, 0 },
0455: /*184*/{ 27, 78, 78, 71, 83, 77, -1, 0 },
0456: /*185*/{ 41, -33, 54, 189, 62, -33, 63, -33, 78, 159, -1,
0457: 0 },
0458: /*186*/{ 62, 188, -1, 0 },
0459: /*187*/{ 9, -229, 53, -229, -1, 0 },
0460: /*188*/{ 27, 78, 78, 71, 83, 77, -1, 0 },
0461: /*189*/{ 41, -32, 62, -32, 63, -32, -1, 0 },
0462: /*190*/{ 3, -227, 5, -227, 7, -227, 12, -227, 18, -227,
0463: 24, -227, 27, -227, 28, -227, 38, -227, 39, -227,
0464: 46, -227, 48, -227, 51, -227, 52, -227, 78, -227,
0465: 83, -227, -1, 0 },
0466: /*191*/{ 3, -226, 5, -226, 7, -226, 12, -226, 18, -226,
0467: 24, -226, 27, -226, 28, -226, 38, -226, 39, -226,
0468: 46, -226, 48, -226, 51, -226, 52, -226, 78, -226,
0469: 83, -226, -1, 0 },
0470: /*192*/{ 9, -222, 34, -222, 53, -222, -1, 0 },
0471: /*193*/{ 62, 203, -1, 0 },
0472: /*194*/{ 3, -228, 5, -228, 7, -228, 12, -228, 18, -228,
0473: 24, -228, 27, -228, 28, -228, 38, -228, 39, -228,
0474: 46, -228, 48, -228, 51, -228, 52, -228, 78, -228,
0475: 83, -228, -1, 0 },
0476: /*195*/{ 54, 201, 62, -224, -1, 0 },
0477: /*196*/{ 3, 85, 5, 80, 7, 66, 12, 94, 18, 82, 24, 63, 27,
0478: 78, 28, 91, 38, 89, 39, 81, 46, 72, 48, 74, 51, 90,
0479: 52, 92, 78, 71, 83, 77, -1, 0 },
0480: /*197*/{ 83, 199, -1, 0 },
0481: /*198*/{ 19, -147, 34, -147, 36, -147, 53, -147, 54, -147,
0482: 62, -147, -1, 0 },
0483: /*199*/{ 54, -225, 62, -225, -1, 0 },
0484: /*200*/{ 20, 192, 21, 195, 30, 191, -1, 0 },
0485: /*201*/{ 62, -223, -1, 0 },
0486: /*202*/{ 9, -221, 34, -221, 53, -221, -1, 0 },
0487: /*203*/{ 53, -153, 54, -153, 68, -153, 83, -153, -1, 0 },
0488: /*204*/{ 3, -27, 4, -27, 5, -27, 7, -27, 8, -27, 12, -27,
0489: 13, -27, 14, -27, 15, -27, 18, -27, 24, -27, 26,
0490: -27, 27, -27, 28, -27, 29, -27, 31, -27, 32, -27,
0491: 35, -27, 38, -27, 39, -27, 40, -27, 45, -27, 46,
0492: -27, 47, -27, 48, -27, 50, -27, 51, -27, 52, -27,
0493: 64, -27, 78, -27, 83, -27, -1, 0 },
0494: /*205*/{ 83, 199, -1, 0 },
0495: /*206*/{ 19, 210, 36, 211, 53, -211, 54, 209, -1, 0 },
0496: /*207*/{ 53, -205, -1, 0 },
0497: /*208*/{ 83, 199, -1, 0 },
0498: /*209*/{ 61, 220, -1, 0 },
0499: /*210*/{ 61, 213, -1, 0 },
0500: /*211*/{ 53, -206, -1, 0 },
0501: /*212*/{ 27, 78, 78, 71, 83, 77, -1, 0 },
0502: /*213*/{ 62, 215, -1, 0 },
0503: /*214*/{ 19, 216, 53, -210, -1, 0 },
0504: /*215*/{ 61, 217, -1, 0 },
0505: /*216*/{ 27, 78, 78, 71, 83, 77, -1, 0 },
0506: /*217*/{ 62, 219, -1, 0 },
0507: /*218*/{ 53, -208, -1, 0 },
0508: /*219*/{ 27, 78, 78, 71, 83, 77, -1, 0 },
0509: /*220*/{ 62, 222, -1, 0 },
0510: /*221*/{ 36, 223, 53, -209, -1, 0 },
0511: /*222*/{ 61, 224, -1, 0 },
0512: /*223*/{ 27, 78, 78, 71, 83, 77, -1, 0 },
0513: /*224*/{ 62, 226, -1, 0 },
0514: /*225*/{ 53, -207, -1, 0 },
0515: /*226*/{ 53, -211, 54, 209, -1, 0 },
0516: /*227*/{ 53, -212, -1, 0 },
0517: /*228*/{ 3, 85, 5, 80, 7, 66, 12, 94, 18, 82, 24, 63, 27,
0518: 78, 28, 91, 38, 89, 39, 81, 46, 72, 48, 74, 51, 90,
0519: 52, 92, 78, 71, 83, 77, -1, 0 },
0520: /*229*/{ 83, 199, -1, 0 },
0521: /*230*/{ 34, 233, 53, -211, 54, 209, -1, 0 },
0522: /*231*/{ 53, -203, -1, 0 },
0523: /*232*/{ 61, 235, -1, 0 },
0524: /*233*/{ 53, -204, -1, 0 },
0525: /*234*/{ 27, 78, 78, 71, 83, 77, -1, 0 },
0526: /*235*/{ 62, 237, -1, 0 },
0527: /*236*/{ 53, -231, -1, 0 },
0528: /*237*/{ 3, -24, 4, -24, 5, -24, 7, -24, 8, -24, 12, -24,
0529: 13, -24, 14, -24, 15, -24, 18, -24, 24, -24, 26,
0530: -24, 27, -24, 28, -24, 29, -24, 31, -24, 32, -24,
0531: 35, -24, 38, -24, 39, -24, 40, -24, 45, -24, 46,
0532: -24, 47, -24, 48, -24, 50, -24, 51, -24, 52, -24,
0533: 64, -24, 78, -24, 83, -24, -1, 0 },
0534: /*238*/{ 63, -51, -1, 0 },
0535: /*239*/{ 27, -56, 78, -56, 83, -56, -1, 0 },
0536: /*240*/{ 41, 246, 63, -50, -1, 0 },
0537: /*241*/{ 27, 78, 78, 71, 83, 77, -1, 0 },
0538: /*242*/{ 41, 244, 63, -49, -1, 0 },
0539: /*243*/{ 27, 78, 78, 71, 83, 77, -1, 0 },
0540: /*244*/{ 63, -52, -1, 0 },
0541: /*245*/{ 27, 78, 78, 71, 83, 77, -1, 0 },
0542: /*246*/{ 63, -53, -1, 0 },
0543: /*247*/{ 53, -19, 57, 250, 63, -239, -1, 0 },
0544: /*248*/{ 63, 253, -1, 0 },
0545: /*249*/{ 27, 78, 63, -30, 78, 71, 83, 77, -1, 0 },
0546: /*250*/{ 63, -31, -1, 0 },
0547: /*251*/{ 63, -29, -1, 0 },
0548: /*252*/{ 3, -239, 4, 46, 5, -239, 7, -239, 8, 27, 12,
0549: -239, 13, 28, 14, 11, 18, -239, 24, -239, 26, 13,
0550: 27, -239, 28, -239, 29, 47, 35, 45, 38, -239, 39,
0551: -239, 40, 12, 45, 24, 46, -239, 47, 26, 48, -239,
0552: 50, -239, 51, -239, 52, -239, 64, -239, 78, -239,
0553: 83, -239, -1, 0 },
0554: /*253*/{ 64, 258, -1, 0 },
0555: /*254*/{ 3, -217, 5, -217, 7, -217, 12, -217, 18, -217,
0556: 24, -217, 27, -217, 28, -217, 38, -217, 39, -217,
0557: 46, -217, 48, -217, 50, -217, 51, -217, 52, -217,
0558: 64, -23, 78, -217, 83, -217, -1, 0 },
0559: /*255*/{ 3, -239, 4, 46, 5, -239, 7, -239, 8, 27, 12,
0560: -239, 13, 28, 14, 11, 18, -239, 24, -239, 26, 13,
0561: 27, -239, 28, -239, 29, 47, 35, 45, 38, -239, 39,
0562: -239, 40, 12, 45, 24, 46, -239, 47, 26, 48, -239,
0563: 50, -239, 51, -239, 52, -239, 64, -239, 78, -239,
0564: 83, -239, -1, 0 },
0565: /*256*/{ 64, -22, -1, 0 },
0566: /*257*/{ 53, -15, -1, 0 },
0567: /*258*/{ 53, -18, 57, 250, 63, -239, -1, 0 },
0568: /*259*/{ 63, 261, -1, 0 },
0569: /*260*/{ 3, -239, 4, 46, 5, -239, 7, -239, 8, 27, 12,
0570: -239, 13, 28, 14, 11, 18, -239, 24, -239, 26, 13,
0571: 27, -239, 28, -239, 29, 47, 35, 45, 38, -239, 39,
0572: -239, 40, 12, 45, 24, 46, -239, 47, 26, 48, -239,
0573: 50, -239, 51, -239, 52, -239, 64, -239, 78, -239,
0574: 83, -239, -1, 0 },
0575: /*261*/{ 64, 263, -1, 0 },
0576: /*262*/{ 53, -14, -1, 0 },
0577: /*263*/{ 63, 265, -1, 0 },
0578: /*264*/{ 83, 266, -1, 0 },
0579: /*265*/{ 54, 269, 64, -189, -1, 0 },
0580: /*266*/{ 64, 268, -1, 0 },
0581: /*267*/{ 53, -188, 62, -188, 83, -188, -1, 0 },
0582: /*268*/{ 83, 266, -1, 0 },
0583: /*269*/{ 64, -190, -1, 0 },
0584: /*270*/{ 83, -76, -1, 0 },
0585: /*271*/{ 83, -75, -1, 0 },
0586: /*272*/{ 83, -71, -1, 0 },
0587: /*273*/{ 78, 159, 83, -77, -1, 0 },
0588: /*274*/{ 83, -70, -1, 0 },
0589: /*275*/{ 83, -72, -1, 0 },
0590: /*276*/{ 83, -74, -1, 0 },
0591: /*277*/{ 83, -73, -1, 0 },
0592: /*278*/{ 83, -151, -1, 0 },
0593: /*279*/{ 83, 281, -1, 0 },
0594: /*280*/{ 58, 282, -1, 0 },
0595: /*281*/{ 16, 113, 27, 78, 43, 103, 59, 98, 60, 114, 61,
0596: 104, 69, 108, 70, 102, 77, 105, 78, 71, 81, 119,
0597: 83, 77, 85, 110, 86, 100, 87, 97, 88, 99, -1, 0 },
0598: /*282*/{ 53, -69, -1, 0 },
0599: /*283*/{ 42, 285, 53, -174, 83, -174, -1, 0 },
0600: /*284*/{ 61, 286, -1, 0 },
0601: /*285*/{ 5, 80, 7, 66, 13, 28, 24, 164, 27, 78, 38, 89,
0602: 46, 72, 51, 90, 78, 71, 83, 77, -1, 0 },
0603: /*286*/{ 62, -178, -1, 0 },
0604: /*287*/{ 62, -176, -1, 0 },
0605: /*288*/{ 62, 293, -1, 0 },
0606: /*289*/{ 62, -179, 78, 159, -1, 0 },
0607: /*290*/{ 62, -175, -1, 0 },
0608: /*291*/{ 62, -177, -1, 0 },
0609: /*292*/{ 63, 294, -1, 0 },
0610: /*293*/{ 6, 299, 11, 296, -1, 0 },
0611: /*294*/{ 64, 343, -1, 0 },
0612: /*295*/{ 57, 341, -1, 0 },
0613: /*296*/{ 6, 299, 11, 296, 64, -180, -1, 0 },
0614: /*297*/{ 3, 85, 5, 80, 7, 66, 12, 94, 13, 28, 17, 308, 18,
0615: 82, 24, 63, 27, 78, 28, 91, 37, 317, 38, 89, 39,
0616: 81, 40, 12, 46, 72, 47, 26, 48, 74, 51, 90, 52, 92,
0617: 78, 71, 83, 77, -1, 0 },
0618: /*298*/{ 16, 113, 27, 78, 43, 103, 59, 98, 60, 114, 61,
0619: 104, 69, 108, 70, 102, 77, 105, 78, 71, 81, 119,
0620: 83, 77, 85, 110, 86, 100, 87, 97, 88, 99, -1, 0 },
0621: /*299*/{ 57, 301, -1, 0 },
0622: /*300*/{ 3, -183, 5, -183, 6, 299, 7, -183, 11, 296, 12,
0623: -183, 13, -183, 17, -183, 18, -183, 24, -183, 27,
0624: -183, 28, -183, 37, -183, 38, -183, 39, -183, 40,
0625: -183, 46, -183, 47, -183, 48, -183, 51, -183, 52,
0626: -183, 78, -183, 83, -183, -1, 0 },
0627: /*301*/{ 3, -185, 5, -185, 7, -185, 12, -185, 13, -185,
0628: 17, -185, 18, -185, 24, -185, 27, -185, 28, -185,
0629: 37, -185, 38, -185, 39, -185, 40, -185, 46, -185,
0630: 47, -185, 48, -185, 51, -185, 52, -185, 78, -185,
0631: 83, -185, -1, 0 },
0632: /*302*/{ 53, -140, 83, -140, -1, 0 },
0633: /*303*/{ 53, -142, 83, -142, -1, 0 },
0634: /*304*/{ 53, 339, -1, 0 },
0635: /*305*/{ 53, -125, 83, -125, -1, 0 },
0636: /*306*/{ 53, -128, 54, -128, 68, -128, 83, -128, -1, 0 },
0637: /*307*/{ 67, 334, -1, 0 },
0638: /*308*/{ 53, -126, 83, -126, -1, 0 },
0639: /*309*/{ 53, -141, 83, -141, -1, 0 },
0640: /*310*/{ 53, -129, 54, -129, 68, -129, 78, 159, 83, -129,
0641: -1, 0 },
0642: /*311*/{ 53, -138, 54, -138, 68, -138, 83, -138, -1, 0 },
0643: /*312*/{ 83, 324, -1, 0 },
0644: /*313*/{ 53, -137, 54, -137, 68, -137, 83, -137, -1, 0 },
0645: /*314*/{ 53, -127, 54, -127, 68, -127, 83, -127, -1, 0 },
0646: /*315*/{ 53, -139, 54, -139, 68, -139, 83, -139, -1, 0 },
0647: /*316*/{ 67, 318, -1, 0 },
0648: /*317*/{ 3, 85, 5, 80, 7, 66, 12, 94, 17, 308, 18, 82, 24,
0649: 63, 27, 78, 28, 91, 37, 317, 38, 89, 39, 81, 46,
0650: 72, 48, 74, 51, 90, 52, 92, 78, 71, 83, 77, -1, 0 },
0651: /*318*/{ 54, 320, 68, 321, -1, 0 },
0652: /*319*/{ 16, 113, 27, 78, 43, 103, 59, 98, 60, 114, 61,
0653: 104, 69, 108, 70, 102, 77, 105, 78, 71, 81, 119,
0654: 83, 77, 85, 110, 86, 100, 87, 97, 88, 99, -1, 0 },
0655: /*320*/{ 53, -193, 54, -193, 68, -193, 83, -193, -1, 0 },
0656: /*321*/{ 68, 323, -1, 0 },
0657: /*322*/{ 53, -192, 54, -192, 68, -192, 83, -192, -1, 0 },
0658: /*323*/{ 53, -147, 54, -147, 65, 330, -1, 0 },
0659: /*324*/{ 53, -145, 54, -145, -1, 0 },
0660: /*325*/{ 53, -187, -1, 0 },
0661: /*326*/{ 53, -146, 54, -146, -1, 0 },
0662: /*327*/{ 53, -200, 54, -200, 65, 330, -1, 0 },
0663: /*328*/{ 53, -199, 54, -199, -1, 0 },
0664: /*329*/{ 16, 113, 27, 78, 43, 103, 59, 98, 60, 114, 61,
0665: 104, 69, 108, 70, 102, 77, 105, 78, 71, 81, 119,
0666: 83, 77, 85, 110, 86, 100, 87, 97, 88, 99, -1, 0 },
0667: /*330*/{ 66, 332, -1, 0 },
0668: /*331*/{ 53, -202, 54, -202, 65, -202, -1, 0 },
0669: /*332*/{ 53, -201, 54, -201, -1, 0 },
0670: /*333*/{ 16, 113, 27, 78, 43, 103, 59, 98, 60, 114, 61,
0671: 104, 69, 108, 70, 102, 77, 105, 78, 71, 81, 119,
0672: 83, 77, 85, 110, 86, 100, 87, 97, 88, 99, -1, 0 },
0673: /*334*/{ 54, 336, -1, 0 },
0674: /*335*/{ 16, 113, 27, 78, 43, 103, 59, 98, 60, 114, 61,
0675: 104, 69, 108, 70, 102, 77, 105, 78, 71, 81, 119,
0676: 83, 77, 85, 110, 86, 100, 87, 97, 88, 99, -1, 0 },
0677: /*336*/{ 68, 338, -1, 0 },
0678: /*337*/{ 53, -198, 54, -198, 68, -198, 83, -198, -1, 0 },
0679: /*338*/{ 6, -182, 11, -182, 64, -182, -1, 0 },
0680: /*339*/{ 64, -181, -1, 0 },
0681: /*340*/{ 3, -184, 5, -184, 6, 299, 7, -184, 11, 296, 12,
0682: -184, 13, -184, 17, -184, 18, -184, 24, -184, 27,
0683: -184, 28, -184, 37, -184, 38, -184, 39, -184, 40,
0684: -184, 46, -184, 47, -184, 48, -184, 51, -184, 52,
0685: -184, 78, -184, 83, -184, -1, 0 },
0686: /*341*/{ 3, -186, 5, -186, 7, -186, 12, -186, 13, -186,
0687: 17, -186, 18, -186, 24, -186, 27, -186, 28, -186,
0688: 37, -186, 38, -186, 39, -186, 40, -186, 46, -186,
0689: 47, -186, 48, -186, 51, -186, 52, -186, 78, -186,
0690: 83, -186, -1, 0 },
0691: /*342*/{ 53, -173, 83, -173, -1, 0 },
0692: /*343*/{ 0, -12, 2, -12, 8, -12, 10, -12, 13, -12, 14,
0693: -12, 22, -12, 23, -12, 25, -12, 26, -12, 33, -12,
0694: 40, -12, 45, -12, 47, -12, 49, -12, 64, -12, -1, 0 },
0695: /*344*/{ 53, -123, -1, 0 },
0696: /*345*/{ 83, 324, -1, 0 },
0697: /*346*/{ 53, -144, 54, 349, -1, 0 },
0698: /*347*/{ 53, -124, -1, 0 },
0699: /*348*/{ 83, 324, -1, 0 },
0700: /*349*/{ 53, -143, -1, 0 },
0701: /*350*/{ 83, 352, -1, 0 },
0702: /*351*/{ 53, -21, 57, 250, 63, -239, -1, 0 },
0703: /*352*/{ 63, 354, -1, 0 },
0704: /*353*/{ 3, -239, 4, 46, 5, -239, 7, -239, 8, 27, 12,
0705: -239, 13, 28, 14, 11, 18, -239, 24, -239, 26, 13,
0706: 27, -239, 28, -239, 29, 47, 35, 45, 38, -239, 39,
0707: -239, 40, 12, 45, 24, 46, -239, 47, 26, 48, -239,
0708: 50, -239, 51, -239, 52, -239, 64, -239, 78, -239,
0709: 83, -239, -1, 0 },
0710: /*354*/{ 64, 356, -1, 0 },
0711: /*355*/{ 53, -17, -1, 0 },
0712: /*356*/{ 0, -9, 2, -9, 8, -9, 10, -9, 13, -9, 14, -9, 22,
0713: -9, 23, -9, 25, -9, 26, -9, 33, -9, 40, -9, 45, -9,
0714: 47, -9, 49, -9, 64, -9, -1, 0 },
0715: /*357*/{ 63, 359, -1, 0 },
0716: /*358*/{ 2, 30, 8, 27, 10, 8, 13, 28, 14, 11, 22, 29, 23,
0717: 14, 25, 21, 26, 13, 33, 23, 40, 12, 45, 24, 47, 26,
0718: 49, 17, -1, 0 },
0719: /*359*/{ 64, 361, -1, 0 },
0720: /*360*/{ 53, -13, -1, 0 },
0721: /*361*/{ 0, -8, 2, -8, 8, -8, 10, -8, 13, -8, 14, -8, 22,
0722: -8, 23, -8, 25, -8, 26, -8, 33, -8, 40, -8, 45, -8,
0723: 47, -8, 49, -8, 64, -8, -1, 0 },
0724: /*362*/{ 3, 85, 5, 80, 7, 66, 12, 94, 13, 28, 17, 308, 18,
0725: 82, 24, 63, 27, 78, 28, 91, 37, 317, 38, 89, 39,
0726: 81, 40, 12, 41, 41, 46, 72, 47, 26, 48, 74, 51, 90,
0727: 52, 92, 53, -47, 57, 39, 63, -239, 78, 71, 83, 77,
0728: -1, 0 },
0729: /*363*/{ 63, 366, -1, 0 },
0730: /*364*/{ 53, -41, -1, 0 },
0731: /*365*/{ 3, -239, 4, 46, 5, -239, 7, -239, 8, 27, 12,
0732: -239, 13, 28, 14, 11, 15, 373, 18, -239, 24, -239,
0733: 26, 13, 27, -239, 28, -239, 29, 47, 31, 367, 32,
0734: 369, 35, 45, 38, -239, 39, -239, 40, 12, 45, 24,
0735: 46, -239, 47, 26, 48, -239, 50, -239, 51, -239, 52,
0736: -239, 64, -239, 78, -239, 83, -239, -1, 0 },
0737: /*366*/{ 3, 85, 5, 80, 7, 66, 12, 94, 13, 28, 17, 308, 18,
0738: 82, 24, 63, 27, 78, 28, 91, 37, 317, 38, 89, 39,
0739: 81, 40, 12, 46, 72, 47, 26, 48, 74, 51, 90, 52, 92,
0740: 78, 71, 83, 77, -1, 0 },
0741: /*367*/{ 3, -60, 4, -60, 5, -60, 7, -60, 8, -60, 12, -60,
0742: 13, -60, 14, -60, 15, -60, 18, -60, 24, -60, 26,
0743: -60, 27, -60, 28, -60, 29, -60, 31, -60, 32, -60,
0744: 35, -60, 38, -60, 39, -60, 40, -60, 45, -60, 46,
0745: -60, 47, -60, 48, -60, 50, -60, 51, -60, 52, -60,
0746: 64, -60, 78, -60, 83, -60, -1, 0 },
0747: /*368*/{ 3, 85, 5, 80, 7, 66, 12, 94, 13, 28, 17, 308, 18,
0748: 82, 24, 63, 27, 78, 28, 91, 37, 317, 38, 89, 39,
0749: 81, 40, 12, 46, 72, 47, 26, 48, 74, 51, 90, 52, 92,
0750: 78, 71, 83, 77, -1, 0 },
0751: /*369*/{ 3, -217, 5, -217, 7, -217, 12, -217, 18, -217,
0752: 24, -217, 27, -217, 28, -217, 38, -217, 39, -217,
0753: 46, -217, 48, -217, 50, -217, 51, -217, 52, -217,
0754: 64, -58, 78, -217, 83, -217, -1, 0 },
0755: /*370*/{ 3, -61, 4, -61, 5, -61, 7, -61, 8, -61, 12, -61,
0756: 13, -61, 14, -61, 15, -61, 18, -61, 24, -61, 26,
0757: -61, 27, -61, 28, -61, 29, -61, 31, -61, 32, -61,
0758: 35, -61, 38, -61, 39, -61, 40, -61, 45, -61, 46,
0759: -61, 47, -61, 48, -61, 50, -61, 51, -61, 52, -61,
0760: 64, -61, 78, -61, 83, -61, -1, 0 },
0761: /*371*/{ 3, -59, 4, -59, 5, -59, 7, -59, 8, -59, 12, -59,
0762: 13, -59, 14, -59, 15, -59, 18, -59, 24, -59, 26,
0763: -59, 27, -59, 28, -59, 29, -59, 31, -59, 32, -59,
0764: 35, -59, 38, -59, 39, -59, 40, -59, 45, -59, 46,
0765: -59, 47, -59, 48, -59, 50, -59, 51, -59, 52, -59,
0766: 64, -59, 78, -59, 83, -59, -1, 0 },
0767: /*372*/{ 83, 378, -1, 0 },
0768: /*373*/{ 64, 377, -1, 0 },
0769: /*374*/{ 3, -239, 4, 46, 5, -239, 7, -239, 8, 27, 12,
0770: -239, 13, 28, 14, 11, 15, 373, 18, -239, 24, -239,
0771: 26, 13, 27, -239, 28, -239, 29, 47, 31, 367, 32,
0772: 369, 35, 45, 38, -239, 39, -239, 40, 12, 45, 24,
0773: 46, -239, 47, 26, 48, -239, 50, -239, 51, -239, 52,
0774: -239, 64, -239, 78, -239, 83, -239, -1, 0 },
0775: /*375*/{ 64, -57, -1, 0 },
0776: /*376*/{ 53, -48, -1, 0 },
0777: /*377*/{ 61, 379, -1, 0 },
0778: /*378*/{ 20, 380, 62, 382, -1, 0 },
0779: /*379*/{ 3, 85, 5, 80, 7, 66, 12, 94, 18, 82, 24, 63, 27,
0780: 78, 28, 91, 38, 89, 39, 81, 46, 72, 48, 74, 51, 90,
0781: 52, 92, 78, 71, 83, 77, -1, 0 },
0782: /*380*/{ 62, 388, -1, 0 },
0783: /*381*/{ 34, 173, 53, -239, -1, 0 },
0784: /*382*/{ 54, 384, 62, -66, -1, 0 },
0785: /*383*/{ 20, 380, -1, 0 },
0786: /*384*/{ 62, -67, -1, 0 },
0787: /*385*/{ 53, 387, -1, 0 },
0788: /*386*/{ 3, -65, 4, -65, 5, -65, 7, -65, 8, -65, 12, -65,
0789: 13, -65, 14, -65, 15, -65, 18, -65, 24, -65, 26,
0790: -65, 27, -65, 28, -65, 29, -65, 31, -65, 32, -65,
0791: 35, -65, 38, -65, 39, -65, 40, -65, 45, -65, 46,
0792: -65, 47, -65, 48, -65, 50, -65, 51, -65, 52, -65,
0793: 64, -65, 78, -65, 83, -65, -1, 0 },
0794: /*387*/{ 34, 173, 53, -239, -1, 0 },
0795: /*388*/{ 53, 390, -1, 0 },
0796: /*389*/{ 3, -64, 4, -64, 5, -64, 7, -64, 8, -64, 12, -64,
0797: 13, -64, 14, -64, 15, -64, 18, -64, 24, -64, 26,
0798: -64, 27, -64, 28, -64, 29, -64, 31, -64, 32, -64,
0799: 35, -64, 38, -64, 39, -64, 40, -64, 45, -64, 46,
0800: -64, 47, -64, 48, -64, 50, -64, 51, -64, 52, -64,
0801: 64, -64, 78, -64, 83, -64, -1, 0 },
0802: /*390*/{ 83, 199, -1, 0 },
0803: /*391*/{ 54, -68, 62, -68, -1, 0 },
0804: /*392*/{ 83, 324, -1, 0 },
0805: /*393*/{ 53, 395, -1, 0 },
0806: /*394*/{ 3, -62, 4, -62, 5, -62, 7, -62, 8, -62, 12, -62,
0807: 13, -62, 14, -62, 15, -62, 18, -62, 24, -62, 26,
0808: -62, 27, -62, 28, -62, 29, -62, 31, -62, 32, -62,
0809: 35, -62, 38, -62, 39, -62, 40, -62, 45, -62, 46,
0810: -62, 47, -62, 48, -62, 50, -62, 51, -62, 52, -62,
0811: 64, -62, 78, -62, 83, -62, -1, 0 },
0812: /*395*/{ 83, 324, -1, 0 },
0813: /*396*/{ 53, 398, -1, 0 },
0814: /*397*/{ 3, -63, 4, -63, 5, -63, 7, -63, 8, -63, 12, -63,
0815: 13, -63, 14, -63, 15, -63, 18, -63, 24, -63, 26,
0816: -63, 27, -63, 28, -63, 29, -63, 31, -63, 32, -63,
0817: 35, -63, 38, -63, 39, -63, 40, -63, 45, -63, 46,
0818: -63, 47, -63, 48, -63, 50, -63, 51, -63, 52, -63,
0819: 64, -63, 78, -63, 83, -63, -1, 0 },
0820: /*398*/{ 0, -5, 64, -5, -1, 0 },
0821: /*399*/{ 83, 401, -1, 0 },
0822: /*400*/{ 53, -20, 57, 250, 63, -239, -1, 0 },
0823: /*401*/{ 63, 403, -1, 0 },
0824: /*402*/{ 3, -239, 4, 46, 5, -239, 7, -239, 8, 27, 12,
0825: -239, 13, 28, 14, 11, 18, -239, 24, -239, 26, 13,
0826: 27, -239, 28, -239, 29, 47, 35, 45, 38, -239, 39,
0827: -239, 40, 12, 45, 24, 46, -239, 47, 26, 48, -239,
0828: 50, -239, 51, -239, 52, -239, 64, -239, 78, -239,
0829: 83, -239, -1, 0 },
0830: /*403*/{ 64, 405, -1, 0 },
0831: /*404*/{ 53, -16, -1, 0 },
0832: /*405*/{ 53, -191, -1, 0 },
0833: /*406*/{ 53, -169, 63, 408, 83, -169, -1, 0 },
0834: /*407*/{ 3, 85, 5, 80, 7, 66, 12, 94, 13, 28, 17, 308, 18,
0835: 82, 24, 63, 27, 78, 28, 91, 37, 317, 38, 89, 39,
0836: 81, 40, 12, 46, 72, 47, 26, 48, 74, 51, 90, 52, 92,
0837: 78, 71, 83, 77, -1, 0 },
0838: /*408*/{ 64, 415, -1, 0 },
0839: /*409*/{ 83, 324, -1, 0 },
0840: /*410*/{ 3, 85, 5, 80, 7, 66, 12, 94, 13, 28, 17, 308, 18,
0841: 82, 24, 63, 27, 78, 28, 91, 37, 317, 38, 89, 39,
0842: 81, 40, 12, 46, 72, 47, 26, 48, 74, 51, 90, 52, 92,
0843: 64, -170, 78, 71, 83, 77, -1, 0 },
0844: /*411*/{ 64, -171, -1, 0 },
0845: /*412*/{ 53, 414, -1, 0 },
0846: /*413*/{ 3, -172, 5, -172, 7, -172, 12, -172, 13, -172,
0847: 17, -172, 18, -172, 24, -172, 27, -172, 28, -172,
0848: 37, -172, 38, -172, 39, -172, 40, -172, 46, -172,
0849: 47, -172, 48, -172, 51, -172, 52, -172, 64, -172,
0850: 78, -172, 83, -172, -1, 0 },
0851: /*414*/{ 53, -168, 83, -168, -1, 0 },
0852: /*415*/{ 63, 417, -1, 0 },
0853: /*416*/{ 3, 85, 5, 80, 7, 66, 12, 94, 13, 28, 17, 308, 18,
0854: 82, 24, 63, 27, 78, 28, 91, 37, 317, 38, 89, 39,
0855: 81, 40, 12, 46, 72, 47, 26, 48, 74, 51, 90, 52, 92,
0856: 64, 419, 78, 71, 83, 77, -1, 0 },
0857: /*417*/{ 64, 420, -1, 0 },
0858: /*418*/{ 53, -213, -1, 0 },
0859: /*419*/{ 53, -214, -1, 0 },
0860: /*420*/{ 0, -11, 2, -11, 8, -11, 10, -11, 13, -11, 14,
0861: -11, 22, -11, 23, -11, 25, -11, 26, -11, 33, -11,
0862: 40, -11, 45, -11, 47, -11, 49, -11, 64, -11, -1, 0 },
0863: /*421*/{ 83, 423, -1, 0 },
0864: /*422*/{ 41, 41, 57, 39, 63, -239, -1, 0 },
0865: /*423*/{ 63, 425, -1, 0 },
0866: /*424*/{ 3, -239, 4, 46, 5, -239, 7, -239, 8, 27, 12,
0867: -239, 13, 28, 14, 11, 15, 373, 18, -239, 24, -239,
0868: 26, 13, 27, -239, 28, -239, 29, 47, 31, 367, 32,
0869: 369, 35, 45, 38, -239, 39, -239, 40, 12, 45, 24,
0870: 46, -239, 47, 26, 48, -239, 50, -239, 51, -239, 52,
0871: -239, 64, -239, 78, -239, 83, -239, -1, 0 },
0872: /*425*/{ 64, 427, -1, 0 },
0873: /*426*/{ 53, -46, -1, 0 },
0874: /*427*/{ 0, -7, 2, -7, 8, -7, 10, -7, 13, -7, 14, -7, 22,
0875: -7, 23, -7, 25, -7, 26, -7, 33, -7, 40, -7, 45, -7,
0876: 47, -7, 49, -7, 64, -7, -1, 0 },
0877: /*428*/{ 0, -10, 2, -10, 8, -10, 10, -10, 13, -10, 14,
0878: -10, 22, -10, 23, -10, 25, -10, 26, -10, 33, -10,
0879: 40, -10, 45, -10, 47, -10, 49, -10, 64, -10, -1, 0 }, };
0880:
0881: /** access to parse action table */
0882: public short[][] action_table() {
0883: return _action_table;
0884: }
0885:
0886: /** reduce_goto table */
0887: protected static final short[][] _reduce_table = {
0888: /*0*/{ 3, 3, 7, 2, 98, 1, -1, -1 },
0889: /*1*/{ 8, 14, 9, 34, 10, 8, 11, 5, 16, 24, 17, 17, 18, 15,
0890: 19, 30, 27, 18, 39, 6, 45, 32, 49, 9, 50, 33, 51,
0891: 21, 52, 31, 53, 19, -1, -1 },
0892: /*2*/{ -1, -1 },
0893: /*3*/{ -1, -1 },
0894: /*4*/{ -1, -1 },
0895: /*5*/{ -1, -1 },
0896: /*6*/{ -1, -1 },
0897: /*7*/{ -1, -1 },
0898: /*8*/{ -1, -1 },
0899: /*9*/{ -1, -1 },
0900: /*10*/{ -1, -1 },
0901: /*11*/{ -1, -1 },
0902: /*12*/{ 78, 405, -1, -1 },
0903: /*13*/{ -1, -1 },
0904: /*14*/{ 8, 14, 9, 398, 10, 8, 11, 5, 16, 24, 17, 17, 18,
0905: 15, 19, 30, 27, 18, 39, 6, 45, 32, 49, 9, 50, 33,
0906: 51, 21, 52, 31, 53, 19, -1, -1 },
0907: /*15*/{ -1, -1 },
0908: /*16*/{ -1, -1 },
0909: /*17*/{ -1, -1 },
0910: /*18*/{ -1, -1 },
0911: /*19*/{ -1, -1 },
0912: /*20*/{ -1, -1 },
0913: /*21*/{ -1, -1 },
0914: /*22*/{ -1, -1 },
0915: /*23*/{ 14, 310, 40, 344, 41, 345, 46, 305, 47, 306, 48,
0916: 308, 49, 303, 50, 302, 52, 309, 57, 314, 58, 72,
0917: 59, 87, 60, 74, 62, 83, 63, 67, 64, 86, 65, 85, 66,
0918: 63, 67, 78, 68, 60, 69, 82, 71, 311, 72, 313, 73,
0919: 315, -1, -1 },
0920: /*24*/{ -1, -1 },
0921: /*25*/{ -1, -1 },
0922: /*26*/{ 14, 273, 28, 279, 58, 274, 59, 277, 60, 74, 61,
0923: 276, 62, 83, 63, 67, 64, 86, 65, 85, 66, 272, 67,
0924: 275, 68, 270, 71, 271, -1, -1 },
0925: /*27*/{ -1, -1 },
0926: /*28*/{ -1, -1 },
0927: /*29*/{ -1, -1 },
0928: /*30*/{ -1, -1 },
0929: /*31*/{ -1, -1 },
0930: /*32*/{ -1, -1 },
0931: /*33*/{ -1, -1 },
0932: /*34*/{ -1, -1 },
0933: /*35*/{ -1, -1 },
0934: /*36*/{ -1, -1 },
0935: /*37*/{ 3, 39, 21, 41, -1, -1 },
0936: /*38*/{ 14, 185, 15, 241, 92, 240, -1, -1 },
0937: /*39*/{ -1, -1 },
0938: /*40*/{ 14, 185, 92, 238, -1, -1 },
0939: /*41*/{ -1, -1 },
0940: /*42*/{ 3, 49, 4, 48, 13, 54, 20, 53, 27, 50, 39, 43, 45,
0941: 32, 49, 9, 50, 33, 51, 52, 52, 31, 53, 19, 84, 51,
0942: 85, 47, -1, -1 },
0943: /*43*/{ -1, -1 },
0944: /*44*/{ -1, -1 },
0945: /*45*/{ 14, 64, 43, 205, 57, 69, 58, 72, 59, 87, 60, 74,
0946: 62, 83, 63, 67, 64, 86, 65, 85, 66, 63, 67, 78, 68,
0947: 60, 69, 82, 71, 61, -1, -1 },
0948: /*46*/{ -1, -1 },
0949: /*47*/{ -1, -1 },
0950: /*48*/{ 14, 64, 42, 66, 43, 68, 57, 69, 58, 72, 59, 87,
0951: 60, 74, 62, 83, 63, 67, 64, 86, 65, 85, 66, 63, 67,
0952: 78, 68, 60, 69, 82, 70, 75, 71, 61, -1, -1 },
0953: /*49*/{ -1, -1 },
0954: /*50*/{ -1, -1 },
0955: /*51*/{ -1, -1 },
0956: /*52*/{ -1, -1 },
0957: /*53*/{ -1, -1 },
0958: /*54*/{ 3, 49, 4, 48, 13, 54, 20, 55, 27, 50, 39, 43, 45,
0959: 32, 49, 9, 50, 33, 51, 52, 52, 31, 53, 19, 84, 51,
0960: 85, 47, -1, -1 },
0961: /*55*/{ -1, -1 },
0962: /*56*/{ -1, -1 },
0963: /*57*/{ -1, -1 },
0964: /*58*/{ -1, -1 },
0965: /*59*/{ -1, -1 },
0966: /*60*/{ -1, -1 },
0967: /*61*/{ -1, -1 },
0968: /*62*/{ -1, -1 },
0969: /*63*/{ -1, -1 },
0970: /*64*/{ -1, -1 },
0971: /*65*/{ -1, -1 },
0972: /*66*/{ -1, -1 },
0973: /*67*/{ -1, -1 },
0974: /*68*/{ -1, -1 },
0975: /*69*/{ -1, -1 },
0976: /*70*/{ -1, -1 },
0977: /*71*/{ 63, 164, 64, 166, 65, 165, -1, -1 },
0978: /*72*/{ -1, -1 },
0979: /*73*/{ -1, -1 },
0980: /*74*/{ -1, -1 },
0981: /*75*/{ -1, -1 },
0982: /*76*/{ -1, -1 },
0983: /*77*/{ -1, -1 },
0984: /*78*/{ -1, -1 },
0985: /*79*/{ -1, -1 },
0986: /*80*/{ -1, -1 },
0987: /*81*/{ -1, -1 },
0988: /*82*/{ -1, -1 },
0989: /*83*/{ -1, -1 },
0990: /*84*/{ -1, -1 },
0991: /*85*/{ -1, -1 },
0992: /*86*/{ -1, -1 },
0993: /*87*/{ -1, -1 },
0994: /*88*/{ -1, -1 },
0995: /*89*/{ -1, -1 },
0996: /*90*/{ -1, -1 },
0997: /*91*/{ -1, -1 },
0998: /*92*/{ -1, -1 },
0999: /*93*/{ -1, -1 },
1000: /*94*/{ 6, 121, 14, 100, 29, 119, 30, 108, 31, 110, 32,
1001: 95, 33, 116, 34, 120, 35, 105, 36, 117, 37, 106,
1002: 38, 111, 74, 114, 75, 115, -1, -1 },
1003: /*95*/{ -1, -1 },
1004: /*96*/{ -1, -1 },
1005: /*97*/{ -1, -1 },
1006: /*98*/{ -1, -1 },
1007: /*99*/{ -1, -1 },
1008: /*100*/{ -1, -1 },
1009: /*101*/{ -1, -1 },
1010: /*102*/{ -1, -1 },
1011: /*103*/{ 6, 121, 14, 100, 29, 153, 31, 110, 32, 95, 33,
1012: 116, 34, 120, 35, 105, 36, 117, 37, 106, 38, 111,
1013: 74, 114, 75, 115, -1, -1 },
1014: /*104*/{ -1, -1 },
1015: /*105*/{ -1, -1 },
1016: /*106*/{ -1, -1 },
1017: /*107*/{ -1, -1 },
1018: /*108*/{ -1, -1 },
1019: /*109*/{ -1, -1 },
1020: /*110*/{ -1, -1 },
1021: /*111*/{ -1, -1 },
1022: /*112*/{ -1, -1 },
1023: /*113*/{ -1, -1 },
1024: /*114*/{ -1, -1 },
1025: /*115*/{ -1, -1 },
1026: /*116*/{ -1, -1 },
1027: /*117*/{ -1, -1 },
1028: /*118*/{ -1, -1 },
1029: /*119*/{ -1, -1 },
1030: /*120*/{ -1, -1 },
1031: /*121*/{ 14, 100, 38, 122, 74, 114, 75, 115, -1, -1 },
1032: /*122*/{ -1, -1 },
1033: /*123*/{ -1, -1 },
1034: /*124*/{ -1, -1 },
1035: /*125*/{ -1, -1 },
1036: /*126*/{ 6, 121, 14, 100, 35, 139, 36, 117, 37, 106, 38,
1037: 111, 74, 114, 75, 115, -1, -1 },
1038: /*127*/{ 6, 121, 14, 100, 35, 128, 36, 117, 37, 106, 38,
1039: 111, 74, 114, 75, 115, -1, -1 },
1040: /*128*/{ -1, -1 },
1041: /*129*/{ 6, 121, 14, 100, 36, 138, 37, 106, 38, 111, 74,
1042: 114, 75, 115, -1, -1 },
1043: /*130*/{ 6, 121, 14, 100, 36, 131, 37, 106, 38, 111, 74,
1044: 114, 75, 115, -1, -1 },
1045: /*131*/{ -1, -1 },
1046: /*132*/{ 6, 121, 14, 100, 37, 137, 38, 111, 74, 114, 75,
1047: 115, -1, -1 },
1048: /*133*/{ 6, 121, 14, 100, 37, 136, 38, 111, 74, 114, 75,
1049: 115, -1, -1 },
1050: /*134*/{ 6, 121, 14, 100, 37, 135, 38, 111, 74, 114, 75,
1051: 115, -1, -1 },
1052: /*135*/{ -1, -1 },
1053: /*136*/{ -1, -1 },
1054: /*137*/{ -1, -1 },
1055: /*138*/{ -1, -1 },
1056: /*139*/{ -1, -1 },
1057: /*140*/{ -1, -1 },
1058: /*141*/{ -1, -1 },
1059: /*142*/{ -1, -1 },
1060: /*143*/{ 6, 121, 14, 100, 34, 144, 35, 105, 36, 117, 37,
1061: 106, 38, 111, 74, 114, 75, 115, -1, -1 },
1062: /*144*/{ -1, -1 },
1063: /*145*/{ -1, -1 },
1064: /*146*/{ 6, 121, 14, 100, 32, 147, 33, 116, 34, 120, 35,
1065: 105, 36, 117, 37, 106, 38, 111, 74, 114, 75, 115,
1066: -1, -1 },
1067: /*147*/{ -1, -1 },
1068: /*148*/{ 6, 121, 14, 100, 33, 149, 34, 120, 35, 105, 36,
1069: 117, 37, 106, 38, 111, 74, 114, 75, 115, -1, -1 },
1070: /*149*/{ -1, -1 },
1071: /*150*/{ -1, -1 },
1072: /*151*/{ -1, -1 },
1073: /*152*/{ -1, -1 },
1074: /*153*/{ -1, -1 },
1075: /*154*/{ -1, -1 },
1076: /*155*/{ -1, -1 },
1077: /*156*/{ -1, -1 },
1078: /*157*/{ -1, -1 },
1079: /*158*/{ -1, -1 },
1080: /*159*/{ -1, -1 },
1081: /*160*/{ 6, 121, 14, 100, 29, 119, 30, 161, 31, 110, 32,
1082: 95, 33, 116, 34, 120, 35, 105, 36, 117, 37, 106,
1083: 38, 111, 74, 114, 75, 115, -1, -1 },
1084: /*161*/{ -1, -1 },
1085: /*162*/{ -1, -1 },
1086: /*163*/{ -1, -1 },
1087: /*164*/{ -1, -1 },
1088: /*165*/{ -1, -1 },
1089: /*166*/{ -1, -1 },
1090: /*167*/{ -1, -1 },
1091: /*168*/{ -1, -1 },
1092: /*169*/{ 91, 171, -1, -1 },
1093: /*170*/{ 5, 196, 81, 195, 89, 193, -1, -1 },
1094: /*171*/{ 3, 174, 82, 173, -1, -1 },
1095: /*172*/{ -1, -1 },
1096: /*173*/{ 1, 175, 3, 176, -1, -1 },
1097: /*174*/{ -1, -1 },
1098: /*175*/{ -1, -1 },
1099: /*176*/{ -1, -1 },
1100: /*177*/{ -1, -1 },
1101: /*178*/{ 2, 180, 75, 179, -1, -1 },
1102: /*179*/{ -1, -1 },
1103: /*180*/{ -1, -1 },
1104: /*181*/{ -1, -1 },
1105: /*182*/{ 2, 183, 75, 179, -1, -1 },
1106: /*183*/{ -1, -1 },
1107: /*184*/{ 14, 185, 92, 186, -1, -1 },
1108: /*185*/{ -1, -1 },
1109: /*186*/{ -1, -1 },
1110: /*187*/{ -1, -1 },
1111: /*188*/{ 14, 185, 92, 189, -1, -1 },
1112: /*189*/{ -1, -1 },
1113: /*190*/{ -1, -1 },
1114: /*191*/{ -1, -1 },
1115: /*192*/{ -1, -1 },
1116: /*193*/{ -1, -1 },
1117: /*194*/{ -1, -1 },
1118: /*195*/{ -1, -1 },
1119: /*196*/{ 14, 64, 43, 197, 57, 69, 58, 72, 59, 87, 60, 74,
1120: 62, 83, 63, 67, 64, 86, 65, 85, 66, 63, 67, 78, 68,
1121: 60, 69, 82, 71, 61, -1, -1 },
1122: /*197*/{ 78, 199, -1, -1 },
1123: /*198*/{ -1, -1 },
1124: /*199*/{ -1, -1 },
1125: /*200*/{ 5, 196, 81, 195, 89, 201, -1, -1 },
1126: /*201*/{ -1, -1 },
1127: /*202*/{ -1, -1 },
1128: /*203*/{ -1, -1 },
1129: /*204*/{ -1, -1 },
1130: /*205*/{ 78, 206, 93, 207, -1, -1 },
1131: /*206*/{ 86, 211, -1, -1 },
1132: /*207*/{ -1, -1 },
1133: /*208*/{ 78, 226, 93, 227, -1, -1 },
1134: /*209*/{ -1, -1 },
1135: /*210*/{ -1, -1 },
1136: /*211*/{ -1, -1 },
1137: /*212*/{ 14, 185, 92, 213, -1, -1 },
1138: /*213*/{ -1, -1 },
1139: /*214*/{ -1, -1 },
1140: /*215*/{ -1, -1 },
1141: /*216*/{ 14, 185, 92, 217, -1, -1 },
1142: /*217*/{ -1, -1 },
1143: /*218*/{ -1, -1 },
1144: /*219*/{ 14, 185, 92, 220, -1, -1 },
1145: /*220*/{ -1, -1 },
1146: /*221*/{ -1, -1 },
1147: /*222*/{ -1, -1 },
1148: /*223*/{ 14, 185, 92, 224, -1, -1 },
1149: /*224*/{ -1, -1 },
1150: /*225*/{ -1, -1 },
1151: /*226*/{ -1, -1 },
1152: /*227*/{ -1, -1 },
1153: /*228*/{ 14, 64, 43, 229, 57, 69, 58, 72, 59, 87, 60, 74,
1154: 62, 83, 63, 67, 64, 86, 65, 85, 66, 63, 67, 78, 68,
1155: 60, 69, 82, 71, 61, -1, -1 },
1156: /*229*/{ 78, 230, 93, 231, -1, -1 },
1157: /*230*/{ 83, 233, -1, -1 },
1158: /*231*/{ -1, -1 },
1159: /*232*/{ -1, -1 },
1160: /*233*/{ -1, -1 },
1161: /*234*/{ 14, 185, 92, 235, -1, -1 },
1162: /*235*/{ -1, -1 },
1163: /*236*/{ -1, -1 },
1164: /*237*/{ -1, -1 },
1165: /*238*/{ -1, -1 },
1166: /*239*/{ -1, -1 },
1167: /*240*/{ -1, -1 },
1168: /*241*/{ 14, 185, 92, 242, -1, -1 },
1169: /*242*/{ -1, -1 },
1170: /*243*/{ 14, 185, 92, 244, -1, -1 },
1171: /*244*/{ -1, -1 },
1172: /*245*/{ 14, 185, 92, 246, -1, -1 },
1173: /*246*/{ -1, -1 },
1174: /*247*/{ 3, 250, 95, 248, -1, -1 },
1175: /*248*/{ -1, -1 },
1176: /*249*/{ 14, 185, 92, 251, -1, -1 },
1177: /*250*/{ -1, -1 },
1178: /*251*/{ -1, -1 },
1179: /*252*/{ 3, 254, 4, 48, 12, 253, 13, 255, 27, 50, 39, 43,
1180: 45, 32, 49, 9, 50, 33, 51, 52, 52, 31, 53, 19, 84,
1181: 51, 85, 47, -1, -1 },
1182: /*253*/{ -1, -1 },
1183: /*254*/{ -1, -1 },
1184: /*255*/{ 3, 254, 4, 48, 12, 256, 13, 255, 27, 50, 39, 43,
1185: 45, 32, 49, 9, 50, 33, 51, 52, 52, 31, 53, 19, 84,
1186: 51, 85, 47, -1, -1 },
1187: /*256*/{ -1, -1 },
1188: /*257*/{ -1, -1 },
1189: /*258*/{ 3, 250, 95, 259, -1, -1 },
1190: /*259*/{ -1, -1 },
1191: /*260*/{ 3, 254, 4, 48, 12, 261, 13, 255, 27, 50, 39, 43,
1192: 45, 32, 49, 9, 50, 33, 51, 52, 52, 31, 53, 19, 84,
1193: 51, 85, 47, -1, -1 },
1194: /*261*/{ -1, -1 },
1195: /*262*/{ -1, -1 },
1196: /*263*/{ -1, -1 },
1197: /*264*/{ 96, 266, -1, -1 },
1198: /*265*/{ -1, -1 },
1199: /*266*/{ -1, -1 },
1200: /*267*/{ -1, -1 },
1201: /*268*/{ 96, 269, -1, -1 },
1202: /*269*/{ -1, -1 },
1203: /*270*/{ -1, -1 },
1204: /*271*/{ -1, -1 },
1205: /*272*/{ -1, -1 },
1206: /*273*/{ -1, -1 },
1207: /*274*/{ -1, -1 },
1208: /*275*/{ -1, -1 },
1209: /*276*/{ -1, -1 },
1210: /*277*/{ -1, -1 },
1211: /*278*/{ -1, -1 },
1212: /*279*/{ -1, -1 },
1213: /*280*/{ -1, -1 },
1214: /*281*/{ 6, 121, 14, 100, 29, 282, 31, 110, 32, 95, 33,
1215: 116, 34, 120, 35, 105, 36, 117, 37, 106, 38, 111,
1216: 74, 114, 75, 115, -1, -1 },
1217: /*282*/{ -1, -1 },
1218: /*283*/{ -1, -1 },
1219: /*284*/{ -1, -1 },
1220: /*285*/{ 14, 289, 44, 288, 49, 286, 58, 290, 63, 67, 64,
1221: 86, 65, 85, 66, 287, 67, 291, -1, -1 },
1222: /*286*/{ -1, -1 },
1223: /*287*/{ -1, -1 },
1224: /*288*/{ -1, -1 },
1225: /*289*/{ -1, -1 },
1226: /*290*/{ -1, -1 },
1227: /*291*/{ -1, -1 },
1228: /*292*/{ -1, -1 },
1229: /*293*/{ 54, 294, 55, 296, 88, 297, -1, -1 },
1230: /*294*/{ -1, -1 },
1231: /*295*/{ -1, -1 },
1232: /*296*/{ 54, 339, 55, 296, 88, 297, -1, -1 },
1233: /*297*/{ 14, 310, 41, 312, 46, 305, 47, 306, 48, 308, 49,
1234: 303, 50, 302, 52, 309, 56, 304, 57, 314, 58, 72,
1235: 59, 87, 60, 74, 62, 83, 63, 67, 64, 86, 65, 85, 66,
1236: 63, 67, 78, 68, 60, 69, 82, 71, 311, 72, 313, 73,
1237: 315, -1, -1 },
1238: /*298*/{ 6, 121, 14, 100, 29, 299, 31, 110, 32, 95, 33,
1239: 116, 34, 120, 35, 105, 36, 117, 37, 106, 38, 111,
1240: 74, 114, 75, 115, -1, -1 },
1241: /*299*/{ -1, -1 },
1242: /*300*/{ 88, 301, -1, -1 },
1243: /*301*/{ -1, -1 },
1244: /*302*/{ -1, -1 },
1245: /*303*/{ -1, -1 },
1246: /*304*/{ -1, -1 },
1247: /*305*/{ -1, -1 },
1248: /*306*/{ -1, -1 },
1249: /*307*/{ -1, -1 },
1250: /*308*/{ -1, -1 },
1251: /*309*/{ -1, -1 },
1252: /*310*/{ -1, -1 },
1253: /*311*/{ -1, -1 },
1254: /*312*/{ 77, 325, 78, 324, 79, 326, -1, -1 },
1255: /*313*/{ -1, -1 },
1256: /*314*/{ -1, -1 },
1257: /*315*/{ -1, -1 },
1258: /*316*/{ -1, -1 },
1259: /*317*/{ 14, 310, 46, 318, 47, 306, 57, 314, 58, 72, 59,
1260: 87, 60, 74, 62, 83, 63, 67, 64, 86, 65, 85, 66, 63,
1261: 67, 78, 68, 60, 69, 82, 71, 311, 72, 313, 73, 315,
1262: -1, -1 },
1263: /*318*/{ -1, -1 },
1264: /*319*/{ 6, 121, 14, 100, 29, 119, 30, 321, 31, 110, 32,
1265: 95, 33, 116, 34, 120, 35, 105, 36, 117, 37, 106,
1266: 38, 111, 74, 114, 75, 115, -1, -1 },
1267: /*320*/{ -1, -1 },
1268: /*321*/{ -1, -1 },
1269: /*322*/{ -1, -1 },
1270: /*323*/{ 80, 327, 97, 328, -1, -1 },
1271: /*324*/{ -1, -1 },
1272: /*325*/{ -1, -1 },
1273: /*326*/{ -1, -1 },
1274: /*327*/{ 80, 327, 97, 332, -1, -1 },
1275: /*328*/{ -1, -1 },
1276: /*329*/{ 6, 121, 14, 100, 29, 119, 30, 330, 31, 110, 32,
1277: 95, 33, 116, 34, 120, 35, 105, 36, 117, 37, 106,
1278: 38, 111, 74, 114, 75, 115, -1, -1 },
1279: /*330*/{ -1, -1 },
1280: /*331*/{ -1, -1 },
1281: /*332*/{ -1, -1 },
1282: /*333*/{ 6, 121, 14, 100, 29, 119, 30, 334, 31, 110, 32,
1283: 95, 33, 116, 34, 120, 35, 105, 36, 117, 37, 106,
1284: 38, 111, 74, 114, 75, 115, -1, -1 },
1285: /*334*/{ -1, -1 },
1286: /*335*/{ 6, 121, 14, 100, 29, 119, 30, 336, 31, 110, 32,
1287: 95, 33, 116, 34, 120, 35, 105, 36, 117, 37, 106,
1288: 38, 111, 74, 114, 75, 115, -1, -1 },
1289: /*336*/{ -1, -1 },
1290: /*337*/{ -1, -1 },
1291: /*338*/{ -1, -1 },
1292: /*339*/{ -1, -1 },
1293: /*340*/{ 88, 341, -1, -1 },
1294: /*341*/{ -1, -1 },
1295: /*342*/{ -1, -1 },
1296: /*343*/{ -1, -1 },
1297: /*344*/{ -1, -1 },
1298: /*345*/{ 77, 346, 78, 324, 79, 326, 94, 347, -1, -1 },
1299: /*346*/{ -1, -1 },
1300: /*347*/{ -1, -1 },
1301: /*348*/{ 77, 346, 78, 324, 79, 326, 94, 349, -1, -1 },
1302: /*349*/{ -1, -1 },
1303: /*350*/{ -1, -1 },
1304: /*351*/{ 3, 250, 95, 352, -1, -1 },
1305: /*352*/{ -1, -1 },
1306: /*353*/{ 3, 254, 4, 48, 12, 354, 13, 255, 27, 50, 39, 43,
1307: 45, 32, 49, 9, 50, 33, 51, 52, 52, 31, 53, 19, 84,
1308: 51, 85, 47, -1, -1 },
1309: /*354*/{ -1, -1 },
1310: /*355*/{ -1, -1 },
1311: /*356*/{ -1, -1 },
1312: /*357*/{ -1, -1 },
1313: /*358*/{ 8, 14, 9, 359, 10, 8, 11, 5, 16, 24, 17, 17, 18,
1314: 15, 19, 30, 27, 18, 39, 6, 45, 32, 49, 9, 50, 33,
1315: 51, 21, 52, 31, 53, 19, -1, -1 },
1316: /*359*/{ -1, -1 },
1317: /*360*/{ -1, -1 },
1318: /*361*/{ -1, -1 },
1319: /*362*/{ 3, 39, 14, 310, 21, 363, 41, 364, 46, 305, 47,
1320: 306, 48, 308, 49, 303, 50, 302, 52, 309, 57, 314,
1321: 58, 72, 59, 87, 60, 74, 62, 83, 63, 67, 64, 86, 65,
1322: 85, 66, 63, 67, 78, 68, 60, 69, 82, 71, 311, 72,
1323: 313, 73, 315, -1, -1 },
1324: /*363*/{ -1, -1 },
1325: /*364*/{ -1, -1 },
1326: /*365*/{ 3, 369, 4, 48, 13, 371, 22, 373, 23, 374, 24,
1327: 367, 25, 370, 27, 50, 39, 43, 45, 32, 49, 9, 50,
1328: 33, 51, 52, 52, 31, 53, 19, 84, 51, 85, 47, -1, -1 },
1329: /*366*/{ 14, 310, 41, 395, 46, 305, 47, 306, 48, 308, 49,
1330: 303, 50, 302, 52, 309, 57, 314, 58, 72, 59, 87, 60,
1331: 74, 62, 83, 63, 67, 64, 86, 65, 85, 66, 63, 67, 78,
1332: 68, 60, 69, 82, 71, 311, 72, 313, 73, 315, -1, -1 },
1333: /*367*/{ -1, -1 },
1334: /*368*/{ 14, 310, 41, 392, 46, 305, 47, 306, 48, 308, 49,
1335: 303, 50, 302, 52, 309, 57, 314, 58, 72, 59, 87, 60,
1336: 74, 62, 83, 63, 67, 64, 86, 65, 85, 66, 63, 67, 78,
1337: 68, 60, 69, 82, 71, 311, 72, 313, 73, 315, -1, -1 },
1338: /*369*/{ -1, -1 },
1339: /*370*/{ -1, -1 },
1340: /*371*/{ -1, -1 },
1341: /*372*/{ -1, -1 },
1342: /*373*/{ -1, -1 },
1343: /*374*/{ 3, 369, 4, 48, 13, 371, 22, 375, 23, 374, 24,
1344: 367, 25, 370, 27, 50, 39, 43, 45, 32, 49, 9, 50,
1345: 33, 51, 52, 52, 31, 53, 19, 84, 51, 85, 47, -1, -1 },
1346: /*375*/{ -1, -1 },
1347: /*376*/{ -1, -1 },
1348: /*377*/{ -1, -1 },
1349: /*378*/{ 26, 382, 90, 380, -1, -1 },
1350: /*379*/{ 14, 64, 43, 390, 57, 69, 58, 72, 59, 87, 60, 74,
1351: 62, 83, 63, 67, 64, 86, 65, 85, 66, 63, 67, 78, 68,
1352: 60, 69, 82, 71, 61, -1, -1 },
1353: /*380*/{ -1, -1 },
1354: /*381*/{ 3, 174, 82, 385, -1, -1 },
1355: /*382*/{ -1, -1 },
1356: /*383*/{ 26, 382, 90, 384, -1, -1 },
1357: /*384*/{ -1, -1 },
1358: /*385*/{ -1, -1 },
1359: /*386*/{ -1, -1 },
1360: /*387*/{ 3, 174, 82, 388, -1, -1 },
1361: /*388*/{ -1, -1 },
1362: /*389*/{ -1, -1 },
1363: /*390*/{ 78, 391, -1, -1 },
1364: /*391*/{ -1, -1 },
1365: /*392*/{ 77, 346, 78, 324, 79, 326, 94, 393, -1, -1 },
1366: /*393*/{ -1, -1 },
1367: /*394*/{ -1, -1 },
1368: /*395*/{ 77, 346, 78, 324, 79, 326, 94, 396, -1, -1 },
1369: /*396*/{ -1, -1 },
1370: /*397*/{ -1, -1 },
1371: /*398*/{ -1, -1 },
1372: /*399*/{ -1, -1 },
1373: /*400*/{ 3, 250, 95, 401, -1, -1 },
1374: /*401*/{ -1, -1 },
1375: /*402*/{ 3, 254, 4, 48, 12, 403, 13, 255, 27, 50, 39, 43,
1376: 45, 32, 49, 9, 50, 33, 51, 52, 52, 31, 53, 19, 84,
1377: 51, 85, 47, -1, -1 },
1378: /*403*/{ -1, -1 },
1379: /*404*/{ -1, -1 },
1380: /*405*/{ -1, -1 },
1381: /*406*/{ -1, -1 },
1382: /*407*/{ 14, 310, 41, 409, 46, 305, 47, 306, 48, 308, 49,
1383: 303, 50, 302, 52, 309, 57, 314, 58, 72, 59, 87, 60,
1384: 74, 62, 83, 63, 67, 64, 86, 65, 85, 66, 63, 67, 78,
1385: 68, 60, 69, 82, 71, 311, 72, 313, 73, 315, 76, 410,
1386: 87, 408, -1, -1 },
1387: /*408*/{ -1, -1 },
1388: /*409*/{ 77, 346, 78, 324, 79, 326, 94, 412, -1, -1 },
1389: /*410*/{ 14, 310, 41, 409, 46, 305, 47, 306, 48, 308, 49,
1390: 303, 50, 302, 52, 309, 57, 314, 58, 72, 59, 87, 60,
1391: 74, 62, 83, 63, 67, 64, 86, 65, 85, 66, 63, 67, 78,
1392: 68, 60, 69, 82, 71, 311, 72, 313, 73, 315, 76, 410,
1393: 87, 411, -1, -1 },
1394: /*411*/{ -1, -1 },
1395: /*412*/{ -1, -1 },
1396: /*413*/{ -1, -1 },
1397: /*414*/{ -1, -1 },
1398: /*415*/{ -1, -1 },
1399: /*416*/{ 14, 310, 41, 409, 46, 305, 47, 306, 48, 308, 49,
1400: 303, 50, 302, 52, 309, 57, 314, 58, 72, 59, 87, 60,
1401: 74, 62, 83, 63, 67, 64, 86, 65, 85, 66, 63, 67, 78,
1402: 68, 60, 69, 82, 71, 311, 72, 313, 73, 315, 76, 410,
1403: 87, 417, -1, -1 },
1404: /*417*/{ -1, -1 },
1405: /*418*/{ -1, -1 },
1406: /*419*/{ -1, -1 },
1407: /*420*/{ -1, -1 },
1408: /*421*/{ -1, -1 },
1409: /*422*/{ 3, 39, 21, 423, -1, -1 },
1410: /*423*/{ -1, -1 },
1411: /*424*/{ 3, 369, 4, 48, 13, 371, 22, 425, 23, 374, 24,
1412: 367, 25, 370, 27, 50, 39, 43, 45, 32, 49, 9, 50,
1413: 33, 51, 52, 52, 31, 53, 19, 84, 51, 85, 47, -1, -1 },
1414: /*425*/{ -1, -1 },
1415: /*426*/{ -1, -1 },
1416: /*427*/{ -1, -1 },
1417: /*428*/{ -1, -1 }, };
1418:
1419: /** access to reduce_goto table */
1420: public short[][] reduce_table() {
1421: return _reduce_table;
1422: }
1423:
1424: /** instance of action encapsulation class */
1425: protected CUP$actions action_obj;
1426:
1427: /** action encapsulation object initializer */
1428: protected void init_actions() {
1429: action_obj = new CUP$actions();
1430: }
1431:
1432: /** invoke a user supplied parse action */
1433: public org.jacorb.idl.runtime.symbol do_action(int act_num,
1434: org.jacorb.idl.runtime.lr_parser parser,
1435: java.util.Stack stack, int top) throws java.lang.Exception {
1436: /* call code in generated class */
1437: return action_obj.CUP$do_action(act_num, parser, stack, top);
1438: }
1439:
1440: /** start state */
1441: public int start_state() {
1442: return 0;
1443: }
1444:
1445: /** start production */
1446: public int start_production() {
1447: return 0;
1448: }
1449:
1450: /** EOF symbol index */
1451: public int EOF_sym() {
1452: return 0;
1453: }
1454:
1455: /** error symbol index */
1456: public int error_sym() {
1457: return 1;
1458: }
1459:
1460: /** user initialization */
1461: public void user_init() throws java.lang.Exception {
1462:
1463: lexer.init();
1464:
1465: }
1466:
1467: /** scan to get the next token */
1468: public org.jacorb.idl.runtime.token scan()
1469: throws java.lang.Exception {
1470:
1471: return lexer.next_token();
1472:
1473: }
1474:
1475: static String command_line[] = null;
1476:
1477: public static Hashtable pack_replace = null;
1478: public static Stack scopes = null;
1479: private static Hashtable tmpDefines = null;
1480: private static Hashtable tmpUnDefines = null;
1481:
1482: public final static String currentVersion = "";
1483:
1484: // Compiles out leaving no runtime dependency on Version
1485: public static final String compiler_version = org.jacorb.util.Version.longVersion;
1486:
1487: private static final String yearString = "1997-2006";
1488:
1489: public static org.jacorb.idl.IDLTreeVisitor generator = null;
1490:
1491: private static final String FINAL = " final";
1492: private static final String NO_FINAL = "";
1493:
1494: public static String out_dir = ".";
1495: // Use for org.omg only.
1496: static String package_prefix = null;
1497:
1498: static boolean parse_only = false;
1499:
1500: /** used for internal checking that name conversion
1501: to mapped Java names is done only after parsing */
1502: public static boolean done_parsing = false;
1503:
1504: /** compiler flags */
1505: public static boolean include_state = false;
1506: public static boolean strict_names = true;
1507: /** these two are to work around buggy IDL generated by Sun's rmic in JDK 1.4 */
1508: public static boolean strict_inheritance = true;
1509: public static boolean strict_attributes = true;
1510:
1511: public static boolean generateIR = false;
1512: public static boolean generate_skeletons = true;
1513: public static boolean generate_stubs = true;
1514:
1515: public static boolean generate_ami_callback = false;
1516: public static boolean generate_ami_polling = false;
1517:
1518: protected static boolean generateIncluded = false;
1519: protected static boolean inhibitionState = false;
1520: protected static boolean localityContraint = false;
1521: protected static boolean useUncheckedNarrow = false;
1522: protected static boolean cldc10 = false;
1523: static boolean generateEnhanced;
1524:
1525: protected static boolean forceOverwrite;
1526: protected static boolean addbackend = false;
1527:
1528: protected static boolean generateDiiStubs = false;
1529:
1530: protected static String finalString = FINAL;
1531:
1532: private static int activeParseThreads;
1533:
1534: private static Logger logger;
1535: private static Writer logStreamWriter = null;
1536:
1537: /* a la CORBA 2.4, allow forward declarations that remain undefined */
1538: public static boolean sloppy = false;
1539:
1540: public static String currentDate;
1541:
1542: /**
1543: * allows reinitialization if compiler is not
1544: * run from a command-line
1545: */
1546:
1547: protected static void init() {
1548: currentDate = java.text.DateFormat.getDateTimeInstance()
1549: .format(new java.util.Date());
1550: command_line = null;
1551: pending_interfaces = new Hashtable();
1552: pack_replace = new Hashtable();
1553: scopes = new Stack();
1554: tmpDefines = new Hashtable();
1555: tmpUnDefines = new Hashtable();
1556: generator = null;
1557:
1558: activeParseThreads = 0;
1559: InterfaceBody.parseThreads = new Vector();
1560: pending_interfaces = new Hashtable();
1561:
1562: out_dir = ".";
1563: package_prefix = null;
1564:
1565: parse_only = false;
1566: done_parsing = false;
1567:
1568: include_state = false;
1569: generateIR = false;
1570: generate_skeletons = true;
1571: generate_stubs = true;
1572: generate_ami_callback = false;
1573: generate_ami_polling = false;
1574:
1575: strict_names = true;
1576: strict_inheritance = true;
1577: strict_attributes = true;
1578:
1579: generateIncluded = false;
1580: inhibitionState = false;
1581: localityContraint = false;
1582: useUncheckedNarrow = false;
1583: cldc10 = false;
1584: generateEnhanced = false;
1585: forceOverwrite = false;
1586:
1587: generateDiiStubs = false;
1588:
1589: finalString = FINAL;
1590:
1591: sloppy = false;
1592:
1593: String pattern = "[%.11{category}] %.7{priority} : %{message}\\n%{throwable}";
1594: PatternFormatter formatter = new PatternFormatter(pattern);
1595: logger = Hierarchy.getDefaultHierarchy().getLoggerFor(
1596: "jacorb.idl");
1597: logger.setPriority(Priority.ERROR);
1598:
1599: // check if the environment's logStream has been set
1600: Writer logWriter;
1601: if (logStreamWriter != null) {
1602: logWriter = logStreamWriter;
1603: } else {
1604: OutputStream outStream = System.err;
1605: logWriter = new OutputStreamWriter(outStream);
1606: }
1607: WriterTarget writerTarget = new WriterTarget(logWriter,
1608: formatter);
1609: logger.setLogTargets(new LogTarget[] { writerTarget });
1610:
1611: parser.openScope();
1612: }
1613:
1614: public static void main(String argv[]) {
1615: if (compileAndHandle(argv) == true)
1616: System.exit(0);
1617: else
1618: System.exit(1);
1619: }
1620:
1621: public static boolean compileAndHandle(String argv[]) {
1622: try {
1623: return compile(argv);
1624: } catch (org.jacorb.idl.ParseException e) {
1625: logger.debug("Exception caught", e);
1626: lexer.emit_error(e.getMessage());
1627: return false;
1628: } catch (java.io.IOException io) {
1629: lexer.emit_error("IO Error, please check file names: "
1630: + io.getMessage());
1631: } catch (Exception e) {
1632: lexer.emit_error("Exception: " + e.toString());
1633: usage(argv, e.getMessage());
1634: }
1635: return false;
1636: }
1637:
1638: public static boolean compile(String argv[]) throws Exception {
1639: return compile(argv, null);
1640: }
1641:
1642: public static boolean compile(String argv[], StringWriter logWriter)
1643: throws Exception {
1644: BufferedReader in = null;
1645:
1646: if (logWriter != null)
1647: logStreamWriter = logWriter;
1648:
1649: init();
1650:
1651: command_line = argv;
1652: if (argv.length > 0) {
1653: int i;
1654: for (i = 0; i < argv.length; i++) {
1655: if (argv[i].equals("-syntax")) {
1656: parse_only = true;
1657: continue;
1658: }
1659: if (argv[i].equals("-diistub")) {
1660: generateDiiStubs = true;
1661: continue;
1662: }
1663: if (argv[i].equals("-noskel")) {
1664: generate_skeletons = false;
1665: continue;
1666: }
1667: if (argv[i].equals("-nostub")) {
1668: generate_stubs = false;
1669: continue;
1670: }
1671: if (argv[i].equals("-ami_callback")) {
1672: generate_ami_callback = true;
1673: continue;
1674: }
1675: if (argv[i].equals("-forceOverwrite")) {
1676: forceOverwrite = true;
1677: continue;
1678: }
1679: if (argv[i].equals("-ami_polling")) {
1680: throw new RuntimeException(
1681: "Sorry, the polling model is not yet implemented.");
1682: // generate_ami_polling = true;
1683: // continue;
1684: }
1685: if (argv[i].equals("-sloppy_forward")) {
1686: sloppy = true;
1687: continue;
1688: }
1689: if (argv[i].equals("-sloppy_names")) {
1690: strict_names = false;
1691: continue;
1692: }
1693: if (argv[i].equals("-permissive_rmic")) {
1694: strict_names = false;
1695: strict_attributes = false;
1696: strict_inheritance = false;
1697: continue;
1698: }
1699: if (argv[i].equals("-unchecked_narrow")) {
1700: useUncheckedNarrow = true;
1701: continue;
1702: }
1703: if (argv[i].equals("-backend")
1704: || argv[i].equals("-addbackend")) {
1705: if (argv[i].equals("-addbackend")) {
1706: addbackend = true;
1707: }
1708:
1709: if (i + 1 == argv.length
1710: || argv[i + 1].charAt(0) == '-')
1711: usage(argv, "-backend");
1712:
1713: // custom code generators
1714: Class codeGeneratorClass = null;
1715:
1716: try {
1717: codeGeneratorClass = Class.forName(argv[++i]);
1718: } catch (ClassNotFoundException cnfe) {
1719: throw new ParseException("Generator Class "
1720: + argv[i]
1721: + " not found! Check classpath!");
1722: }
1723:
1724: if (!org.jacorb.idl.IDLTreeVisitor.class
1725: .isAssignableFrom(codeGeneratorClass))
1726: throw new ParseException(
1727: "Not a valid code generator: "
1728: + codeGeneratorClass.getName());
1729: setGenerator((org.jacorb.idl.IDLTreeVisitor) codeGeneratorClass
1730: .newInstance());
1731: continue;
1732: }
1733: if (argv[i].equals("-d")) {
1734: if (i + 1 == argv.length
1735: || argv[i + 1].charAt(0) == '-')
1736: usage(argv, "-d");
1737: out_dir = argv[++i];
1738: continue;
1739: }
1740: if (argv[i].equals("-W")) {
1741: if (i + 1 == argv.length
1742: || argv[i + 1].charAt(0) == '-')
1743: usage(argv, "-W");
1744:
1745: int level = Integer.parseInt(argv[++i]);
1746:
1747: logger
1748: .setPriority(Environment
1749: .intToPriority(level));
1750:
1751: continue;
1752: }
1753: if (argv[i].startsWith("-D")) {
1754: String def = argv[i].substring(2);
1755: String val;
1756:
1757: if (def.indexOf('=') > 0) {
1758: val = def.substring(def.indexOf('=') + 1);
1759: def = def.substring(0, def.indexOf('='));
1760: } else
1761: val = "1";
1762: tmpDefines.put(def, val);
1763: continue;
1764: }
1765: if (argv[i].startsWith("-U")) {
1766: tmpUnDefines.put(argv[i].substring(2), "");
1767: continue;
1768: }
1769: if (argv[i].equals("-omg")) {
1770: package_prefix = "org.omg";
1771: continue;
1772: }
1773: if (argv[i].equals("-cldc10")) {
1774: cldc10 = true;
1775: continue;
1776: }
1777: if (argv[i].equals("-genEnhanced")) {
1778: generateEnhanced = true;
1779: continue;
1780: }
1781:
1782: if (argv[i].equals("-i2jpackage")) {
1783: if (i + 1 == argv.length
1784: || argv[i + 1].charAt(0) == '-')
1785: usage(argv, "-i2jpackage");
1786: addI2JPackage(argv[i + 1]);
1787: i++;
1788: continue;
1789: }
1790: if (argv[i].equals("-i2jpackagefile")) {
1791: if (i + 1 == argv.length
1792: || argv[i + 1].charAt(0) == '-')
1793: usage(argv, "-i2jpackagefile");
1794:
1795: try {
1796: in = new BufferedReader(new FileReader(
1797: argv[i + 1]));
1798: } catch (FileNotFoundException e) {
1799: System.out.println("File " + argv[i + 1]
1800: + " not found");
1801: throw new RuntimeException(
1802: "File for -i2jpackagefile not found");
1803: }
1804: String mapping = in.readLine();
1805: while (mapping != null) {
1806: addI2JPackage(mapping);
1807: mapping = in.readLine();
1808: }
1809: in.close();
1810: i++;
1811: continue;
1812: }
1813: if (argv[i].equals("-ir")) {
1814: generateIR = true;
1815: continue;
1816: }
1817: if (argv[i].startsWith("-I")) {
1818: GlobalInputStream.setIncludePath(argv[i]
1819: .substring(2));
1820: continue;
1821: }
1822: if (argv[i].equals("-h") || argv[i].equals("-help")) {
1823: help();
1824: return true;
1825: }
1826: if (argv[i].equals("-all")) {
1827: generateIncluded = true;
1828: continue;
1829: }
1830: if (argv[i].equals("-v") || argv[i].equals("-version")) {
1831: version();
1832: return true;
1833: }
1834: if (argv[i].equals("-nofinal")) {
1835: setFinalString(NO_FINAL);
1836: continue;
1837: }
1838: if (argv[i].equals("-in")) {
1839: i++;
1840: if (i < argv.length) {
1841: prepareAndParse(argv[i]);
1842: }
1843: continue;
1844: }
1845: if (argv[i].endsWith(".idl")) {
1846: break;
1847: }
1848:
1849: // else:
1850: usage(argv, "Unrecognized option: " + argv[i]);
1851:
1852: }
1853: for (int j = i; j < argv.length; j++) {
1854: if (argv[j].endsWith(".idl")) {
1855: prepareAndParse(argv[j]);
1856: } else {
1857: throw new ParseException("Not an IDL file:"
1858: + argv[j]);
1859: }
1860: }
1861: }
1862: return true;
1863: }
1864:
1865: private static void prepareAndParse(String fileName)
1866: throws Exception {
1867: GlobalInputStream.init();
1868: GlobalInputStream.setInput(fileName);
1869:
1870: /* reset tables everywhere */
1871: lexer.reset();
1872: NameTable.init();
1873: ConstDecl.init();
1874: TypeMap.init();
1875:
1876: /* define/undefine symbols */
1877: for (Enumeration e = tmpDefines.keys(); e.hasMoreElements();) {
1878: String key = (String) e.nextElement();
1879: lexer.define(key, (String) tmpDefines.get(key));
1880: }
1881:
1882: for (Enumeration e = tmpUnDefines.keys(); e.hasMoreElements();) {
1883: lexer.undefine((String) e.nextElement());
1884: }
1885:
1886: new parser().parse();
1887:
1888: if (lexer.error_count > 0) {
1889: throw new ParseException("Errors in lexer");
1890: }
1891: }
1892:
1893: public static void usage(String[] argv, String msg) {
1894: // debug:
1895: for (int i = 0; i < argv.length; i++)
1896: System.out.print(argv[i] + " ");
1897: System.out.println(" : " + msg);
1898:
1899: System.out
1900: .println("Usage: idl [-h|-help][-v|-version][-Dsymbol[=value]][-Idir][-U<symbol>][-W debug_level ][-all][-forceOverwrite][-ami_callback][-ami_polling][-backend classname][-d <Output Dir>][-unchecked_narrow][-i2jpackage x:y][-i2jpackagefile <filename>][-cldc10][-ir][-nofinal][-noskel][-nostub][-diistub][-sloppy_forward][-sloppy_names][-permissive_rmic][-genEnhanced][-syntax][-in inputfile] <filelist>");
1901: }
1902:
1903: static void addI2JPackage(String mapping) {
1904: int split_idx = mapping.indexOf(':');
1905: if (split_idx < 0) {
1906: System.out
1907: .println("Incorrect format for i2jpackage mapping: "
1908: + mapping);
1909: System.exit(1);
1910: }
1911: String idlp = mapping.substring(0, split_idx);
1912: String jp = mapping.substring(split_idx + 1);
1913:
1914: if (idlp.length() == 0) {
1915: package_prefix = jp;
1916: if (logger.isDebugEnabled()) {
1917: logger.debug("Replace unnamed global package with "
1918: + jp);
1919: }
1920: } else {
1921: pack_replace.put(idlp, jp);
1922: if (logger.isDebugEnabled()) {
1923: logger.debug("Replace pack " + idlp + " with " + jp);
1924: }
1925: }
1926: }
1927:
1928: private static void help() {
1929: System.out.println("\t-h|help \tthese few lines of help");
1930: System.out.println("\t-v|version \tprint version information");
1931: System.out
1932: .println("\t-d dir\t\troot of directory tree for output");
1933: System.out
1934: .println("\t-Dx\t\tdefine preprocessor symbol x with value 1");
1935: System.out
1936: .println("\t-Dx=y\t\tdefine preprocessor symbol x with value y");
1937: System.out.println("\t-Idir\t\tset include path for idl files");
1938: System.out
1939: .println("\t-U<symbol>\t\tundefine preprocessor symbol");
1940: System.out.println("\t-W [1..4]\tdebug level");
1941: System.out
1942: .println("\t-all\t\tgenerate code for all IDL files, even included ones");
1943: System.out
1944: .println("\t-forceOverwrite\tgenerate code even if IDL has not changed");
1945: System.out
1946: .println("\t-ami_callback\t\tgenerate AMI reply handlers and sendc methods");
1947: System.out
1948: .println("\t-ami_polling\t\tgenerate AMI poller and sendp methods");
1949: System.out
1950: .println("\t-backend classname\t\tuse classname as code generator");
1951: System.out
1952: .println("\t-addbackend classname\t\tadd classname as code generator");
1953: System.out
1954: .println("\t-i2jpackage x:a.b.c\t replace IDL package name x by a.b.c in generated Java code (e.g. CORBA:org.omg.CORBA)");
1955: System.out
1956: .println("\t-i2jpackagefile <filename>\t replace IDL package names using list from <filename>. Format as above.");
1957: System.out
1958: .println("\t-ir\t\tgenerate information required by the Interface Repository");
1959: System.out
1960: .println("\t-nofinal\tgenerated Java code will contain no final class definitions");
1961: System.out
1962: .println("\t-unchecked_narrow\t\tuse unchecked_narrow in generated code for IOR parameters in operations");
1963: System.out
1964: .println("\t-noskel\t\tdisables generation of POA skeletons");
1965: System.out
1966: .println("\t-nostub\t\tdisables generation of client stubs");
1967: System.out
1968: .println("\t-diistub\t\tgenerate dii-based client stubs");
1969: System.out
1970: .println("\t-cldc10\t\tcode generation compatible with J2ME/CLDC 1.0");
1971: System.out
1972: .println("\t-sloppy_forward\tallow forward declarations wo. later definitions");
1973: System.out
1974: .println("\t-sloppy_names\tless strict checking of module name scoping");
1975: System.out
1976: .println("\t-permissive_rmic\ttolerate dubious IDL generated by JDK's rmic, includes -sloppy_names.");
1977: System.out
1978: .println("\t-genEnhanced\tGenerate toString and equals on stubs. Only supported on Struct currently.");
1979:
1980: System.out
1981: .println("\t-syntax\t\tsyntax check only, no code generation");
1982: System.out.println("\t<filelist>\t");
1983: }
1984:
1985: private static void version() {
1986: System.out.println("JacORB IDL compiler V" + compiler_version
1987: + ",\n (C) The JacORB Project contributors, "
1988: + yearString + ".");
1989: }
1990:
1991: /* override error routines */
1992:
1993: public void report_fatal_error(String message, Object info)
1994: throws ParseException {
1995: done_parsing();
1996: lexer.emit_error(message
1997: + "\nCan't recover from previous error(s), giving up.");
1998: throw new ParseException();
1999: }
2000:
2001: public static void fatal_error(String message, str_token p_info)
2002: throws ParseException {
2003: //done_parsing();
2004: lexer.emit_error(message
2005: + "\nCan't recover from previous error(s), giving up.",
2006: p_info);
2007: throw new ParseException();
2008: }
2009:
2010: public void report_error(String message, Object info) {
2011: lexer.emit_error(message);
2012: }
2013:
2014: public static void error(String message, str_token p_info) {
2015: lexer.emit_error(message, p_info);
2016: }
2017:
2018: public static void error(String message) {
2019: lexer.emit_error(message);
2020: }
2021:
2022: /* bookkeeping with IDL scopes */
2023:
2024: /** called from the lexer/scanner whenever a scope opening
2025: symbol is encountered */
2026:
2027: public static void openScope() {
2028: scopes.push(new ScopeData());
2029: }
2030:
2031: /** called from within the parser whenever parsing a scope
2032: symbol is complete */
2033:
2034: public static void closeScope(Scope symbol) {
2035: ScopeData data = (ScopeData) scopes.pop();
2036: symbol.setScopeData(data);
2037: }
2038:
2039: public static ScopeData currentScopeData() {
2040: return (ScopeData) scopes.peek();
2041: }
2042:
2043: // an interface inheriting from an forward declared interface
2044: // needs to wait on an object until the ancestor has been parsed
2045: // if get_pending returns null, the ancestor was not forward
2046: // declared and thus has already been parsed
2047:
2048: // forward declared interfaces are put into this list
2049:
2050: static Hashtable pending_interfaces = null;
2051:
2052: public static synchronized void set_pending(String name) {
2053: // name will only be marked pending if it has not already been
2054: // parsed before and if is not already pending
2055: String use = ScopedName.unPseudoName(name);
2056:
2057: if (!(pending_interfaces.containsKey(use) || NameTable.parsed_interfaces
2058: .containsKey(use))) {
2059: pending_interfaces.put(use, new Object());
2060: }
2061: }
2062:
2063: public static void setGenerator(
2064: org.jacorb.idl.IDLTreeVisitor generatorObject) {
2065: generator = generatorObject;
2066: }
2067:
2068: public static org.jacorb.idl.IDLTreeVisitor getGenerator() {
2069: return generator;
2070: }
2071:
2072: public static synchronized void remove_pending(String name) {
2073: String use = ScopedName.unPseudoName(name);
2074: Object o = pending_interfaces.remove(use);
2075: if (o != null) {
2076: synchronized (o) {
2077: o.notifyAll();
2078: }
2079: }
2080: if (pending_interfaces.size() == 0) {
2081: // notify the main thread that the parsing phase is complete
2082: synchronized (pending_interfaces) {
2083: pending_interfaces.notifyAll();
2084: }
2085: }
2086: }
2087:
2088: public static Object get_pending(String name) {
2089: return pending_interfaces.get(ScopedName.unPseudoName(name));
2090: }
2091:
2092: public static synchronized void decActiveParseThreads() {
2093: activeParseThreads--;
2094: }
2095:
2096: public static synchronized void incActiveParseThreads() {
2097: activeParseThreads++;
2098: }
2099:
2100: public static synchronized int activeParseThreads() {
2101: return activeParseThreads;
2102: }
2103:
2104: public static boolean generateIncluded() {
2105: return generateIncluded;
2106: }
2107:
2108: public static boolean getInhibitionState() {
2109: return inhibitionState;
2110: }
2111:
2112: public static void setInhibitionState(boolean flag) {
2113: inhibitionState = flag;
2114: }
2115:
2116: public static void set_included(boolean i) {
2117: include_state = i;
2118: }
2119:
2120: public static String getFinalString() {
2121: return finalString;
2122: }
2123:
2124: public static void setFinalString(String finalString) {
2125: parser.finalString = finalString;
2126: }
2127:
2128: public static void setGenerateFinalCode(boolean isFinal) {
2129: if (isFinal) {
2130: setFinalString(FINAL);
2131: } else {
2132: setFinalString(NO_FINAL);
2133: }
2134: }
2135:
2136: /**
2137: * Package replacements as requested
2138: * by compiler options
2139: */
2140:
2141: public static String pack_replace(String old) {
2142: String n_str = (String) pack_replace.get(old);
2143: if (n_str == null)
2144: return old;
2145: else
2146: return n_str;
2147: }
2148:
2149: /**
2150: * convenience access to the preconfigured loger for the
2151: * IDL compiler
2152: */
2153:
2154: public static final Logger getLogger() {
2155: return logger;
2156: }
2157:
2158: };
2159:
2160: /** Cup generated class to encapsulate user supplied action code.*/
2161: class CUP$actions {
2162:
2163: /** Constructor */
2164: CUP$actions() {
2165: }
2166:
2167: /** Method with the actual generated action code. */
2168: public final org.jacorb.idl.runtime.symbol CUP$do_action(
2169: int CUP$act_num,
2170: org.jacorb.idl.runtime.lr_parser CUP$parser,
2171: java.util.Stack CUP$stack, int CUP$top)
2172: throws java.lang.Exception {
2173: /* object for return from actions */
2174: org.jacorb.idl.runtime.symbol CUP$result;
2175:
2176: /* select the action based on the action number */
2177: switch (CUP$act_num) {
2178: /*. . . . . . . . . . . . . . . . . . . .*/
2179: case 238: // empty ::=
2180: {
2181: CUP$result = new org.jacorb.idl.runtime.symbol(/*empty*/3);
2182:
2183: }
2184: return CUP$result;
2185:
2186: /*. . . . . . . . . . . . . . . . . . . .*/
2187: case 237: // param_type_spec ::= scopename
2188: {
2189: CUP$result = new TypeSpec(/*param_type_spec*/43);
2190: ((TypeSpec) CUP$result).type_spec = (/*s*/(ScopedName) CUP$stack
2191: .elementAt(CUP$top - 0));
2192: }
2193: return CUP$result;
2194:
2195: /*. . . . . . . . . . . . . . . . . . . .*/
2196: case 236: // param_type_spec ::= string_type
2197: {
2198: CUP$result = new TypeSpec(/*param_type_spec*/43);
2199: ((TypeSpec) CUP$result).type_spec = (/*s*/(StringType) CUP$stack
2200: .elementAt(CUP$top - 0));
2201: }
2202: return CUP$result;
2203:
2204: /*. . . . . . . . . . . . . . . . . . . .*/
2205: case 235: // param_type_spec ::= base_type_spec
2206: {
2207: CUP$result = new TypeSpec(/*param_type_spec*/43);
2208: ((TypeSpec) CUP$result).type_spec = (/*s*/(BaseType) CUP$stack
2209: .elementAt(CUP$top - 0));
2210: }
2211: return CUP$result;
2212:
2213: /*. . . . . . . . . . . . . . . . . . . .*/
2214: case 234: // string_literal_list ::= string_literal COMMA string_literal_list
2215: {
2216: CUP$result = new org.jacorb.idl.runtime.symbol(
2217: /*string_literal_list*/2);
2218:
2219: }
2220: return CUP$result;
2221:
2222: /*. . . . . . . . . . . . . . . . . . . .*/
2223: case 233: // string_literal_list ::= string_literal
2224: {
2225: CUP$result = new org.jacorb.idl.runtime.symbol(
2226: /*string_literal_list*/2);
2227:
2228: }
2229: return CUP$result;
2230:
2231: /*. . . . . . . . . . . . . . . . . . . .*/
2232: case 232: // context_expr ::= empty
2233: {
2234: CUP$result = new org.jacorb.idl.runtime.symbol(
2235: /*context_expr*/1);
2236:
2237: }
2238: return CUP$result;
2239:
2240: /*. . . . . . . . . . . . . . . . . . . .*/
2241: case 231: // context_expr ::= CONTEXT LPAREN string_literal_list RPAREN
2242: {
2243: CUP$result = new org.jacorb.idl.runtime.symbol(
2244: /*context_expr*/1);
2245:
2246: }
2247: return CUP$result;
2248:
2249: /*. . . . . . . . . . . . . . . . . . . .*/
2250: case 230: // raises_expr_nonempty ::= RAISES LPAREN scopename_list RPAREN
2251: {
2252: CUP$result = new RaisesExpr(/*raises_expr_nonempty*/83);
2253:
2254: ((RaisesExpr) CUP$result).nameList = (Vector) (/*snl*/(SymbolList) CUP$stack
2255: .elementAt(CUP$top - 1)).v.clone();
2256:
2257: }
2258: return CUP$result;
2259:
2260: /*. . . . . . . . . . . . . . . . . . . .*/
2261: case 229: // raises_expr ::= empty
2262: {
2263: CUP$result = new RaisesExpr(/*raises_expr*/82);
2264:
2265: }
2266: return CUP$result;
2267:
2268: /*. . . . . . . . . . . . . . . . . . . .*/
2269: case 228: // raises_expr ::= RAISES LPAREN scopename_list RPAREN
2270: {
2271: CUP$result = new RaisesExpr(/*raises_expr*/82);
2272:
2273: ((RaisesExpr) CUP$result).nameList = (Vector) (/*snl*/(SymbolList) CUP$stack
2274: .elementAt(CUP$top - 1)).v.clone();
2275:
2276: }
2277: return CUP$result;
2278:
2279: /*. . . . . . . . . . . . . . . . . . . .*/
2280: case 227: // param_attribute ::= INOUT
2281: {
2282: CUP$result = new org.jacorb.idl.runtime.int_token(
2283: /*param_attribute*/5);
2284: ((org.jacorb.idl.runtime.int_token) CUP$result).int_val = ParamDecl.MODE_INOUT;
2285: }
2286: return CUP$result;
2287:
2288: /*. . . . . . . . . . . . . . . . . . . .*/
2289: case 226: // param_attribute ::= OUT
2290: {
2291: CUP$result = new org.jacorb.idl.runtime.int_token(
2292: /*param_attribute*/5);
2293: ((org.jacorb.idl.runtime.int_token) CUP$result).int_val = ParamDecl.MODE_OUT;
2294: }
2295: return CUP$result;
2296:
2297: /*. . . . . . . . . . . . . . . . . . . .*/
2298: case 225: // param_attribute ::= IN
2299: {
2300: CUP$result = new org.jacorb.idl.runtime.int_token(
2301: /*param_attribute*/5);
2302: ((org.jacorb.idl.runtime.int_token) CUP$result).int_val = ParamDecl.MODE_IN;
2303: }
2304: return CUP$result;
2305:
2306: /*. . . . . . . . . . . . . . . . . . . .*/
2307: case 224: // param_dcl ::= param_attribute param_type_spec simple_declarator
2308: {
2309: CUP$result = new ParamDecl(/*param_dcl*/81);
2310:
2311: ((ParamDecl) CUP$result).paramAttribute = (/*pa*/(org.jacorb.idl.runtime.int_token) CUP$stack
2312: .elementAt(CUP$top - 2)).int_val;
2313: ((ParamDecl) CUP$result).paramTypeSpec = (/*pts*/(TypeSpec) CUP$stack
2314: .elementAt(CUP$top - 1));
2315: ((ParamDecl) CUP$result).simple_declarator = (/*sd*/(SimpleDeclarator) CUP$stack
2316: .elementAt(CUP$top - 0));
2317:
2318: }
2319: return CUP$result;
2320:
2321: /*. . . . . . . . . . . . . . . . . . . .*/
2322: case 223: // param_dcls ::= param_dcl
2323: {
2324: CUP$result = new SymbolList(/*param_dcls*/89);
2325:
2326: ((SymbolList) CUP$result).v.insertElementAt(
2327: (/*pd*/(ParamDecl) CUP$stack
2328: .elementAt(CUP$top - 0)), 0);
2329:
2330: }
2331: return CUP$result;
2332:
2333: /*. . . . . . . . . . . . . . . . . . . .*/
2334: case 222: // param_dcls ::= param_dcl COMMA param_dcls
2335: {
2336: CUP$result = new SymbolList(/*param_dcls*/89);
2337:
2338: ((SymbolList) CUP$result).v = (Vector) (/*pds*/(SymbolList) CUP$stack
2339: .elementAt(CUP$top - 0)).v.clone();
2340: ((SymbolList) CUP$result).v.insertElementAt(
2341: (/*pd*/(ParamDecl) CUP$stack
2342: .elementAt(CUP$top - 2)), 0);
2343:
2344: }
2345: return CUP$result;
2346:
2347: /*. . . . . . . . . . . . . . . . . . . .*/
2348: case 221: // parameter_dcls ::= LPAREN RPAREN
2349: {
2350: CUP$result = new SymbolList(/*parameter_dcls*/91);
2351:
2352: }
2353: return CUP$result;
2354:
2355: /*. . . . . . . . . . . . . . . . . . . .*/
2356: case 220: // parameter_dcls ::= LPAREN param_dcls RPAREN
2357: {
2358: CUP$result = new SymbolList(/*parameter_dcls*/91);
2359:
2360: ((SymbolList) CUP$result).v = (Vector) (/*pds*/(SymbolList) CUP$stack
2361: .elementAt(CUP$top - 1)).v.clone();
2362:
2363: }
2364: return CUP$result;
2365:
2366: /*. . . . . . . . . . . . . . . . . . . .*/
2367: case 219: // void_type_spec ::= VOID
2368: {
2369: CUP$result = new VoidTypeSpec(/*void_type_spec*/70);
2370:
2371: }
2372: return CUP$result;
2373:
2374: /*. . . . . . . . . . . . . . . . . . . .*/
2375: case 218: // op_type_spec ::= void_type_spec
2376: {
2377: CUP$result = new TypeSpec(/*op_type_spec*/42);
2378: ((TypeSpec) CUP$result).type_spec = (/*s*/(VoidTypeSpec) CUP$stack
2379: .elementAt(CUP$top - 0));
2380: }
2381: return CUP$result;
2382:
2383: /*. . . . . . . . . . . . . . . . . . . .*/
2384: case 217: // op_type_spec ::= param_type_spec
2385: {
2386: CUP$result = new TypeSpec(/*op_type_spec*/42);
2387: ((TypeSpec) CUP$result).type_spec = (/*s*/(TypeSpec) CUP$stack
2388: .elementAt(CUP$top - 0));
2389: }
2390: return CUP$result;
2391:
2392: /*. . . . . . . . . . . . . . . . . . . .*/
2393: case 216: // op_attribute ::= empty
2394: {
2395: CUP$result = new org.jacorb.idl.runtime.int_token(
2396: /*op_attribute*/4);
2397: ((org.jacorb.idl.runtime.int_token) CUP$result).int_val = OpDecl.NO_ATTRIBUTE;
2398: }
2399: return CUP$result;
2400:
2401: /*. . . . . . . . . . . . . . . . . . . .*/
2402: case 215: // op_attribute ::= ONEWAY
2403: {
2404: CUP$result = new org.jacorb.idl.runtime.int_token(
2405: /*op_attribute*/4);
2406: ((org.jacorb.idl.runtime.int_token) CUP$result).int_val = OpDecl.ONEWAY;
2407: }
2408: return CUP$result;
2409:
2410: /*. . . . . . . . . . . . . . . . . . . .*/
2411: case 214: // op_dcl ::= op_attribute op_type_spec ID parameter_dcls raises_expr context_expr
2412: {
2413: CUP$result = new OpDecl(/*op_dcl*/84);
2414:
2415: ((OpDecl) CUP$result).opAttribute = (/*oa*/(org.jacorb.idl.runtime.int_token) CUP$stack
2416: .elementAt(CUP$top - 5)).int_val;
2417: ((OpDecl) CUP$result).opTypeSpec = (/*ots*/(TypeSpec) CUP$stack
2418: .elementAt(CUP$top - 4));
2419: ((OpDecl) CUP$result)
2420: .set_token((/*i*/(org.jacorb.idl.str_token) CUP$stack
2421: .elementAt(CUP$top - 3)));
2422: ((OpDecl) CUP$result).paramDecls = (Vector) (/*pds*/(SymbolList) CUP$stack
2423: .elementAt(CUP$top - 2)).v.clone();
2424: ((OpDecl) CUP$result).raisesExpr = (/*re*/(RaisesExpr) CUP$stack
2425: .elementAt(CUP$top - 1));
2426:
2427: }
2428: return CUP$result;
2429:
2430: /*. . . . . . . . . . . . . . . . . . . .*/
2431: case 213: // except_dcl ::= EXCEPTION ID LCBRACE member_list RCBRACE
2432: {
2433: CUP$result = new StructType(/*except_dcl*/51);
2434:
2435: ((StructType) CUP$result)
2436: .set_token((/*i*/(org.jacorb.idl.str_token) CUP$stack
2437: .elementAt(CUP$top - 3)));
2438: ((StructType) CUP$result).exc = true;
2439: ((StructType) CUP$result)
2440: .set_memberlist((/*ml*/(MemberList) CUP$stack
2441: .elementAt(CUP$top - 1)));
2442: ((StructType) CUP$result)
2443: .set_included(parser.include_state);
2444: parser.closeScope((Scope) ((StructType) CUP$result));
2445:
2446: }
2447: return CUP$result;
2448:
2449: /*. . . . . . . . . . . . . . . . . . . .*/
2450: case 212: // except_dcl ::= EXCEPTION ID LCBRACE RCBRACE
2451: {
2452: CUP$result = new StructType(/*except_dcl*/51);
2453:
2454: ((StructType) CUP$result)
2455: .set_token((/*i*/(org.jacorb.idl.str_token) CUP$stack
2456: .elementAt(CUP$top - 2)));
2457: ((StructType) CUP$result).exc = true;
2458: ((StructType) CUP$result)
2459: .set_included(parser.include_state);
2460: parser.closeScope((Scope) ((StructType) CUP$result));
2461:
2462: }
2463: return CUP$result;
2464:
2465: /*. . . . . . . . . . . . . . . . . . . .*/
2466: case 211: // simple_declarator_list ::= simple_declarator COMMA simple_declarator_list
2467: {
2468: CUP$result = new SymbolList(/*simple_declarator_list*/93);
2469:
2470: ((SymbolList) CUP$result).v = (Vector) (/*sdl*/(SymbolList) CUP$stack
2471: .elementAt(CUP$top - 0)).v.clone();
2472: ((SymbolList) CUP$result).v.insertElementAt(
2473: (/*sd*/(SimpleDeclarator) CUP$stack
2474: .elementAt(CUP$top - 2)), 0);
2475:
2476: }
2477: return CUP$result;
2478:
2479: /*. . . . . . . . . . . . . . . . . . . .*/
2480: case 210: // simple_declarator_list ::= simple_declarator
2481: {
2482: CUP$result = new SymbolList(/*simple_declarator_list*/93);
2483:
2484: ((SymbolList) CUP$result).v.insertElementAt(
2485: (/*sd*/(SimpleDeclarator) CUP$stack
2486: .elementAt(CUP$top - 0)), 0);
2487:
2488: }
2489: return CUP$result;
2490:
2491: /*. . . . . . . . . . . . . . . . . . . .*/
2492: case 209: // attr_raises_expr ::= SETRAISES LPAREN scopename_list RPAREN
2493: {
2494: CUP$result = new AttrRaisesExpr(/*attr_raises_expr*/86);
2495:
2496: ((AttrRaisesExpr) CUP$result).setNameList = (Vector) (/*set_snl*/(SymbolList) CUP$stack
2497: .elementAt(CUP$top - 1)).v.clone();
2498:
2499: }
2500: return CUP$result;
2501:
2502: /*. . . . . . . . . . . . . . . . . . . .*/
2503: case 208: // attr_raises_expr ::= GETRAISES LPAREN scopename_list RPAREN
2504: {
2505: CUP$result = new AttrRaisesExpr(/*attr_raises_expr*/86);
2506:
2507: ((AttrRaisesExpr) CUP$result).getNameList = (Vector) (/*get_snl*/(SymbolList) CUP$stack
2508: .elementAt(CUP$top - 1)).v.clone();
2509:
2510: }
2511: return CUP$result;
2512:
2513: /*. . . . . . . . . . . . . . . . . . . .*/
2514: case 207: // attr_raises_expr ::= SETRAISES LPAREN scopename_list RPAREN GETRAISES LPAREN scopename_list RPAREN
2515: {
2516: CUP$result = new AttrRaisesExpr(/*attr_raises_expr*/86);
2517:
2518: ((AttrRaisesExpr) CUP$result).getNameList = (Vector) (/*get_snl*/(SymbolList) CUP$stack
2519: .elementAt(CUP$top - 1)).v.clone();
2520: ((AttrRaisesExpr) CUP$result).setNameList = (Vector) (/*set_snl*/(SymbolList) CUP$stack
2521: .elementAt(CUP$top - 5)).v.clone();
2522:
2523: }
2524: return CUP$result;
2525:
2526: /*. . . . . . . . . . . . . . . . . . . .*/
2527: case 206: // attr_raises_expr ::= GETRAISES LPAREN scopename_list RPAREN SETRAISES LPAREN scopename_list RPAREN
2528: {
2529: CUP$result = new AttrRaisesExpr(/*attr_raises_expr*/86);
2530:
2531: ((AttrRaisesExpr) CUP$result).getNameList = (Vector) (/*get_snl*/(SymbolList) CUP$stack
2532: .elementAt(CUP$top - 5)).v.clone();
2533: ((AttrRaisesExpr) CUP$result).setNameList = (Vector) (/*set_snl*/(SymbolList) CUP$stack
2534: .elementAt(CUP$top - 1)).v.clone();
2535:
2536: }
2537: return CUP$result;
2538:
2539: /*. . . . . . . . . . . . . . . . . . . .*/
2540: case 205: // attr_dcl ::= ATTRIBUTE param_type_spec simple_declarator attr_raises_expr
2541: {
2542: CUP$result = new AttrDecl(/*attr_dcl*/85);
2543:
2544: ((AttrDecl) CUP$result).readOnly = false;
2545: ((AttrDecl) CUP$result).param_type_spec = (/*pts*/(TypeSpec) CUP$stack
2546: .elementAt(CUP$top - 2));
2547: ((AttrDecl) CUP$result).declarators = new SymbolList(
2548: (/*sd*/(SimpleDeclarator) CUP$stack
2549: .elementAt(CUP$top - 1)));
2550: ((AttrDecl) CUP$result).getRaisesExpr = new RaisesExpr(
2551: (/*are*/(AttrRaisesExpr) CUP$stack
2552: .elementAt(CUP$top - 0)).getNameList);
2553: ((AttrDecl) CUP$result).setRaisesExpr = new RaisesExpr(
2554: (/*are*/(AttrRaisesExpr) CUP$stack
2555: .elementAt(CUP$top - 0)).setNameList);
2556:
2557: }
2558: return CUP$result;
2559:
2560: /*. . . . . . . . . . . . . . . . . . . .*/
2561: case 204: // attr_dcl ::= ATTRIBUTE param_type_spec simple_declarator_list
2562: {
2563: CUP$result = new AttrDecl(/*attr_dcl*/85);
2564:
2565: ((AttrDecl) CUP$result).readOnly = false;
2566: ((AttrDecl) CUP$result).param_type_spec = (/*pts*/(TypeSpec) CUP$stack
2567: .elementAt(CUP$top - 1));
2568: ((AttrDecl) CUP$result).declarators = (/*sdl*/(SymbolList) CUP$stack
2569: .elementAt(CUP$top - 0));
2570: ((AttrDecl) CUP$result).getRaisesExpr = new RaisesExpr();
2571: ((AttrDecl) CUP$result).setRaisesExpr = new RaisesExpr();
2572:
2573: }
2574: return CUP$result;
2575:
2576: /*. . . . . . . . . . . . . . . . . . . .*/
2577: case 203: // attr_dcl ::= READONLY ATTRIBUTE param_type_spec simple_declarator raises_expr_nonempty
2578: {
2579: CUP$result = new AttrDecl(/*attr_dcl*/85);
2580:
2581: ((AttrDecl) CUP$result).readOnly = true;
2582: ((AttrDecl) CUP$result).param_type_spec = (/*pts*/(TypeSpec) CUP$stack
2583: .elementAt(CUP$top - 2));
2584: ((AttrDecl) CUP$result).declarators = new SymbolList(
2585: (/*sd*/(SimpleDeclarator) CUP$stack
2586: .elementAt(CUP$top - 1)));
2587: ((AttrDecl) CUP$result).getRaisesExpr = (/*re*/(RaisesExpr) CUP$stack
2588: .elementAt(CUP$top - 0));
2589: ((AttrDecl) CUP$result).setRaisesExpr = new RaisesExpr();
2590:
2591: }
2592: return CUP$result;
2593:
2594: /*. . . . . . . . . . . . . . . . . . . .*/
2595: case 202: // attr_dcl ::= READONLY ATTRIBUTE param_type_spec simple_declarator_list
2596: {
2597: CUP$result = new AttrDecl(/*attr_dcl*/85);
2598:
2599: ((AttrDecl) CUP$result).readOnly = true;
2600: ((AttrDecl) CUP$result).param_type_spec = (/*pts*/(TypeSpec) CUP$stack
2601: .elementAt(CUP$top - 1));
2602: ((AttrDecl) CUP$result).declarators = (/*sdl*/(SymbolList) CUP$stack
2603: .elementAt(CUP$top - 0));
2604: ((AttrDecl) CUP$result).getRaisesExpr = new RaisesExpr();
2605: ((AttrDecl) CUP$result).setRaisesExpr = new RaisesExpr();
2606:
2607: }
2608: return CUP$result;
2609:
2610: /*. . . . . . . . . . . . . . . . . . . .*/
2611: case 201: // fixed_array_size ::= LSBRACE positive_int_const RSBRACE
2612: {
2613: CUP$result = new FixedArraySize(/*fixed_array_size*/80);
2614:
2615: ((FixedArraySize) CUP$result).pos_int_const = (/*pic*/(PosIntConst) CUP$stack
2616: .elementAt(CUP$top - 1));
2617:
2618: }
2619: return CUP$result;
2620:
2621: /*. . . . . . . . . . . . . . . . . . . .*/
2622: case 200: // fixed_array_size_list ::= fixed_array_size fixed_array_size_list
2623: {
2624: CUP$result = new SymbolList(/*fixed_array_size_list*/97);
2625:
2626: ((SymbolList) CUP$result).v = (Vector) (/*fasl*/(SymbolList) CUP$stack
2627: .elementAt(CUP$top - 0)).v.clone();
2628: ((SymbolList) CUP$result).v.insertElementAt(
2629: (/*fas*/(FixedArraySize) CUP$stack
2630: .elementAt(CUP$top - 1)), 0);
2631:
2632: }
2633: return CUP$result;
2634:
2635: /*. . . . . . . . . . . . . . . . . . . .*/
2636: case 199: // fixed_array_size_list ::= fixed_array_size
2637: {
2638: CUP$result = new SymbolList(/*fixed_array_size_list*/97);
2639:
2640: ((SymbolList) CUP$result).v.insertElementAt(
2641: (/*fas*/(FixedArraySize) CUP$stack
2642: .elementAt(CUP$top - 0)), 0);
2643:
2644: }
2645: return CUP$result;
2646:
2647: /*. . . . . . . . . . . . . . . . . . . .*/
2648: case 198: // array_declarator ::= ID fixed_array_size_list
2649: {
2650: CUP$result = new ArrayDeclarator(/*array_declarator*/79);
2651:
2652: ((ArrayDeclarator) CUP$result)
2653: .set_token((/*i*/(org.jacorb.idl.str_token) CUP$stack
2654: .elementAt(CUP$top - 1)));
2655: ((ArrayDeclarator) CUP$result).fixed_array_size_list = (/*fasl*/(SymbolList) CUP$stack
2656: .elementAt(CUP$top - 0));
2657:
2658: }
2659: return CUP$result;
2660:
2661: /*. . . . . . . . . . . . . . . . . . . .*/
2662: case 197: // fixed_point_type ::= FIXED LESSTHAN positive_int_const COMMA positive_int_const GREATERTHAN
2663: {
2664: CUP$result = new FixedPointType(/*fixed_point_type*/73);
2665:
2666: ((FixedPointType) CUP$result).digit_expr = (/*digits*/(PosIntConst) CUP$stack
2667: .elementAt(CUP$top - 3)).const_expr;
2668: ((FixedPointType) CUP$result).scale_expr = (/*scale*/(PosIntConst) CUP$stack
2669: .elementAt(CUP$top - 1)).const_expr;
2670:
2671: }
2672: return CUP$result;
2673:
2674: /*. . . . . . . . . . . . . . . . . . . .*/
2675: case 196: // string_type ::= WSTRING
2676: {
2677: CUP$result = new StringType(/*string_type*/71);
2678: ((StringType) CUP$result).setWide();
2679: }
2680: return CUP$result;
2681:
2682: /*. . . . . . . . . . . . . . . . . . . .*/
2683: case 195: // string_type ::= STRING
2684: {
2685: CUP$result = new StringType(/*string_type*/71);
2686:
2687: }
2688: return CUP$result;
2689:
2690: /*. . . . . . . . . . . . . . . . . . . .*/
2691: case 194: // string_type ::= WSTRING LESSTHAN positive_int_const GREATERTHAN
2692: {
2693: CUP$result = new StringType(/*string_type*/71);
2694:
2695: ((StringType) CUP$result)
2696: .setSize((/*pic*/(PosIntConst) CUP$stack
2697: .elementAt(CUP$top - 1)).const_expr);
2698: ((StringType) CUP$result).setWide();
2699:
2700: }
2701: return CUP$result;
2702:
2703: /*. . . . . . . . . . . . . . . . . . . .*/
2704: case 193: // string_type ::= STRING LESSTHAN positive_int_const GREATERTHAN
2705: {
2706: CUP$result = new StringType(/*string_type*/71);
2707:
2708: ((StringType) CUP$result)
2709: .setSize((/*pic*/(PosIntConst) CUP$stack
2710: .elementAt(CUP$top - 1)).const_expr);
2711:
2712: }
2713: return CUP$result;
2714:
2715: /*. . . . . . . . . . . . . . . . . . . .*/
2716: case 192: // sequence_type ::= SEQUENCE LESSTHAN simple_type_spec GREATERTHAN
2717: {
2718: CUP$result = new SequenceType(/*sequence_type*/72);
2719:
2720: ((SequenceType) CUP$result)
2721: .setTypeSpec((/*sts*/(SimpleTypeSpec) CUP$stack
2722: .elementAt(CUP$top - 1)));
2723:
2724: }
2725: return CUP$result;
2726:
2727: /*. . . . . . . . . . . . . . . . . . . .*/
2728: case 191: // sequence_type ::= SEQUENCE LESSTHAN simple_type_spec COMMA positive_int_const GREATERTHAN
2729: {
2730: CUP$result = new SequenceType(/*sequence_type*/72);
2731:
2732: ((SequenceType) CUP$result).max = (/*pic*/(PosIntConst) CUP$stack
2733: .elementAt(CUP$top - 1)).const_expr;
2734: ((SequenceType) CUP$result)
2735: .setTypeSpec((/*sts*/(SimpleTypeSpec) CUP$stack
2736: .elementAt(CUP$top - 3)));
2737:
2738: }
2739: return CUP$result;
2740:
2741: /*. . . . . . . . . . . . . . . . . . . .*/
2742: case 190: // native_type ::= NATIVE simple_declarator
2743: {
2744: CUP$result = new NativeType(/*native_type*/53);
2745:
2746: ((NativeType) CUP$result).declarator = (/*sd*/(SimpleDeclarator) CUP$stack
2747: .elementAt(CUP$top - 0));
2748:
2749: }
2750: return CUP$result;
2751:
2752: /*. . . . . . . . . . . . . . . . . . . .*/
2753: case 189: // enumerator_list ::= ID COMMA enumerator_list
2754: {
2755: CUP$result = new SymbolList(/*enumerator_list*/96);
2756:
2757: ((SymbolList) CUP$result).v = (Vector) (/*el*/(SymbolList) CUP$stack
2758: .elementAt(CUP$top - 0)).v.clone();
2759: ((SymbolList) CUP$result).v.insertElementAt(
2760: (/*i*/(org.jacorb.idl.str_token) CUP$stack
2761: .elementAt(CUP$top - 2)).str_val, 0);
2762: ((SymbolList) CUP$result)
2763: .set_token((/*i*/(org.jacorb.idl.str_token) CUP$stack
2764: .elementAt(CUP$top - 2)));
2765:
2766: }
2767: return CUP$result;
2768:
2769: /*. . . . . . . . . . . . . . . . . . . .*/
2770: case 188: // enumerator_list ::= ID
2771: {
2772: CUP$result = new SymbolList(/*enumerator_list*/96);
2773:
2774: ((SymbolList) CUP$result).v.insertElementAt(
2775: (/*i*/(org.jacorb.idl.str_token) CUP$stack
2776: .elementAt(CUP$top - 0)).str_val, 0);
2777: ((SymbolList) CUP$result)
2778: .set_token((/*i*/(org.jacorb.idl.str_token) CUP$stack
2779: .elementAt(CUP$top - 0)));
2780:
2781: }
2782: return CUP$result;
2783:
2784: /*. . . . . . . . . . . . . . . . . . . .*/
2785: case 187: // enum_type ::= ENUM ID LCBRACE enumerator_list RCBRACE
2786: {
2787: CUP$result = new EnumType(/*enum_type*/49);
2788:
2789: ((EnumType) CUP$result)
2790: .set_token((/*i*/(org.jacorb.idl.str_token) CUP$stack
2791: .elementAt(CUP$top - 3)));
2792: ((EnumType) CUP$result).enumlist = (/*el*/(SymbolList) CUP$stack
2793: .elementAt(CUP$top - 1));
2794: ((EnumType) CUP$result).set_included(parser.include_state);
2795:
2796: }
2797: return CUP$result;
2798:
2799: /*. . . . . . . . . . . . . . . . . . . .*/
2800: case 186: // element_spec ::= type_spec declarator
2801: {
2802: CUP$result = new ElementSpec(/*element_spec*/56);
2803:
2804: ((ElementSpec) CUP$result).typeSpec.type_spec = (/*ts*/(TypeSpec) CUP$stack
2805: .elementAt(CUP$top - 1));
2806: ((ElementSpec) CUP$result).declarator = (/*dc*/(Declarator) CUP$stack
2807: .elementAt(CUP$top - 0));
2808:
2809: }
2810: return CUP$result;
2811:
2812: /*. . . . . . . . . . . . . . . . . . . .*/
2813: case 185: // case_label_list ::= DEFAULT COLON case_label_list
2814: {
2815: CUP$result = new SymbolList(/*case_label_list*/88);
2816:
2817: ((SymbolList) CUP$result).v = (Vector) (/*cll*/(SymbolList) CUP$stack
2818: .elementAt(CUP$top - 0)).v.clone();
2819: ((SymbolList) CUP$result).v.addElement(null);
2820:
2821: }
2822: return CUP$result;
2823:
2824: /*. . . . . . . . . . . . . . . . . . . .*/
2825: case 184: // case_label_list ::= CASE const_expr COLON case_label_list
2826: {
2827: CUP$result = new SymbolList(/*case_label_list*/88);
2828:
2829: ((SymbolList) CUP$result).v = (Vector) (/*cll*/(SymbolList) CUP$stack
2830: .elementAt(CUP$top - 0)).v.clone();
2831: ((SymbolList) CUP$result).v
2832: .addElement((/*c*/(ConstExpr) CUP$stack
2833: .elementAt(CUP$top - 2)));
2834:
2835: }
2836: return CUP$result;
2837:
2838: /*. . . . . . . . . . . . . . . . . . . .*/
2839: case 183: // case_label_list ::= DEFAULT COLON
2840: {
2841: CUP$result = new SymbolList(/*case_label_list*/88);
2842: ((SymbolList) CUP$result).v.addElement(null);
2843: }
2844: return CUP$result;
2845:
2846: /*. . . . . . . . . . . . . . . . . . . .*/
2847: case 182: // case_label_list ::= CASE const_expr COLON
2848: {
2849: CUP$result = new SymbolList(/*case_label_list*/88);
2850: ((SymbolList) CUP$result).v
2851: .addElement((/*c*/(ConstExpr) CUP$stack
2852: .elementAt(CUP$top - 1)));
2853: }
2854: return CUP$result;
2855:
2856: /*. . . . . . . . . . . . . . . . . . . .*/
2857: case 181: // case ::= case_label_list element_spec SEMI
2858: {
2859: CUP$result = new Case(/*case*/55);
2860:
2861: ((Case) CUP$result).element_spec = (/*es*/(ElementSpec) CUP$stack
2862: .elementAt(CUP$top - 1));
2863: ((Case) CUP$result).case_label_list = (/*c*/(SymbolList) CUP$stack
2864: .elementAt(CUP$top - 2));
2865:
2866: }
2867: return CUP$result;
2868:
2869: /*. . . . . . . . . . . . . . . . . . . .*/
2870: case 180: // switch_body ::= case switch_body
2871: {
2872: CUP$result = new SwitchBody(/*switch_body*/54);
2873:
2874: ((SwitchBody) CUP$result).caseListVector = (Vector) (/*sb*/(SwitchBody) CUP$stack
2875: .elementAt(CUP$top - 0)).caseListVector.clone();
2876: ((SwitchBody) CUP$result).caseListVector.insertElementAt(
2877: (/*c*/(Case) CUP$stack.elementAt(CUP$top - 1)), 0);
2878:
2879: }
2880: return CUP$result;
2881:
2882: /*. . . . . . . . . . . . . . . . . . . .*/
2883: case 179: // switch_body ::= case
2884: {
2885: CUP$result = new SwitchBody(/*switch_body*/54);
2886:
2887: ((SwitchBody) CUP$result).caseListVector.insertElementAt(
2888: (/*c*/(Case) CUP$stack.elementAt(CUP$top - 0)), 0);
2889:
2890: }
2891: return CUP$result;
2892:
2893: /*. . . . . . . . . . . . . . . . . . . .*/
2894: case 178: // switch_type_spec ::= scopename
2895: {
2896: CUP$result = new TypeSpec(/*switch_type_spec*/44);
2897: ((TypeSpec) CUP$result).type_spec = (/*s*/(ScopedName) CUP$stack
2898: .elementAt(CUP$top - 0));
2899: }
2900: return CUP$result;
2901:
2902: /*. . . . . . . . . . . . . . . . . . . .*/
2903: case 177: // switch_type_spec ::= enum_type
2904: {
2905: CUP$result = new TypeSpec(/*switch_type_spec*/44);
2906: ((TypeSpec) CUP$result)
2907: .set_constr((/*e*/(EnumType) CUP$stack
2908: .elementAt(CUP$top - 0)));
2909: }
2910: return CUP$result;
2911:
2912: /*. . . . . . . . . . . . . . . . . . . .*/
2913: case 176: // switch_type_spec ::= bool_type
2914: {
2915: CUP$result = new TypeSpec(/*switch_type_spec*/44);
2916: ((TypeSpec) CUP$result).type_spec = (/*b*/(BooleanType) CUP$stack
2917: .elementAt(CUP$top - 0));
2918: }
2919: return CUP$result;
2920:
2921: /*. . . . . . . . . . . . . . . . . . . .*/
2922: case 175: // switch_type_spec ::= char_type
2923: {
2924: CUP$result = new TypeSpec(/*switch_type_spec*/44);
2925: ((TypeSpec) CUP$result).type_spec = (/*c*/(CharType) CUP$stack
2926: .elementAt(CUP$top - 0));
2927: }
2928: return CUP$result;
2929:
2930: /*. . . . . . . . . . . . . . . . . . . .*/
2931: case 174: // switch_type_spec ::= int_type
2932: {
2933: CUP$result = new TypeSpec(/*switch_type_spec*/44);
2934: ((TypeSpec) CUP$result).type_spec = (/*i*/(IntType) CUP$stack
2935: .elementAt(CUP$top - 0));
2936: }
2937: return CUP$result;
2938:
2939: /*. . . . . . . . . . . . . . . . . . . .*/
2940: case 173: // union_type ::= UNION ID
2941: {
2942: CUP$result = new UnionType(/*union_type*/52);
2943:
2944: ((UnionType) CUP$result)
2945: .set_token((/*i*/(org.jacorb.idl.str_token) CUP$stack
2946: .elementAt(CUP$top - 0)));
2947: parser.closeScope((Scope) ((UnionType) CUP$result));
2948:
2949: }
2950: return CUP$result;
2951:
2952: /*. . . . . . . . . . . . . . . . . . . .*/
2953: case 172: // union_type ::= UNION ID SWITCH LPAREN switch_type_spec RPAREN LCBRACE switch_body RCBRACE
2954: {
2955: CUP$result = new UnionType(/*union_type*/52);
2956:
2957: ((UnionType) CUP$result)
2958: .setSwitchType((/*s*/(TypeSpec) CUP$stack
2959: .elementAt(CUP$top - 4)));
2960: ((UnionType) CUP$result)
2961: .setSwitchBody((/*sb*/(SwitchBody) CUP$stack
2962: .elementAt(CUP$top - 1)));
2963: ((UnionType) CUP$result)
2964: .set_token((/*i*/(org.jacorb.idl.str_token) CUP$stack
2965: .elementAt(CUP$top - 7)));
2966: ((UnionType) CUP$result).set_included(parser.include_state);
2967: parser.closeScope((Scope) ((UnionType) CUP$result));
2968:
2969: }
2970: return CUP$result;
2971:
2972: /*. . . . . . . . . . . . . . . . . . . .*/
2973: case 171: // member ::= type_spec declarators SEMI
2974: {
2975: CUP$result = new Member(/*member*/76);
2976:
2977: ((Member) CUP$result).type_spec = (/*ts*/(TypeSpec) CUP$stack
2978: .elementAt(CUP$top - 2));
2979: ((Member) CUP$result).declarators = (/*ds*/(SymbolList) CUP$stack
2980: .elementAt(CUP$top - 1));
2981:
2982: }
2983: return CUP$result;
2984:
2985: /*. . . . . . . . . . . . . . . . . . . .*/
2986: case 170: // member_list ::= member member_list
2987: {
2988: CUP$result = new MemberList(/*member_list*/87);
2989:
2990: ((MemberList) CUP$result).v = (Vector) (/*ml*/(MemberList) CUP$stack
2991: .elementAt(CUP$top - 0)).v.clone();
2992: ((MemberList) CUP$result).v.insertElementAt(
2993: (/*m*/(Member) CUP$stack.elementAt(CUP$top - 1)),
2994: 0);
2995:
2996: }
2997: return CUP$result;
2998:
2999: /*. . . . . . . . . . . . . . . . . . . .*/
3000: case 169: // member_list ::= member
3001: {
3002: CUP$result = new MemberList(/*member_list*/87);
3003:
3004: ((MemberList) CUP$result).v.insertElementAt(
3005: (/*m*/(Member) CUP$stack.elementAt(CUP$top - 0)),
3006: 0);
3007:
3008: }
3009: return CUP$result;
3010:
3011: /*. . . . . . . . . . . . . . . . . . . .*/
3012: case 168: // struct_type ::= STRUCT ID
3013: {
3014: CUP$result = new StructType(/*struct_type*/50);
3015:
3016: ((StructType) CUP$result)
3017: .set_token((/*i*/(org.jacorb.idl.str_token) CUP$stack
3018: .elementAt(CUP$top - 0)));
3019: parser.closeScope((Scope) ((StructType) CUP$result));
3020:
3021: }
3022: return CUP$result;
3023:
3024: /*. . . . . . . . . . . . . . . . . . . .*/
3025: case 167: // struct_type ::= STRUCT ID LCBRACE member_list RCBRACE
3026: {
3027: CUP$result = new StructType(/*struct_type*/50);
3028:
3029: ((StructType) CUP$result)
3030: .set_token((/*i*/(org.jacorb.idl.str_token) CUP$stack
3031: .elementAt(CUP$top - 3)));
3032: ((StructType) CUP$result).exc = false;
3033: ((StructType) CUP$result)
3034: .set_memberlist((/*ml*/(MemberList) CUP$stack
3035: .elementAt(CUP$top - 1)));
3036: ((StructType) CUP$result)
3037: .set_included(parser.include_state);
3038: parser.closeScope((Scope) ((StructType) CUP$result));
3039:
3040: }
3041: return CUP$result;
3042:
3043: /*. . . . . . . . . . . . . . . . . . . .*/
3044: case 166: // any_type ::= ANY
3045: {
3046: CUP$result = new AnyType(/*any_type*/69);
3047:
3048: }
3049: return CUP$result;
3050:
3051: /*. . . . . . . . . . . . . . . . . . . .*/
3052: case 165: // octet_type ::= OCTET
3053: {
3054: CUP$result = new OctetType(/*octet_type*/68);
3055:
3056: }
3057: return CUP$result;
3058:
3059: /*. . . . . . . . . . . . . . . . . . . .*/
3060: case 164: // bool_type ::= BOOLEAN
3061: {
3062: CUP$result = new BooleanType(/*bool_type*/67);
3063:
3064: }
3065: return CUP$result;
3066:
3067: /*. . . . . . . . . . . . . . . . . . . .*/
3068: case 163: // char_type ::= WCHAR
3069: {
3070: CUP$result = new CharType(/*char_type*/66);
3071: ((CharType) CUP$result).setWide();
3072: }
3073: return CUP$result;
3074:
3075: /*. . . . . . . . . . . . . . . . . . . .*/
3076: case 162: // char_type ::= CHAR
3077: {
3078: CUP$result = new CharType(/*char_type*/66);
3079:
3080: }
3081: return CUP$result;
3082:
3083: /*. . . . . . . . . . . . . . . . . . . .*/
3084: case 161: // long_long_type ::= LONG LONG
3085: {
3086: CUP$result = new LongLongType(/*long_long_type*/65);
3087:
3088: }
3089: return CUP$result;
3090:
3091: /*. . . . . . . . . . . . . . . . . . . .*/
3092: case 160: // long_type ::= LONG
3093: {
3094: CUP$result = new LongType(/*long_type*/64);
3095:
3096: }
3097: return CUP$result;
3098:
3099: /*. . . . . . . . . . . . . . . . . . . .*/
3100: case 159: // short_type ::= SHORT
3101: {
3102: CUP$result = new ShortType(/*short_type*/63);
3103:
3104: }
3105: return CUP$result;
3106:
3107: /*. . . . . . . . . . . . . . . . . . . .*/
3108: case 158: // int_type ::= UNSIGNED short_type
3109: {
3110: CUP$result = new IntType(/*int_type*/58);
3111:
3112: ((IntType) CUP$result).type_spec = (/*s*/(ShortType) CUP$stack
3113: .elementAt(CUP$top - 0));
3114: ((IntType) CUP$result).setUnsigned();
3115:
3116: }
3117: return CUP$result;
3118:
3119: /*. . . . . . . . . . . . . . . . . . . .*/
3120: case 157: // int_type ::= short_type
3121: {
3122: CUP$result = new IntType(/*int_type*/58);
3123:
3124: ((IntType) CUP$result).type_spec = (/*s*/(ShortType) CUP$stack
3125: .elementAt(CUP$top - 0));
3126:
3127: }
3128: return CUP$result;
3129:
3130: /*. . . . . . . . . . . . . . . . . . . .*/
3131: case 156: // int_type ::= UNSIGNED long_long_type
3132: {
3133: CUP$result = new IntType(/*int_type*/58);
3134:
3135: ((IntType) CUP$result).type_spec = (/*l*/(LongLongType) CUP$stack
3136: .elementAt(CUP$top - 0));
3137: ((IntType) CUP$result).setUnsigned();
3138:
3139: }
3140: return CUP$result;
3141:
3142: /*. . . . . . . . . . . . . . . . . . . .*/
3143: case 155: // int_type ::= UNSIGNED long_type
3144: {
3145: CUP$result = new IntType(/*int_type*/58);
3146:
3147: ((IntType) CUP$result).type_spec = (/*l*/(LongType) CUP$stack
3148: .elementAt(CUP$top - 0));
3149: ((IntType) CUP$result).setUnsigned();
3150:
3151: }
3152: return CUP$result;
3153:
3154: /*. . . . . . . . . . . . . . . . . . . .*/
3155: case 154: // int_type ::= long_long_type
3156: {
3157: CUP$result = new IntType(/*int_type*/58);
3158:
3159: ((IntType) CUP$result).type_spec = (/*ll*/(LongLongType) CUP$stack
3160: .elementAt(CUP$top - 0));
3161:
3162: }
3163: return CUP$result;
3164:
3165: /*. . . . . . . . . . . . . . . . . . . .*/
3166: case 153: // int_type ::= long_type
3167: {
3168: CUP$result = new IntType(/*int_type*/58);
3169:
3170: ((IntType) CUP$result).type_spec = (/*l*/(LongType) CUP$stack
3171: .elementAt(CUP$top - 0));
3172:
3173: }
3174: return CUP$result;
3175:
3176: /*. . . . . . . . . . . . . . . . . . . .*/
3177: case 152: // double_type ::= LONG DOUBLE
3178: {
3179: CUP$result = new DoubleType(/*double_type*/62);
3180:
3181: ((DoubleType) CUP$result).setLongDouble();
3182: lexer
3183: .emit_warn("IDL type long double not supported by standard IDL/Java mappings!");
3184:
3185: }
3186: return CUP$result;
3187:
3188: /*. . . . . . . . . . . . . . . . . . . .*/
3189: case 151: // double_type ::= DOUBLE
3190: {
3191: CUP$result = new DoubleType(/*double_type*/62);
3192:
3193: }
3194: return CUP$result;
3195:
3196: /*. . . . . . . . . . . . . . . . . . . .*/
3197: case 150: // fixed_pt_const_type ::= FIXED
3198: {
3199: CUP$result = new FixedPointConstType(
3200: /*fixed_pt_const_type*/61);
3201:
3202: }
3203: return CUP$result;
3204:
3205: /*. . . . . . . . . . . . . . . . . . . .*/
3206: case 149: // float_type ::= FLOAT
3207: {
3208: CUP$result = new FloatType(/*float_type*/60);
3209:
3210: }
3211: return CUP$result;
3212:
3213: /*. . . . . . . . . . . . . . . . . . . .*/
3214: case 148: // float_pt_type ::= double_type
3215: {
3216: CUP$result = new FloatPtType(/*float_pt_type*/59);
3217: ((FloatPtType) CUP$result).type_spec = (/*d*/(DoubleType) CUP$stack
3218: .elementAt(CUP$top - 0));
3219:
3220: }
3221: return CUP$result;
3222:
3223: /*. . . . . . . . . . . . . . . . . . . .*/
3224: case 147: // float_pt_type ::= float_type
3225: {
3226: CUP$result = new FloatPtType(/*float_pt_type*/59);
3227: ((FloatPtType) CUP$result).type_spec = (/*f*/(FloatType) CUP$stack
3228: .elementAt(CUP$top - 0));
3229: }
3230: return CUP$result;
3231:
3232: /*. . . . . . . . . . . . . . . . . . . .*/
3233: case 146: // simple_declarator ::= ID
3234: {
3235: CUP$result = new SimpleDeclarator(/*simple_declarator*/78);
3236:
3237: ((SimpleDeclarator) CUP$result)
3238: .set_token((/*i*/(org.jacorb.idl.str_token) CUP$stack
3239: .elementAt(CUP$top - 0)));
3240:
3241: }
3242: return CUP$result;
3243:
3244: /*. . . . . . . . . . . . . . . . . . . .*/
3245: case 145: // declarator ::= array_declarator
3246: {
3247: CUP$result = new Declarator(/*declarator*/77);
3248: ((Declarator) CUP$result).d = (/*s*/(ArrayDeclarator) CUP$stack
3249: .elementAt(CUP$top - 0));
3250: }
3251: return CUP$result;
3252:
3253: /*. . . . . . . . . . . . . . . . . . . .*/
3254: case 144: // declarator ::= simple_declarator
3255: {
3256: CUP$result = new Declarator(/*declarator*/77);
3257: ((Declarator) CUP$result).d = (/*s*/(SimpleDeclarator) CUP$stack
3258: .elementAt(CUP$top - 0));
3259: }
3260: return CUP$result;
3261:
3262: /*. . . . . . . . . . . . . . . . . . . .*/
3263: case 143: // declarators ::= declarator
3264: {
3265: CUP$result = new SymbolList(/*declarators*/94);
3266:
3267: ((SymbolList) CUP$result).v.insertElementAt(
3268: (/*d*/(Declarator) CUP$stack
3269: .elementAt(CUP$top - 0)), 0);
3270:
3271: }
3272: return CUP$result;
3273:
3274: /*. . . . . . . . . . . . . . . . . . . .*/
3275: case 142: // declarators ::= declarator COMMA declarators
3276: {
3277: CUP$result = new SymbolList(/*declarators*/94);
3278:
3279: ((SymbolList) CUP$result).v = (Vector) (/*ds*/(SymbolList) CUP$stack
3280: .elementAt(CUP$top - 0)).v.clone();
3281: ((SymbolList) CUP$result).v.insertElementAt(
3282: (/*d*/(Declarator) CUP$stack
3283: .elementAt(CUP$top - 2)), 0);
3284:
3285: }
3286: return CUP$result;
3287:
3288: /*. . . . . . . . . . . . . . . . . . . .*/
3289: case 141: // constr_type_spec ::= enum_type
3290: {
3291: CUP$result = new ConstrTypeSpec(/*constr_type_spec*/48);
3292:
3293: ((ConstrTypeSpec) CUP$result).c_type_spec = (/*e*/(EnumType) CUP$stack
3294: .elementAt(CUP$top - 0));
3295: ((ConstrTypeSpec) CUP$result)
3296: .set_token((/*e*/(EnumType) CUP$stack
3297: .elementAt(CUP$top - 0)).get_token());
3298:
3299: }
3300: return CUP$result;
3301:
3302: /*. . . . . . . . . . . . . . . . . . . .*/
3303: case 140: // constr_type_spec ::= union_type
3304: {
3305: CUP$result = new ConstrTypeSpec(/*constr_type_spec*/48);
3306:
3307: ((ConstrTypeSpec) CUP$result).c_type_spec = (/*u*/(UnionType) CUP$stack
3308: .elementAt(CUP$top - 0));
3309: ((ConstrTypeSpec) CUP$result)
3310: .set_token((/*u*/(UnionType) CUP$stack
3311: .elementAt(CUP$top - 0)).get_token());
3312:
3313: }
3314: return CUP$result;
3315:
3316: /*. . . . . . . . . . . . . . . . . . . .*/
3317: case 139: // constr_type_spec ::= struct_type
3318: {
3319: CUP$result = new ConstrTypeSpec(/*constr_type_spec*/48);
3320:
3321: ((ConstrTypeSpec) CUP$result).c_type_spec = (/*s*/(StructType) CUP$stack
3322: .elementAt(CUP$top - 0));
3323: ((ConstrTypeSpec) CUP$result)
3324: .set_token((/*s*/(StructType) CUP$stack
3325: .elementAt(CUP$top - 0)).get_token());
3326:
3327: }
3328: return CUP$result;
3329:
3330: /*. . . . . . . . . . . . . . . . . . . .*/
3331: case 138: // template_type_spec ::= fixed_point_type
3332: {
3333: CUP$result = new TemplateTypeSpec(/*template_type_spec*/47);
3334:
3335: ((TemplateTypeSpec) CUP$result).type_spec = (/*f*/(FixedPointType) CUP$stack
3336: .elementAt(CUP$top - 0));
3337: ((TemplateTypeSpec) CUP$result)
3338: .set_token((/*f*/(FixedPointType) CUP$stack
3339: .elementAt(CUP$top - 0)).get_token());
3340:
3341: }
3342: return CUP$result;
3343:
3344: /*. . . . . . . . . . . . . . . . . . . .*/
3345: case 137: // template_type_spec ::= string_type
3346: {
3347: CUP$result = new TemplateTypeSpec(/*template_type_spec*/47);
3348:
3349: ((TemplateTypeSpec) CUP$result).type_spec = (/*s*/(StringType) CUP$stack
3350: .elementAt(CUP$top - 0));
3351: ((TemplateTypeSpec) CUP$result)
3352: .set_token((/*s*/(StringType) CUP$stack
3353: .elementAt(CUP$top - 0)).get_token());
3354:
3355: }
3356: return CUP$result;
3357:
3358: /*. . . . . . . . . . . . . . . . . . . .*/
3359: case 136: // template_type_spec ::= sequence_type
3360: {
3361: CUP$result = new TemplateTypeSpec(/*template_type_spec*/47);
3362:
3363: ((TemplateTypeSpec) CUP$result).type_spec = (/*s*/(SequenceType) CUP$stack
3364: .elementAt(CUP$top - 0));
3365: ((TemplateTypeSpec) CUP$result)
3366: .set_token((/*s*/(SequenceType) CUP$stack
3367: .elementAt(CUP$top - 0)).get_token());
3368:
3369: }
3370: return CUP$result;
3371:
3372: /*. . . . . . . . . . . . . . . . . . . .*/
3373: case 135: // base_type_spec ::= VALUEBASE
3374: {
3375: CUP$result = new BaseType(/*base_type_spec*/57);
3376: ((BaseType) CUP$result).type_spec = new ValueBase(
3377: sym.VALUEBASE);
3378: }
3379: return CUP$result;
3380:
3381: /*. . . . . . . . . . . . . . . . . . . .*/
3382: case 134: // base_type_spec ::= any_type
3383: {
3384: CUP$result = new BaseType(/*base_type_spec*/57);
3385: ((BaseType) CUP$result).type_spec = (/*s*/(AnyType) CUP$stack
3386: .elementAt(CUP$top - 0));
3387: }
3388: return CUP$result;
3389:
3390: /*. . . . . . . . . . . . . . . . . . . .*/
3391: case 133: // base_type_spec ::= octet_type
3392: {
3393: CUP$result = new BaseType(/*base_type_spec*/57);
3394: ((BaseType) CUP$result).type_spec = (/*s*/(OctetType) CUP$stack
3395: .elementAt(CUP$top - 0));
3396: }
3397: return CUP$result;
3398:
3399: /*. . . . . . . . . . . . . . . . . . . .*/
3400: case 132: // base_type_spec ::= bool_type
3401: {
3402: CUP$result = new BaseType(/*base_type_spec*/57);
3403: ((BaseType) CUP$result).type_spec = (/*s*/(BooleanType) CUP$stack
3404: .elementAt(CUP$top - 0));
3405: }
3406: return CUP$result;
3407:
3408: /*. . . . . . . . . . . . . . . . . . . .*/
3409: case 131: // base_type_spec ::= char_type
3410: {
3411: CUP$result = new BaseType(/*base_type_spec*/57);
3412: ((BaseType) CUP$result).type_spec = (/*s*/(CharType) CUP$stack
3413: .elementAt(CUP$top - 0));
3414: }
3415: return CUP$result;
3416:
3417: /*. . . . . . . . . . . . . . . . . . . .*/
3418: case 130: // base_type_spec ::= int_type
3419: {
3420: CUP$result = new BaseType(/*base_type_spec*/57);
3421:
3422: ((BaseType) CUP$result).type_spec = (/*s*/(IntType) CUP$stack
3423: .elementAt(CUP$top - 0));
3424:
3425: }
3426: return CUP$result;
3427:
3428: /*. . . . . . . . . . . . . . . . . . . .*/
3429: case 129: // base_type_spec ::= float_pt_type
3430: {
3431: CUP$result = new BaseType(/*base_type_spec*/57);
3432: ((BaseType) CUP$result).type_spec = (/*s*/(FloatPtType) CUP$stack
3433: .elementAt(CUP$top - 0));
3434: }
3435: return CUP$result;
3436:
3437: /*. . . . . . . . . . . . . . . . . . . .*/
3438: case 128: // simple_type_spec ::= scopename
3439: {
3440: CUP$result = new SimpleTypeSpec(/*simple_type_spec*/46);
3441:
3442: ((SimpleTypeSpec) CUP$result).type_spec = (/*s*/(ScopedName) CUP$stack
3443: .elementAt(CUP$top - 0));
3444: ((SimpleTypeSpec) CUP$result)
3445: .set_token((/*s*/(ScopedName) CUP$stack
3446: .elementAt(CUP$top - 0)).get_token());
3447:
3448: }
3449: return CUP$result;
3450:
3451: /*. . . . . . . . . . . . . . . . . . . .*/
3452: case 127: // simple_type_spec ::= template_type_spec
3453: {
3454: CUP$result = new SimpleTypeSpec(/*simple_type_spec*/46);
3455:
3456: ((SimpleTypeSpec) CUP$result).type_spec = (/*s*/(TemplateTypeSpec) CUP$stack
3457: .elementAt(CUP$top - 0));
3458: ((SimpleTypeSpec) CUP$result)
3459: .set_token((/*s*/(TemplateTypeSpec) CUP$stack
3460: .elementAt(CUP$top - 0)).get_token());
3461:
3462: }
3463: return CUP$result;
3464:
3465: /*. . . . . . . . . . . . . . . . . . . .*/
3466: case 126: // simple_type_spec ::= base_type_spec
3467: {
3468: CUP$result = new SimpleTypeSpec(/*simple_type_spec*/46);
3469:
3470: ((SimpleTypeSpec) CUP$result).type_spec = (/*s*/(BaseType) CUP$stack
3471: .elementAt(CUP$top - 0));
3472:
3473: }
3474: return CUP$result;
3475:
3476: /*. . . . . . . . . . . . . . . . . . . .*/
3477: case 125: // type_spec ::= constr_type_spec
3478: {
3479: CUP$result = new TypeSpec(/*type_spec*/41);
3480:
3481: ((TypeSpec) CUP$result).type_spec = (/*s*/(ConstrTypeSpec) CUP$stack
3482: .elementAt(CUP$top - 0));
3483: ((TypeSpec) CUP$result)
3484: .set_token((/*s*/(ConstrTypeSpec) CUP$stack
3485: .elementAt(CUP$top - 0)).get_token());
3486:
3487: }
3488: return CUP$result;
3489:
3490: /*. . . . . . . . . . . . . . . . . . . .*/
3491: case 124: // type_spec ::= simple_type_spec
3492: {
3493: CUP$result = new TypeSpec(/*type_spec*/41);
3494:
3495: ((TypeSpec) CUP$result).type_spec = (/*s*/(SimpleTypeSpec) CUP$stack
3496: .elementAt(CUP$top - 0));
3497: ((TypeSpec) CUP$result)
3498: .set_token((/*s*/(SimpleTypeSpec) CUP$stack
3499: .elementAt(CUP$top - 0)).get_token());
3500:
3501: }
3502: return CUP$result;
3503:
3504: /*. . . . . . . . . . . . . . . . . . . .*/
3505: case 123: // type_declarator ::= type_spec declarators
3506: {
3507: CUP$result = new TypeDeclarator(/*type_declarator*/40);
3508:
3509: ((TypeDeclarator) CUP$result).type_spec = (/*ts*/(TypeSpec) CUP$stack
3510: .elementAt(CUP$top - 1));
3511: ((TypeDeclarator) CUP$result).declarators = (/*ds*/(SymbolList) CUP$stack
3512: .elementAt(CUP$top - 0));
3513:
3514: }
3515: return CUP$result;
3516:
3517: /*. . . . . . . . . . . . . . . . . . . .*/
3518: case 122: // type_def ::= TYPEDEF type_declarator
3519: {
3520: CUP$result = new TypeDef(/*type_def*/45);
3521:
3522: ((TypeDef) CUP$result).type_declarator = (/*t*/(TypeDeclarator) CUP$stack
3523: .elementAt(CUP$top - 0));
3524: ((TypeDef) CUP$result).set_included(parser.include_state);
3525:
3526: }
3527: return CUP$result;
3528:
3529: /*. . . . . . . . . . . . . . . . . . . .*/
3530: case 121: // type_dcl ::= native_type
3531: {
3532: CUP$result = new TypeDeclaration(/*type_dcl*/39);
3533: ((TypeDeclaration) CUP$result).type_decl = (/*n*/(NativeType) CUP$stack
3534: .elementAt(CUP$top - 0));
3535: }
3536: return CUP$result;
3537:
3538: /*. . . . . . . . . . . . . . . . . . . .*/
3539: case 120: // type_dcl ::= enum_type
3540: {
3541: CUP$result = new TypeDeclaration(/*type_dcl*/39);
3542: ((TypeDeclaration) CUP$result).type_decl = (/*e*/(EnumType) CUP$stack
3543: .elementAt(CUP$top - 0));
3544: }
3545: return CUP$result;
3546:
3547: /*. . . . . . . . . . . . . . . . . . . .*/
3548: case 119: // type_dcl ::= union_type
3549: {
3550: CUP$result = new TypeDeclaration(/*type_dcl*/39);
3551: ((TypeDeclaration) CUP$result).type_decl = (/*u*/(UnionType) CUP$stack
3552: .elementAt(CUP$top - 0));
3553: }
3554: return CUP$result;
3555:
3556: /*. . . . . . . . . . . . . . . . . . . .*/
3557: case 118: // type_dcl ::= struct_type
3558: {
3559: CUP$result = new TypeDeclaration(/*type_dcl*/39);
3560: ((TypeDeclaration) CUP$result).type_decl = (/*s*/(StructType) CUP$stack
3561: .elementAt(CUP$top - 0));
3562: }
3563: return CUP$result;
3564:
3565: /*. . . . . . . . . . . . . . . . . . . .*/
3566: case 117: // type_dcl ::= type_def
3567: {
3568: CUP$result = new TypeDeclaration(/*type_dcl*/39);
3569: ((TypeDeclaration) CUP$result).type_decl = (/*t*/(TypeDef) CUP$stack
3570: .elementAt(CUP$top - 0));
3571: }
3572: return CUP$result;
3573:
3574: /*. . . . . . . . . . . . . . . . . . . .*/
3575: case 116: // positive_int_const ::= const_expr
3576: {
3577: CUP$result = new PosIntConst(/*positive_int_const*/30);
3578: ((PosIntConst) CUP$result)
3579: .setExpression((/*c*/(ConstExpr) CUP$stack
3580: .elementAt(CUP$top - 0)));
3581: }
3582: return CUP$result;
3583:
3584: /*. . . . . . . . . . . . . . . . . . . .*/
3585: case 115: // string_literal ::= LDBLQUOTE DBLQUOTE
3586: {
3587: CUP$result = new Literal(/*string_literal*/75);
3588:
3589: ((Literal) CUP$result).string = "\"\"";
3590: ((Literal) CUP$result).wide = true;
3591:
3592: }
3593: return CUP$result;
3594:
3595: /*. . . . . . . . . . . . . . . . . . . .*/
3596: case 114: // string_literal ::= LDBLQUOTE ID DBLQUOTE
3597: {
3598: CUP$result = new Literal(/*string_literal*/75);
3599:
3600: ((Literal) CUP$result).string = "\""
3601: + (/*i*/(org.jacorb.idl.str_token) CUP$stack
3602: .elementAt(CUP$top - 1)).str_val + "\"";
3603: ((Literal) CUP$result).wide = true;
3604:
3605: }
3606: return CUP$result;
3607:
3608: /*. . . . . . . . . . . . . . . . . . . .*/
3609: case 113: // string_literal ::= DBLQUOTE DBLQUOTE
3610: {
3611: CUP$result = new Literal(/*string_literal*/75);
3612: ((Literal) CUP$result).string = "\"\"";
3613: }
3614: return CUP$result;
3615:
3616: /*. . . . . . . . . . . . . . . . . . . .*/
3617: case 112: // string_literal ::= DBLQUOTE ID DBLQUOTE
3618: {
3619: CUP$result = new Literal(/*string_literal*/75);
3620: ((Literal) CUP$result).string = "\""
3621: + (/*i*/(org.jacorb.idl.str_token) CUP$stack
3622: .elementAt(CUP$top - 1)).str_val + "\"";
3623: }
3624: return CUP$result;
3625:
3626: /*. . . . . . . . . . . . . . . . . . . .*/
3627: case 111: // literal ::= FALSE
3628: {
3629: CUP$result = new Literal(/*literal*/74);
3630:
3631: ((Literal) CUP$result).string = "false";
3632:
3633: }
3634: return CUP$result;
3635:
3636: /*. . . . . . . . . . . . . . . . . . . .*/
3637: case 110: // literal ::= TRUE
3638: {
3639: CUP$result = new Literal(/*literal*/74);
3640:
3641: ((Literal) CUP$result).string = "true";
3642:
3643: }
3644: return CUP$result;
3645:
3646: /*. . . . . . . . . . . . . . . . . . . .*/
3647: case 109: // literal ::= FLOAT_NUMBER
3648: {
3649: CUP$result = new Literal(/*literal*/74);
3650:
3651: ((Literal) CUP$result).string = ""
3652: + (/*n*/(org.jacorb.idl.runtime.float_token) CUP$stack
3653: .elementAt(CUP$top - 0)).float_val;
3654: ((Literal) CUP$result).token = (/*n*/(org.jacorb.idl.runtime.float_token) CUP$stack
3655: .elementAt(CUP$top - 0));
3656:
3657: }
3658: return CUP$result;
3659:
3660: /*. . . . . . . . . . . . . . . . . . . .*/
3661: case 108: // literal ::= FIXED_NUMBER
3662: {
3663: CUP$result = new Literal(/*literal*/74);
3664:
3665: ((Literal) CUP$result).string = ""
3666: + (/*f*/(fixed_token) CUP$stack
3667: .elementAt(CUP$top - 0)).fixed_val;
3668: ((Literal) CUP$result).token = (/*f*/(fixed_token) CUP$stack
3669: .elementAt(CUP$top - 0));
3670:
3671: }
3672: return CUP$result;
3673:
3674: /*. . . . . . . . . . . . . . . . . . . .*/
3675: case 107: // literal ::= string_literal
3676: {
3677: CUP$result = new Literal(/*literal*/74);
3678:
3679: ((Literal) CUP$result).string = (/*s*/(Literal) CUP$stack
3680: .elementAt(CUP$top - 0)).string;
3681: ((Literal) CUP$result).wide = (/*s*/(Literal) CUP$stack
3682: .elementAt(CUP$top - 0)).wide;
3683:
3684: }
3685: return CUP$result;
3686:
3687: /*. . . . . . . . . . . . . . . . . . . .*/
3688: case 106: // literal ::= QUOTE CH QUOTE
3689: {
3690: CUP$result = new Literal(/*literal*/74);
3691:
3692: ((Literal) CUP$result).string = "\'"
3693: + (/*c*/(org.jacorb.idl.runtime.char_token) CUP$stack
3694: .elementAt(CUP$top - 1)).char_val + "\'";
3695: ((Literal) CUP$result).token = (/*c*/(org.jacorb.idl.runtime.char_token) CUP$stack
3696: .elementAt(CUP$top - 1));
3697:
3698: }
3699: return CUP$result;
3700:
3701: /*. . . . . . . . . . . . . . . . . . . .*/
3702: case 105: // literal ::= LONG_NUMBER
3703: {
3704: CUP$result = new Literal(/*literal*/74);
3705:
3706: ((Literal) CUP$result).string = ""
3707: + (/*l*/(org.jacorb.idl.runtime.long_token) CUP$stack
3708: .elementAt(CUP$top - 0)).long_val;
3709: ((Literal) CUP$result).token = (/*l*/(org.jacorb.idl.runtime.long_token) CUP$stack
3710: .elementAt(CUP$top - 0));
3711:
3712: }
3713: return CUP$result;
3714:
3715: /*. . . . . . . . . . . . . . . . . . . .*/
3716: case 104: // literal ::= MINUS LONG_NUMBER
3717: {
3718: CUP$result = new Literal(/*literal*/74);
3719:
3720: ((Literal) CUP$result).string = "-"
3721: + (/*l*/(org.jacorb.idl.runtime.long_token) CUP$stack
3722: .elementAt(CUP$top - 0)).long_val;
3723: ((Literal) CUP$result).token = (/*l*/(org.jacorb.idl.runtime.long_token) CUP$stack
3724: .elementAt(CUP$top - 0));
3725:
3726: }
3727: return CUP$result;
3728:
3729: /*. . . . . . . . . . . . . . . . . . . .*/
3730: case 103: // literal ::= MINUS NUMBER
3731: {
3732: CUP$result = new Literal(/*literal*/74);
3733:
3734: ((Literal) CUP$result).string = "-"
3735: + (/*n*/(org.jacorb.idl.runtime.int_token) CUP$stack
3736: .elementAt(CUP$top - 0)).int_val;
3737: ((Literal) CUP$result).token = (/*n*/(org.jacorb.idl.runtime.int_token) CUP$stack
3738: .elementAt(CUP$top - 0));
3739:
3740: }
3741: return CUP$result;
3742:
3743: /*. . . . . . . . . . . . . . . . . . . .*/
3744: case 102: // literal ::= NUMBER
3745: {
3746: CUP$result = new Literal(/*literal*/74);
3747:
3748: ((Literal) CUP$result).string = ""
3749: + (/*n*/(org.jacorb.idl.runtime.int_token) CUP$stack
3750: .elementAt(CUP$top - 0)).int_val;
3751: ((Literal) CUP$result).token = (/*n*/(org.jacorb.idl.runtime.int_token) CUP$stack
3752: .elementAt(CUP$top - 0));
3753:
3754: }
3755: return CUP$result;
3756:
3757: /*. . . . . . . . . . . . . . . . . . . .*/
3758: case 101: // primary_expr ::= LPAREN const_expr RPAREN
3759: {
3760: CUP$result = new PrimaryExpr(/*primary_expr*/38);
3761: ((PrimaryExpr) CUP$result).symbol = (/*c*/(ConstExpr) CUP$stack
3762: .elementAt(CUP$top - 1));
3763: }
3764: return CUP$result;
3765:
3766: /*. . . . . . . . . . . . . . . . . . . .*/
3767: case 100: // primary_expr ::= literal
3768: {
3769: CUP$result = new PrimaryExpr(/*primary_expr*/38);
3770: ((PrimaryExpr) CUP$result).symbol = (/*l*/(Literal) CUP$stack
3771: .elementAt(CUP$top - 0));
3772: }
3773: return CUP$result;
3774:
3775: /*. . . . . . . . . . . . . . . . . . . .*/
3776: case 99: // primary_expr ::= scopename
3777: {
3778: CUP$result = new PrimaryExpr(/*primary_expr*/38);
3779: ((PrimaryExpr) CUP$result).symbol = (/*s*/(ScopedName) CUP$stack
3780: .elementAt(CUP$top - 0));
3781: }
3782: return CUP$result;
3783:
3784: /*. . . . . . . . . . . . . . . . . . . .*/
3785: case 98: // unary_op ::= TILDE
3786: {
3787: CUP$result = new org.jacorb.idl.runtime.str_token(
3788: /*unary_op*/6);
3789: ((org.jacorb.idl.runtime.str_token) CUP$result).str_val = "~";
3790: }
3791: return CUP$result;
3792:
3793: /*. . . . . . . . . . . . . . . . . . . .*/
3794: case 97: // unary_op ::= PLUS
3795: {
3796: CUP$result = new org.jacorb.idl.runtime.str_token(
3797: /*unary_op*/6);
3798: ((org.jacorb.idl.runtime.str_token) CUP$result).str_val = "+";
3799: }
3800: return CUP$result;
3801:
3802: /*. . . . . . . . . . . . . . . . . . . .*/
3803: case 96: // unary_op ::= MINUS SPACE
3804: {
3805: CUP$result = new org.jacorb.idl.runtime.str_token(
3806: /*unary_op*/6);
3807: ((org.jacorb.idl.runtime.str_token) CUP$result).str_val = "-";
3808: }
3809: return CUP$result;
3810:
3811: /*. . . . . . . . . . . . . . . . . . . .*/
3812: case 95: // unary_expr ::= primary_expr
3813: {
3814: CUP$result = new UnaryExpr(/*unary_expr*/37);
3815: ((UnaryExpr) CUP$result).primary_expr = (/*p*/(PrimaryExpr) CUP$stack
3816: .elementAt(CUP$top - 0));
3817: }
3818: return CUP$result;
3819:
3820: /*. . . . . . . . . . . . . . . . . . . .*/
3821: case 94: // unary_expr ::= unary_op primary_expr
3822: {
3823: CUP$result = new UnaryExpr(/*unary_expr*/37);
3824:
3825: ((UnaryExpr) CUP$result).primary_expr = (/*p*/(PrimaryExpr) CUP$stack
3826: .elementAt(CUP$top - 0));
3827: ((UnaryExpr) CUP$result).unary_op = (/*u*/(org.jacorb.idl.runtime.str_token) CUP$stack
3828: .elementAt(CUP$top - 1)).str_val;
3829:
3830: }
3831: return CUP$result;
3832:
3833: /*. . . . . . . . . . . . . . . . . . . .*/
3834: case 93: // mult_expr ::= mult_expr PERCENT unary_expr
3835: {
3836: CUP$result = new MultExpr(/*mult_expr*/36);
3837:
3838: ((MultExpr) CUP$result).unary_expr = (/*u*/(UnaryExpr) CUP$stack
3839: .elementAt(CUP$top - 0));
3840: ((MultExpr) CUP$result).mult_expr = (/*m*/(MultExpr) CUP$stack
3841: .elementAt(CUP$top - 2));
3842: ((MultExpr) CUP$result).operator = "%";
3843:
3844: }
3845: return CUP$result;
3846:
3847: /*. . . . . . . . . . . . . . . . . . . .*/
3848: case 92: // mult_expr ::= mult_expr SLASH unary_expr
3849: {
3850: CUP$result = new MultExpr(/*mult_expr*/36);
3851:
3852: ((MultExpr) CUP$result).unary_expr = (/*u*/(UnaryExpr) CUP$stack
3853: .elementAt(CUP$top - 0));
3854: ((MultExpr) CUP$result).mult_expr = (/*m*/(MultExpr) CUP$stack
3855: .elementAt(CUP$top - 2));
3856: ((MultExpr) CUP$result).operator = "/";
3857:
3858: }
3859: return CUP$result;
3860:
3861: /*. . . . . . . . . . . . . . . . . . . .*/
3862: case 91: // mult_expr ::= mult_expr STAR unary_expr
3863: {
3864: CUP$result = new MultExpr(/*mult_expr*/36);
3865:
3866: ((MultExpr) CUP$result).unary_expr = (/*u*/(UnaryExpr) CUP$stack
3867: .elementAt(CUP$top - 0));
3868: ((MultExpr) CUP$result).mult_expr = (/*m*/(MultExpr) CUP$stack
3869: .elementAt(CUP$top - 2));
3870: ((MultExpr) CUP$result).operator = "*";
3871:
3872: }
3873: return CUP$result;
3874:
3875: /*. . . . . . . . . . . . . . . . . . . .*/
3876: case 90: // mult_expr ::= unary_expr
3877: {
3878: CUP$result = new MultExpr(/*mult_expr*/36);
3879: ((MultExpr) CUP$result).unary_expr = (/*u*/(UnaryExpr) CUP$stack
3880: .elementAt(CUP$top - 0));
3881: }
3882: return CUP$result;
3883:
3884: /*. . . . . . . . . . . . . . . . . . . .*/
3885: case 89: // add_expr ::= add_expr MINUS mult_expr
3886: {
3887: CUP$result = new AddExpr(/*add_expr*/35);
3888:
3889: ((AddExpr) CUP$result).add_expr = (/*a*/(AddExpr) CUP$stack
3890: .elementAt(CUP$top - 2));
3891: ((AddExpr) CUP$result).mult_expr = (/*m*/(MultExpr) CUP$stack
3892: .elementAt(CUP$top - 0));
3893: ((AddExpr) CUP$result).operator = "-";
3894:
3895: }
3896: return CUP$result;
3897:
3898: /*. . . . . . . . . . . . . . . . . . . .*/
3899: case 88: // add_expr ::= add_expr PLUS mult_expr
3900: {
3901: CUP$result = new AddExpr(/*add_expr*/35);
3902:
3903: ((AddExpr) CUP$result).add_expr = (/*a*/(AddExpr) CUP$stack
3904: .elementAt(CUP$top - 2));
3905: ((AddExpr) CUP$result).mult_expr = (/*m*/(MultExpr) CUP$stack
3906: .elementAt(CUP$top - 0));
3907: ((AddExpr) CUP$result).operator = "+";
3908:
3909: }
3910: return CUP$result;
3911:
3912: /*. . . . . . . . . . . . . . . . . . . .*/
3913: case 87: // add_expr ::= mult_expr
3914: {
3915: CUP$result = new AddExpr(/*add_expr*/35);
3916:
3917: ((AddExpr) CUP$result).mult_expr = (/*m*/(MultExpr) CUP$stack
3918: .elementAt(CUP$top - 0));
3919:
3920: }
3921: return CUP$result;
3922:
3923: /*. . . . . . . . . . . . . . . . . . . .*/
3924: case 86: // shift_expr ::= shift_expr RSHIFT add_expr
3925: {
3926: CUP$result = new ShiftExpr(/*shift_expr*/34);
3927:
3928: ((ShiftExpr) CUP$result).add_expr = (/*a*/(AddExpr) CUP$stack
3929: .elementAt(CUP$top - 0));
3930: ((ShiftExpr) CUP$result).shift_expr = (/*s*/(ShiftExpr) CUP$stack
3931: .elementAt(CUP$top - 2));
3932: ((ShiftExpr) CUP$result).operator = ">>";
3933:
3934: }
3935: return CUP$result;
3936:
3937: /*. . . . . . . . . . . . . . . . . . . .*/
3938: case 85: // shift_expr ::= shift_expr LSHIFT add_expr
3939: {
3940: CUP$result = new ShiftExpr(/*shift_expr*/34);
3941:
3942: ((ShiftExpr) CUP$result).add_expr = (/*a*/(AddExpr) CUP$stack
3943: .elementAt(CUP$top - 0));
3944: ((ShiftExpr) CUP$result).shift_expr = (/*s*/(ShiftExpr) CUP$stack
3945: .elementAt(CUP$top - 2));
3946: ((ShiftExpr) CUP$result).operator = "<<";
3947:
3948: }
3949: return CUP$result;
3950:
3951: /*. . . . . . . . . . . . . . . . . . . .*/
3952: case 84: // shift_expr ::= add_expr
3953: {
3954: CUP$result = new ShiftExpr(/*shift_expr*/34);
3955:
3956: ((ShiftExpr) CUP$result).add_expr = (/*a*/(AddExpr) CUP$stack
3957: .elementAt(CUP$top - 0));
3958:
3959: }
3960: return CUP$result;
3961:
3962: /*. . . . . . . . . . . . . . . . . . . .*/
3963: case 83: // and_expr ::= and_expr AMPERSAND shift_expr
3964: {
3965: CUP$result = new AndExpr(/*and_expr*/33);
3966:
3967: ((AndExpr) CUP$result).and_expr = (/*a*/(AndExpr) CUP$stack
3968: .elementAt(CUP$top - 2));
3969: ((AndExpr) CUP$result).shift_expr = (/*s*/(ShiftExpr) CUP$stack
3970: .elementAt(CUP$top - 0));
3971:
3972: }
3973: return CUP$result;
3974:
3975: /*. . . . . . . . . . . . . . . . . . . .*/
3976: case 82: // and_expr ::= shift_expr
3977: {
3978: CUP$result = new AndExpr(/*and_expr*/33);
3979:
3980: ((AndExpr) CUP$result).shift_expr = (/*s*/(ShiftExpr) CUP$stack
3981: .elementAt(CUP$top - 0));
3982:
3983: }
3984: return CUP$result;
3985:
3986: /*. . . . . . . . . . . . . . . . . . . .*/
3987: case 81: // xor_expr ::= xor_expr CIRCUM and_expr
3988: {
3989: CUP$result = new XorExpr(/*xor_expr*/32);
3990:
3991: ((XorExpr) CUP$result).and_expr = (/*a*/(AndExpr) CUP$stack
3992: .elementAt(CUP$top - 0));
3993: ((XorExpr) CUP$result).xor_expr = (/*x*/(XorExpr) CUP$stack
3994: .elementAt(CUP$top - 2));
3995:
3996: }
3997: return CUP$result;
3998:
3999: /*. . . . . . . . . . . . . . . . . . . .*/
4000: case 80: // xor_expr ::= and_expr
4001: {
4002: CUP$result = new XorExpr(/*xor_expr*/32);
4003:
4004: ((XorExpr) CUP$result).and_expr = (/*a*/(AndExpr) CUP$stack
4005: .elementAt(CUP$top - 0));
4006:
4007: }
4008: return CUP$result;
4009:
4010: /*. . . . . . . . . . . . . . . . . . . .*/
4011: case 79: // or_expr ::= or_expr BAR xor_expr
4012: {
4013: CUP$result = new OrExpr(/*or_expr*/31);
4014:
4015: ((OrExpr) CUP$result).or_expr = (/*o*/(OrExpr) CUP$stack
4016: .elementAt(CUP$top - 2));
4017: ((OrExpr) CUP$result).xor_expr = (/*x*/(XorExpr) CUP$stack
4018: .elementAt(CUP$top - 0));
4019:
4020: }
4021: return CUP$result;
4022:
4023: /*. . . . . . . . . . . . . . . . . . . .*/
4024: case 78: // or_expr ::= xor_expr
4025: {
4026: CUP$result = new OrExpr(/*or_expr*/31);
4027:
4028: ((OrExpr) CUP$result).xor_expr = (/*x*/(XorExpr) CUP$stack
4029: .elementAt(CUP$top - 0));
4030:
4031: }
4032: return CUP$result;
4033:
4034: /*. . . . . . . . . . . . . . . . . . . .*/
4035: case 77: // const_expr ::= or_expr
4036: {
4037: CUP$result = new ConstExpr(/*const_expr*/29);
4038:
4039: ((ConstExpr) CUP$result).or_expr = (/*o*/(OrExpr) CUP$stack
4040: .elementAt(CUP$top - 0));
4041:
4042: }
4043: return CUP$result;
4044:
4045: /*. . . . . . . . . . . . . . . . . . . .*/
4046: case 76: // const_type ::= scopename
4047: {
4048: CUP$result = new ConstType(/*const_type*/28);
4049:
4050: ((ConstType) CUP$result).symbol = (/*s*/(ScopedName) CUP$stack
4051: .elementAt(CUP$top - 0));
4052: ((ConstType) CUP$result)
4053: .set_token((/*s*/(ScopedName) CUP$stack
4054: .elementAt(CUP$top - 0)).get_token());
4055:
4056: }
4057: return CUP$result;
4058:
4059: /*. . . . . . . . . . . . . . . . . . . .*/
4060: case 75: // const_type ::= octet_type
4061: {
4062: CUP$result = new ConstType(/*const_type*/28);
4063: ((ConstType) CUP$result).symbol = (/*s*/(OctetType) CUP$stack
4064: .elementAt(CUP$top - 0));
4065: }
4066: return CUP$result;
4067:
4068: /*. . . . . . . . . . . . . . . . . . . .*/
4069: case 74: // const_type ::= string_type
4070: {
4071: CUP$result = new ConstType(/*const_type*/28);
4072: ((ConstType) CUP$result).symbol = (/*s*/(StringType) CUP$stack
4073: .elementAt(CUP$top - 0));
4074: }
4075: return CUP$result;
4076:
4077: /*. . . . . . . . . . . . . . . . . . . .*/
4078: case 73: // const_type ::= fixed_pt_const_type
4079: {
4080: CUP$result = new ConstType(/*const_type*/28);
4081: ((ConstType) CUP$result).symbol = (/*s*/(FixedPointConstType) CUP$stack
4082: .elementAt(CUP$top - 0));
4083: }
4084: return CUP$result;
4085:
4086: /*. . . . . . . . . . . . . . . . . . . .*/
4087: case 72: // const_type ::= float_pt_type
4088: {
4089: CUP$result = new ConstType(/*const_type*/28);
4090: ((ConstType) CUP$result).symbol = (/*s*/(FloatPtType) CUP$stack
4091: .elementAt(CUP$top - 0));
4092: }
4093: return CUP$result;
4094:
4095: /*. . . . . . . . . . . . . . . . . . . .*/
4096: case 71: // const_type ::= bool_type
4097: {
4098: CUP$result = new ConstType(/*const_type*/28);
4099: ((ConstType) CUP$result).symbol = (/*s*/(BooleanType) CUP$stack
4100: .elementAt(CUP$top - 0));
4101: }
4102: return CUP$result;
4103:
4104: /*. . . . . . . . . . . . . . . . . . . .*/
4105: case 70: // const_type ::= char_type
4106: {
4107: CUP$result = new ConstType(/*const_type*/28);
4108: ((ConstType) CUP$result).symbol = (/*s*/(CharType) CUP$stack
4109: .elementAt(CUP$top - 0));
4110: }
4111: return CUP$result;
4112:
4113: /*. . . . . . . . . . . . . . . . . . . .*/
4114: case 69: // const_type ::= int_type
4115: {
4116: CUP$result = new ConstType(/*const_type*/28);
4117: ((ConstType) CUP$result).symbol = (/*s*/(IntType) CUP$stack
4118: .elementAt(CUP$top - 0));
4119: }
4120: return CUP$result;
4121:
4122: /*. . . . . . . . . . . . . . . . . . . .*/
4123: case 68: // const_dcl ::= CONST const_type ID EQUALS const_expr
4124: {
4125: CUP$result = new ConstDecl(/*const_dcl*/27);
4126:
4127: ((ConstDecl) CUP$result)
4128: .set_name((/*i*/(org.jacorb.idl.str_token) CUP$stack
4129: .elementAt(CUP$top - 2)).str_val);
4130: ((ConstDecl) CUP$result)
4131: .set_token((/*i*/(org.jacorb.idl.str_token) CUP$stack
4132: .elementAt(CUP$top - 2)));
4133: ((ConstDecl) CUP$result).const_expr = (/*ce*/(ConstExpr) CUP$stack
4134: .elementAt(CUP$top - 0));
4135: ((ConstDecl) CUP$result).const_type = (ConstType) (/*ct*/(ConstType) CUP$stack
4136: .elementAt(CUP$top - 3));
4137: ((ConstDecl) CUP$result).set_included(parser.include_state);
4138:
4139: }
4140: return CUP$result;
4141:
4142: /*. . . . . . . . . . . . . . . . . . . .*/
4143: case 67: // init_param_decl ::= IN param_type_spec simple_declarator
4144: {
4145: CUP$result = new InitParamDecl(/*init_param_decl*/26);
4146:
4147: ((InitParamDecl) CUP$result).paramTypeSpec = (/*ts*/(TypeSpec) CUP$stack
4148: .elementAt(CUP$top - 1));
4149: ((InitParamDecl) CUP$result).simple_declarator = (/*sd*/(SimpleDeclarator) CUP$stack
4150: .elementAt(CUP$top - 0));
4151:
4152: }
4153: return CUP$result;
4154:
4155: /*. . . . . . . . . . . . . . . . . . . .*/
4156: case 66: // init_param_decls ::= init_param_decl COMMA init_param_decls
4157: {
4158: CUP$result = new SymbolList(/*init_param_decls*/90);
4159:
4160: ((SymbolList) CUP$result).v = (Vector) (/*ipdcls*/(SymbolList) CUP$stack
4161: .elementAt(CUP$top - 0)).v.clone();
4162: ((SymbolList) CUP$result).v.insertElementAt(
4163: (/*ip*/(InitParamDecl) CUP$stack
4164: .elementAt(CUP$top - 2)), 0);
4165:
4166: }
4167: return CUP$result;
4168:
4169: /*. . . . . . . . . . . . . . . . . . . .*/
4170: case 65: // init_param_decls ::= init_param_decl
4171: {
4172: CUP$result = new SymbolList(/*init_param_decls*/90);
4173:
4174: ((SymbolList) CUP$result).v.insertElementAt(
4175: (/*ip*/(InitParamDecl) CUP$stack
4176: .elementAt(CUP$top - 0)), 0);
4177:
4178: }
4179: return CUP$result;
4180:
4181: /*. . . . . . . . . . . . . . . . . . . .*/
4182: case 64: // init_dcl ::= FACTORY ID LPAREN RPAREN raises_expr SEMI
4183: {
4184: CUP$result = new InitDecl(/*init_dcl*/25);
4185:
4186: ((InitDecl) CUP$result).name = (/*i*/(org.jacorb.idl.str_token) CUP$stack
4187: .elementAt(CUP$top - 4)).str_val;
4188: ((InitDecl) CUP$result).raisesExpr = (/*re*/(RaisesExpr) CUP$stack
4189: .elementAt(CUP$top - 1));
4190:
4191: }
4192: return CUP$result;
4193:
4194: /*. . . . . . . . . . . . . . . . . . . .*/
4195: case 63: // init_dcl ::= FACTORY ID LPAREN init_param_decls RPAREN raises_expr SEMI
4196: {
4197: CUP$result = new InitDecl(/*init_dcl*/25);
4198:
4199: ((InitDecl) CUP$result).name = (/*i*/(org.jacorb.idl.str_token) CUP$stack
4200: .elementAt(CUP$top - 5)).str_val;
4201: ((InitDecl) CUP$result).paramDecls = (Vector) (/*ipd*/(SymbolList) CUP$stack
4202: .elementAt(CUP$top - 3)).v.clone();
4203: ((InitDecl) CUP$result).raisesExpr = (/*re*/(RaisesExpr) CUP$stack
4204: .elementAt(CUP$top - 1));
4205:
4206: }
4207: return CUP$result;
4208:
4209: /*. . . . . . . . . . . . . . . . . . . .*/
4210: case 62: // state_member ::= PRIVATE type_spec declarators SEMI
4211: {
4212: CUP$result = new StateMember(/*state_member*/24);
4213:
4214: ((StateMember) CUP$result).isPublic = false;
4215: ((StateMember) CUP$result).type_spec = (/*ts*/(TypeSpec) CUP$stack
4216: .elementAt(CUP$top - 2));
4217: ((StateMember) CUP$result).declarators = (/*ds*/(SymbolList) CUP$stack
4218: .elementAt(CUP$top - 1));
4219:
4220: }
4221: return CUP$result;
4222:
4223: /*. . . . . . . . . . . . . . . . . . . .*/
4224: case 61: // state_member ::= PUBLIC type_spec declarators SEMI
4225: {
4226: CUP$result = new StateMember(/*state_member*/24);
4227:
4228: ((StateMember) CUP$result).isPublic = true;
4229: ((StateMember) CUP$result).type_spec = (/*ts*/(TypeSpec) CUP$stack
4230: .elementAt(CUP$top - 2));
4231: ((StateMember) CUP$result).declarators = (/*ds*/(SymbolList) CUP$stack
4232: .elementAt(CUP$top - 1));
4233:
4234: }
4235: return CUP$result;
4236:
4237: /*. . . . . . . . . . . . . . . . . . . .*/
4238: case 60: // value_element ::= init_dcl
4239: {
4240: CUP$result = new Definition(/*value_element*/23);
4241:
4242: ((Definition) CUP$result)
4243: .set_declaration((/*id*/(InitDecl) CUP$stack
4244: .elementAt(CUP$top - 0)));
4245:
4246: }
4247: return CUP$result;
4248:
4249: /*. . . . . . . . . . . . . . . . . . . .*/
4250: case 59: // value_element ::= state_member
4251: {
4252: CUP$result = new Definition(/*value_element*/23);
4253:
4254: ((Definition) CUP$result)
4255: .set_declaration((/*sm*/(StateMember) CUP$stack
4256: .elementAt(CUP$top - 0)));
4257:
4258: }
4259: return CUP$result;
4260:
4261: /*. . . . . . . . . . . . . . . . . . . .*/
4262: case 58: // value_element ::= export
4263: {
4264: CUP$result = new Definition(/*value_element*/23);
4265:
4266: ((Definition) CUP$result)
4267: .set_declaration((/*e*/(Definition) CUP$stack
4268: .elementAt(CUP$top - 0)).get_declaration());
4269:
4270: }
4271: return CUP$result;
4272:
4273: /*. . . . . . . . . . . . . . . . . . . .*/
4274: case 57: // value_elements ::= empty
4275: {
4276: CUP$result = new Definitions(/*value_elements*/22);
4277:
4278: }
4279: return CUP$result;
4280:
4281: /*. . . . . . . . . . . . . . . . . . . .*/
4282: case 56: // value_elements ::= value_element value_elements
4283: {
4284: CUP$result = new Definitions(/*value_elements*/22);
4285:
4286: ((Definitions) CUP$result).v = (Vector) (/*es*/(Definitions) CUP$stack
4287: .elementAt(CUP$top - 0)).v.clone();
4288: ((Definitions) CUP$result).v.insertElementAt(
4289: (/*e*/(Definition) CUP$stack
4290: .elementAt(CUP$top - 1)), 0);
4291:
4292: }
4293: return CUP$result;
4294:
4295: /*. . . . . . . . . . . . . . . . . . . .*/
4296: case 55: // truncatable ::= TRUNCATABLE
4297: {
4298: CUP$result = new Truncatable(/*truncatable*/15);
4299:
4300: }
4301: return CUP$result;
4302:
4303: /*. . . . . . . . . . . . . . . . . . . .*/
4304: case 54: // value_inheritance_spec ::= empty
4305: {
4306: CUP$result = new ValueInheritanceSpec(
4307: /*value_inheritance_spec*/21);
4308:
4309: }
4310: return CUP$result;
4311:
4312: /*. . . . . . . . . . . . . . . . . . . .*/
4313: case 53: // value_inheritance_spec ::= COLON
4314: {
4315: CUP$result = new ValueInheritanceSpec(
4316: /*value_inheritance_spec*/21);
4317:
4318: lexer
4319: .emit_warn("Illegal IDL: empty inheritance spec after colon!");
4320:
4321: }
4322: return CUP$result;
4323:
4324: /*. . . . . . . . . . . . . . . . . . . .*/
4325: case 52: // value_inheritance_spec ::= COLON scopename_list SUPPORTS scopename_list
4326: {
4327: CUP$result = new ValueInheritanceSpec(
4328: /*value_inheritance_spec*/21);
4329:
4330: ((ValueInheritanceSpec) CUP$result).v = (Vector) (/*vn*/(SymbolList) CUP$stack
4331: .elementAt(CUP$top - 2)).v.clone();
4332: ((ValueInheritanceSpec) CUP$result).supports = (Vector) (/*interface_names*/(SymbolList) CUP$stack
4333: .elementAt(CUP$top - 0)).v.clone();
4334:
4335: }
4336: return CUP$result;
4337:
4338: /*. . . . . . . . . . . . . . . . . . . .*/
4339: case 51: // value_inheritance_spec ::= COLON truncatable scopename_list SUPPORTS scopename_list
4340: {
4341: CUP$result = new ValueInheritanceSpec(
4342: /*value_inheritance_spec*/21);
4343:
4344: ((ValueInheritanceSpec) CUP$result).truncatable = (/*t*/(Truncatable) CUP$stack
4345: .elementAt(CUP$top - 3));
4346: ((ValueInheritanceSpec) CUP$result).truncatable.scopedName = (ScopedName) (/*vn*/(SymbolList) CUP$stack
4347: .elementAt(CUP$top - 2)).v.remove(0);
4348: ((ValueInheritanceSpec) CUP$result).v = (Vector) (/*vn*/(SymbolList) CUP$stack
4349: .elementAt(CUP$top - 2)).v.clone();
4350: ((ValueInheritanceSpec) CUP$result).supports = (Vector) (/*interface_names*/(SymbolList) CUP$stack
4351: .elementAt(CUP$top - 0)).v.clone();
4352:
4353: }
4354: return CUP$result;
4355:
4356: /*. . . . . . . . . . . . . . . . . . . .*/
4357: case 50: // value_inheritance_spec ::= SUPPORTS scopename_list
4358: {
4359: CUP$result = new ValueInheritanceSpec(
4360: /*value_inheritance_spec*/21);
4361:
4362: ((ValueInheritanceSpec) CUP$result).supports = (Vector) (/*interface_names*/(SymbolList) CUP$stack
4363: .elementAt(CUP$top - 0)).v.clone();
4364:
4365: }
4366: return CUP$result;
4367:
4368: /*. . . . . . . . . . . . . . . . . . . .*/
4369: case 49: // value_inheritance_spec ::= COLON scopename_list
4370: {
4371: CUP$result = new ValueInheritanceSpec(
4372: /*value_inheritance_spec*/21);
4373:
4374: ((ValueInheritanceSpec) CUP$result).v = (Vector) (/*vn*/(SymbolList) CUP$stack
4375: .elementAt(CUP$top - 0)).v.clone();
4376:
4377: }
4378: return CUP$result;
4379:
4380: /*. . . . . . . . . . . . . . . . . . . .*/
4381: case 48: // value_inheritance_spec ::= COLON truncatable scopename_list
4382: {
4383: CUP$result = new ValueInheritanceSpec(
4384: /*value_inheritance_spec*/21);
4385:
4386: ((ValueInheritanceSpec) CUP$result).truncatable = (/*t*/(Truncatable) CUP$stack
4387: .elementAt(CUP$top - 1));
4388: ((ValueInheritanceSpec) CUP$result).truncatable.scopedName = (ScopedName) (/*vn*/(SymbolList) CUP$stack
4389: .elementAt(CUP$top - 0)).v.remove(0);
4390: ((ValueInheritanceSpec) CUP$result).v = (Vector) (/*vn*/(SymbolList) CUP$stack
4391: .elementAt(CUP$top - 0)).v.clone();
4392:
4393: }
4394: return CUP$result;
4395:
4396: /*. . . . . . . . . . . . . . . . . . . .*/
4397: case 47: // value_dcl ::= VALUETYPE ID value_inheritance_spec LCBRACE value_elements RCBRACE
4398: {
4399: CUP$result = new ValueDecl(/*value_dcl*/18);
4400:
4401: ((ValueDecl) CUP$result).name = (/*i*/(org.jacorb.idl.str_token) CUP$stack
4402: .elementAt(CUP$top - 4)).str_val;
4403: ((ValueDecl) CUP$result)
4404: .set_token((/*i*/(org.jacorb.idl.str_token) CUP$stack
4405: .elementAt(CUP$top - 4)));
4406: ((ValueDecl) CUP$result)
4407: .setInheritanceSpec((/*is*/(ValueInheritanceSpec) CUP$stack
4408: .elementAt(CUP$top - 3)));
4409: ((ValueDecl) CUP$result)
4410: .setValueElements((/*ve*/(Definitions) CUP$stack
4411: .elementAt(CUP$top - 1)));
4412: ((ValueDecl) CUP$result).isCustomMarshalled(false);
4413:
4414: }
4415: return CUP$result;
4416:
4417: /*. . . . . . . . . . . . . . . . . . . .*/
4418: case 46: // value_dcl ::= VALUETYPE ID
4419: {
4420: CUP$result = new ValueDecl(/*value_dcl*/18);
4421:
4422: ((ValueDecl) CUP$result).name = (/*i*/(org.jacorb.idl.str_token) CUP$stack
4423: .elementAt(CUP$top - 0)).str_val;
4424: ((ValueDecl) CUP$result)
4425: .set_token((/*i*/(org.jacorb.idl.str_token) CUP$stack
4426: .elementAt(CUP$top - 0)));
4427: ((ValueDecl) CUP$result).isCustomMarshalled(false);
4428:
4429: }
4430: return CUP$result;
4431:
4432: /*. . . . . . . . . . . . . . . . . . . .*/
4433: case 45: // value_dcl ::= CUSTOM VALUETYPE ID value_inheritance_spec LCBRACE value_elements RCBRACE
4434: {
4435: CUP$result = new ValueDecl(/*value_dcl*/18);
4436:
4437: ((ValueDecl) CUP$result).name = (/*i*/(org.jacorb.idl.str_token) CUP$stack
4438: .elementAt(CUP$top - 4)).str_val;
4439: ((ValueDecl) CUP$result)
4440: .set_token((/*i*/(org.jacorb.idl.str_token) CUP$stack
4441: .elementAt(CUP$top - 4)));
4442: ((ValueDecl) CUP$result)
4443: .setInheritanceSpec((/*is*/(ValueInheritanceSpec) CUP$stack
4444: .elementAt(CUP$top - 3)));
4445: ((ValueDecl) CUP$result)
4446: .setValueElements((/*ve*/(Definitions) CUP$stack
4447: .elementAt(CUP$top - 1)));
4448: ((ValueDecl) CUP$result).isCustomMarshalled(true);
4449:
4450: }
4451: return CUP$result;
4452:
4453: /*. . . . . . . . . . . . . . . . . . . .*/
4454: case 44: // value_body ::= empty
4455: {
4456: CUP$result = new ValueBody(/*value_body*/20);
4457: ((ValueBody) CUP$result).commit();
4458: }
4459: return CUP$result;
4460:
4461: /*. . . . . . . . . . . . . . . . . . . .*/
4462: case 43: // value_body ::= export value_body
4463: {
4464: CUP$result = new ValueBody(/*value_body*/20);
4465:
4466: ((ValueBody) CUP$result).v = (Vector) (/*vb*/(ValueBody) CUP$stack
4467: .elementAt(CUP$top - 0)).v.clone();
4468: ((ValueBody) CUP$result).v.insertElementAt(
4469: (/*e*/(Definition) CUP$stack
4470: .elementAt(CUP$top - 1)), 0);
4471:
4472: }
4473: return CUP$result;
4474:
4475: /*. . . . . . . . . . . . . . . . . . . .*/
4476: case 42: // value_abs_dcl ::= ABSTRACT VALUETYPE ID
4477: {
4478: CUP$result = new ValueAbsDecl(/*value_abs_dcl*/19);
4479:
4480: ((ValueAbsDecl) CUP$result).name = (/*i*/(org.jacorb.idl.str_token) CUP$stack
4481: .elementAt(CUP$top - 0)).str_val;
4482: ((ValueAbsDecl) CUP$result)
4483: .set_token((/*i*/(org.jacorb.idl.str_token) CUP$stack
4484: .elementAt(CUP$top - 0)));
4485:
4486: }
4487: return CUP$result;
4488:
4489: /*. . . . . . . . . . . . . . . . . . . .*/
4490: case 41: // value_abs_dcl ::= ABSTRACT VALUETYPE ID value_inheritance_spec LCBRACE value_body RCBRACE
4491: {
4492: CUP$result = new ValueAbsDecl(/*value_abs_dcl*/19);
4493:
4494: ((ValueAbsDecl) CUP$result).name = (/*i*/(org.jacorb.idl.str_token) CUP$stack
4495: .elementAt(CUP$top - 4)).str_val;
4496: ((ValueAbsDecl) CUP$result)
4497: .setInheritanceSpec((/*is*/(ValueInheritanceSpec) CUP$stack
4498: .elementAt(CUP$top - 3)));
4499: ((ValueAbsDecl) CUP$result).body = (/*b*/(ValueBody) CUP$stack
4500: .elementAt(CUP$top - 1));
4501: (/*b*/(ValueBody) CUP$stack.elementAt(CUP$top - 1))
4502: .set_name((/*i*/(org.jacorb.idl.str_token) CUP$stack
4503: .elementAt(CUP$top - 4)).str_val);
4504: (/*b*/(ValueBody) CUP$stack.elementAt(CUP$top - 1)).myAbsValue = ((ValueAbsDecl) CUP$result);
4505: (/*b*/(ValueBody) CUP$stack.elementAt(CUP$top - 1))
4506: .setEnclosingSymbol(((ValueAbsDecl) CUP$result));
4507: ((ValueAbsDecl) CUP$result)
4508: .set_token((/*i*/(org.jacorb.idl.str_token) CUP$stack
4509: .elementAt(CUP$top - 4)));
4510:
4511: }
4512: return CUP$result;
4513:
4514: /*. . . . . . . . . . . . . . . . . . . .*/
4515: case 40: // value_box_dcl ::= VALUETYPE ID type_spec
4516: {
4517: CUP$result = new ValueBoxDecl(/*value_box_dcl*/17);
4518:
4519: ((ValueBoxDecl) CUP$result).name = (/*i*/(org.jacorb.idl.str_token) CUP$stack
4520: .elementAt(CUP$top - 1)).str_val;
4521: ((ValueBoxDecl) CUP$result).typeSpec = (/*ts*/(TypeSpec) CUP$stack
4522: .elementAt(CUP$top - 0));
4523: ((ValueBoxDecl) CUP$result)
4524: .set_token((/*i*/(org.jacorb.idl.str_token) CUP$stack
4525: .elementAt(CUP$top - 1)));
4526:
4527: }
4528: return CUP$result;
4529:
4530: /*. . . . . . . . . . . . . . . . . . . .*/
4531: case 39: // value ::= value_box_dcl
4532: {
4533: CUP$result = new Value(/*value*/16);
4534:
4535: ((Value) CUP$result)
4536: .setValue((/*vbx*/(ValueBoxDecl) CUP$stack
4537: .elementAt(CUP$top - 0)));
4538:
4539: }
4540: return CUP$result;
4541:
4542: /*. . . . . . . . . . . . . . . . . . . .*/
4543: case 38: // value ::= value_abs_dcl
4544: {
4545: CUP$result = new Value(/*value*/16);
4546:
4547: ((Value) CUP$result)
4548: .setValue((/*vad*/(ValueAbsDecl) CUP$stack
4549: .elementAt(CUP$top - 0)));
4550:
4551: }
4552: return CUP$result;
4553:
4554: /*. . . . . . . . . . . . . . . . . . . .*/
4555: case 37: // value ::= value_dcl
4556: {
4557: CUP$result = new Value(/*value*/16);
4558:
4559: ((Value) CUP$result).setValue((/*vd*/(ValueDecl) CUP$stack
4560: .elementAt(CUP$top - 0)));
4561:
4562: }
4563: return CUP$result;
4564:
4565: /*. . . . . . . . . . . . . . . . . . . .*/
4566: case 36: // scopename ::= OBJECT
4567: {
4568: CUP$result = new ScopedName(/*scopename*/14);
4569:
4570: ((ScopedName) CUP$result).typeName = "org.omg.CORBA.Object";
4571:
4572: }
4573: return CUP$result;
4574:
4575: /*. . . . . . . . . . . . . . . . . . . .*/
4576: case 35: // scopename ::= scopename DBLCOLON ID
4577: {
4578: CUP$result = new ScopedName(/*scopename*/14);
4579:
4580: ((ScopedName) CUP$result)
4581: .setId((/*sn*/(ScopedName) CUP$stack
4582: .elementAt(CUP$top - 2)).typeName
4583: + "."
4584: + (/*i*/(org.jacorb.idl.str_token) CUP$stack
4585: .elementAt(CUP$top - 0)).str_val);
4586: ((ScopedName) CUP$result)
4587: .set_token((/*i*/(org.jacorb.idl.str_token) CUP$stack
4588: .elementAt(CUP$top - 0)));
4589:
4590: }
4591: return CUP$result;
4592:
4593: /*. . . . . . . . . . . . . . . . . . . .*/
4594: case 34: // scopename ::= DBLCOLON ID
4595: {
4596: CUP$result = new ScopedName(/*scopename*/14);
4597:
4598: ((ScopedName) CUP$result).setId("."
4599: + (/*i*/(org.jacorb.idl.str_token) CUP$stack
4600: .elementAt(CUP$top - 0)).str_val);
4601: ((ScopedName) CUP$result)
4602: .set_token((/*i*/(org.jacorb.idl.str_token) CUP$stack
4603: .elementAt(CUP$top - 0)));
4604:
4605: }
4606: return CUP$result;
4607:
4608: /*. . . . . . . . . . . . . . . . . . . .*/
4609: case 33: // scopename ::= ID
4610: {
4611: CUP$result = new ScopedName(/*scopename*/14);
4612:
4613: ((ScopedName) CUP$result)
4614: .setId((/*i*/(org.jacorb.idl.str_token) CUP$stack
4615: .elementAt(CUP$top - 0)).str_val);
4616: ((ScopedName) CUP$result)
4617: .set_token((/*i*/(org.jacorb.idl.str_token) CUP$stack
4618: .elementAt(CUP$top - 0)));
4619:
4620: }
4621: return CUP$result;
4622:
4623: /*. . . . . . . . . . . . . . . . . . . .*/
4624: case 32: // scopename_list ::= scopename
4625: {
4626: CUP$result = new SymbolList(/*scopename_list*/92);
4627: ((SymbolList) CUP$result).v.insertElementAt(
4628: (/*sn*/(ScopedName) CUP$stack
4629: .elementAt(CUP$top - 0)), 0);
4630: }
4631: return CUP$result;
4632:
4633: /*. . . . . . . . . . . . . . . . . . . .*/
4634: case 31: // scopename_list ::= scopename COMMA scopename_list
4635: {
4636: CUP$result = new SymbolList(/*scopename_list*/92);
4637:
4638: ((SymbolList) CUP$result).v = (Vector) (/*snl*/(SymbolList) CUP$stack
4639: .elementAt(CUP$top - 0)).v.clone();
4640: ((SymbolList) CUP$result).v.insertElementAt(
4641: (/*sn*/(ScopedName) CUP$stack
4642: .elementAt(CUP$top - 2)), 0);
4643:
4644: }
4645: return CUP$result;
4646:
4647: /*. . . . . . . . . . . . . . . . . . . .*/
4648: case 30: // inheritance_spec ::= empty
4649: {
4650: CUP$result = new SymbolList(/*inheritance_spec*/95);
4651:
4652: }
4653: return CUP$result;
4654:
4655: /*. . . . . . . . . . . . . . . . . . . .*/
4656: case 29: // inheritance_spec ::= COLON
4657: {
4658: CUP$result = new SymbolList(/*inheritance_spec*/95);
4659:
4660: lexer
4661: .emit_warn("Illegal IDL: empty inheritance spec after colon!");
4662:
4663: }
4664: return CUP$result;
4665:
4666: /*. . . . . . . . . . . . . . . . . . . .*/
4667: case 28: // inheritance_spec ::= COLON scopename_list
4668: {
4669: CUP$result = new SymbolList(/*inheritance_spec*/95);
4670:
4671: ((SymbolList) CUP$result).v = (Vector) (/*sl*/(SymbolList) CUP$stack
4672: .elementAt(CUP$top - 0)).v.clone();
4673:
4674: }
4675: return CUP$result;
4676:
4677: /*. . . . . . . . . . . . . . . . . . . .*/
4678: case 27: // export ::= op_dcl SEMI
4679: {
4680: CUP$result = new Definition(/*export*/13);
4681: ((Definition) CUP$result)
4682: .set_declaration((/*o*/(OpDecl) CUP$stack
4683: .elementAt(CUP$top - 1)));
4684: }
4685: return CUP$result;
4686:
4687: /*. . . . . . . . . . . . . . . . . . . .*/
4688: case 26: // export ::= attr_dcl SEMI
4689: {
4690: CUP$result = new Definition(/*export*/13);
4691: ((Definition) CUP$result)
4692: .set_declaration((/*a*/(AttrDecl) CUP$stack
4693: .elementAt(CUP$top - 1)));
4694: }
4695: return CUP$result;
4696:
4697: /*. . . . . . . . . . . . . . . . . . . .*/
4698: case 25: // export ::= except_dcl SEMI
4699: {
4700: CUP$result = new Definition(/*export*/13);
4701: ((Definition) CUP$result)
4702: .set_declaration((/*e*/(StructType) CUP$stack
4703: .elementAt(CUP$top - 1)));
4704: }
4705: return CUP$result;
4706:
4707: /*. . . . . . . . . . . . . . . . . . . .*/
4708: case 24: // export ::= const_dcl SEMI
4709: {
4710: CUP$result = new Definition(/*export*/13);
4711: ((Definition) CUP$result)
4712: .set_declaration((/*c*/(ConstDecl) CUP$stack
4713: .elementAt(CUP$top - 1)));
4714: }
4715: return CUP$result;
4716:
4717: /*. . . . . . . . . . . . . . . . . . . .*/
4718: case 23: // export ::= type_dcl SEMI
4719: {
4720: CUP$result = new Definition(/*export*/13);
4721: ((Definition) CUP$result)
4722: .set_declaration((/*t*/(TypeDeclaration) CUP$stack
4723: .elementAt(CUP$top - 1)));
4724: }
4725: return CUP$result;
4726:
4727: /*. . . . . . . . . . . . . . . . . . . .*/
4728: case 22: // interface_body ::= empty
4729: {
4730: CUP$result = new InterfaceBody(/*interface_body*/12);
4731: ((InterfaceBody) CUP$result).commit();
4732: }
4733: return CUP$result;
4734:
4735: /*. . . . . . . . . . . . . . . . . . . .*/
4736: case 21: // interface_body ::= export interface_body
4737: {
4738: CUP$result = new InterfaceBody(/*interface_body*/12);
4739:
4740: ((InterfaceBody) CUP$result).v = (Vector) (/*i*/(InterfaceBody) CUP$stack
4741: .elementAt(CUP$top - 0)).v.clone();
4742: ((InterfaceBody) CUP$result).v.insertElementAt(
4743: (/*e*/(Definition) CUP$stack
4744: .elementAt(CUP$top - 1)), 0);
4745:
4746: }
4747: return CUP$result;
4748:
4749: /*. . . . . . . . . . . . . . . . . . . .*/
4750: case 20: // interface ::= PSEUDO INTERFACE ID
4751: {
4752: CUP$result = new Interface(/*interface*/11);
4753:
4754: ((Interface) CUP$result).set_pseudo();
4755: ((Interface) CUP$result)
4756: .set_token((/*i*/(org.jacorb.idl.str_token) CUP$stack
4757: .elementAt(CUP$top - 0)));
4758: parser.closeScope((Scope) ((Interface) CUP$result));
4759:
4760: }
4761: return CUP$result;
4762:
4763: /*. . . . . . . . . . . . . . . . . . . .*/
4764: case 19: // interface ::= LOCAL INTERFACE ID
4765: {
4766: CUP$result = new Interface(/*interface*/11);
4767:
4768: ((Interface) CUP$result)
4769: .set_token((/*i*/(org.jacorb.idl.str_token) CUP$stack
4770: .elementAt(CUP$top - 0)));
4771: ((Interface) CUP$result).set_abstract();
4772: ((Interface) CUP$result).set_locality(true);
4773: parser.closeScope((Scope) ((Interface) CUP$result));
4774:
4775: }
4776: return CUP$result;
4777:
4778: /*. . . . . . . . . . . . . . . . . . . .*/
4779: case 18: // interface ::= ABSTRACT INTERFACE ID
4780: {
4781: CUP$result = new Interface(/*interface*/11);
4782:
4783: ((Interface) CUP$result)
4784: .set_token((/*i*/(org.jacorb.idl.str_token) CUP$stack
4785: .elementAt(CUP$top - 0)));
4786: ((Interface) CUP$result).set_abstract();
4787: parser.closeScope((Scope) ((Interface) CUP$result));
4788:
4789: }
4790: return CUP$result;
4791:
4792: /*. . . . . . . . . . . . . . . . . . . .*/
4793: case 17: // interface ::= INTERFACE ID
4794: {
4795: CUP$result = new Interface(/*interface*/11);
4796:
4797: ((Interface) CUP$result)
4798: .set_token((/*i*/(org.jacorb.idl.str_token) CUP$stack
4799: .elementAt(CUP$top - 0)));
4800: parser.closeScope((Scope) ((Interface) CUP$result));
4801:
4802: }
4803: return CUP$result;
4804:
4805: /*. . . . . . . . . . . . . . . . . . . .*/
4806: case 16: // interface ::= PSEUDO INTERFACE ID inheritance_spec LCBRACE interface_body RCBRACE
4807: {
4808: CUP$result = new Interface(/*interface*/11);
4809:
4810: ((Interface) CUP$result).set_pseudo();
4811: ((Interface) CUP$result)
4812: .set_token((/*i*/(org.jacorb.idl.str_token) CUP$stack
4813: .elementAt(CUP$top - 4)));
4814: ((Interface) CUP$result).inheritanceSpec = (/*is*/(SymbolList) CUP$stack
4815: .elementAt(CUP$top - 3));
4816: ((Interface) CUP$result).body = (/*b*/(InterfaceBody) CUP$stack
4817: .elementAt(CUP$top - 1));
4818: (/*b*/(InterfaceBody) CUP$stack.elementAt(CUP$top - 1))
4819: .set_pseudo();
4820: (/*b*/(InterfaceBody) CUP$stack.elementAt(CUP$top - 1))
4821: .set_name((/*i*/(org.jacorb.idl.str_token) CUP$stack
4822: .elementAt(CUP$top - 4)).str_val);
4823: (/*b*/(InterfaceBody) CUP$stack.elementAt(CUP$top - 1)).my_interface = ((Interface) CUP$result);
4824: (/*b*/(InterfaceBody) CUP$stack.elementAt(CUP$top - 1))
4825: .setEnclosingSymbol(((Interface) CUP$result));
4826: ((Interface) CUP$result).set_included(parser.include_state);
4827: parser.closeScope((Scope) ((Interface) CUP$result));
4828:
4829: }
4830: return CUP$result;
4831:
4832: /*. . . . . . . . . . . . . . . . . . . .*/
4833: case 15: // interface ::= LOCAL INTERFACE ID inheritance_spec LCBRACE interface_body RCBRACE
4834: {
4835: CUP$result = new Interface(/*interface*/11);
4836:
4837: ((Interface) CUP$result)
4838: .set_token((/*i*/(org.jacorb.idl.str_token) CUP$stack
4839: .elementAt(CUP$top - 4)));
4840: ((Interface) CUP$result).inheritanceSpec = (/*is*/(SymbolList) CUP$stack
4841: .elementAt(CUP$top - 3));
4842: ((Interface) CUP$result).body = (/*b*/(InterfaceBody) CUP$stack
4843: .elementAt(CUP$top - 1));
4844: (/*b*/(InterfaceBody) CUP$stack.elementAt(CUP$top - 1))
4845: .set_name((/*i*/(org.jacorb.idl.str_token) CUP$stack
4846: .elementAt(CUP$top - 4)).str_val);
4847: (/*b*/(InterfaceBody) CUP$stack.elementAt(CUP$top - 1)).my_interface = ((Interface) CUP$result);
4848: (/*b*/(InterfaceBody) CUP$stack.elementAt(CUP$top - 1))
4849: .setEnclosingSymbol(((Interface) CUP$result));
4850: ((Interface) CUP$result).set_included(parser.include_state);
4851: ((Interface) CUP$result).set_locality(true);
4852: parser.closeScope((Scope) ((Interface) CUP$result));
4853:
4854: }
4855: return CUP$result;
4856:
4857: /*. . . . . . . . . . . . . . . . . . . .*/
4858: case 14: // interface ::= ABSTRACT INTERFACE ID inheritance_spec LCBRACE interface_body RCBRACE
4859: {
4860: CUP$result = new Interface(/*interface*/11);
4861:
4862: ((Interface) CUP$result)
4863: .set_token((/*i*/(org.jacorb.idl.str_token) CUP$stack
4864: .elementAt(CUP$top - 4)));
4865: ((Interface) CUP$result).set_abstract();
4866: ((Interface) CUP$result).inheritanceSpec = (/*is*/(SymbolList) CUP$stack
4867: .elementAt(CUP$top - 3));
4868: ((Interface) CUP$result).body = (/*b*/(InterfaceBody) CUP$stack
4869: .elementAt(CUP$top - 1));
4870: (/*b*/(InterfaceBody) CUP$stack.elementAt(CUP$top - 1))
4871: .set_name((/*i*/(org.jacorb.idl.str_token) CUP$stack
4872: .elementAt(CUP$top - 4)).str_val);
4873: (/*b*/(InterfaceBody) CUP$stack.elementAt(CUP$top - 1)).my_interface = ((Interface) CUP$result);
4874: (/*b*/(InterfaceBody) CUP$stack.elementAt(CUP$top - 1))
4875: .setEnclosingSymbol(((Interface) CUP$result));
4876: ((Interface) CUP$result).set_included(parser.include_state);
4877: parser.closeScope((Scope) ((Interface) CUP$result));
4878:
4879: }
4880: return CUP$result;
4881:
4882: /*. . . . . . . . . . . . . . . . . . . .*/
4883: case 13: // interface ::= INTERFACE ID inheritance_spec LCBRACE interface_body RCBRACE
4884: {
4885: CUP$result = new Interface(/*interface*/11);
4886:
4887: ((Interface) CUP$result)
4888: .set_token((/*i*/(org.jacorb.idl.str_token) CUP$stack
4889: .elementAt(CUP$top - 4)));
4890: ((Interface) CUP$result).inheritanceSpec = (/*is*/(SymbolList) CUP$stack
4891: .elementAt(CUP$top - 3));
4892: ((Interface) CUP$result).body = (/*b*/(InterfaceBody) CUP$stack
4893: .elementAt(CUP$top - 1));
4894: (/*b*/(InterfaceBody) CUP$stack.elementAt(CUP$top - 1))
4895: .set_name((/*i*/(org.jacorb.idl.str_token) CUP$stack
4896: .elementAt(CUP$top - 4)).str_val);
4897: (/*b*/(InterfaceBody) CUP$stack.elementAt(CUP$top - 1)).my_interface = ((Interface) CUP$result);
4898: (/*b*/(InterfaceBody) CUP$stack.elementAt(CUP$top - 1))
4899: .setEnclosingSymbol(((Interface) CUP$result));
4900: ((Interface) CUP$result).set_included(parser.include_state);
4901: parser.closeScope((Scope) ((Interface) CUP$result));
4902:
4903: }
4904: return CUP$result;
4905:
4906: /*. . . . . . . . . . . . . . . . . . . .*/
4907: case 12: // module ::= MODULE ID LCBRACE definitions RCBRACE
4908: {
4909: CUP$result = new Module(/*module*/10);
4910:
4911: ((Module) CUP$result).spec = (/*d*/(Definitions) CUP$stack
4912: .elementAt(CUP$top - 1));
4913: ((Module) CUP$result)
4914: .set_token((/*i*/(org.jacorb.idl.str_token) CUP$stack
4915: .elementAt(CUP$top - 3)));
4916: ((Module) CUP$result)
4917: .setPackage((/*i*/(org.jacorb.idl.str_token) CUP$stack
4918: .elementAt(CUP$top - 3)).str_val);
4919: ((Module) CUP$result).set_included(parser.include_state);
4920:
4921: (/*d*/(Definitions) CUP$stack.elementAt(CUP$top - 1))
4922: .setEnclosingSymbol(((Module) CUP$result));
4923: parser.closeScope((Scope) ((Module) CUP$result));
4924:
4925: }
4926: return CUP$result;
4927:
4928: /*. . . . . . . . . . . . . . . . . . . .*/
4929: case 11: // definition ::= value SEMI
4930: {
4931: CUP$result = new Definition(/*definition*/8);
4932:
4933: ((Definition) CUP$result)
4934: .set_declaration((/*m*/(Value) CUP$stack
4935: .elementAt(CUP$top - 1)));
4936:
4937: }
4938: return CUP$result;
4939:
4940: /*. . . . . . . . . . . . . . . . . . . .*/
4941: case 10: // definition ::= module SEMI
4942: {
4943: CUP$result = new Definition(/*definition*/8);
4944:
4945: ((Definition) CUP$result)
4946: .set_declaration((/*m*/(Module) CUP$stack
4947: .elementAt(CUP$top - 1)));
4948:
4949: }
4950: return CUP$result;
4951:
4952: /*. . . . . . . . . . . . . . . . . . . .*/
4953: case 9: // definition ::= interface SEMI
4954: {
4955: CUP$result = new Definition(/*definition*/8);
4956:
4957: ((Definition) CUP$result)
4958: .set_declaration((/*p*/(Interface) CUP$stack
4959: .elementAt(CUP$top - 1)));
4960:
4961: }
4962: return CUP$result;
4963:
4964: /*. . . . . . . . . . . . . . . . . . . .*/
4965: case 8: // definition ::= except_dcl SEMI
4966: {
4967: CUP$result = new Definition(/*definition*/8);
4968:
4969: ((Definition) CUP$result)
4970: .set_declaration((/*e*/(StructType) CUP$stack
4971: .elementAt(CUP$top - 1)));
4972:
4973: }
4974: return CUP$result;
4975:
4976: /*. . . . . . . . . . . . . . . . . . . .*/
4977: case 7: // definition ::= const_dcl SEMI
4978: {
4979: CUP$result = new Definition(/*definition*/8);
4980:
4981: ((Definition) CUP$result)
4982: .set_declaration((/*c*/(ConstDecl) CUP$stack
4983: .elementAt(CUP$top - 1)));
4984:
4985: }
4986: return CUP$result;
4987:
4988: /*. . . . . . . . . . . . . . . . . . . .*/
4989: case 6: // definition ::= type_dcl SEMI
4990: {
4991: CUP$result = new Definition(/*definition*/8);
4992:
4993: ((Definition) CUP$result)
4994: .set_declaration((/*t*/(TypeDeclaration) CUP$stack
4995: .elementAt(CUP$top - 1)));
4996:
4997: }
4998: return CUP$result;
4999:
5000: /*. . . . . . . . . . . . . . . . . . . .*/
5001: case 5: // definitions ::= definition
5002: {
5003: CUP$result = new Definitions(/*definitions*/9);
5004:
5005: ((Definitions) CUP$result).v.insertElementAt(
5006: (/*d*/(Definition) CUP$stack
5007: .elementAt(CUP$top - 0)), 0);
5008:
5009: }
5010: return CUP$result;
5011:
5012: /*. . . . . . . . . . . . . . . . . . . .*/
5013: case 4: // definitions ::= definition definitions
5014: {
5015: CUP$result = new Definitions(/*definitions*/9);
5016:
5017: ((Definitions) CUP$result).v = (Vector) (/*ds*/(Definitions) CUP$stack
5018: .elementAt(CUP$top - 0)).v.clone();
5019: ((Definitions) CUP$result).v.insertElementAt(
5020: (/*d*/(Definition) CUP$stack
5021: .elementAt(CUP$top - 1)), 0);
5022:
5023: }
5024: return CUP$result;
5025:
5026: /*. . . . . . . . . . . . . . . . . . . .*/
5027: case 3: // specification ::= empty
5028: {
5029: CUP$result = new Spec(/*specification*/7);
5030:
5031: }
5032: return CUP$result;
5033:
5034: /*. . . . . . . . . . . . . . . . . . . .*/
5035: case 2: // specification ::= NT$0 definitions
5036: {
5037: CUP$result = new Spec(/*specification*/7);
5038:
5039: /* parsing */
5040:
5041: ((Spec) CUP$result).definitions = (Vector) (/*ds*/(Definitions) CUP$stack
5042: .elementAt(CUP$top - 0)).v.clone();
5043:
5044: if (((org.jacorb.idl.parser) CUP$parser).package_prefix != null)
5045: ((Spec) CUP$result)
5046: .setPackage(((org.jacorb.idl.parser) CUP$parser).package_prefix);
5047:
5048: ((Spec) CUP$result).parse();
5049:
5050: if (lexer.error_count != 0) {
5051: lexer.emit_error(lexer.error_count + " error(s).");
5052: throw new ParseException("Lexer errors");
5053: }
5054:
5055: // if there are still interfaces to be parsed, wait until the
5056: // threads performing this have finished. The last one
5057: // will call notify() :)
5058:
5059: if (parser.pending_interfaces.size() > 0) {
5060: // only block waiting if we know that there are active or
5061: // runnable threads and that there are still pending tasks
5062: final long timeout = 60000;
5063: long waitUntil = System.currentTimeMillis() + 20000;
5064:
5065: synchronized (parser.pending_interfaces) {
5066: while (parser.activeParseThreads() > 0
5067: && parser.pending_interfaces.size() > 0
5068: && System.currentTimeMillis() < waitUntil) {
5069: parser.pending_interfaces.wait(timeout);
5070: }
5071: }
5072: }
5073:
5074: if (parser.pending_interfaces.size() > 0 && !parser.sloppy) {
5075: parser.fatal_error("Undefined interface: "
5076: + (String) (parser.pending_interfaces.keys()
5077: .nextElement()), null);
5078: }
5079:
5080: /* okay, parsing is done */
5081: parser.done_parsing = true;
5082:
5083: /* code generation phase */
5084:
5085: if (!((org.jacorb.idl.parser) CUP$parser).parse_only) {
5086: org.jacorb.idl.IDLTreeVisitor backend = ((org.jacorb.idl.parser) CUP$parser)
5087: .getGenerator();
5088: if (backend != null) {
5089: if (((org.jacorb.idl.parser) CUP$parser).addbackend) {
5090: // before the custom backend first use
5091: // the default code generator for the Java Mapping
5092: ((Spec) CUP$result)
5093: .print(new java.io.PrintWriter(
5094: java.lang.System.out));
5095: }
5096:
5097: // a custom backend was provided , so let's start
5098: // the visitor
5099: ((Spec) CUP$result).accept(backend);
5100: } else {
5101: // use the default code generator for the Java Mapping
5102: ((Spec) CUP$result).print(new java.io.PrintWriter(
5103: java.lang.System.out));
5104: }
5105: }
5106:
5107: }
5108: return CUP$result;
5109:
5110: /*. . . . . . . . . . . . . . . . . . . .*/
5111: case 1: // NT$0 ::=
5112: {
5113: CUP$result = new org.jacorb.idl.runtime.token(/*NT$0*/98);
5114:
5115: }
5116: return CUP$result;
5117:
5118: /*. . . . . . . . . . . . . . . . . . . .*/
5119: case 0: // $START ::= specification EOF
5120: {
5121: CUP$result = new org.jacorb.idl.runtime.token(/*$START*/0);
5122:
5123: }
5124: /* ACCEPT */
5125: CUP$parser.done_parsing();
5126: return CUP$result;
5127:
5128: /* . . . . . .*/
5129: default:
5130: throw new Exception(
5131: "Invalid action number found in internal parse table");
5132:
5133: }
5134: }
5135: };
|