Source Code Cross Referenced for parser.java in  » Collaboration » JacORB » org » jacorb » idl » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » Collaboration » JacORB » org.jacorb.idl 
Source Cross Referenced  Class Diagram Java Document (Java Doc) 


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:        };
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.