1 /*@bgen(jjtree) Generated By:JJTree: Do not edit this line. Parser.jj */
   2 /*@egen*//*
   3  * @(#)file      Parser.jjt
   4  * @(#)author    Sun Microsystems, Inc.
   5  *
   6  * Copyright (c) 1997, 2003, Oracle and/or its affiliates. All rights reserved.
   7  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   8  *
   9  * This code is free software; you can redistribute it and/or modify it
  10  * under the terms of the GNU General Public License version 2 only, as
  11  * published by the Free Software Foundation.  Oracle designates this
  12  * particular file as subject to the "Classpath" exception as provided
  13  * by Oracle in the LICENSE file that accompanied this code.
  14  *
  15  * This code is distributed in the hope that it will be useful, but WITHOUT
  16  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  17  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  18  * version 2 for more details (a copy is included in the LICENSE file that
  19  * accompanied this code).
  20  *
  21  * You should have received a copy of the GNU General Public License version
  22  * 2 along with this work; if not, write to the Free Software Foundation,
  23  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  24  *
  25  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  26  * or visit www.oracle.com if you need additional information or have any
  27  * questions.
  28  *
  29  */
  30 
  31 options {              
  32   STATIC=false;                                                                
  33 }
  34 
  35 
  36 PARSER_BEGIN(Parser)
  37 
  38 package com.sun.jmx.snmp.IPAcl;
  39 
  40 import java.io.*;
  41 
  42 public class Parser/*@bgen(jjtree)*/implements ParserTreeConstants/*@egen*/ {/*@bgen(jjtree)*/
  43   protected JJTParserState jjtree = new JJTParserState();
  44 
  45 /*@egen*/
  46 }
  47 
  48 PARSER_END(Parser)
  49 
  50 
  51 SKIP :
  52 {
  53   " "
  54 | "\t"
  55 | "\n"
  56 | "\r"
  57 | <"--" (~["\n","\r"])* ("\n"|"\r"|"\r\n")>
  58 | <"#" (~["\n","\r"])* ("\n"|"\r"|"\r\n")>
  59 
  60 }
  61 
  62 
  63 
  64 /* RESERVED WORDS AND LITERALS */
  65 
  66 TOKEN : 
  67 {
  68   <ACCESS: "access">
  69 | <ACL: "acl">
  70 | <ASSIGN: "=">
  71 | <COMMUNITIES: "communities">
  72 | <ENTERPRISE: "enterprise">
  73 | <HOSTS: "hosts">
  74 | <LBRACE: "{">
  75 | <MANAGERS: "managers">
  76 | <RANGE: "-">
  77 | <RBRACE: "}">
  78 | <RO: "read-only">
  79 | <RW: "read-write">
  80 | <TRAP: "trap">
  81 | <INFORM: "inform">
  82 | <TRAPCOMMUNITY: "trap-community">
  83 | <INFORMCOMMUNITY: "inform-community">
  84 | <TRAPNUM: "trap-num">
  85 }
  86 
  87 
  88 
  89 TOKEN : /* LITERALS */
  90 {
  91   < INTEGER_LITERAL:
  92         <DECIMAL_LITERAL> (["l","L"])?
  93       | <HEX_LITERAL> (["l","L"])?
  94       | <OCTAL_LITERAL> (["l","L"])?
  95   >
  96 |
  97   < #DECIMAL_LITERAL: ["1"-"9"] (["0"-"9"])* >
  98 |
  99   < #HEX_LITERAL: "0" ["x","X"] (["0"-"9","a"-"f","A"-"F"])+ >
 100 |      
 101   < #OCTAL_LITERAL: "0" (["0"-"7"])* >
 102 }
 103 
 104 TOKEN : /* V6 LITERALS */
 105 { 
 106   < V6_ADDRESS: ((( ( (<H> ":")+ (":")?) | "::" ) (<H> ":")* (<H> | (<D> "." <D> "." <D> "." <D>))) | ("::")) | ( (<H> ":")+ ":") >
 107 |
 108   <#H: (["0"-"9","a"-"f","A"-"F"])+ >
 109 | 
 110   <#D: (["0"-"9"])+ >
 111 }
 112  
 113 TOKEN : /* IDENTIFIERS */
 114 {
 115   < IDENTIFIER: ( (<DIGIT>|<LETTER>)+ (<SEPARATOR>|<LETTER>|<DIGIT>)* (<DIGIT>|<LETTER>)+ ) | (<DIGIT>|<LETTER>)+ >
 116 |
 117   < #LETTER: ["a"-"z","A"-"Z"] >
 118 |
 119   < #SEPARATOR: ["-", "_"] >
 120 |
 121   < #DIGIT: ["0"-"9"] >
 122 |
 123  <CSTRING: "\"" (~["\""])* "\"">
 124 }
 125 
 126  
 127 
 128 TOKEN: /* SEPARATOR */
 129 {
 130   < COMMA: "," >
 131 | < DOT: "." >
 132 | < MARK: "!" >
 133 | < MASK: "/">
 134 }
 135 
 136 // A file can contain several acl definitions
 137 //
 138 JDMSecurityDefs SecurityDefs()  : {/*@bgen(jjtree) SecurityDefs */
 139   JDMSecurityDefs jjtn000 = new JDMSecurityDefs(JJTSECURITYDEFS);
 140   boolean jjtc000 = true;
 141   jjtree.openNodeScope(jjtn000);
 142 /*@egen*/}
 143 {/*@bgen(jjtree) SecurityDefs */
 144   try {
 145 /*@egen*/
 146   [AclBlock()]
 147   [TrapBlock()]
 148   [InformBlock()]
 149   <EOF>/*@bgen(jjtree)*/
 150   {
 151     jjtree.closeNodeScope(jjtn000, true);
 152     jjtc000 = false;
 153   }
 154 /*@egen*/
 155   { return jjtn000;}/*@bgen(jjtree)*/
 156   } catch (Throwable jjte000) {
 157     if (jjtc000) {
 158       jjtree.clearNodeScope(jjtn000);
 159       jjtc000 = false;
 160     } else {
 161       jjtree.popNode();
 162     }
 163     if (jjte000 instanceof RuntimeException) {
 164       throw (RuntimeException)jjte000;
 165     }
 166     if (jjte000 instanceof ParseException) {
 167       throw (ParseException)jjte000;
 168     }
 169     throw (Error)jjte000;
 170   } finally {
 171     if (jjtc000) {
 172       jjtree.closeNodeScope(jjtn000, true);
 173     }
 174   }
 175 /*@egen*/
 176 }
 177 
 178 void AclBlock(): {/*@bgen(jjtree) AclBlock */
 179   JDMAclBlock jjtn000 = new JDMAclBlock(JJTACLBLOCK);
 180   boolean jjtc000 = true;
 181   jjtree.openNodeScope(jjtn000);
 182 /*@egen*/}
 183 {/*@bgen(jjtree) AclBlock */
 184 try {
 185 /*@egen*/
 186 "acl" "=" "{" (AclItem())+ "}"/*@bgen(jjtree)*/
 187 } catch (Throwable jjte000) {
 188   if (jjtc000) {
 189     jjtree.clearNodeScope(jjtn000);
 190     jjtc000 = false;
 191   } else {
 192     jjtree.popNode();
 193   }
 194   if (jjte000 instanceof RuntimeException) {
 195     throw (RuntimeException)jjte000;
 196   }
 197   if (jjte000 instanceof ParseException) {
 198     throw (ParseException)jjte000;
 199   }
 200   throw (Error)jjte000;
 201 } finally {
 202   if (jjtc000) {
 203     jjtree.closeNodeScope(jjtn000, true);
 204   }
 205 }
 206 /*@egen*/
 207 }
 208 
 209 void AclItem(): {/*@bgen(jjtree) AclItem */
 210   JDMAclItem jjtn000 = new JDMAclItem(JJTACLITEM);
 211   boolean jjtc000 = true;
 212   jjtree.openNodeScope(jjtn000);
 213 /*@egen*/}
 214 {/*@bgen(jjtree) AclItem */
 215 try {
 216 /*@egen*/
 217 "{" jjtn000.com= Communities() jjtn000.access= Access() Managers() "}"/*@bgen(jjtree)*/
 218 } catch (Throwable jjte000) {
 219   if (jjtc000) {
 220     jjtree.clearNodeScope(jjtn000);
 221     jjtc000 = false;
 222   } else {
 223     jjtree.popNode();
 224   }
 225   if (jjte000 instanceof RuntimeException) {
 226     throw (RuntimeException)jjte000;
 227   }
 228   if (jjte000 instanceof ParseException) {
 229     throw (ParseException)jjte000;
 230   }
 231   throw (Error)jjte000;
 232 } finally {
 233   if (jjtc000) {
 234     jjtree.closeNodeScope(jjtn000, true);
 235   }
 236 }
 237 /*@egen*/
 238 }
 239 
 240 JDMCommunities Communities(): {/*@bgen(jjtree) Communities */
 241   JDMCommunities jjtn000 = new JDMCommunities(JJTCOMMUNITIES);
 242   boolean jjtc000 = true;
 243   jjtree.openNodeScope(jjtn000);
 244 /*@egen*/}
 245 {/*@bgen(jjtree) Communities */
 246 try {
 247 /*@egen*/
 248 "communities" "=" Community() ( "," Community())*/*@bgen(jjtree)*/
 249 {
 250   jjtree.closeNodeScope(jjtn000, true);
 251   jjtc000 = false;
 252 }
 253 /*@egen*/
 254 
 255 {return jjtn000;}/*@bgen(jjtree)*/
 256 } catch (Throwable jjte000) {
 257   if (jjtc000) {
 258     jjtree.clearNodeScope(jjtn000);
 259     jjtc000 = false;
 260   } else {
 261     jjtree.popNode();
 262   }
 263   if (jjte000 instanceof RuntimeException) {
 264     throw (RuntimeException)jjte000;
 265   }
 266   if (jjte000 instanceof ParseException) {
 267     throw (ParseException)jjte000;
 268   }
 269   throw (Error)jjte000;
 270 } finally {
 271   if (jjtc000) {
 272     jjtree.closeNodeScope(jjtn000, true);
 273   }
 274 }
 275 /*@egen*/
 276 
 277 }
 278 
 279 void Community(): 
 280 {/*@bgen(jjtree) Community */
 281   JDMCommunity jjtn000 = new JDMCommunity(JJTCOMMUNITY);
 282   boolean jjtc000 = true;
 283   jjtree.openNodeScope(jjtn000);
 284 /*@egen*/
 285   Token t;
 286 }
 287 {/*@bgen(jjtree) Community */
 288 try {
 289 /*@egen*/
 290 t=<IDENTIFIER>/*@bgen(jjtree)*/
 291                {
 292                  jjtree.closeNodeScope(jjtn000, true);
 293                  jjtc000 = false;
 294                }
 295 /*@egen*/ {jjtn000.communityString= t.image;}/*@bgen(jjtree)*/
 296 } finally {
 297   if (jjtc000) {
 298     jjtree.closeNodeScope(jjtn000, true);
 299   }
 300 }
 301 /*@egen*/
 302 }
 303 
 304 JDMAccess Access(): {/*@bgen(jjtree) Access */
 305   JDMAccess jjtn000 = new JDMAccess(JJTACCESS);
 306   boolean jjtc000 = true;
 307   jjtree.openNodeScope(jjtn000);
 308 /*@egen*/}
 309 {/*@bgen(jjtree) Access */
 310 try {
 311 /*@egen*/
 312 "access" "=" ( <RO> {jjtn000.access= RO;}
 313               |
 314                <RW> {jjtn000.access= RW;}
 315              )/*@bgen(jjtree)*/
 316 {
 317   jjtree.closeNodeScope(jjtn000, true);
 318   jjtc000 = false;
 319 }
 320 /*@egen*/
 321 {return jjtn000;}/*@bgen(jjtree)*/
 322 } finally {
 323   if (jjtc000) {
 324     jjtree.closeNodeScope(jjtn000, true);
 325   }
 326 }
 327 /*@egen*/
 328 }
 329 
 330 
 331 void Managers() : {/*@bgen(jjtree) Managers */
 332   JDMManagers jjtn000 = new JDMManagers(JJTMANAGERS);
 333   boolean jjtc000 = true;
 334   jjtree.openNodeScope(jjtn000);
 335 /*@egen*/ }
 336 {/*@bgen(jjtree) Managers */
 337 try {
 338 /*@egen*/
 339 "managers" "=" Host() ( "," Host())*/*@bgen(jjtree)*/
 340 } catch (Throwable jjte000) {
 341   if (jjtc000) {
 342     jjtree.clearNodeScope(jjtn000);
 343     jjtc000 = false;
 344   } else {
 345     jjtree.popNode();
 346   }
 347   if (jjte000 instanceof RuntimeException) {
 348     throw (RuntimeException)jjte000;
 349   }
 350   if (jjte000 instanceof ParseException) {
 351     throw (ParseException)jjte000;
 352   }
 353   throw (Error)jjte000;
 354 } finally {
 355   if (jjtc000) {
 356     jjtree.closeNodeScope(jjtn000, true);
 357   }
 358 }
 359 /*@egen*/
 360 }
 361 
 362 void Host() : 
 363 {/*@bgen(jjtree) Host */
 364   JDMHost jjtn000 = new JDMHost(JJTHOST);
 365   boolean jjtc000 = true;
 366   jjtree.openNodeScope(jjtn000);
 367 /*@egen*/
 368   Token t;
 369 }
 370 {/*@bgen(jjtree) Host */
 371 try {
 372 /*@egen*/
 373 HostName()
 374 |
 375 LOOKAHEAD(<INTEGER_LITERAL> ( "." <INTEGER_LITERAL> )* "/" <INTEGER_LITERAL>)
 376 NetMask()
 377 |
 378 LOOKAHEAD(<V6_ADDRESS> "/" <INTEGER_LITERAL>)
 379 NetMaskV6()
 380 |
 381 LOOKAHEAD(<INTEGER_LITERAL> ".")
 382 IpAddress()
 383 |
 384 IpV6Address()
 385 |
 386 IpMask()/*@bgen(jjtree)*/
 387 } catch (Throwable jjte000) {
 388   if (jjtc000) {
 389     jjtree.clearNodeScope(jjtn000);
 390     jjtc000 = false;
 391   } else {
 392     jjtree.popNode();
 393   }
 394   if (jjte000 instanceof RuntimeException) {
 395     throw (RuntimeException)jjte000;
 396   }
 397   if (jjte000 instanceof ParseException) {
 398     throw (ParseException)jjte000;
 399   }
 400   throw (Error)jjte000;
 401 } finally {
 402   if (jjtc000) {
 403     jjtree.closeNodeScope(jjtn000, true);
 404   }
 405 }
 406 /*@egen*/
 407 }
 408 
 409 void HostName():
 410 {/*@bgen(jjtree) HostName */
 411   JDMHostName jjtn000 = new JDMHostName(JJTHOSTNAME);
 412   boolean jjtc000 = true;
 413   jjtree.openNodeScope(jjtn000);
 414 /*@egen*/
 415   Token t;
 416 }
 417 {/*@bgen(jjtree) HostName */
 418   try {
 419 /*@egen*/
 420   t=<IDENTIFIER> { jjtn000.name.append(t.image); }
 421 (
 422 "." t=<IDENTIFIER> 
 423   {jjtn000.name.append( "." + t.image); }
 424 )*/*@bgen(jjtree)*/
 425   } finally {
 426     if (jjtc000) {
 427       jjtree.closeNodeScope(jjtn000, true);
 428     }
 429   }
 430 /*@egen*/
 431 
 432 }
 433 
 434 void IpAddress():
 435 {/*@bgen(jjtree) IpAddress */
 436 JDMIpAddress jjtn000 = new JDMIpAddress(JJTIPADDRESS);
 437 boolean jjtc000 = true;
 438 jjtree.openNodeScope(jjtn000);
 439 /*@egen*/
 440 Token t;
 441 }
 442 {/*@bgen(jjtree) IpAddress */
 443 try {
 444 /*@egen*/
 445 
 446 t= <INTEGER_LITERAL> 
 447   {jjtn000.address.append(t.image); }
 448 (
 449 "." t= <INTEGER_LITERAL> 
 450   {jjtn000.address.append( "." + t.image); }
 451 )*/*@bgen(jjtree)*/
 452 } finally {
 453   if (jjtc000) {
 454     jjtree.closeNodeScope(jjtn000, true);
 455   }
 456 }
 457 /*@egen*/
 458 
 459 }
 460 
 461 void IpV6Address():
 462 {/*@bgen(jjtree) IpV6Address */
 463 JDMIpV6Address jjtn000 = new JDMIpV6Address(JJTIPV6ADDRESS);
 464 boolean jjtc000 = true;
 465 jjtree.openNodeScope(jjtn000);
 466 /*@egen*/
 467 Token t;
 468 }
 469 {/*@bgen(jjtree) IpV6Address */
 470 try {
 471 /*@egen*/
 472 
 473 t= <V6_ADDRESS>/*@bgen(jjtree)*/
 474   {
 475     jjtree.closeNodeScope(jjtn000, true);
 476     jjtc000 = false;
 477   }
 478 /*@egen*/ 
 479   {jjtn000.address.append(t.image); }/*@bgen(jjtree)*/
 480 } finally {
 481   if (jjtc000) {
 482     jjtree.closeNodeScope(jjtn000, true);
 483   }
 484 }
 485 /*@egen*/
 486 }
 487 
 488 void IpMask():
 489 {/*@bgen(jjtree) IpMask */
 490 JDMIpMask jjtn000 = new JDMIpMask(JJTIPMASK);
 491 boolean jjtc000 = true;
 492 jjtree.openNodeScope(jjtn000);
 493 /*@egen*/
 494 Token t;
 495 }
 496 {/*@bgen(jjtree) IpMask */
 497 try {
 498 /*@egen*/
 499 
 500 t= <INTEGER_LITERAL> 
 501   {jjtn000.address.append(t.image); }
 502 (
 503 "!" t= <INTEGER_LITERAL> 
 504   {jjtn000.address.append( "." + t.image); }
 505 )*/*@bgen(jjtree)*/
 506 } finally {
 507   if (jjtc000) {
 508     jjtree.closeNodeScope(jjtn000, true);
 509   }
 510 }
 511 /*@egen*/
 512 }
 513 
 514 void NetMask():
 515 {/*@bgen(jjtree) NetMask */
 516 JDMNetMask jjtn000 = new JDMNetMask(JJTNETMASK);
 517 boolean jjtc000 = true;
 518 jjtree.openNodeScope(jjtn000);
 519 /*@egen*/
 520 Token t;
 521 }
 522 {/*@bgen(jjtree) NetMask */
 523 try {
 524 /*@egen*/
 525 
 526 t= <INTEGER_LITERAL> 
 527   {jjtn000.address.append(t.image); }
 528 (
 529 "." t= <INTEGER_LITERAL> 
 530   {jjtn000.address.append( "." + t.image); }
 531 )* "/" t= <INTEGER_LITERAL>/*@bgen(jjtree)*/
 532                             {
 533                               jjtree.closeNodeScope(jjtn000, true);
 534                               jjtc000 = false;
 535                             }
 536 /*@egen*/ {jjtn000.mask = t.image; }/*@bgen(jjtree)*/
 537 } finally {
 538   if (jjtc000) {
 539     jjtree.closeNodeScope(jjtn000, true);
 540   }
 541 }
 542 /*@egen*/
 543 }
 544 
 545 void NetMaskV6():
 546 {/*@bgen(jjtree) NetMaskV6 */
 547 JDMNetMaskV6 jjtn000 = new JDMNetMaskV6(JJTNETMASKV6);
 548 boolean jjtc000 = true;
 549 jjtree.openNodeScope(jjtn000);
 550 /*@egen*/
 551 Token t;
 552 }
 553 {/*@bgen(jjtree) NetMaskV6 */
 554 try {
 555 /*@egen*/
 556 
 557 t= <V6_ADDRESS> 
 558   {jjtn000.address.append(t.image); }
 559 
 560 "/" t= <INTEGER_LITERAL>/*@bgen(jjtree)*/
 561                          {
 562                            jjtree.closeNodeScope(jjtn000, true);
 563                            jjtc000 = false;
 564                          }
 565 /*@egen*/ {jjtn000.mask = t.image; }/*@bgen(jjtree)*/
 566 } finally {
 567   if (jjtc000) {
 568     jjtree.closeNodeScope(jjtn000, true);
 569   }
 570 }
 571 /*@egen*/
 572 }
 573 
 574 void TrapBlock(): {/*@bgen(jjtree) TrapBlock */
 575   JDMTrapBlock jjtn000 = new JDMTrapBlock(JJTTRAPBLOCK);
 576   boolean jjtc000 = true;
 577   jjtree.openNodeScope(jjtn000);
 578 /*@egen*/ }
 579 {/*@bgen(jjtree) TrapBlock */
 580 try {
 581 /*@egen*/
 582 "trap" "=" "{" (TrapItem())* "}"/*@bgen(jjtree)*/
 583 } catch (Throwable jjte000) {
 584   if (jjtc000) {
 585     jjtree.clearNodeScope(jjtn000);
 586     jjtc000 = false;
 587   } else {
 588     jjtree.popNode();
 589   }
 590   if (jjte000 instanceof RuntimeException) {
 591     throw (RuntimeException)jjte000;
 592   }
 593   if (jjte000 instanceof ParseException) {
 594     throw (ParseException)jjte000;
 595   }
 596   throw (Error)jjte000;
 597 } finally {
 598   if (jjtc000) {
 599     jjtree.closeNodeScope(jjtn000, true);
 600   }
 601 }
 602 /*@egen*/
 603 }
 604 
 605 void TrapItem(): {/*@bgen(jjtree) TrapItem */
 606   JDMTrapItem jjtn000 = new JDMTrapItem(JJTTRAPITEM);
 607   boolean jjtc000 = true;
 608   jjtree.openNodeScope(jjtn000);
 609 /*@egen*/ }
 610 {/*@bgen(jjtree) TrapItem */
 611 try {
 612 /*@egen*/
 613 "{" jjtn000.comm= TrapCommunity() TrapInterestedHost() (Enterprise())* "}"/*@bgen(jjtree)*/
 614 } catch (Throwable jjte000) {
 615   if (jjtc000) {
 616     jjtree.clearNodeScope(jjtn000);
 617     jjtc000 = false;
 618   } else {
 619     jjtree.popNode();
 620   }
 621   if (jjte000 instanceof RuntimeException) {
 622     throw (RuntimeException)jjte000;
 623   }
 624   if (jjte000 instanceof ParseException) {
 625     throw (ParseException)jjte000;
 626   }
 627   throw (Error)jjte000;
 628 } finally {
 629   if (jjtc000) {
 630     jjtree.closeNodeScope(jjtn000, true);
 631   }
 632 }
 633 /*@egen*/
 634 }
 635 
 636 JDMTrapCommunity TrapCommunity(): 
 637 {/*@bgen(jjtree) TrapCommunity */
 638   JDMTrapCommunity jjtn000 = new JDMTrapCommunity(JJTTRAPCOMMUNITY);
 639   boolean jjtc000 = true;
 640   jjtree.openNodeScope(jjtn000);
 641 /*@egen*/
 642   Token t;
 643 }
 644 {/*@bgen(jjtree) TrapCommunity */
 645 try {
 646 /*@egen*/
 647 "trap-community" "=" t=<IDENTIFIER>/*@bgen(jjtree)*/
 648                                     {
 649                                       jjtree.closeNodeScope(jjtn000, true);
 650                                       jjtc000 = false;
 651                                     }
 652 /*@egen*/ { jjtn000.community= t.image; return jjtn000; }/*@bgen(jjtree)*/
 653 } finally {
 654   if (jjtc000) {
 655     jjtree.closeNodeScope(jjtn000, true);
 656   }
 657 }
 658 /*@egen*/
 659 }
 660 
 661 void TrapInterestedHost(): {/*@bgen(jjtree) TrapInterestedHost */
 662   JDMTrapInterestedHost jjtn000 = new JDMTrapInterestedHost(JJTTRAPINTERESTEDHOST);
 663   boolean jjtc000 = true;
 664   jjtree.openNodeScope(jjtn000);
 665 /*@egen*/ }
 666 {/*@bgen(jjtree) TrapInterestedHost */
 667 try {
 668 /*@egen*/
 669 "hosts" "=" HostTrap() ("," HostTrap())*/*@bgen(jjtree)*/
 670 } catch (Throwable jjte000) {
 671   if (jjtc000) {
 672     jjtree.clearNodeScope(jjtn000);
 673     jjtc000 = false;
 674   } else {
 675     jjtree.popNode();
 676   }
 677   if (jjte000 instanceof RuntimeException) {
 678     throw (RuntimeException)jjte000;
 679   }
 680   if (jjte000 instanceof ParseException) {
 681     throw (ParseException)jjte000;
 682   }
 683   throw (Error)jjte000;
 684 } finally {
 685   if (jjtc000) {
 686     jjtree.closeNodeScope(jjtn000, true);
 687   }
 688 }
 689 /*@egen*/
 690 }
 691 
 692 void HostTrap() : 
 693 {/*@bgen(jjtree) HostTrap */
 694   JDMHostTrap jjtn000 = new JDMHostTrap(JJTHOSTTRAP);
 695   boolean jjtc000 = true;
 696   jjtree.openNodeScope(jjtn000);
 697 /*@egen*/
 698   Token t;
 699 }
 700 {/*@bgen(jjtree) HostTrap */
 701 try {
 702 /*@egen*/
 703 HostName()
 704 |
 705 IpAddress()
 706 |
 707 IpV6Address()/*@bgen(jjtree)*/
 708 } catch (Throwable jjte000) {
 709   if (jjtc000) {
 710     jjtree.clearNodeScope(jjtn000);
 711     jjtc000 = false;
 712   } else {
 713     jjtree.popNode();
 714   }
 715   if (jjte000 instanceof RuntimeException) {
 716     throw (RuntimeException)jjte000;
 717   }
 718   if (jjte000 instanceof ParseException) {
 719     throw (ParseException)jjte000;
 720   }
 721   throw (Error)jjte000;
 722 } finally {
 723   if (jjtc000) {
 724     jjtree.closeNodeScope(jjtn000, true);
 725   }
 726 }
 727 /*@egen*/
 728 }
 729 
 730 void Enterprise(): 
 731 {/*@bgen(jjtree) Enterprise */
 732   JDMEnterprise jjtn000 = new JDMEnterprise(JJTENTERPRISE);
 733   boolean jjtc000 = true;
 734   jjtree.openNodeScope(jjtn000);
 735 /*@egen*/
 736   Token t;
 737 }
 738 {/*@bgen(jjtree) Enterprise */
 739 try {
 740 /*@egen*/
 741 "{"
 742 "enterprise" "="  t=<CSTRING> {jjtn000.enterprise= t.image;}
 743 
 744 "trap-num" "=" TrapNum() ("," TrapNum())*
 745 
 746 "}"/*@bgen(jjtree)*/
 747 } catch (Throwable jjte000) {
 748   if (jjtc000) {
 749     jjtree.clearNodeScope(jjtn000);
 750     jjtc000 = false;
 751   } else {
 752     jjtree.popNode();
 753   }
 754   if (jjte000 instanceof RuntimeException) {
 755     throw (RuntimeException)jjte000;
 756   }
 757   if (jjte000 instanceof ParseException) {
 758     throw (ParseException)jjte000;
 759   }
 760   throw (Error)jjte000;
 761 } finally {
 762   if (jjtc000) {
 763     jjtree.closeNodeScope(jjtn000, true);
 764   }
 765 }
 766 /*@egen*/
 767 }
 768 
 769 void TrapNum():
 770 {/*@bgen(jjtree) TrapNum */
 771   JDMTrapNum jjtn000 = new JDMTrapNum(JJTTRAPNUM);
 772   boolean jjtc000 = true;
 773   jjtree.openNodeScope(jjtn000);
 774 /*@egen*/
 775   Token t;
 776 }
 777 {/*@bgen(jjtree) TrapNum */
 778   try {
 779 /*@egen*/
 780   t=<INTEGER_LITERAL> {jjtn000.low= Integer.parseInt(t.image);}
 781 [
 782   "-" t=<INTEGER_LITERAL> {jjtn000.high= Integer.parseInt(t.image);}
 783 ]/*@bgen(jjtree)*/
 784   } finally {
 785     if (jjtc000) {
 786       jjtree.closeNodeScope(jjtn000, true);
 787     }
 788   }
 789 /*@egen*/
 790 }
 791 
 792 
 793 void InformBlock(): {/*@bgen(jjtree) InformBlock */
 794   JDMInformBlock jjtn000 = new JDMInformBlock(JJTINFORMBLOCK);
 795   boolean jjtc000 = true;
 796   jjtree.openNodeScope(jjtn000);
 797 /*@egen*/ }
 798 {/*@bgen(jjtree) InformBlock */
 799 try {
 800 /*@egen*/
 801 "inform" "=" "{" (InformItem())* "}"/*@bgen(jjtree)*/
 802 } catch (Throwable jjte000) {
 803   if (jjtc000) {
 804     jjtree.clearNodeScope(jjtn000);
 805     jjtc000 = false;
 806   } else {
 807     jjtree.popNode();
 808   }
 809   if (jjte000 instanceof RuntimeException) {
 810     throw (RuntimeException)jjte000;
 811   }
 812   if (jjte000 instanceof ParseException) {
 813     throw (ParseException)jjte000;
 814   }
 815   throw (Error)jjte000;
 816 } finally {
 817   if (jjtc000) {
 818     jjtree.closeNodeScope(jjtn000, true);
 819   }
 820 }
 821 /*@egen*/
 822 }
 823 
 824 void InformItem(): {/*@bgen(jjtree) InformItem */
 825   JDMInformItem jjtn000 = new JDMInformItem(JJTINFORMITEM);
 826   boolean jjtc000 = true;
 827   jjtree.openNodeScope(jjtn000);
 828 /*@egen*/ }
 829 {/*@bgen(jjtree) InformItem */
 830 try {
 831 /*@egen*/
 832 "{" jjtn000.comm= InformCommunity() InformInterestedHost() "}"/*@bgen(jjtree)*/
 833 } catch (Throwable jjte000) {
 834   if (jjtc000) {
 835     jjtree.clearNodeScope(jjtn000);
 836     jjtc000 = false;
 837   } else {
 838     jjtree.popNode();
 839   }
 840   if (jjte000 instanceof RuntimeException) {
 841     throw (RuntimeException)jjte000;
 842   }
 843   if (jjte000 instanceof ParseException) {
 844     throw (ParseException)jjte000;
 845   }
 846   throw (Error)jjte000;
 847 } finally {
 848   if (jjtc000) {
 849     jjtree.closeNodeScope(jjtn000, true);
 850   }
 851 }
 852 /*@egen*/
 853 }
 854 
 855 JDMInformCommunity InformCommunity(): 
 856 {/*@bgen(jjtree) InformCommunity */
 857   JDMInformCommunity jjtn000 = new JDMInformCommunity(JJTINFORMCOMMUNITY);
 858   boolean jjtc000 = true;
 859   jjtree.openNodeScope(jjtn000);
 860 /*@egen*/
 861   Token t;
 862 }
 863 {/*@bgen(jjtree) InformCommunity */
 864 try {
 865 /*@egen*/
 866 "inform-community" "=" t=<IDENTIFIER>/*@bgen(jjtree)*/
 867                                       {
 868                                         jjtree.closeNodeScope(jjtn000, true);
 869                                         jjtc000 = false;
 870                                       }
 871 /*@egen*/ { jjtn000.community= t.image; return jjtn000; }/*@bgen(jjtree)*/
 872 } finally {
 873   if (jjtc000) {
 874     jjtree.closeNodeScope(jjtn000, true);
 875   }
 876 }
 877 /*@egen*/
 878 }
 879 
 880 void InformInterestedHost(): {/*@bgen(jjtree) InformInterestedHost */
 881   JDMInformInterestedHost jjtn000 = new JDMInformInterestedHost(JJTINFORMINTERESTEDHOST);
 882   boolean jjtc000 = true;
 883   jjtree.openNodeScope(jjtn000);
 884 /*@egen*/ }
 885 {/*@bgen(jjtree) InformInterestedHost */
 886 try {
 887 /*@egen*/
 888 "hosts" "=" HostInform() ("," HostInform())*/*@bgen(jjtree)*/
 889 } catch (Throwable jjte000) {
 890   if (jjtc000) {
 891     jjtree.clearNodeScope(jjtn000);
 892     jjtc000 = false;
 893   } else {
 894     jjtree.popNode();
 895   }
 896   if (jjte000 instanceof RuntimeException) {
 897     throw (RuntimeException)jjte000;
 898   }
 899   if (jjte000 instanceof ParseException) {
 900     throw (ParseException)jjte000;
 901   }
 902   throw (Error)jjte000;
 903 } finally {
 904   if (jjtc000) {
 905     jjtree.closeNodeScope(jjtn000, true);
 906   }
 907 }
 908 /*@egen*/
 909 }
 910 
 911 void HostInform() : 
 912 {/*@bgen(jjtree) HostInform */
 913   JDMHostInform jjtn000 = new JDMHostInform(JJTHOSTINFORM);
 914   boolean jjtc000 = true;
 915   jjtree.openNodeScope(jjtn000);
 916 /*@egen*/
 917   Token t;
 918 }
 919 {/*@bgen(jjtree) HostInform */
 920 try {
 921 /*@egen*/
 922 HostName()
 923 |
 924 IpAddress()
 925 |
 926 IpV6Address()/*@bgen(jjtree)*/
 927 } catch (Throwable jjte000) {
 928   if (jjtc000) {
 929     jjtree.clearNodeScope(jjtn000);
 930     jjtc000 = false;
 931   } else {
 932     jjtree.popNode();
 933   }
 934   if (jjte000 instanceof RuntimeException) {
 935     throw (RuntimeException)jjte000;
 936   }
 937   if (jjte000 instanceof ParseException) {
 938     throw (ParseException)jjte000;
 939   }
 940   throw (Error)jjte000;
 941 } finally {
 942   if (jjtc000) {
 943     jjtree.closeNodeScope(jjtn000, true);
 944   }
 945 }
 946 /*@egen*/
 947 }
 948