1. /*
  2. * @(#)Parser.java 4.16 04/07/26
  3. *
  4. * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
  5. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
  6. */
  7. /* Generated By:JJTree&JavaCC: Do not edit this line. Parser.java */
  8. package com.sun.jmx.snmp.IPAcl;
  9. import java.io.*;
  10. class Parser/*@bgen(jjtree)*/implements ParserTreeConstants, ParserConstants {/*@bgen(jjtree)*/
  11. protected JJTParserState jjtree = new JJTParserState();
  12. // A file can contain several acl definitions
  13. //
  14. final public JDMSecurityDefs SecurityDefs() throws ParseException {
  15. /*@bgen(jjtree) SecurityDefs */
  16. JDMSecurityDefs jjtn000 = new JDMSecurityDefs(JJTSECURITYDEFS);
  17. boolean jjtc000 = true;
  18. jjtree.openNodeScope(jjtn000);
  19. try {
  20. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  21. case ACL:
  22. AclBlock();
  23. break;
  24. default:
  25. jj_la1[0] = jj_gen;
  26. ;
  27. }
  28. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  29. case TRAP:
  30. TrapBlock();
  31. break;
  32. default:
  33. jj_la1[1] = jj_gen;
  34. ;
  35. }
  36. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  37. case INFORM:
  38. InformBlock();
  39. break;
  40. default:
  41. jj_la1[2] = jj_gen;
  42. ;
  43. }
  44. jj_consume_token(0);
  45. jjtree.closeNodeScope(jjtn000, true);
  46. jjtc000 = false;
  47. {if (true) return jjtn000;}
  48. } catch (Throwable jjte000) {
  49. if (jjtc000) {
  50. jjtree.clearNodeScope(jjtn000);
  51. jjtc000 = false;
  52. } else {
  53. jjtree.popNode();
  54. }
  55. if (jjte000 instanceof RuntimeException) {
  56. {if (true) throw (RuntimeException)jjte000;}
  57. }
  58. if (jjte000 instanceof ParseException) {
  59. {if (true) throw (ParseException)jjte000;}
  60. }
  61. {if (true) throw (Error)jjte000;}
  62. } finally {
  63. if (jjtc000) {
  64. jjtree.closeNodeScope(jjtn000, true);
  65. }
  66. }
  67. throw new Error("Missing return statement in function");
  68. }
  69. final public void AclBlock() throws ParseException {
  70. /*@bgen(jjtree) AclBlock */
  71. JDMAclBlock jjtn000 = new JDMAclBlock(JJTACLBLOCK);
  72. boolean jjtc000 = true;
  73. jjtree.openNodeScope(jjtn000);
  74. try {
  75. jj_consume_token(ACL);
  76. jj_consume_token(ASSIGN);
  77. jj_consume_token(LBRACE);
  78. label_1:
  79. while (true) {
  80. AclItem();
  81. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  82. case LBRACE:
  83. ;
  84. break;
  85. default:
  86. jj_la1[3] = jj_gen;
  87. break label_1;
  88. }
  89. }
  90. jj_consume_token(RBRACE);
  91. } catch (Throwable jjte000) {
  92. if (jjtc000) {
  93. jjtree.clearNodeScope(jjtn000);
  94. jjtc000 = false;
  95. } else {
  96. jjtree.popNode();
  97. }
  98. if (jjte000 instanceof RuntimeException) {
  99. {if (true) throw (RuntimeException)jjte000;}
  100. }
  101. if (jjte000 instanceof ParseException) {
  102. {if (true) throw (ParseException)jjte000;}
  103. }
  104. {if (true) throw (Error)jjte000;}
  105. } finally {
  106. if (jjtc000) {
  107. jjtree.closeNodeScope(jjtn000, true);
  108. }
  109. }
  110. }
  111. final public void AclItem() throws ParseException {
  112. /*@bgen(jjtree) AclItem */
  113. JDMAclItem jjtn000 = new JDMAclItem(JJTACLITEM);
  114. boolean jjtc000 = true;
  115. jjtree.openNodeScope(jjtn000);
  116. try {
  117. jj_consume_token(LBRACE);
  118. jjtn000.com = Communities();
  119. jjtn000.access = Access();
  120. Managers();
  121. jj_consume_token(RBRACE);
  122. } catch (Throwable jjte000) {
  123. if (jjtc000) {
  124. jjtree.clearNodeScope(jjtn000);
  125. jjtc000 = false;
  126. } else {
  127. jjtree.popNode();
  128. }
  129. if (jjte000 instanceof RuntimeException) {
  130. {if (true) throw (RuntimeException)jjte000;}
  131. }
  132. if (jjte000 instanceof ParseException) {
  133. {if (true) throw (ParseException)jjte000;}
  134. }
  135. {if (true) throw (Error)jjte000;}
  136. } finally {
  137. if (jjtc000) {
  138. jjtree.closeNodeScope(jjtn000, true);
  139. }
  140. }
  141. }
  142. final public JDMCommunities Communities() throws ParseException {
  143. /*@bgen(jjtree) Communities */
  144. JDMCommunities jjtn000 = new JDMCommunities(JJTCOMMUNITIES);
  145. boolean jjtc000 = true;
  146. jjtree.openNodeScope(jjtn000);
  147. try {
  148. jj_consume_token(COMMUNITIES);
  149. jj_consume_token(ASSIGN);
  150. Community();
  151. label_2:
  152. while (true) {
  153. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  154. case COMMA:
  155. ;
  156. break;
  157. default:
  158. jj_la1[4] = jj_gen;
  159. break label_2;
  160. }
  161. jj_consume_token(COMMA);
  162. Community();
  163. }
  164. jjtree.closeNodeScope(jjtn000, true);
  165. jjtc000 = false;
  166. {if (true) return jjtn000;}
  167. } catch (Throwable jjte000) {
  168. if (jjtc000) {
  169. jjtree.clearNodeScope(jjtn000);
  170. jjtc000 = false;
  171. } else {
  172. jjtree.popNode();
  173. }
  174. if (jjte000 instanceof RuntimeException) {
  175. {if (true) throw (RuntimeException)jjte000;}
  176. }
  177. if (jjte000 instanceof ParseException) {
  178. {if (true) throw (ParseException)jjte000;}
  179. }
  180. {if (true) throw (Error)jjte000;}
  181. } finally {
  182. if (jjtc000) {
  183. jjtree.closeNodeScope(jjtn000, true);
  184. }
  185. }
  186. throw new Error("Missing return statement in function");
  187. }
  188. final public void Community() throws ParseException {
  189. /*@bgen(jjtree) Community */
  190. JDMCommunity jjtn000 = new JDMCommunity(JJTCOMMUNITY);
  191. boolean jjtc000 = true;
  192. jjtree.openNodeScope(jjtn000);Token t;
  193. try {
  194. t = jj_consume_token(IDENTIFIER);
  195. jjtree.closeNodeScope(jjtn000, true);
  196. jjtc000 = false;
  197. jjtn000.communityString= t.image;
  198. } finally {
  199. if (jjtc000) {
  200. jjtree.closeNodeScope(jjtn000, true);
  201. }
  202. }
  203. }
  204. final public JDMAccess Access() throws ParseException {
  205. /*@bgen(jjtree) Access */
  206. JDMAccess jjtn000 = new JDMAccess(JJTACCESS);
  207. boolean jjtc000 = true;
  208. jjtree.openNodeScope(jjtn000);
  209. try {
  210. jj_consume_token(ACCESS);
  211. jj_consume_token(ASSIGN);
  212. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  213. case RO:
  214. jj_consume_token(RO);
  215. jjtn000.access= RO;
  216. break;
  217. case RW:
  218. jj_consume_token(RW);
  219. jjtn000.access= RW;
  220. break;
  221. default:
  222. jj_la1[5] = jj_gen;
  223. jj_consume_token(-1);
  224. throw new ParseException();
  225. }
  226. jjtree.closeNodeScope(jjtn000, true);
  227. jjtc000 = false;
  228. {if (true) return jjtn000;}
  229. } finally {
  230. if (jjtc000) {
  231. jjtree.closeNodeScope(jjtn000, true);
  232. }
  233. }
  234. throw new Error("Missing return statement in function");
  235. }
  236. final public void Managers() throws ParseException {
  237. /*@bgen(jjtree) Managers */
  238. JDMManagers jjtn000 = new JDMManagers(JJTMANAGERS);
  239. boolean jjtc000 = true;
  240. jjtree.openNodeScope(jjtn000);
  241. try {
  242. jj_consume_token(MANAGERS);
  243. jj_consume_token(ASSIGN);
  244. Host();
  245. label_3:
  246. while (true) {
  247. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  248. case COMMA:
  249. ;
  250. break;
  251. default:
  252. jj_la1[6] = jj_gen;
  253. break label_3;
  254. }
  255. jj_consume_token(COMMA);
  256. Host();
  257. }
  258. } catch (Throwable jjte000) {
  259. if (jjtc000) {
  260. jjtree.clearNodeScope(jjtn000);
  261. jjtc000 = false;
  262. } else {
  263. jjtree.popNode();
  264. }
  265. if (jjte000 instanceof RuntimeException) {
  266. {if (true) throw (RuntimeException)jjte000;}
  267. }
  268. if (jjte000 instanceof ParseException) {
  269. {if (true) throw (ParseException)jjte000;}
  270. }
  271. {if (true) throw (Error)jjte000;}
  272. } finally {
  273. if (jjtc000) {
  274. jjtree.closeNodeScope(jjtn000, true);
  275. }
  276. }
  277. }
  278. final public void Host() throws ParseException {
  279. /*@bgen(jjtree) Host */
  280. JDMHost jjtn000 = new JDMHost(JJTHOST);
  281. boolean jjtc000 = true;
  282. jjtree.openNodeScope(jjtn000);Token t;
  283. try {
  284. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  285. case IDENTIFIER:
  286. HostName();
  287. break;
  288. default:
  289. jj_la1[7] = jj_gen;
  290. if (jj_2_1(2147483647)) {
  291. NetMask();
  292. } else if (jj_2_2(2147483647)) {
  293. NetMaskV6();
  294. } else if (jj_2_3(2147483647)) {
  295. IpAddress();
  296. } else {
  297. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  298. case V6_ADDRESS:
  299. IpV6Address();
  300. break;
  301. case INTEGER_LITERAL:
  302. IpMask();
  303. break;
  304. default:
  305. jj_la1[8] = jj_gen;
  306. jj_consume_token(-1);
  307. throw new ParseException();
  308. }
  309. }
  310. }
  311. } catch (Throwable jjte000) {
  312. if (jjtc000) {
  313. jjtree.clearNodeScope(jjtn000);
  314. jjtc000 = false;
  315. } else {
  316. jjtree.popNode();
  317. }
  318. if (jjte000 instanceof RuntimeException) {
  319. {if (true) throw (RuntimeException)jjte000;}
  320. }
  321. if (jjte000 instanceof ParseException) {
  322. {if (true) throw (ParseException)jjte000;}
  323. }
  324. {if (true) throw (Error)jjte000;}
  325. } finally {
  326. if (jjtc000) {
  327. jjtree.closeNodeScope(jjtn000, true);
  328. }
  329. }
  330. }
  331. final public void HostName() throws ParseException {
  332. /*@bgen(jjtree) HostName */
  333. JDMHostName jjtn000 = new JDMHostName(JJTHOSTNAME);
  334. boolean jjtc000 = true;
  335. jjtree.openNodeScope(jjtn000);Token t;
  336. try {
  337. t = jj_consume_token(IDENTIFIER);
  338. jjtn000.name.append(t.image);
  339. label_4:
  340. while (true) {
  341. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  342. case DOT:
  343. ;
  344. break;
  345. default:
  346. jj_la1[9] = jj_gen;
  347. break label_4;
  348. }
  349. jj_consume_token(DOT);
  350. t = jj_consume_token(IDENTIFIER);
  351. jjtn000.name.append( "." + t.image);
  352. }
  353. } finally {
  354. if (jjtc000) {
  355. jjtree.closeNodeScope(jjtn000, true);
  356. }
  357. }
  358. }
  359. final public void IpAddress() throws ParseException {
  360. /*@bgen(jjtree) IpAddress */
  361. JDMIpAddress jjtn000 = new JDMIpAddress(JJTIPADDRESS);
  362. boolean jjtc000 = true;
  363. jjtree.openNodeScope(jjtn000);Token t;
  364. try {
  365. t = jj_consume_token(INTEGER_LITERAL);
  366. jjtn000.address.append(t.image);
  367. label_5:
  368. while (true) {
  369. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  370. case DOT:
  371. ;
  372. break;
  373. default:
  374. jj_la1[10] = jj_gen;
  375. break label_5;
  376. }
  377. jj_consume_token(DOT);
  378. t = jj_consume_token(INTEGER_LITERAL);
  379. jjtn000.address.append( "." + t.image);
  380. }
  381. } finally {
  382. if (jjtc000) {
  383. jjtree.closeNodeScope(jjtn000, true);
  384. }
  385. }
  386. }
  387. final public void IpV6Address() throws ParseException {
  388. /*@bgen(jjtree) IpV6Address */
  389. JDMIpV6Address jjtn000 = new JDMIpV6Address(JJTIPV6ADDRESS);
  390. boolean jjtc000 = true;
  391. jjtree.openNodeScope(jjtn000);Token t;
  392. try {
  393. t = jj_consume_token(V6_ADDRESS);
  394. jjtree.closeNodeScope(jjtn000, true);
  395. jjtc000 = false;
  396. jjtn000.address.append(t.image);
  397. } finally {
  398. if (jjtc000) {
  399. jjtree.closeNodeScope(jjtn000, true);
  400. }
  401. }
  402. }
  403. final public void IpMask() throws ParseException {
  404. /*@bgen(jjtree) IpMask */
  405. JDMIpMask jjtn000 = new JDMIpMask(JJTIPMASK);
  406. boolean jjtc000 = true;
  407. jjtree.openNodeScope(jjtn000);Token t;
  408. try {
  409. t = jj_consume_token(INTEGER_LITERAL);
  410. jjtn000.address.append(t.image);
  411. label_6:
  412. while (true) {
  413. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  414. case MARK:
  415. ;
  416. break;
  417. default:
  418. jj_la1[11] = jj_gen;
  419. break label_6;
  420. }
  421. jj_consume_token(MARK);
  422. t = jj_consume_token(INTEGER_LITERAL);
  423. jjtn000.address.append( "." + t.image);
  424. }
  425. } finally {
  426. if (jjtc000) {
  427. jjtree.closeNodeScope(jjtn000, true);
  428. }
  429. }
  430. }
  431. final public void NetMask() throws ParseException {
  432. /*@bgen(jjtree) NetMask */
  433. JDMNetMask jjtn000 = new JDMNetMask(JJTNETMASK);
  434. boolean jjtc000 = true;
  435. jjtree.openNodeScope(jjtn000);Token t;
  436. try {
  437. t = jj_consume_token(INTEGER_LITERAL);
  438. jjtn000.address.append(t.image);
  439. label_7:
  440. while (true) {
  441. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  442. case DOT:
  443. ;
  444. break;
  445. default:
  446. jj_la1[12] = jj_gen;
  447. break label_7;
  448. }
  449. jj_consume_token(DOT);
  450. t = jj_consume_token(INTEGER_LITERAL);
  451. jjtn000.address.append( "." + t.image);
  452. }
  453. jj_consume_token(MASK);
  454. t = jj_consume_token(INTEGER_LITERAL);
  455. jjtree.closeNodeScope(jjtn000, true);
  456. jjtc000 = false;
  457. jjtn000.mask = t.image;
  458. } finally {
  459. if (jjtc000) {
  460. jjtree.closeNodeScope(jjtn000, true);
  461. }
  462. }
  463. }
  464. final public void NetMaskV6() throws ParseException {
  465. /*@bgen(jjtree) NetMaskV6 */
  466. JDMNetMaskV6 jjtn000 = new JDMNetMaskV6(JJTNETMASKV6);
  467. boolean jjtc000 = true;
  468. jjtree.openNodeScope(jjtn000);Token t;
  469. try {
  470. t = jj_consume_token(V6_ADDRESS);
  471. jjtn000.address.append(t.image);
  472. jj_consume_token(MASK);
  473. t = jj_consume_token(INTEGER_LITERAL);
  474. jjtree.closeNodeScope(jjtn000, true);
  475. jjtc000 = false;
  476. jjtn000.mask = t.image;
  477. } finally {
  478. if (jjtc000) {
  479. jjtree.closeNodeScope(jjtn000, true);
  480. }
  481. }
  482. }
  483. final public void TrapBlock() throws ParseException {
  484. /*@bgen(jjtree) TrapBlock */
  485. JDMTrapBlock jjtn000 = new JDMTrapBlock(JJTTRAPBLOCK);
  486. boolean jjtc000 = true;
  487. jjtree.openNodeScope(jjtn000);
  488. try {
  489. jj_consume_token(TRAP);
  490. jj_consume_token(ASSIGN);
  491. jj_consume_token(LBRACE);
  492. label_8:
  493. while (true) {
  494. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  495. case LBRACE:
  496. ;
  497. break;
  498. default:
  499. jj_la1[13] = jj_gen;
  500. break label_8;
  501. }
  502. TrapItem();
  503. }
  504. jj_consume_token(RBRACE);
  505. } catch (Throwable jjte000) {
  506. if (jjtc000) {
  507. jjtree.clearNodeScope(jjtn000);
  508. jjtc000 = false;
  509. } else {
  510. jjtree.popNode();
  511. }
  512. if (jjte000 instanceof RuntimeException) {
  513. {if (true) throw (RuntimeException)jjte000;}
  514. }
  515. if (jjte000 instanceof ParseException) {
  516. {if (true) throw (ParseException)jjte000;}
  517. }
  518. {if (true) throw (Error)jjte000;}
  519. } finally {
  520. if (jjtc000) {
  521. jjtree.closeNodeScope(jjtn000, true);
  522. }
  523. }
  524. }
  525. final public void TrapItem() throws ParseException {
  526. /*@bgen(jjtree) TrapItem */
  527. JDMTrapItem jjtn000 = new JDMTrapItem(JJTTRAPITEM);
  528. boolean jjtc000 = true;
  529. jjtree.openNodeScope(jjtn000);
  530. try {
  531. jj_consume_token(LBRACE);
  532. jjtn000.comm = TrapCommunity();
  533. TrapInterestedHost();
  534. label_9:
  535. while (true) {
  536. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  537. case LBRACE:
  538. ;
  539. break;
  540. default:
  541. jj_la1[14] = jj_gen;
  542. break label_9;
  543. }
  544. Enterprise();
  545. }
  546. jj_consume_token(RBRACE);
  547. } catch (Throwable jjte000) {
  548. if (jjtc000) {
  549. jjtree.clearNodeScope(jjtn000);
  550. jjtc000 = false;
  551. } else {
  552. jjtree.popNode();
  553. }
  554. if (jjte000 instanceof RuntimeException) {
  555. {if (true) throw (RuntimeException)jjte000;}
  556. }
  557. if (jjte000 instanceof ParseException) {
  558. {if (true) throw (ParseException)jjte000;}
  559. }
  560. {if (true) throw (Error)jjte000;}
  561. } finally {
  562. if (jjtc000) {
  563. jjtree.closeNodeScope(jjtn000, true);
  564. }
  565. }
  566. }
  567. final public JDMTrapCommunity TrapCommunity() throws ParseException {
  568. /*@bgen(jjtree) TrapCommunity */
  569. JDMTrapCommunity jjtn000 = new JDMTrapCommunity(JJTTRAPCOMMUNITY);
  570. boolean jjtc000 = true;
  571. jjtree.openNodeScope(jjtn000);Token t;
  572. try {
  573. jj_consume_token(TRAPCOMMUNITY);
  574. jj_consume_token(ASSIGN);
  575. t = jj_consume_token(IDENTIFIER);
  576. jjtree.closeNodeScope(jjtn000, true);
  577. jjtc000 = false;
  578. jjtn000.community= t.image; {if (true) return jjtn000;}
  579. } finally {
  580. if (jjtc000) {
  581. jjtree.closeNodeScope(jjtn000, true);
  582. }
  583. }
  584. throw new Error("Missing return statement in function");
  585. }
  586. final public void TrapInterestedHost() throws ParseException {
  587. /*@bgen(jjtree) TrapInterestedHost */
  588. JDMTrapInterestedHost jjtn000 = new JDMTrapInterestedHost(JJTTRAPINTERESTEDHOST);
  589. boolean jjtc000 = true;
  590. jjtree.openNodeScope(jjtn000);
  591. try {
  592. jj_consume_token(HOSTS);
  593. jj_consume_token(ASSIGN);
  594. HostTrap();
  595. label_10:
  596. while (true) {
  597. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  598. case COMMA:
  599. ;
  600. break;
  601. default:
  602. jj_la1[15] = jj_gen;
  603. break label_10;
  604. }
  605. jj_consume_token(COMMA);
  606. HostTrap();
  607. }
  608. } catch (Throwable jjte000) {
  609. if (jjtc000) {
  610. jjtree.clearNodeScope(jjtn000);
  611. jjtc000 = false;
  612. } else {
  613. jjtree.popNode();
  614. }
  615. if (jjte000 instanceof RuntimeException) {
  616. {if (true) throw (RuntimeException)jjte000;}
  617. }
  618. if (jjte000 instanceof ParseException) {
  619. {if (true) throw (ParseException)jjte000;}
  620. }
  621. {if (true) throw (Error)jjte000;}
  622. } finally {
  623. if (jjtc000) {
  624. jjtree.closeNodeScope(jjtn000, true);
  625. }
  626. }
  627. }
  628. final public void HostTrap() throws ParseException {
  629. /*@bgen(jjtree) HostTrap */
  630. JDMHostTrap jjtn000 = new JDMHostTrap(JJTHOSTTRAP);
  631. boolean jjtc000 = true;
  632. jjtree.openNodeScope(jjtn000);Token t;
  633. try {
  634. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  635. case IDENTIFIER:
  636. HostName();
  637. break;
  638. case INTEGER_LITERAL:
  639. IpAddress();
  640. break;
  641. case V6_ADDRESS:
  642. IpV6Address();
  643. break;
  644. default:
  645. jj_la1[16] = jj_gen;
  646. jj_consume_token(-1);
  647. throw new ParseException();
  648. }
  649. } catch (Throwable jjte000) {
  650. if (jjtc000) {
  651. jjtree.clearNodeScope(jjtn000);
  652. jjtc000 = false;
  653. } else {
  654. jjtree.popNode();
  655. }
  656. if (jjte000 instanceof RuntimeException) {
  657. {if (true) throw (RuntimeException)jjte000;}
  658. }
  659. if (jjte000 instanceof ParseException) {
  660. {if (true) throw (ParseException)jjte000;}
  661. }
  662. {if (true) throw (Error)jjte000;}
  663. } finally {
  664. if (jjtc000) {
  665. jjtree.closeNodeScope(jjtn000, true);
  666. }
  667. }
  668. }
  669. final public void Enterprise() throws ParseException {
  670. /*@bgen(jjtree) Enterprise */
  671. JDMEnterprise jjtn000 = new JDMEnterprise(JJTENTERPRISE);
  672. boolean jjtc000 = true;
  673. jjtree.openNodeScope(jjtn000);Token t;
  674. try {
  675. jj_consume_token(LBRACE);
  676. jj_consume_token(ENTERPRISE);
  677. jj_consume_token(ASSIGN);
  678. t = jj_consume_token(CSTRING);
  679. jjtn000.enterprise= t.image;
  680. jj_consume_token(TRAPNUM);
  681. jj_consume_token(ASSIGN);
  682. TrapNum();
  683. label_11:
  684. while (true) {
  685. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  686. case COMMA:
  687. ;
  688. break;
  689. default:
  690. jj_la1[17] = jj_gen;
  691. break label_11;
  692. }
  693. jj_consume_token(COMMA);
  694. TrapNum();
  695. }
  696. jj_consume_token(RBRACE);
  697. } catch (Throwable jjte000) {
  698. if (jjtc000) {
  699. jjtree.clearNodeScope(jjtn000);
  700. jjtc000 = false;
  701. } else {
  702. jjtree.popNode();
  703. }
  704. if (jjte000 instanceof RuntimeException) {
  705. {if (true) throw (RuntimeException)jjte000;}
  706. }
  707. if (jjte000 instanceof ParseException) {
  708. {if (true) throw (ParseException)jjte000;}
  709. }
  710. {if (true) throw (Error)jjte000;}
  711. } finally {
  712. if (jjtc000) {
  713. jjtree.closeNodeScope(jjtn000, true);
  714. }
  715. }
  716. }
  717. final public void TrapNum() throws ParseException {
  718. /*@bgen(jjtree) TrapNum */
  719. JDMTrapNum jjtn000 = new JDMTrapNum(JJTTRAPNUM);
  720. boolean jjtc000 = true;
  721. jjtree.openNodeScope(jjtn000);Token t;
  722. try {
  723. t = jj_consume_token(INTEGER_LITERAL);
  724. jjtn000.low= Integer.parseInt(t.image);
  725. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  726. case RANGE:
  727. jj_consume_token(RANGE);
  728. t = jj_consume_token(INTEGER_LITERAL);
  729. jjtn000.high= Integer.parseInt(t.image);
  730. break;
  731. default:
  732. jj_la1[18] = jj_gen;
  733. ;
  734. }
  735. } finally {
  736. if (jjtc000) {
  737. jjtree.closeNodeScope(jjtn000, true);
  738. }
  739. }
  740. }
  741. final public void InformBlock() throws ParseException {
  742. /*@bgen(jjtree) InformBlock */
  743. JDMInformBlock jjtn000 = new JDMInformBlock(JJTINFORMBLOCK);
  744. boolean jjtc000 = true;
  745. jjtree.openNodeScope(jjtn000);
  746. try {
  747. jj_consume_token(INFORM);
  748. jj_consume_token(ASSIGN);
  749. jj_consume_token(LBRACE);
  750. label_12:
  751. while (true) {
  752. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  753. case LBRACE:
  754. ;
  755. break;
  756. default:
  757. jj_la1[19] = jj_gen;
  758. break label_12;
  759. }
  760. InformItem();
  761. }
  762. jj_consume_token(RBRACE);
  763. } catch (Throwable jjte000) {
  764. if (jjtc000) {
  765. jjtree.clearNodeScope(jjtn000);
  766. jjtc000 = false;
  767. } else {
  768. jjtree.popNode();
  769. }
  770. if (jjte000 instanceof RuntimeException) {
  771. {if (true) throw (RuntimeException)jjte000;}
  772. }
  773. if (jjte000 instanceof ParseException) {
  774. {if (true) throw (ParseException)jjte000;}
  775. }
  776. {if (true) throw (Error)jjte000;}
  777. } finally {
  778. if (jjtc000) {
  779. jjtree.closeNodeScope(jjtn000, true);
  780. }
  781. }
  782. }
  783. final public void InformItem() throws ParseException {
  784. /*@bgen(jjtree) InformItem */
  785. JDMInformItem jjtn000 = new JDMInformItem(JJTINFORMITEM);
  786. boolean jjtc000 = true;
  787. jjtree.openNodeScope(jjtn000);
  788. try {
  789. jj_consume_token(LBRACE);
  790. jjtn000.comm = InformCommunity();
  791. InformInterestedHost();
  792. jj_consume_token(RBRACE);
  793. } catch (Throwable jjte000) {
  794. if (jjtc000) {
  795. jjtree.clearNodeScope(jjtn000);
  796. jjtc000 = false;
  797. } else {
  798. jjtree.popNode();
  799. }
  800. if (jjte000 instanceof RuntimeException) {
  801. {if (true) throw (RuntimeException)jjte000;}
  802. }
  803. if (jjte000 instanceof ParseException) {
  804. {if (true) throw (ParseException)jjte000;}
  805. }
  806. {if (true) throw (Error)jjte000;}
  807. } finally {
  808. if (jjtc000) {
  809. jjtree.closeNodeScope(jjtn000, true);
  810. }
  811. }
  812. }
  813. final public JDMInformCommunity InformCommunity() throws ParseException {
  814. /*@bgen(jjtree) InformCommunity */
  815. JDMInformCommunity jjtn000 = new JDMInformCommunity(JJTINFORMCOMMUNITY);
  816. boolean jjtc000 = true;
  817. jjtree.openNodeScope(jjtn000);Token t;
  818. try {
  819. jj_consume_token(INFORMCOMMUNITY);
  820. jj_consume_token(ASSIGN);
  821. t = jj_consume_token(IDENTIFIER);
  822. jjtree.closeNodeScope(jjtn000, true);
  823. jjtc000 = false;
  824. jjtn000.community= t.image; {if (true) return jjtn000;}
  825. } finally {
  826. if (jjtc000) {
  827. jjtree.closeNodeScope(jjtn000, true);
  828. }
  829. }
  830. throw new Error("Missing return statement in function");
  831. }
  832. final public void InformInterestedHost() throws ParseException {
  833. /*@bgen(jjtree) InformInterestedHost */
  834. JDMInformInterestedHost jjtn000 = new JDMInformInterestedHost(JJTINFORMINTERESTEDHOST);
  835. boolean jjtc000 = true;
  836. jjtree.openNodeScope(jjtn000);
  837. try {
  838. jj_consume_token(HOSTS);
  839. jj_consume_token(ASSIGN);
  840. HostInform();
  841. label_13:
  842. while (true) {
  843. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  844. case COMMA:
  845. ;
  846. break;
  847. default:
  848. jj_la1[20] = jj_gen;
  849. break label_13;
  850. }
  851. jj_consume_token(COMMA);
  852. HostInform();
  853. }
  854. } catch (Throwable jjte000) {
  855. if (jjtc000) {
  856. jjtree.clearNodeScope(jjtn000);
  857. jjtc000 = false;
  858. } else {
  859. jjtree.popNode();
  860. }
  861. if (jjte000 instanceof RuntimeException) {
  862. {if (true) throw (RuntimeException)jjte000;}
  863. }
  864. if (jjte000 instanceof ParseException) {
  865. {if (true) throw (ParseException)jjte000;}
  866. }
  867. {if (true) throw (Error)jjte000;}
  868. } finally {
  869. if (jjtc000) {
  870. jjtree.closeNodeScope(jjtn000, true);
  871. }
  872. }
  873. }
  874. final public void HostInform() throws ParseException {
  875. /*@bgen(jjtree) HostInform */
  876. JDMHostInform jjtn000 = new JDMHostInform(JJTHOSTINFORM);
  877. boolean jjtc000 = true;
  878. jjtree.openNodeScope(jjtn000);Token t;
  879. try {
  880. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  881. case IDENTIFIER:
  882. HostName();
  883. break;
  884. case INTEGER_LITERAL:
  885. IpAddress();
  886. break;
  887. case V6_ADDRESS:
  888. IpV6Address();
  889. break;
  890. default:
  891. jj_la1[21] = jj_gen;
  892. jj_consume_token(-1);
  893. throw new ParseException();
  894. }
  895. } catch (Throwable jjte000) {
  896. if (jjtc000) {
  897. jjtree.clearNodeScope(jjtn000);
  898. jjtc000 = false;
  899. } else {
  900. jjtree.popNode();
  901. }
  902. if (jjte000 instanceof RuntimeException) {
  903. {if (true) throw (RuntimeException)jjte000;}
  904. }
  905. if (jjte000 instanceof ParseException) {
  906. {if (true) throw (ParseException)jjte000;}
  907. }
  908. {if (true) throw (Error)jjte000;}
  909. } finally {
  910. if (jjtc000) {
  911. jjtree.closeNodeScope(jjtn000, true);
  912. }
  913. }
  914. }
  915. final private boolean jj_2_1(int xla) {
  916. jj_la = xla; jj_lastpos = jj_scanpos = token;
  917. boolean retval = !jj_3_1();
  918. jj_save(0, xla);
  919. return retval;
  920. }
  921. final private boolean jj_2_2(int xla) {
  922. jj_la = xla; jj_lastpos = jj_scanpos = token;
  923. boolean retval = !jj_3_2();
  924. jj_save(1, xla);
  925. return retval;
  926. }
  927. final private boolean jj_2_3(int xla) {
  928. jj_la = xla; jj_lastpos = jj_scanpos = token;
  929. boolean retval = !jj_3_3();
  930. jj_save(2, xla);
  931. return retval;
  932. }
  933. final private boolean jj_3_3() {
  934. if (jj_scan_token(INTEGER_LITERAL)) return true;
  935. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  936. if (jj_scan_token(DOT)) return true;
  937. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  938. return false;
  939. }
  940. final private boolean jj_3_2() {
  941. if (jj_scan_token(V6_ADDRESS)) return true;
  942. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  943. if (jj_scan_token(MASK)) return true;
  944. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  945. if (jj_scan_token(INTEGER_LITERAL)) return true;
  946. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  947. return false;
  948. }
  949. final private boolean jj_3_1() {
  950. if (jj_scan_token(INTEGER_LITERAL)) return true;
  951. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  952. Token xsp;
  953. while (true) {
  954. xsp = jj_scanpos;
  955. if (jj_3R_14()) { jj_scanpos = xsp; break; }
  956. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  957. }
  958. if (jj_scan_token(MASK)) return true;
  959. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  960. if (jj_scan_token(INTEGER_LITERAL)) return true;
  961. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  962. return false;
  963. }
  964. final private boolean jj_3R_14() {
  965. if (jj_scan_token(DOT)) return true;
  966. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  967. if (jj_scan_token(INTEGER_LITERAL)) return true;
  968. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  969. return false;
  970. }
  971. public ParserTokenManager token_source;
  972. ASCII_CharStream jj_input_stream;
  973. public Token token, jj_nt;
  974. private int jj_ntk;
  975. private Token jj_scanpos, jj_lastpos;
  976. private int jj_la;
  977. public boolean lookingAhead = false;
  978. private boolean jj_semLA;
  979. private int jj_gen;
  980. final private int[] jj_la1 = new int[22];
  981. final private int[] jj_la1_0 = {0x100,0x80000,0x100000,0x2000,0x0,0x60000,0x0,0x80000000,0x11000000,0x0,0x0,0x0,0x0,0x2000,0x2000,0x0,0x91000000,0x0,0x8000,0x2000,0x0,0x91000000,};
  982. final private int[] jj_la1_1 = {0x0,0x0,0x0,0x0,0x10,0x0,0x10,0x0,0x0,0x20,0x20,0x40,0x20,0x0,0x0,0x10,0x0,0x10,0x0,0x0,0x10,0x0,};
  983. final private JJCalls[] jj_2_rtns = new JJCalls[3];
  984. private boolean jj_rescan = false;
  985. private int jj_gc = 0;
  986. public Parser(java.io.InputStream stream) {
  987. jj_input_stream = new ASCII_CharStream(stream, 1, 1);
  988. token_source = new ParserTokenManager(jj_input_stream);
  989. token = new Token();
  990. jj_ntk = -1;
  991. jj_gen = 0;
  992. for (int i = 0; i < 22; i++) jj_la1[i] = -1;
  993. for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
  994. }
  995. public void ReInit(java.io.InputStream stream) {
  996. jj_input_stream.ReInit(stream, 1, 1);
  997. token_source.ReInit(jj_input_stream);
  998. token = new Token();
  999. jj_ntk = -1;
  1000. jjtree.reset();
  1001. jj_gen = 0;
  1002. for (int i = 0; i < 22; i++) jj_la1[i] = -1;
  1003. for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
  1004. }
  1005. public Parser(java.io.Reader stream) {
  1006. jj_input_stream = new ASCII_CharStream(stream, 1, 1);
  1007. token_source = new ParserTokenManager(jj_input_stream);
  1008. token = new Token();
  1009. jj_ntk = -1;
  1010. jj_gen = 0;
  1011. for (int i = 0; i < 22; i++) jj_la1[i] = -1;
  1012. for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
  1013. }
  1014. public void ReInit(java.io.Reader stream) {
  1015. jj_input_stream.ReInit(stream, 1, 1);
  1016. token_source.ReInit(jj_input_stream);
  1017. token = new Token();
  1018. jj_ntk = -1;
  1019. jjtree.reset();
  1020. jj_gen = 0;
  1021. for (int i = 0; i < 22; i++) jj_la1[i] = -1;
  1022. for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
  1023. }
  1024. public Parser(ParserTokenManager tm) {
  1025. token_source = tm;
  1026. token = new Token();
  1027. jj_ntk = -1;
  1028. jj_gen = 0;
  1029. for (int i = 0; i < 22; i++) jj_la1[i] = -1;
  1030. for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
  1031. }
  1032. public void ReInit(ParserTokenManager tm) {
  1033. token_source = tm;
  1034. token = new Token();
  1035. jj_ntk = -1;
  1036. jjtree.reset();
  1037. jj_gen = 0;
  1038. for (int i = 0; i < 22; i++) jj_la1[i] = -1;
  1039. for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
  1040. }
  1041. final private Token jj_consume_token(int kind) throws ParseException {
  1042. Token oldToken;
  1043. if ((oldToken = token).next != null) token = token.next;
  1044. else token = token.next = token_source.getNextToken();
  1045. jj_ntk = -1;
  1046. if (token.kind == kind) {
  1047. jj_gen++;
  1048. if (++jj_gc > 100) {
  1049. jj_gc = 0;
  1050. for (int i = 0; i < jj_2_rtns.length; i++) {
  1051. JJCalls c = jj_2_rtns[i];
  1052. while (c != null) {
  1053. if (c.gen < jj_gen) c.first = null;
  1054. c = c.next;
  1055. }
  1056. }
  1057. }
  1058. return token;
  1059. }
  1060. token = oldToken;
  1061. jj_kind = kind;
  1062. throw generateParseException();
  1063. }
  1064. final private boolean jj_scan_token(int kind) {
  1065. if (jj_scanpos == jj_lastpos) {
  1066. jj_la--;
  1067. if (jj_scanpos.next == null) {
  1068. jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
  1069. } else {
  1070. jj_lastpos = jj_scanpos = jj_scanpos.next;
  1071. }
  1072. } else {
  1073. jj_scanpos = jj_scanpos.next;
  1074. }
  1075. if (jj_rescan) {
  1076. int i = 0; Token tok = token;
  1077. while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
  1078. if (tok != null) jj_add_error_token(kind, i);
  1079. }
  1080. return (jj_scanpos.kind != kind);
  1081. }
  1082. final public Token getNextToken() {
  1083. if (token.next != null) token = token.next;
  1084. else token = token.next = token_source.getNextToken();
  1085. jj_ntk = -1;
  1086. jj_gen++;
  1087. return token;
  1088. }
  1089. final public Token getToken(int index) {
  1090. Token t = lookingAhead ? jj_scanpos : token;
  1091. for (int i = 0; i < index; i++) {
  1092. if (t.next != null) t = t.next;
  1093. else t = t.next = token_source.getNextToken();
  1094. }
  1095. return t;
  1096. }
  1097. final private int jj_ntk() {
  1098. if ((jj_nt=token.next) == null)
  1099. return (jj_ntk = (token.next=token_source.getNextToken()).kind);
  1100. else
  1101. return (jj_ntk = jj_nt.kind);
  1102. }
  1103. private java.util.Vector jj_expentries = new java.util.Vector();
  1104. private int[] jj_expentry;
  1105. private int jj_kind = -1;
  1106. private int[] jj_lasttokens = new int[100];
  1107. private int jj_endpos;
  1108. private void jj_add_error_token(int kind, int pos) {
  1109. if (pos >= 100) return;
  1110. if (pos == jj_endpos + 1) {
  1111. jj_lasttokens[jj_endpos++] = kind;
  1112. } else if (jj_endpos != 0) {
  1113. jj_expentry = new int[jj_endpos];
  1114. for (int i = 0; i < jj_endpos; i++) {
  1115. jj_expentry[i] = jj_lasttokens[i];
  1116. }
  1117. boolean exists = false;
  1118. for (java.util.Enumeration enumv = jj_expentries.elements(); enumv.hasMoreElements();) {
  1119. int[] oldentry = (int[])(enumv.nextElement());
  1120. if (oldentry.length == jj_expentry.length) {
  1121. exists = true;
  1122. for (int i = 0; i < jj_expentry.length; i++) {
  1123. if (oldentry[i] != jj_expentry[i]) {
  1124. exists = false;
  1125. break;
  1126. }
  1127. }
  1128. if (exists) break;
  1129. }
  1130. }
  1131. if (!exists) jj_expentries.addElement(jj_expentry);
  1132. if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
  1133. }
  1134. }
  1135. final public ParseException generateParseException() {
  1136. jj_expentries.removeAllElements();
  1137. boolean[] la1tokens = new boolean[40];
  1138. for (int i = 0; i < 40; i++) {
  1139. la1tokens[i] = false;
  1140. }
  1141. if (jj_kind >= 0) {
  1142. la1tokens[jj_kind] = true;
  1143. jj_kind = -1;
  1144. }
  1145. for (int i = 0; i < 22; i++) {
  1146. if (jj_la1[i] == jj_gen) {
  1147. for (int j = 0; j < 32; j++) {
  1148. if ((jj_la1_0[i] & (1<<j)) != 0) {
  1149. la1tokens[j] = true;
  1150. }
  1151. if ((jj_la1_1[i] & (1<<j)) != 0) {
  1152. la1tokens[32+j] = true;
  1153. }
  1154. }
  1155. }
  1156. }
  1157. for (int i = 0; i < 40; i++) {
  1158. if (la1tokens[i]) {
  1159. jj_expentry = new int[1];
  1160. jj_expentry[0] = i;
  1161. jj_expentries.addElement(jj_expentry);
  1162. }
  1163. }
  1164. jj_endpos = 0;
  1165. jj_rescan_token();
  1166. jj_add_error_token(0, 0);
  1167. int[][] exptokseq = new int[jj_expentries.size()][];
  1168. for (int i = 0; i < jj_expentries.size(); i++) {
  1169. exptokseq[i] = (int[])jj_expentries.elementAt(i);
  1170. }
  1171. return new ParseException(token, exptokseq, tokenImage);
  1172. }
  1173. final public void enable_tracing() {
  1174. }
  1175. final public void disable_tracing() {
  1176. }
  1177. final private void jj_rescan_token() {
  1178. jj_rescan = true;
  1179. for (int i = 0; i < 3; i++) {
  1180. JJCalls p = jj_2_rtns[i];
  1181. do {
  1182. if (p.gen > jj_gen) {
  1183. jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
  1184. switch (i) {
  1185. case 0: jj_3_1(); break;
  1186. case 1: jj_3_2(); break;
  1187. case 2: jj_3_3(); break;
  1188. }
  1189. }
  1190. p = p.next;
  1191. } while (p != null);
  1192. }
  1193. jj_rescan = false;
  1194. }
  1195. final private void jj_save(int index, int xla) {
  1196. JJCalls p = jj_2_rtns[index];
  1197. while (p.gen > jj_gen) {
  1198. if (p.next == null) { p = p.next = new JJCalls(); break; }
  1199. p = p.next;
  1200. }
  1201. p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
  1202. }
  1203. static final class JJCalls {
  1204. int gen;
  1205. Token first;
  1206. int arg;
  1207. JJCalls next;
  1208. }
  1209. }