PageRenderTime 51ms CodeModel.GetById 11ms RepoModel.GetById 1ms app.codeStats 0ms

/bundles/plugins-trunk/XML/sidekick/ecmascript/parser/EcmaScript.java

#
Java | 2234 lines | 1891 code | 63 blank | 280 comment | 254 complexity | 0ef31a8dd1234ab49f5b16b50109c04b MD5 | raw file
Possible License(s): BSD-3-Clause, AGPL-1.0, Apache-2.0, LGPL-2.0, LGPL-3.0, GPL-2.0, CC-BY-SA-3.0, LGPL-2.1, GPL-3.0, MPL-2.0-no-copyleft-exception, IPL-1.0
  1. /* Generated By:JJTree&JavaCC: Do not edit this line. EcmaScript.java */
  2. package sidekick.ecmascript.parser;
  3. import java.io.*;
  4. import java.util.*;
  5. import java.util.regex.*;
  6. import sidekick.util.*;
  7. public class EcmaScript/*@bgen(jjtree)*/implements EcmaScriptTreeConstants, EcmaScriptConstants {/*@bgen(jjtree)*/
  8. protected JJTEcmaScriptState jjtree = new JJTEcmaScriptState();
  9. private int lineOffset = 0;
  10. private List<ParseError> parseErrors = new ArrayList<ParseError>();
  11. public static void main(String args[]){
  12. EcmaScript parser;
  13. if(args.length == 0){
  14. System.out.println("EcmaScript Parser: Reading from standard input . . .");
  15. parser = new EcmaScript(System.in);
  16. } else if(args.length == 1){
  17. System.out.println("EcmaScript Parser: Reading from file " + args[0] + " . . .");
  18. try {
  19. parser = new EcmaScript(new FileInputStream(args[0]), "UTF-8");
  20. } catch(java.io.FileNotFoundException e){
  21. System.out.println("EcmaScript Parser: File " + args[0] + " not found.");
  22. return;
  23. }
  24. } else {
  25. System.out.println("EcmaScript Parser: Usage is one of:");
  26. System.out.println(" EcmaScript < inputfile");
  27. System.out.println("OR");
  28. System.out.println(" EcmaScript inputfile");
  29. return;
  30. }
  31. try {
  32. SimpleNode n = parser.Program();
  33. System.out.println("EcmaScript parser: EcmaScript program parsed successfully.");
  34. } catch (ParseException e) {
  35. System.out.println(e.getMessage());
  36. System.out.println("EcmaScript parser: Encountered errors during parse.");
  37. }
  38. }
  39. void jjtreeOpenNodeScope(Node n){
  40. Token t = getToken(1);
  41. if(t != null){
  42. ((SimpleNode) n).setBeginToken(t);
  43. ((SimpleNode) n).setStartLocation(getStartLocation(t));
  44. }
  45. }
  46. void jjtreeCloseNodeScope(Node n){
  47. Token t = getToken(0);
  48. if(t != null){
  49. ((SimpleNode) n).setEndToken(t);
  50. ((SimpleNode) n).setEndLocation(getEndLocation(t));
  51. }
  52. }
  53. public Location getStartLocation(Token t) {
  54. if (t == null)
  55. return new Location(0 + lineOffset, 0);
  56. return new Location(t.beginLine + lineOffset, t.beginColumn);
  57. }
  58. public Location getEndLocation(Token t) {
  59. if (t == null)
  60. return new Location(0 + lineOffset, 0);
  61. return new Location(t.endLine + lineOffset, t.endColumn + 1);
  62. }
  63. public void setLineOffset(int offset) {
  64. lineOffset = offset > 0 ? offset : 0;
  65. }
  66. public void setTabSize(int size) {
  67. jj_input_stream.setTabSize(size);
  68. }
  69. public int getTabSize() {
  70. return jj_input_stream.getTabSize(0);
  71. }
  72. private void addException(ParseException pe) {
  73. // check for a jsp tag, these can appear in several places and will cause
  74. // a parse error, but they can be ignored. It's easier to catch them and
  75. // ignore them than rewrite the grammar to allow them in all the appropriate
  76. // places.
  77. Token t = pe.currentToken;
  78. if (t != null) {
  79. if (t.next != null && t.next.image.startsWith("<%")) {
  80. return;
  81. }
  82. }
  83. Range range = getExceptionLocation( pe );
  84. parseErrors.add(new ParseError(pe.getMessage(), range));
  85. }
  86. public List<ParseError> getParseErrors() {
  87. return parseErrors;
  88. }
  89. /**
  90. * @return attempts to return a Location indicating the location of a parser
  91. * exception. If the ParseException contains a Token reference, all is well,
  92. * otherwise, this method attempts to parse the message string for the
  93. * exception.
  94. */
  95. private Range getExceptionLocation( ParseException pe ) {
  96. Token t = pe.currentToken;
  97. if ( t != null ) {
  98. return new Range( new Location( t.next.beginLine + lineOffset, t.next.beginColumn ), new Location( t.next.endLine + lineOffset, t.next.endColumn ) );
  99. }
  100. // ParseException message look like: "Parse error at line 116, column 5. Encountered: }"
  101. try {
  102. Pattern p = Pattern.compile( "(.*?)(\\d+)(.*?)(\\d+)(.*?)" );
  103. Matcher m = p.matcher( pe.getMessage() );
  104. if ( m.matches() ) {
  105. String ln = m.group( 2 );
  106. String cn = m.group( 4 );
  107. int line_number = -1;
  108. int column_number = 0;
  109. if ( ln != null )
  110. line_number = Integer.parseInt( ln );
  111. if ( cn != null )
  112. column_number = Integer.parseInt( cn );
  113. return line_number > -1 ? new Range( new Location( line_number + lineOffset, column_number - 1 ), new Location( line_number + lineOffset, column_number ) ) : null;
  114. }
  115. return new Range();
  116. }
  117. catch ( Exception e ) {
  118. //e.printStackTrace();
  119. return new Range();
  120. }
  121. }
  122. /*
  123. <DEFAULT>
  124. TOKEN:
  125. {
  126. < REGULAR_EXPRESSION_LITERAL:
  127. "/" <REGULAR_EXPRESSION_BODY> "/" <REGULAR_EXPRESSION_FLAGS>
  128. > : IN_REGEX
  129. |
  130. < #REGULAR_EXPRESSION_BODY: <REGULAR_EXPRESSION_FIRSTCHAR> <REGULAR_EXPRESSION_CHARS> >
  131. |
  132. < #REGULAR_EXPRESSION_CHARS: (<REGULAR_EXPRESSION_CHAR>)* >
  133. |
  134. < #REGULAR_EXPRESSION_FIRSTCHAR:
  135. // ~["*","\\","/"] <NON_TERMINATOR>
  136. <NON_TERMINATOR_FIRSTCHAR>
  137. | <BACKSLASH_SEQUENCE>
  138. >
  139. |
  140. < #REGULAR_EXPRESSION_CHAR:
  141. //~["\\","/"] <NON_TERMINATOR> <NON_TERMINATOR_CHAR>
  142. | <BACKSLASH_SEQUENCE>
  143. >
  144. |
  145. < #BACKSLASH_SEQUENCE: "\\" <NON_TERMINATOR> >
  146. |
  147. < #NON_TERMINATOR_FIRSTCHAR: ~["\n","\r","?","?","*","\\","/"] >
  148. |
  149. < #NON_TERMINATOR_CHAR: ~["\n","\r","?","?","\\","/"] >
  150. |
  151. < #NON_TERMINATOR: ~["\n","\r","?","?"] >
  152. |
  153. < #REGULAR_EXPRESSION_FLAGS: (<IDENTIFIER_PART>)* >
  154. }
  155. */
  156. /*****************************************
  157. * NUMERIC STRING GRAMMAR STARTS HERE *
  158. *****************************************/
  159. /* Section 9.3: String-to-Number Conversion */
  160. /*
  161. MORE:
  162. {
  163. <STRING_NUMERIC_LITERAL: (<STR_WHITESPACE>)? (<STR_NUMERIC_LITERAL> (<STR_WHITESPACE>)?)? >
  164. }
  165. MORE:
  166. {
  167. < STR_WHITESPACE: (<STR_WHITESPACE_CHAR>)+ >
  168. }
  169. MORE:
  170. {
  171. < STR_WHITESPACE_CHAR:
  172. <TAB>
  173. | <SP>
  174. | <NBSP>
  175. | <FF>
  176. | <VT>
  177. | <CR>
  178. | <LF>
  179. | <LS>
  180. | <PS>
  181. | <USP>
  182. >
  183. }
  184. MORE:
  185. {
  186. < STR_NUMERIC_LITERAL:
  187. <STR_DECIMAL_LITERAL> | <HEX_INTEGER_LITERAL>
  188. >
  189. }
  190. MORE:
  191. {
  192. <STR_DECIMAL_LITERAL: <STR_UNSIGNED_DECIMAL_LITERAL> ("+" | "-") <STR_UNSIGNED_DECIMAL_LITERAL> >
  193. }
  194. MORE:
  195. {
  196. < STR_UNSIGNED_DECIMAL_LITERAL:
  197. "Infinity"
  198. | <DECIMAL_DIGITS> "." (<DECIMAL_DIGITS>)* (<EXPONENT_PART>)*
  199. >
  200. }
  201. */
  202. /* A.6 Universal Resource Identifier Character Classes */
  203. /*
  204. TOKEN:
  205. {
  206. < URIRESERVED : [";" , "/" , "?" , ":" , "@" , "&" , "=" , "+" , "$" , ","] >
  207. }
  208. TOKEN:
  209. {
  210. < URI_ALPHA : ["a"-"z","A"-"Z"] >
  211. }
  212. TOKEN:
  213. {
  214. < URI_MARK : ["-" , "_" , "." , "!" , "~" , "*" , "'" , "(" , ")"] >
  215. }
  216. void uri() :
  217. {}
  218. {
  219. (uriCharacters())?
  220. }
  221. void uriCharacters() :
  222. {}
  223. {
  224. (uriCharacter())+
  225. }
  226. void uriCharacter() :
  227. {}
  228. {
  229. <URIRESERVED>
  230. | uriUnescaped()
  231. | uriEscaped()
  232. }
  233. void uriUnescaped() :
  234. {}
  235. {
  236. <URI_ALPHA>
  237. | <DECIMAL_DIGIT>
  238. | <URI_MARK>
  239. }
  240. void uriEscaped() :
  241. {}
  242. {
  243. "%" <HEX_DIGIT> <HEX_DIGIT>
  244. }
  245. */
  246. /* A.7 Regular Expressions */
  247. /*
  248. MORE :
  249. {
  250. "/^" : INSIDE_PATTERN
  251. }
  252. <INSIDE_PATTERN, IN_PATTERN>
  253. TOKEN:
  254. {
  255. < PATTERN : <DISJUNCTION> > : DEFAULT
  256. |
  257. < #DISJUNCTION : (<ALTERNATIVE>)+ >
  258. |
  259. < #ALTERNATIVE : (<TERM>)* >
  260. |
  261. < #TERM : <ASSERTION> | <ATOM> (<QUANTIFIER>)? >
  262. |
  263. < #ASSERTION :
  264. "^"
  265. | "$"
  266. | "\\" ("b" | "B")
  267. >
  268. |
  269. < #QUANTIFIER : <QUANTIFIERPREFIX> ("?")? >
  270. |
  271. < #QUANTIFIERPREFIX : "*" | "+" | "?" | ( "{" <DECIMAL_DIGITS> ("," (<DECIMAL_DIGITS>)?)? "}" ) >
  272. |
  273. < #ATOM :
  274. <PATTERN_CHARACTER>
  275. | "."
  276. | "\\" <ATOMESCAPE>
  277. | <CHARACTERCLASS>
  278. //| "(" ("?" (":" | "=" | "!"))? <DISJUNCTION> ")"
  279. | "(" ("?" (":" | "=" | "!"))? ")"
  280. >
  281. |
  282. < #PATTERN_CHARACTER : ~["^", "$", "\\", ".", "*", "+", "?", "(", ")", "[", "]", "{", "}", "|"] >
  283. |
  284. < #ATOMESCAPE : <DECIMALESCAPE> | <CHARACTERESCAPE> | <CHARACTER_CLASS_ESCAPE> >
  285. |
  286. < #CHARACTER_CLASS_ESCAPE : ["d", "D", "s", "S", "w", "W"] >
  287. |
  288. < #CHARACTERESCAPE :
  289. <CONTROL_ESCAPE>
  290. | "c" <CONTROL_LETTER>
  291. | <HEX_ESCAPE_SEQUENCE>
  292. | <UNICODE_ESCAPE_SEQUENCE>
  293. | <IDENTITY_ESCAPE>
  294. >
  295. |
  296. < #CONTROL_ESCAPE : ["f" , "n" , "r" , "t" , "v"] >
  297. |
  298. < #CONTROL_LETTER : ["a"-"z","A"-"Z"] >
  299. |
  300. < #IDENTITY_ESCAPE : ~["0"-"9", "A"-"Z", "a"-"z","-"] >
  301. |
  302. < #DECIMALESCAPE : <DECIMAL_INTEGER_LITERAL> >
  303. |
  304. < #CHARACTERCLASS : "[" ("^")? <CLASSRANGES> "]" >
  305. |
  306. < #CLASSRANGES : (<NONEMPTYCLASSRANGES>)? >
  307. |
  308. //< #NONEMPTYCLASSRANGES : <CLASSATOM> (<NONEMPTYCLASSRANGESNODASH> | "-" <CLASSATOM> <CLASSRANGES>) >
  309. < #NONEMPTYCLASSRANGES : <CLASSATOM> (<NONEMPTYCLASSRANGESNODASH> | "-" <CLASSATOM>) >
  310. |
  311. //< #NONEMPTYCLASSRANGESNODASH : <CLASSATOM> | <CLASSATOMNODASH> ( <NONEMPTYCLASSRANGESNODASH> | "-" <CLASSATOM> <CLASSRANGES> ) >
  312. < #NONEMPTYCLASSRANGESNODASH : <CLASSATOM> | <CLASSATOMNODASH> ( <CLASSATOM> | "-" <CLASSATOM> ) >
  313. |
  314. < #CLASSATOM : "-" <CLASSATOMNODASH> >
  315. |
  316. < #CLASSATOMNODASH : <CLASS_ATOM_NODASH_TOKEN> | "\\" <CLASSESCAPE> >
  317. |
  318. < #CLASS_ATOM_NODASH_TOKEN : ~["\\", "]", "-"] >
  319. |
  320. < #CLASSESCAPE :
  321. <DECIMALESCAPE>
  322. | "b"
  323. | <CHARACTERESCAPE>
  324. | <CHARACTER_CLASS_ESCAPE>
  325. >
  326. }
  327. */
  328. /*****************************************
  329. * ECMA SYNTACTIC GRAMMARS STARTS HERE *
  330. *****************************************/
  331. /* Section 11.1: Primary Expressions */
  332. final public void PrimaryExpression() throws ParseException {
  333. try {
  334. if (jj_2_1(2147483647)) {
  335. ASTThisReference jjtn001 = new ASTThisReference(JJTTHISREFERENCE);
  336. boolean jjtc001 = true;
  337. jjtree.openNodeScope(jjtn001);
  338. jjtreeOpenNodeScope(jjtn001);
  339. try {
  340. jj_consume_token(THIS);
  341. } finally {
  342. if (jjtc001) {
  343. jjtree.closeNodeScope(jjtn001, true);
  344. jjtreeCloseNodeScope(jjtn001);
  345. }
  346. }
  347. } else if (jj_2_2(2147483647)) {
  348. ObjectLiteral();
  349. } else if (jj_2_3(2147483647)) {
  350. ASTParenExpression jjtn002 = new ASTParenExpression(JJTPARENEXPRESSION);
  351. boolean jjtc002 = true;
  352. jjtree.openNodeScope(jjtn002);
  353. jjtreeOpenNodeScope(jjtn002);
  354. try {
  355. jj_consume_token(LPAREN);
  356. Expression();
  357. jj_consume_token(RPAREN);
  358. } catch (Throwable jjte002) {
  359. if (jjtc002) {
  360. jjtree.clearNodeScope(jjtn002);
  361. jjtc002 = false;
  362. } else {
  363. jjtree.popNode();
  364. }
  365. if (jjte002 instanceof RuntimeException) {
  366. {if (true) throw (RuntimeException)jjte002;}
  367. }
  368. if (jjte002 instanceof ParseException) {
  369. {if (true) throw (ParseException)jjte002;}
  370. }
  371. {if (true) throw (Error)jjte002;}
  372. } finally {
  373. if (jjtc002) {
  374. jjtree.closeNodeScope(jjtn002, true);
  375. jjtreeCloseNodeScope(jjtn002);
  376. }
  377. }
  378. } else if (jj_2_4(2147483647)) {
  379. Identifier();
  380. } else if (jj_2_5(2147483647)) {
  381. ArrayLiteral();
  382. } else if (jj_2_6(2)) {
  383. Literal();
  384. } else {
  385. jj_consume_token(-1);
  386. throw new ParseException();
  387. }
  388. } catch (ParseException pe) {
  389. addException(pe);
  390. }
  391. }
  392. /* Section 7.8: Literals */
  393. final public void Literal() throws ParseException {
  394. /*@bgen(jjtree) Literal */
  395. ASTLiteral jjtn000 = new ASTLiteral(JJTLITERAL);
  396. boolean jjtc000 = true;
  397. jjtree.openNodeScope(jjtn000);
  398. jjtreeOpenNodeScope(jjtn000);Token t;
  399. Map objLiteral;
  400. List arrayLiteral;
  401. try {
  402. try {
  403. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  404. case DECIMAL_LITERAL:
  405. t = jj_consume_token(DECIMAL_LITERAL);
  406. jjtree.closeNodeScope(jjtn000, true);
  407. jjtc000 = false;
  408. jjtreeCloseNodeScope(jjtn000);
  409. jjtn000.setDecimalValue(t.image);
  410. break;
  411. case HEX_INTEGER_LITERAL:
  412. t = jj_consume_token(HEX_INTEGER_LITERAL);
  413. jjtree.closeNodeScope(jjtn000, true);
  414. jjtc000 = false;
  415. jjtreeCloseNodeScope(jjtn000);
  416. jjtn000.setHexValue(t.image);
  417. break;
  418. case STRING_LITERAL:
  419. t = jj_consume_token(STRING_LITERAL);
  420. jjtree.closeNodeScope(jjtn000, true);
  421. jjtc000 = false;
  422. jjtreeCloseNodeScope(jjtn000);
  423. jjtn000.setStringValue(t.image);
  424. break;
  425. case BOOLEAN_LITERAL:
  426. t = jj_consume_token(BOOLEAN_LITERAL);
  427. jjtree.closeNodeScope(jjtn000, true);
  428. jjtc000 = false;
  429. jjtreeCloseNodeScope(jjtn000);
  430. jjtn000.setBooleanValue(t.image);
  431. break;
  432. case NULL_LITERAL:
  433. t = jj_consume_token(NULL_LITERAL);
  434. jjtree.closeNodeScope(jjtn000, true);
  435. jjtc000 = false;
  436. jjtreeCloseNodeScope(jjtn000);
  437. jjtn000.setNullValue();
  438. break;
  439. case REGULAR_EXPRESSION_LITERAL:
  440. t = jj_consume_token(REGULAR_EXPRESSION_LITERAL);
  441. jjtree.closeNodeScope(jjtn000, true);
  442. jjtc000 = false;
  443. jjtreeCloseNodeScope(jjtn000);
  444. jjtn000.setRegexValue(t.image);
  445. break;
  446. default:
  447. jj_la1[0] = jj_gen;
  448. jj_consume_token(-1);
  449. throw new ParseException();
  450. }
  451. } catch (ParseException pe) {
  452. addException(pe);
  453. }
  454. } finally {
  455. if (jjtc000) {
  456. jjtree.closeNodeScope(jjtn000, true);
  457. jjtreeCloseNodeScope(jjtn000);
  458. }
  459. }
  460. }
  461. final public void Identifier() throws ParseException {
  462. /*@bgen(jjtree) Identifier */
  463. ASTIdentifier jjtn000 = new ASTIdentifier(JJTIDENTIFIER);
  464. boolean jjtc000 = true;
  465. jjtree.openNodeScope(jjtn000);
  466. jjtreeOpenNodeScope(jjtn000);Token t;
  467. try {
  468. try {
  469. t = jj_consume_token(IDENTIFIER_NAME);
  470. jjtree.closeNodeScope(jjtn000, true);
  471. jjtc000 = false;
  472. jjtreeCloseNodeScope(jjtn000);
  473. jjtn000.setName(t.image);
  474. } catch (ParseException pe) {
  475. addException(pe);
  476. }
  477. } finally {
  478. if (jjtc000) {
  479. jjtree.closeNodeScope(jjtn000, true);
  480. jjtreeCloseNodeScope(jjtn000);
  481. }
  482. }
  483. }
  484. /* Section 11.1.4: Array Initialiser */
  485. final public void ArrayLiteral() throws ParseException {
  486. /*@bgen(jjtree) ArrayLiteral */
  487. ASTArrayLiteral jjtn000 = new ASTArrayLiteral(JJTARRAYLITERAL);
  488. boolean jjtc000 = true;
  489. jjtree.openNodeScope(jjtn000);
  490. jjtreeOpenNodeScope(jjtn000);
  491. try {
  492. try {
  493. jj_consume_token(LBRACKET);
  494. if (jj_2_7(2)) {
  495. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  496. case COMMA:
  497. Elision();
  498. break;
  499. default:
  500. jj_la1[1] = jj_gen;
  501. ;
  502. }
  503. jj_consume_token(RBRACKET);
  504. } else if (jj_2_8(2147483647)) {
  505. ElementList();
  506. Elision();
  507. jj_consume_token(RBRACKET);
  508. } else {
  509. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  510. case DELETE:
  511. case FUNCTION:
  512. case NEW:
  513. case THIS:
  514. case TYPEOF:
  515. case VOID:
  516. case LBRACE:
  517. case LPAREN:
  518. case LBRACKET:
  519. case RBRACKET:
  520. case COMMA:
  521. case PLUS:
  522. case MINUS:
  523. case INCR:
  524. case DECR:
  525. case BANG:
  526. case TILDE:
  527. case DECIMAL_LITERAL:
  528. case HEX_INTEGER_LITERAL:
  529. case NULL_LITERAL:
  530. case BOOLEAN_LITERAL:
  531. case STRING_LITERAL:
  532. case IDENTIFIER_NAME:
  533. case REGULAR_EXPRESSION_LITERAL:
  534. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  535. case DELETE:
  536. case FUNCTION:
  537. case NEW:
  538. case THIS:
  539. case TYPEOF:
  540. case VOID:
  541. case LBRACE:
  542. case LPAREN:
  543. case LBRACKET:
  544. case COMMA:
  545. case PLUS:
  546. case MINUS:
  547. case INCR:
  548. case DECR:
  549. case BANG:
  550. case TILDE:
  551. case DECIMAL_LITERAL:
  552. case HEX_INTEGER_LITERAL:
  553. case NULL_LITERAL:
  554. case BOOLEAN_LITERAL:
  555. case STRING_LITERAL:
  556. case IDENTIFIER_NAME:
  557. case REGULAR_EXPRESSION_LITERAL:
  558. ElementList();
  559. break;
  560. default:
  561. jj_la1[2] = jj_gen;
  562. ;
  563. }
  564. jj_consume_token(RBRACKET);
  565. break;
  566. default:
  567. jj_la1[3] = jj_gen;
  568. jj_consume_token(-1);
  569. throw new ParseException();
  570. }
  571. }
  572. } catch (ParseException pe) {
  573. addException(pe);
  574. }
  575. } catch (Throwable jjte000) {
  576. if (jjtc000) {
  577. jjtree.clearNodeScope(jjtn000);
  578. jjtc000 = false;
  579. } else {
  580. jjtree.popNode();
  581. }
  582. if (jjte000 instanceof RuntimeException) {
  583. {if (true) throw (RuntimeException)jjte000;}
  584. }
  585. if (jjte000 instanceof ParseException) {
  586. {if (true) throw (ParseException)jjte000;}
  587. }
  588. {if (true) throw (Error)jjte000;}
  589. } finally {
  590. if (jjtc000) {
  591. jjtree.closeNodeScope(jjtn000, true);
  592. jjtreeCloseNodeScope(jjtn000);
  593. }
  594. }
  595. }
  596. final public void ElementList() throws ParseException {
  597. try {
  598. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  599. case COMMA:
  600. Elision();
  601. break;
  602. default:
  603. jj_la1[4] = jj_gen;
  604. ;
  605. }
  606. AssignmentExpression();
  607. label_1:
  608. while (true) {
  609. if (jj_2_9(2147483647)) {
  610. ;
  611. } else {
  612. break label_1;
  613. }
  614. Elision();
  615. AssignmentExpression();
  616. }
  617. } catch (ParseException pe) {
  618. addException(pe);
  619. }
  620. }
  621. final public void Elision() throws ParseException {
  622. try {
  623. label_2:
  624. while (true) {
  625. jj_consume_token(COMMA);
  626. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  627. case COMMA:
  628. ;
  629. break;
  630. default:
  631. jj_la1[5] = jj_gen;
  632. break label_2;
  633. }
  634. }
  635. } catch (ParseException pe) {
  636. addException(pe);
  637. }
  638. }
  639. /* Section 11.1.5: Object Initialiser */
  640. final public void ObjectLiteral() throws ParseException {
  641. /*@bgen(jjtree) ObjectLiteral */
  642. ASTObjectLiteral jjtn000 = new ASTObjectLiteral(JJTOBJECTLITERAL);
  643. boolean jjtc000 = true;
  644. jjtree.openNodeScope(jjtn000);
  645. jjtreeOpenNodeScope(jjtn000);
  646. try {
  647. try {
  648. jj_consume_token(LBRACE);
  649. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  650. case DECIMAL_LITERAL:
  651. case STRING_LITERAL:
  652. case IDENTIFIER_NAME:
  653. PropertyNameAndValueList();
  654. break;
  655. default:
  656. jj_la1[6] = jj_gen;
  657. ;
  658. }
  659. jj_consume_token(RBRACE);
  660. } catch (ParseException pe) {
  661. addException(pe);
  662. }
  663. } catch (Throwable jjte000) {
  664. if (jjtc000) {
  665. jjtree.clearNodeScope(jjtn000);
  666. jjtc000 = false;
  667. } else {
  668. jjtree.popNode();
  669. }
  670. if (jjte000 instanceof RuntimeException) {
  671. {if (true) throw (RuntimeException)jjte000;}
  672. }
  673. if (jjte000 instanceof ParseException) {
  674. {if (true) throw (ParseException)jjte000;}
  675. }
  676. {if (true) throw (Error)jjte000;}
  677. } finally {
  678. if (jjtc000) {
  679. jjtree.closeNodeScope(jjtn000, true);
  680. jjtreeCloseNodeScope(jjtn000);
  681. }
  682. }
  683. }
  684. final public void PropertyNameAndValueList() throws ParseException {
  685. try {
  686. PropertyNameAndValue();
  687. label_3:
  688. while (true) {
  689. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  690. case COMMA:
  691. ;
  692. break;
  693. default:
  694. jj_la1[7] = jj_gen;
  695. break label_3;
  696. }
  697. if (jj_2_10(2147483647)) {
  698. jj_consume_token(COMMA);
  699. PropertyNameAndValue();
  700. } else {
  701. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  702. case COMMA:
  703. jj_consume_token(COMMA);
  704. break;
  705. default:
  706. jj_la1[8] = jj_gen;
  707. jj_consume_token(-1);
  708. throw new ParseException();
  709. }
  710. }
  711. }
  712. } catch (ParseException pe) {
  713. addException(pe);
  714. }
  715. }
  716. final public void PropertyNameAndValue() throws ParseException {
  717. /*@bgen(jjtree) LiteralField */
  718. ASTLiteralField jjtn000 = new ASTLiteralField(JJTLITERALFIELD);
  719. boolean jjtc000 = true;
  720. jjtree.openNodeScope(jjtn000);
  721. jjtreeOpenNodeScope(jjtn000);
  722. try {
  723. try {
  724. PropertyName();
  725. jj_consume_token(COLON);
  726. if (jj_2_11(2147483647)) {
  727. FunctionExpression();
  728. } else {
  729. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  730. case DELETE:
  731. case FUNCTION:
  732. case NEW:
  733. case THIS:
  734. case TYPEOF:
  735. case VOID:
  736. case LBRACE:
  737. case LPAREN:
  738. case LBRACKET:
  739. case PLUS:
  740. case MINUS:
  741. case INCR:
  742. case DECR:
  743. case BANG:
  744. case TILDE:
  745. case DECIMAL_LITERAL:
  746. case HEX_INTEGER_LITERAL:
  747. case NULL_LITERAL:
  748. case BOOLEAN_LITERAL:
  749. case STRING_LITERAL:
  750. case IDENTIFIER_NAME:
  751. case REGULAR_EXPRESSION_LITERAL:
  752. AssignmentExpression();
  753. break;
  754. default:
  755. jj_la1[9] = jj_gen;
  756. jj_consume_token(-1);
  757. throw new ParseException();
  758. }
  759. }
  760. } catch (ParseException pe) {
  761. addException(pe);
  762. }
  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. jjtreeCloseNodeScope(jjtn000);
  781. }
  782. }
  783. }
  784. final public void PropertyName() throws ParseException {
  785. try {
  786. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  787. case IDENTIFIER_NAME:
  788. Identifier();
  789. break;
  790. case STRING_LITERAL:
  791. ASTLiteral jjtn001 = new ASTLiteral(JJTLITERAL);
  792. boolean jjtc001 = true;
  793. jjtree.openNodeScope(jjtn001);
  794. jjtreeOpenNodeScope(jjtn001);
  795. try {
  796. jj_consume_token(STRING_LITERAL);
  797. } finally {
  798. if (jjtc001) {
  799. jjtree.closeNodeScope(jjtn001, true);
  800. jjtreeCloseNodeScope(jjtn001);
  801. }
  802. }
  803. break;
  804. case DECIMAL_LITERAL:
  805. ASTLiteral jjtn002 = new ASTLiteral(JJTLITERAL);
  806. boolean jjtc002 = true;
  807. jjtree.openNodeScope(jjtn002);
  808. jjtreeOpenNodeScope(jjtn002);
  809. try {
  810. jj_consume_token(DECIMAL_LITERAL);
  811. } finally {
  812. if (jjtc002) {
  813. jjtree.closeNodeScope(jjtn002, true);
  814. jjtreeCloseNodeScope(jjtn002);
  815. }
  816. }
  817. break;
  818. default:
  819. jj_la1[10] = jj_gen;
  820. jj_consume_token(-1);
  821. throw new ParseException();
  822. }
  823. } catch (ParseException pe) {
  824. addException(pe);
  825. }
  826. }
  827. /* Section 11.2: Left-Hand-Side Expressions */
  828. final public void MemberExpression() throws ParseException {
  829. try {
  830. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  831. case FUNCTION:
  832. case THIS:
  833. case LBRACE:
  834. case LPAREN:
  835. case LBRACKET:
  836. case DECIMAL_LITERAL:
  837. case HEX_INTEGER_LITERAL:
  838. case NULL_LITERAL:
  839. case BOOLEAN_LITERAL:
  840. case STRING_LITERAL:
  841. case IDENTIFIER_NAME:
  842. case REGULAR_EXPRESSION_LITERAL:
  843. ASTCompositeReference jjtn001 = new ASTCompositeReference(JJTCOMPOSITEREFERENCE);
  844. boolean jjtc001 = true;
  845. jjtree.openNodeScope(jjtn001);
  846. jjtreeOpenNodeScope(jjtn001);
  847. try {
  848. if (jj_2_12(2147483647)) {
  849. FunctionExpression();
  850. } else {
  851. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  852. case THIS:
  853. case LBRACE:
  854. case LPAREN:
  855. case LBRACKET:
  856. case DECIMAL_LITERAL:
  857. case HEX_INTEGER_LITERAL:
  858. case NULL_LITERAL:
  859. case BOOLEAN_LITERAL:
  860. case STRING_LITERAL:
  861. case IDENTIFIER_NAME:
  862. case REGULAR_EXPRESSION_LITERAL:
  863. PrimaryExpression();
  864. break;
  865. default:
  866. jj_la1[11] = jj_gen;
  867. jj_consume_token(-1);
  868. throw new ParseException();
  869. }
  870. }
  871. label_4:
  872. while (true) {
  873. if (jj_2_13(2)) {
  874. ;
  875. } else {
  876. break label_4;
  877. }
  878. MemberExpressionPart();
  879. }
  880. } catch (Throwable jjte001) {
  881. if (jjtc001) {
  882. jjtree.clearNodeScope(jjtn001);
  883. jjtc001 = false;
  884. } else {
  885. jjtree.popNode();
  886. }
  887. if (jjte001 instanceof RuntimeException) {
  888. {if (true) throw (RuntimeException)jjte001;}
  889. }
  890. if (jjte001 instanceof ParseException) {
  891. {if (true) throw (ParseException)jjte001;}
  892. }
  893. {if (true) throw (Error)jjte001;}
  894. } finally {
  895. if (jjtc001) {
  896. jjtree.closeNodeScope(jjtn001, jjtree.nodeArity() > 1);
  897. jjtreeCloseNodeScope(jjtn001);
  898. }
  899. }
  900. break;
  901. case NEW:
  902. AllocationExpression();
  903. break;
  904. default:
  905. jj_la1[12] = jj_gen;
  906. jj_consume_token(-1);
  907. throw new ParseException();
  908. }
  909. } catch (ParseException pe) {
  910. addException(pe);
  911. }
  912. }
  913. final public void MemberExpressionForIn() throws ParseException {
  914. try {
  915. ASTCompositeReference jjtn001 = new ASTCompositeReference(JJTCOMPOSITEREFERENCE);
  916. boolean jjtc001 = true;
  917. jjtree.openNodeScope(jjtn001);
  918. jjtreeOpenNodeScope(jjtn001);
  919. try {
  920. if (jj_2_14(2147483647)) {
  921. FunctionExpression();
  922. } else {
  923. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  924. case THIS:
  925. case LBRACE:
  926. case LPAREN:
  927. case LBRACKET:
  928. case DECIMAL_LITERAL:
  929. case HEX_INTEGER_LITERAL:
  930. case NULL_LITERAL:
  931. case BOOLEAN_LITERAL:
  932. case STRING_LITERAL:
  933. case IDENTIFIER_NAME:
  934. case REGULAR_EXPRESSION_LITERAL:
  935. PrimaryExpression();
  936. break;
  937. default:
  938. jj_la1[13] = jj_gen;
  939. jj_consume_token(-1);
  940. throw new ParseException();
  941. }
  942. }
  943. label_5:
  944. while (true) {
  945. if (jj_2_15(2)) {
  946. ;
  947. } else {
  948. break label_5;
  949. }
  950. MemberExpressionPart();
  951. }
  952. } catch (Throwable jjte001) {
  953. if (jjtc001) {
  954. jjtree.clearNodeScope(jjtn001);
  955. jjtc001 = false;
  956. } else {
  957. jjtree.popNode();
  958. }
  959. if (jjte001 instanceof RuntimeException) {
  960. {if (true) throw (RuntimeException)jjte001;}
  961. }
  962. if (jjte001 instanceof ParseException) {
  963. {if (true) throw (ParseException)jjte001;}
  964. }
  965. {if (true) throw (Error)jjte001;}
  966. } finally {
  967. if (jjtc001) {
  968. jjtree.closeNodeScope(jjtn001, jjtree.nodeArity() > 1);
  969. jjtreeCloseNodeScope(jjtn001);
  970. }
  971. }
  972. } catch (ParseException pe) {
  973. addException(pe);
  974. }
  975. }
  976. final public void AllocationExpression() throws ParseException {
  977. /*@bgen(jjtree) AllocationExpression */
  978. ASTAllocationExpression jjtn000 = new ASTAllocationExpression(JJTALLOCATIONEXPRESSION);
  979. boolean jjtc000 = true;
  980. jjtree.openNodeScope(jjtn000);
  981. jjtreeOpenNodeScope(jjtn000);
  982. try {
  983. try {
  984. ASTCompositeReference jjtn001 = new ASTCompositeReference(JJTCOMPOSITEREFERENCE);
  985. boolean jjtc001 = true;
  986. jjtree.openNodeScope(jjtn001);
  987. jjtreeOpenNodeScope(jjtn001);
  988. try {
  989. jj_consume_token(NEW);
  990. MemberExpression();
  991. label_6:
  992. while (true) {
  993. if (jj_2_16(2147483647)) {
  994. ;
  995. } else {
  996. break label_6;
  997. }
  998. Arguments();
  999. label_7:
  1000. while (true) {
  1001. if (jj_2_17(2)) {
  1002. ;
  1003. } else {
  1004. break label_7;
  1005. }
  1006. MemberExpressionPart();
  1007. }
  1008. }
  1009. } catch (Throwable jjte001) {
  1010. if (jjtc001) {
  1011. jjtree.clearNodeScope(jjtn001);
  1012. jjtc001 = false;
  1013. } else {
  1014. jjtree.popNode();
  1015. }
  1016. if (jjte001 instanceof RuntimeException) {
  1017. {if (true) throw (RuntimeException)jjte001;}
  1018. }
  1019. if (jjte001 instanceof ParseException) {
  1020. {if (true) throw (ParseException)jjte001;}
  1021. }
  1022. {if (true) throw (Error)jjte001;}
  1023. } finally {
  1024. if (jjtc001) {
  1025. jjtree.closeNodeScope(jjtn001, jjtree.nodeArity() > 1);
  1026. jjtreeCloseNodeScope(jjtn001);
  1027. }
  1028. }
  1029. } catch (ParseException pe) {
  1030. addException(pe);
  1031. }
  1032. } catch (Throwable jjte000) {
  1033. if (jjtc000) {
  1034. jjtree.clearNodeScope(jjtn000);
  1035. jjtc000 = false;
  1036. } else {
  1037. jjtree.popNode();
  1038. }
  1039. if (jjte000 instanceof RuntimeException) {
  1040. {if (true) throw (RuntimeException)jjte000;}
  1041. }
  1042. if (jjte000 instanceof ParseException) {
  1043. {if (true) throw (ParseException)jjte000;}
  1044. }
  1045. {if (true) throw (Error)jjte000;}
  1046. } finally {
  1047. if (jjtc000) {
  1048. jjtree.closeNodeScope(jjtn000, true);
  1049. jjtreeCloseNodeScope(jjtn000);
  1050. }
  1051. }
  1052. }
  1053. final public void MemberExpressionPart() throws ParseException {
  1054. try {
  1055. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  1056. case LBRACKET:
  1057. ASTPropertyValueReference jjtn001 = new ASTPropertyValueReference(JJTPROPERTYVALUEREFERENCE);
  1058. boolean jjtc001 = true;
  1059. jjtree.openNodeScope(jjtn001);
  1060. jjtreeOpenNodeScope(jjtn001);
  1061. try {
  1062. jj_consume_token(LBRACKET);
  1063. Expression();
  1064. jj_consume_token(RBRACKET);
  1065. } catch (Throwable jjte001) {
  1066. if (jjtc001) {
  1067. jjtree.clearNodeScope(jjtn001);
  1068. jjtc001 = false;
  1069. } else {
  1070. jjtree.popNode();
  1071. }
  1072. if (jjte001 instanceof RuntimeException) {
  1073. {if (true) throw (RuntimeException)jjte001;}
  1074. }
  1075. if (jjte001 instanceof ParseException) {
  1076. {if (true) throw (ParseException)jjte001;}
  1077. }
  1078. {if (true) throw (Error)jjte001;}
  1079. } finally {
  1080. if (jjtc001) {
  1081. jjtree.closeNodeScope(jjtn001, true);
  1082. jjtreeCloseNodeScope(jjtn001);
  1083. }
  1084. }
  1085. break;
  1086. case DOT:
  1087. ASTPropertyIdentifierReference jjtn002 = new ASTPropertyIdentifierReference(JJTPROPERTYIDENTIFIERREFERENCE);
  1088. boolean jjtc002 = true;
  1089. jjtree.openNodeScope(jjtn002);
  1090. jjtreeOpenNodeScope(jjtn002);
  1091. try {
  1092. jj_consume_token(DOT);
  1093. Identifier();
  1094. } catch (Throwable jjte002) {
  1095. if (jjtc002) {
  1096. jjtree.clearNodeScope(jjtn002);
  1097. jjtc002 = false;
  1098. } else {
  1099. jjtree.popNode();
  1100. }
  1101. if (jjte002 instanceof RuntimeException) {
  1102. {if (true) throw (RuntimeException)jjte002;}
  1103. }
  1104. if (jjte002 instanceof ParseException) {
  1105. {if (true) throw (ParseException)jjte002;}
  1106. }
  1107. {if (true) throw (Error)jjte002;}
  1108. } finally {
  1109. if (jjtc002) {
  1110. jjtree.closeNodeScope(jjtn002, true);
  1111. jjtreeCloseNodeScope(jjtn002);
  1112. }
  1113. }
  1114. break;
  1115. default:
  1116. jj_la1[14] = jj_gen;
  1117. jj_consume_token(-1);
  1118. throw new ParseException();
  1119. }
  1120. } catch (ParseException pe) {
  1121. addException(pe);
  1122. }
  1123. }
  1124. final public void CallExpression() throws ParseException {
  1125. /*@bgen(jjtree) #CompositeReference(> 1) */
  1126. ASTCompositeReference jjtn000 = new ASTCompositeReference(JJTCOMPOSITEREFERENCE);
  1127. boolean jjtc000 = true;
  1128. jjtree.openNodeScope(jjtn000);
  1129. jjtreeOpenNodeScope(jjtn000);
  1130. try {
  1131. try {
  1132. MemberExpression();
  1133. Arguments();
  1134. label_8:
  1135. while (true) {
  1136. if (jj_2_18(2)) {
  1137. ;
  1138. } else {
  1139. break label_8;
  1140. }
  1141. CallExpressionPart();
  1142. }
  1143. } catch (ParseException pe) {
  1144. addException(pe);
  1145. }
  1146. } catch (Throwable jjte000) {
  1147. if (jjtc000) {
  1148. jjtree.clearNodeScope(jjtn000);
  1149. jjtc000 = false;
  1150. } else {
  1151. jjtree.popNode();
  1152. }
  1153. if (jjte000 instanceof RuntimeException) {
  1154. {if (true) throw (RuntimeException)jjte000;}
  1155. }
  1156. if (jjte000 instanceof ParseException) {
  1157. {if (true) throw (ParseException)jjte000;}
  1158. }
  1159. {if (true) throw (Error)jjte000;}
  1160. } finally {
  1161. if (jjtc000) {
  1162. jjtree.closeNodeScope(jjtn000, jjtree.nodeArity() > 1);
  1163. jjtreeCloseNodeScope(jjtn000);
  1164. }
  1165. }
  1166. }
  1167. final public void CallExpressionForIn() throws ParseException {
  1168. /*@bgen(jjtree) #CompositeReference(> 1) */
  1169. ASTCompositeReference jjtn000 = new ASTCompositeReference(JJTCOMPOSITEREFERENCE);
  1170. boolean jjtc000 = true;
  1171. jjtree.openNodeScope(jjtn000);
  1172. jjtreeOpenNodeScope(jjtn000);
  1173. try {
  1174. try {
  1175. MemberExpressionForIn();
  1176. Arguments();
  1177. label_9:
  1178. while (true) {
  1179. if (jj_2_19(2)) {
  1180. ;
  1181. } else {
  1182. break label_9;
  1183. }
  1184. CallExpressionPart();
  1185. }
  1186. } catch (ParseException pe) {
  1187. addException(pe);
  1188. }
  1189. } catch (Throwable jjte000) {
  1190. if (jjtc000) {
  1191. jjtree.clearNodeScope(jjtn000);
  1192. jjtc000 = false;
  1193. } else {
  1194. jjtree.popNode();
  1195. }
  1196. if (jjte000 instanceof RuntimeException) {
  1197. {if (true) throw (RuntimeException)jjte000;}
  1198. }
  1199. if (jjte000 instanceof ParseException) {
  1200. {if (true) throw (ParseException)jjte000;}
  1201. }
  1202. {if (true) throw (Error)jjte000;}
  1203. } finally {
  1204. if (jjtc000) {
  1205. jjtree.closeNodeScope(jjtn000, jjtree.nodeArity() > 1);
  1206. jjtreeCloseNodeScope(jjtn000);
  1207. }
  1208. }
  1209. }
  1210. final public void CallExpressionPart() throws ParseException {
  1211. try {
  1212. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  1213. case LPAREN:
  1214. Arguments();
  1215. break;
  1216. case LBRACKET:
  1217. ASTPropertyValueReference jjtn001 = new ASTPropertyValueReference(JJTPROPERTYVALUEREFERENCE);
  1218. boolean jjtc001 = true;
  1219. jjtree.openNodeScope(jjtn001);
  1220. jjtreeOpenNodeScope(jjtn001);
  1221. try {
  1222. jj_consume_token(LBRACKET);
  1223. Expression();
  1224. jj_consume_token(RBRACKET);
  1225. } catch (Throwable jjte001) {
  1226. if (jjtc001) {
  1227. jjtree.clearNodeScope(jjtn001);
  1228. jjtc001 = false;
  1229. } else {
  1230. jjtree.popNode();
  1231. }
  1232. if (jjte001 instanceof RuntimeException) {
  1233. {if (true) throw (RuntimeException)jjte001;}
  1234. }
  1235. if (jjte001 instanceof ParseException) {
  1236. {if (true) throw (ParseException)jjte001;}
  1237. }
  1238. {if (true) throw (Error)jjte001;}
  1239. } finally {
  1240. if (jjtc001) {
  1241. jjtree.closeNodeScope(jjtn001, true);
  1242. jjtreeCloseNodeScope(jjtn001);
  1243. }
  1244. }
  1245. break;
  1246. case DOT:
  1247. ASTPropertyIdentifierReference jjtn002 = new ASTPropertyIdentifierReference(JJTPROPERTYIDENTIFIERREFERENCE);
  1248. boolean jjtc002 = true;
  1249. jjtree.openNodeScope(jjtn002);
  1250. jjtreeOpenNodeScope(jjtn002);
  1251. try {
  1252. jj_consume_token(DOT);
  1253. Identifier();
  1254. } catch (Throwable jjte002) {
  1255. if (jjtc002) {
  1256. jjtree.clearNodeScope(jjtn002);
  1257. jjtc002 = false;
  1258. } else {
  1259. jjtree.popNode();
  1260. }
  1261. if (jjte002 instanceof RuntimeException) {
  1262. {if (true) throw (RuntimeException)jjte002;}
  1263. }
  1264. if (jjte002 instanceof ParseException) {
  1265. {if (true) throw (ParseException)jjte002;}
  1266. }
  1267. {if (true) throw (Error)jjte002;}
  1268. } finally {
  1269. if (jjtc002) {
  1270. jjtree.closeNodeScope(jjtn002, true);
  1271. jjtreeCloseNodeScope(jjtn002);
  1272. }
  1273. }
  1274. break;
  1275. default:
  1276. jj_la1[15] = jj_gen;
  1277. jj_consume_token(-1);
  1278. throw new ParseException();
  1279. }
  1280. } catch (ParseException pe) {
  1281. addException(pe);
  1282. }
  1283. }
  1284. final public void Arguments() throws ParseException {
  1285. /*@bgen(jjtree) FunctionCallParameters */
  1286. ASTFunctionCallParameters jjtn000 = new ASTFunctionCallParameters(JJTFUNCTIONCALLPARAMETERS);
  1287. boolean jjtc000 = true;
  1288. jjtree.openNodeScope(jjtn000);
  1289. jjtreeOpenNodeScope(jjtn000);
  1290. try {
  1291. try {
  1292. jj_consume_token(LPAREN);
  1293. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  1294. case DELETE:
  1295. case FUNCTION:
  1296. case NEW:
  1297. case THIS:
  1298. case TYPEOF:
  1299. case VOID:
  1300. case LBRACE:
  1301. case LPAREN:
  1302. case LBRACKET:
  1303. case PLUS:
  1304. case MINUS:
  1305. case INCR:
  1306. case DECR:
  1307. case BANG:
  1308. case TILDE:
  1309. case DECIMAL_LITERAL:
  1310. case HEX_INTEGER_LITERAL:
  1311. case NULL_LITERAL:
  1312. case BOOLEAN_LITERAL:
  1313. case STRING_LITERAL:
  1314. case IDENTIFIER_NAME:
  1315. case REGULAR_EXPRESSION_LITERAL:
  1316. ArgumentList();
  1317. break;
  1318. default:
  1319. jj_la1[16] = jj_gen;
  1320. ;
  1321. }
  1322. jj_consume_token(RPAREN);
  1323. } catch (ParseException pe) {
  1324. addException(pe);
  1325. }
  1326. } catch (Throwable jjte000) {
  1327. if (jjtc000) {
  1328. jjtree.clearNodeScope(jjtn000);
  1329. jjtc000 = false;
  1330. } else {
  1331. jjtree.popNode();
  1332. }
  1333. if (jjte000 instanceof RuntimeException) {
  1334. {if (true) throw (RuntimeException)jjte000;}
  1335. }
  1336. if (jjte000 instanceof ParseException) {
  1337. {if (true) throw (ParseException)jjte000;}
  1338. }
  1339. {if (true) throw (Error)jjte000;}
  1340. } finally {
  1341. if (jjtc000) {
  1342. jjtree.closeNodeScope(jjtn000, true);
  1343. jjtreeCloseNodeScope(jjtn000);
  1344. }
  1345. }
  1346. }
  1347. final public void ArgumentList() throws ParseException {
  1348. try {
  1349. AssignmentExpression();
  1350. label_10:
  1351. while (true) {
  1352. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  1353. case COMMA:
  1354. ;
  1355. break;
  1356. default:
  1357. jj_la1[17] = jj_gen;
  1358. break label_10;
  1359. }
  1360. jj_consume_token(COMMA);
  1361. AssignmentExpression();
  1362. }
  1363. } catch (ParseException pe) {
  1364. addException(pe);
  1365. }
  1366. }
  1367. final public void LeftHandSideExpression() throws ParseException {
  1368. try {
  1369. if (jj_2_20(2147483647)) {
  1370. CallExpression();
  1371. } else {
  1372. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  1373. case FUNCTION:
  1374. case NEW:
  1375. case THIS:
  1376. case LBRACE:
  1377. case LPAREN:
  1378. case LBRACKET:
  1379. case DECIMAL_LITERAL:
  1380. case HEX_INTEGER_LITERAL:
  1381. case NULL_LITERAL:
  1382. case BOOLEAN_LITERAL:
  1383. case STRING_LITERAL:
  1384. case IDENTIFIER_NAME:
  1385. case REGULAR_EXPRESSION_LITERAL:
  1386. MemberExpression();
  1387. break;
  1388. default:
  1389. jj_la1[18] = jj_gen;
  1390. jj_consume_token(-1);
  1391. throw new ParseException();
  1392. }
  1393. }
  1394. } catch (ParseException pe) {
  1395. addException(pe);
  1396. }
  1397. }
  1398. final public void LeftHandSideExpressionForIn() throws ParseException {
  1399. try {
  1400. if (jj_2_21(2147483647)) {
  1401. CallExpressionForIn();
  1402. } else {
  1403. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  1404. case FUNCTION:
  1405. case THIS:
  1406. case LBRACE:
  1407. case LPAREN:
  1408. case LBRACKET:
  1409. case DECIMAL_LITERAL:
  1410. case HEX_INTEGER_LITERAL:
  1411. case NULL_LITERAL:
  1412. case BOOLEAN_LITERAL:
  1413. case STRING_LITERAL:
  1414. case IDENTIFIER_NAME:
  1415. case REGULAR_EXPRESSION_LITERAL:
  1416. MemberExpressionForIn();
  1417. break;
  1418. default:
  1419. jj_la1[19] = jj_gen;
  1420. jj_consume_token(-1);
  1421. throw new ParseException();
  1422. }
  1423. }
  1424. } catch (ParseException pe) {
  1425. addException(pe);
  1426. }
  1427. }
  1428. /* Section 11.3 Postfix Expressions */
  1429. final public void PostfixExpression() throws ParseException {
  1430. /*@bgen(jjtree) #PostfixExpression(> 1) */
  1431. ASTPostfixExpression jjtn000 = new ASTPostfixExpression(JJTPOSTFIXEXPRESSION);
  1432. boolean jjtc000 = true;
  1433. jjtree.openNodeScope(jjtn000);
  1434. jjtreeOpenNodeScope(jjtn000);
  1435. try {
  1436. try {
  1437. LeftHandSideExpression();
  1438. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  1439. case INCR:
  1440. case DECR:
  1441. PostfixOperator();
  1442. break;
  1443. default:
  1444. jj_la1[20] = jj_gen;
  1445. ;
  1446. }
  1447. } catch (ParseException pe) {
  1448. addException(pe);
  1449. }
  1450. } catch (Throwable jjte000) {
  1451. if (jjtc000) {
  1452. jjtree.clearNodeScope(jjtn000);
  1453. jjtc000 = false;
  1454. } else {
  1455. jjtree.popNode();
  1456. }
  1457. if (jjte000 instanceof RuntimeException) {
  1458. {if (true) throw (RuntimeException)jjte000;}
  1459. }
  1460. if (jjte000 instanceof ParseException) {
  1461. {if (true) throw (ParseException)jjte000;}
  1462. }
  1463. {if (true) throw (Error)jjte000;}
  1464. } finally {
  1465. if (jjtc000) {
  1466. jjtree.closeNodeScope(jjtn000, jjtree.nodeArity() > 1);
  1467. jjtreeCloseNodeScope(jjtn000);
  1468. }
  1469. }
  1470. }
  1471. final public void PostfixOperator() throws ParseException {
  1472. /*@bgen(jjtree) Operator */
  1473. ASTOperator jjtn000 = new ASTOperator(JJTOPERATOR);
  1474. boolean jjtc000 = true;
  1475. jjtree.openNodeScope(jjtn000);
  1476. jjtreeOpenNodeScope(jjtn000);
  1477. try {
  1478. try {
  1479. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  1480. case INCR:
  1481. jj_consume_token(INCR);
  1482. break;
  1483. case DECR:
  1484. jj_consume_token(DECR);
  1485. break;
  1486. default:
  1487. jj_la1[21] = jj_gen;
  1488. jj_consume_token(-1);
  1489. throw new ParseException();
  1490. }
  1491. } catch (ParseException pe) {
  1492. addException(pe);
  1493. }
  1494. } finally {
  1495. if (jjtc000) {
  1496. jjtree.closeNodeScope(jjtn000, true);
  1497. jjtreeCloseNodeScope(jjtn000);
  1498. }
  1499. }
  1500. }
  1501. /* Section 11.4 Unary Operators */
  1502. final public void UnaryExpression() throws ParseException {
  1503. /*@bgen(jjtree) #UnaryExpression(> 1) */
  1504. ASTUnaryExpression jjtn000 = new ASTUnaryExpression(JJTUNARYEXPRESSION);
  1505. boolean jjtc000 = true;
  1506. jjtree.openNodeScope(jjtn000);
  1507. jjtreeOpenNodeScope(jjtn000);
  1508. try {
  1509. try {
  1510. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  1511. case FUNCTION:
  1512. case NEW:
  1513. case THIS:
  1514. case LBRACE:
  1515. case LPAREN:
  1516. case LBRACKET:
  1517. case DECIMAL_LITERAL:
  1518. case HEX_INTEGER_LITERAL:
  1519. case NULL_LITERAL:
  1520. case BOOLEAN_LITERAL:
  1521. case STRING_LITERAL:
  1522. case IDENTIFIER_NAME:
  1523. case REGULAR_EXPRESSION_LITERAL:
  1524. PostfixExpression();
  1525. break;
  1526. case DELETE:
  1527. case TYPEOF:
  1528. case VOID:
  1529. case PLUS:
  1530. case MINUS:
  1531. case INCR:
  1532. case DECR:
  1533. case BANG:
  1534. case TILDE:
  1535. label_11:
  1536. while (true) {
  1537. UnaryOperator();
  1538. UnaryExpression();
  1539. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  1540. case DELETE:
  1541. case TYPEOF:
  1542. case VOID:
  1543. case PLUS:
  1544. case MINUS:
  1545. case INCR:
  1546. case DECR:
  1547. case BANG:
  1548. case TILDE:
  1549. ;
  1550. break;
  1551. default:
  1552. jj_la1[22] = jj_gen;
  1553. break label_11;
  1554. }
  1555. }
  1556. break;
  1557. default:
  1558. jj_la1[23] = jj_gen;
  1559. jj_consume_token(-1);
  1560. throw new ParseException();
  1561. }
  1562. } catch (ParseException pe) {
  1563. addException(pe);
  1564. }
  1565. } catch (Throwable jjte000) {
  1566. if (jjtc000) {
  1567. jjtree.clearNodeScope(jjtn000);
  1568. jjtc000 = false;
  1569. } else {
  1570. jjtree.popNode();
  1571. }
  1572. if (jjte000 instanceof RuntimeException) {
  1573. {if (true) throw (RuntimeException)jjte000;}
  1574. }
  1575. if (jjte000 instanceof ParseException) {
  1576. {if (true) throw (ParseException)jjte000;}
  1577. }
  1578. {if (true) throw (Error)jjte000;}
  1579. } finally {
  1580. if (jjtc000) {
  1581. jjtree.closeNodeScope(jjtn000, jjtree.nodeArity() > 1);
  1582. jjtreeCloseNodeScope(jjtn000);
  1583. }
  1584. }
  1585. }
  1586. final public void UnaryOperator() throws ParseException {
  1587. /*@bgen(jjtree) Operator */
  1588. ASTOperator jjtn000 = new ASTOperator(JJTOPERATOR);
  1589. boolean jjtc000 = true;
  1590. jjtree.openNodeScope(jjtn000);
  1591. jjtreeOpenNodeScope(jjtn000);
  1592. try {
  1593. try {
  1594. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  1595. case DELETE:
  1596. jj_consume_token(DELETE);
  1597. break;
  1598. case VOID:
  1599. jj_consume_token(VOID);
  1600. break;
  1601. case TYPEOF:
  1602. jj_consume_token(TYPEOF);
  1603. break;
  1604. case INCR:
  1605. jj_consume_token(INCR);
  1606. break;
  1607. case DECR:
  1608. jj_consume_token(DECR);
  1609. break;
  1610. case PLUS:
  1611. jj_consume_token(PLUS);
  1612. break;
  1613. case MINUS:
  1614. jj_consume_token(MINUS);
  1615. break;
  1616. case TILDE:
  1617. jj_consume_token(TILDE);
  1618. break;
  1619. case BANG:
  1620. jj_consume_token(BANG);
  1621. break;
  1622. default:
  1623. jj_la1[24] = jj_gen;
  1624. jj_consume_token(-1);
  1625. throw new ParseException();
  1626. }
  1627. } catch (ParseException pe) {
  1628. addException(pe);
  1629. }
  1630. } finally {
  1631. if (jjtc000) {
  1632. jjtree.closeNodeScope(jjtn000, true);
  1633. jjtreeCloseNodeScope(jjtn000);
  1634. }
  1635. }
  1636. }
  1637. /* Section 11.5: Multiplicative Operators */
  1638. final public void MultiplicativeExpression() throws ParseException {
  1639. /*@bgen(jjtree) #BinaryExpressionSequence(> 1) */
  1640. ASTBinaryExpressionSequence jjtn000 = new ASTBinaryExpressionSequence(JJTBINARYEXPRESSIONSEQUENCE);
  1641. boolean jjtc000 = true;
  1642. jjtree.openNodeScope(jjtn000);
  1643. jjtreeOpenNodeScope(jjtn000);
  1644. try {
  1645. try {
  1646. UnaryExpression();
  1647. label_12:
  1648. while (true) {
  1649. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  1650. case STAR:
  1651. case REM:
  1652. case SLASH:
  1653. ;
  1654. break;
  1655. default:
  1656. jj_la1[25] = jj_gen;
  1657. break label_12;
  1658. }
  1659. MultiplicativeOperator();
  1660. UnaryExpression();
  1661. }
  1662. } catch (ParseException pe) {
  1663. addException(pe);
  1664. }
  1665. } catch (Throwable jjte000) {
  1666. if (jjtc000) {
  1667. jjtree.clearNodeScope(jjtn000);
  1668. jjtc000 = false;
  1669. } else {
  1670. jjtree.popNode();
  1671. }
  1672. if (jjte000 instanceof RuntimeException) {
  1673. {if (true) throw (RuntimeException)jjte000;}
  1674. }
  1675. if (jjte000 instanceof ParseException) {
  1676. {if (true) throw (ParseException)jjte000;}
  1677. }
  1678. {if (true) throw (Error)jjte000;}
  1679. } finally {
  1680. if (jjtc000) {
  1681. jjtree.closeNodeScope(jjtn000, jjtree.nodeArity() > 1);
  1682. jjtreeCloseNodeScope(jjtn000);
  1683. }
  1684. }
  1685. }
  1686. final public void MultiplicativeOperator() throws ParseException {
  1687. /*@bgen(jjtree) Operator */
  1688. ASTOperator jjtn000 = new ASTOperator(JJTOPERATOR);
  1689. boolean jjtc000 = true;
  1690. jjtree.openNodeScope(jjtn000);
  1691. jjtreeOpenNodeScope(jjtn000);
  1692. try {
  1693. try {
  1694. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  1695. case STAR:
  1696. jj_consume_token(STAR);
  1697. break;
  1698. case SLASH:
  1699. jj_consume_token(SLASH);
  1700. break;
  1701. case REM:
  1702. jj_consume_token(REM);
  1703. break;
  1704. default:
  1705. jj_la1[26] = jj_gen;
  1706. jj_consume_token(-1);
  1707. throw new ParseException();
  1708. }
  1709. } catch (ParseException pe) {
  1710. addException(pe);
  1711. }
  1712. } finally {
  1713. if (jjtc000) {
  1714. jjtree.closeNodeScope(jjtn000, true);
  1715. jjtreeCloseNodeScope(jjtn000);
  1716. }
  1717. }
  1718. }
  1719. /* Section 11.6: Additive Operators */
  1720. final public void AdditiveExpression() throws ParseException {
  1721. /*@bgen(jjtree) #BinaryExpressionSequence(> 1) */
  1722. ASTBinaryExpressionSequence jjtn000 = new ASTBinaryExpressionSequence(JJTBINARYEXPRESSIONSEQUENCE);
  1723. boolean jjtc000 = true;
  1724. jjtree.openNodeScope(jjtn000);
  1725. jjtreeOpenNodeScope(jjtn000);
  1726. try {
  1727. try {
  1728. MultiplicativeExpression();
  1729. label_13:
  1730. while (true) {
  1731. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  1732. case PLUS:
  1733. case MINUS:
  1734. ;
  1735. break;
  1736. default:
  1737. jj_la1[27] = jj_gen;
  1738. break label_13;
  1739. }
  1740. AdditiveOperator();
  1741. MultiplicativeExpression();
  1742. }
  1743. } catch (ParseException pe) {
  1744. addException(pe);
  1745. }
  1746. } catch (Throwable jjte000) {
  1747. if (jjtc000) {
  1748. jjtree.clearNodeScope(jjtn000);
  1749. jjtc000 = false;
  1750. } else {
  1751. jjtree.popNode();
  1752. }
  1753. if (jjte000 instanceof RuntimeException) {
  1754. {if (true) throw (RuntimeException)jjte000;}
  1755. }
  1756. if (jjte000 instanceof ParseException) {
  1757. {if (true) throw (ParseException)jjte000;}
  1758. }
  1759. {if (true) throw (Error)jjte000;}
  1760. } finally {
  1761. if (jjtc000) {
  1762. jjtree.closeNodeScope(jjtn000, jjtree.nodeArity() > 1);
  1763. jjtreeCloseNodeScope(jjtn000);
  1764. }
  1765. }
  1766. }
  1767. final public void AdditiveOperator() throws ParseException {
  1768. /*@bgen(jjtree) Operator */
  1769. ASTOperator jjtn000 = new ASTOperator(JJTOPERATOR);
  1770. boolean jjtc000 = true;
  1771. jjtree.openNodeScope(jjtn000);
  1772. jjtreeOpenNodeScope(jjtn000);
  1773. try {
  1774. try {
  1775. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  1776. case PLUS:
  1777. jj_consume_token(PLUS);
  1778. break;
  1779. case MINUS:
  1780. jj_consume_token(MINUS);
  1781. break;
  1782. default:
  1783. jj_la1[28] = jj_gen;
  1784. jj_consume_token(-1);
  1785. throw new ParseException();
  1786. }
  1787. } catch (ParseException pe) {
  1788. addException(pe);
  1789. }
  1790. } finally {
  1791. if (jjtc000) {
  1792. jjtree.closeNodeScope(jjtn000, true);
  1793. jjtreeCloseNodeScope(jjtn000);
  1794. }
  1795. }
  1796. }
  1797. /* Section 11.7: Bitwise Shift Operators */
  1798. final public void ShiftExpression() throws ParseException {
  1799. /*@bgen(jjtree) #BinaryExpressionSequence(> 1) */
  1800. ASTBinaryExpressionSequence jjtn000 = new ASTBinaryExpressionSequence(JJTBINARYEXPRESSIONSEQUENCE);
  1801. boolean jjtc000 = true;
  1802. jjtree.openNodeScope(jjtn000);
  1803. jjtreeOpenNodeScope(jjtn000);
  1804. try {
  1805. try {
  1806. AdditiveExpression();
  1807. label_14:
  1808. while (true) {
  1809. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  1810. case LSHIFT:
  1811. case RSHIFT:
  1812. case RUNSHIFT:
  1813. ;
  1814. break;
  1815. default:
  1816. jj_la1[29] = jj_gen;
  1817. break label_14;
  1818. }
  1819. ShiftOperator();
  1820. AdditiveExpression();
  1821. }
  1822. } catch (ParseException pe) {
  1823. addException(pe);
  1824. }
  1825. } catch (Throwable jjte000) {
  1826. if (jjtc000) {
  1827. jjtree.clearNodeScope(jjtn000);
  1828. jjtc000 = false;
  1829. } else {
  1830. jjtree.popNode();
  1831. }
  1832. if (jjte000 instanceof RuntimeException) {
  1833. {if (true) throw (RuntimeException)jjte000;}
  1834. }
  1835. if (jjte000 instanceof ParseException) {
  1836. {if (true) throw (ParseException)jjte000;}
  1837. }
  1838. {if (true) throw (Error)jjte000;}
  1839. } finally {
  1840. if (jjtc000) {
  1841. jjtree.closeNodeScope(jjtn000, jjtree.nodeArity() > 1);
  1842. jjtreeCloseNodeScope(jjtn000);
  1843. }
  1844. }
  1845. }
  1846. final public void ShiftOperator() throws ParseException {
  1847. /*@bgen(jjtree) Operator */
  1848. ASTOperator jjtn000 = new ASTOperator(JJTOPERATOR);
  1849. boolean jjtc000 = true;
  1850. jjtree.openNodeScope(jjtn000);
  1851. jjtreeOpenNodeScope(jjtn000);
  1852. try {
  1853. try {
  1854. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  1855. case LSHIFT:
  1856. jj_consume_token(LSHIFT);
  1857. break;
  1858. case RSHIFT:
  1859. jj_consume_token(RSHIFT);
  1860. break;
  1861. case RUNSHIFT:
  1862. jj_consume_token(RUNSHIFT);
  1863. break;
  1864. default:
  1865. jj_la1[30] = jj_gen;
  1866. jj_consume_token(-1);
  1867. throw new ParseException();
  1868. }
  1869. } catch (ParseException pe) {
  1870. addException(pe);
  1871. }
  1872. } finally {
  1873. if (jjtc000) {
  1874. jjtree.closeNodeScope(jjtn000, true);
  1875. jjtreeCloseNodeScope(jjtn000);
  1876. }
  1877. }
  1878. }
  1879. /* Section 11.4: Relational Operators */
  1880. final public void RelationalExpression() throws ParseException {
  1881. /*@bgen(jjtree) #BinaryExpressionSequence(> 1) */
  1882. ASTBinaryExpressionSequence jjtn000 = new ASTBinaryExpressionSequence(JJTBINARYEXPRESSIONSEQUENCE);
  1883. boolean jjtc000 = true;
  1884. jjtree.openNodeScope(jjtn000);
  1885. jjtreeOpenNodeScope(jjtn000);
  1886. try {
  1887. try {
  1888. ShiftExpression();
  1889. label_15:
  1890. while (true) {
  1891. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  1892. case IN:
  1893. case LT:
  1894. case GT:
  1895. case LE:
  1896. case GE:
  1897. case INTANCE_OF:
  1898. ;
  1899. break;
  1900. default:
  1901. jj_la1[31] = jj_gen;
  1902. break label_15;
  1903. }
  1904. RelationalOperator();
  1905. ShiftExpression();
  1906. }
  1907. } catch (ParseException pe) {
  1908. addException(pe);
  1909. }
  1910. } catch (Throwable jjte000) {
  1911. if (jjtc000) {
  1912. jjtree.clearNodeScope(jjtn000);
  1913. jjtc000 = false;
  1914. } else {
  1915. jjtree.popNode();
  1916. }
  1917. if (jjte000 instanceof RuntimeException) {
  1918. {if (true) throw (RuntimeException)jjte000;}
  1919. }
  1920. if (jjte000 instanceof ParseException) {
  1921. {if (true) throw (ParseException)jjte000;}
  1922. }
  1923. {if (true) throw (Error)jjte000;}
  1924. } finally {
  1925. if (jjtc000) {
  1926. jjtree.closeNodeScope(jjtn000, jjtree.nodeArity() > 1);
  1927. jjtreeCloseNodeScope(jjtn000);
  1928. }
  1929. }
  1930. }
  1931. final public void RelationalOperator() throws ParseException {
  1932. /*@bgen(jjtree) Operator */
  1933. ASTOperator jjtn000 = new ASTOperator(JJTOPERATOR);
  1934. boolean jjtc000 = true;
  1935. jjtree.openNodeScope(jjtn000);
  1936. jjtreeOpenNodeScope(jjtn000);
  1937. try {
  1938. try {
  1939. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  1940. case LT:
  1941. jj_consume_token(LT);
  1942. break;
  1943. case GT:
  1944. jj_consume_token(GT);
  1945. break;
  1946. case LE:
  1947. jj_consume_token(LE);
  1948. break;
  1949. case GE:
  1950. jj_consume_token(GE);
  1951. break;
  1952. case INTANCE_OF:
  1953. jj_consume_token(INTANCE_OF);
  1954. break;
  1955. case IN:
  1956. jj_consume_token(IN);
  1957. break;
  1958. default:
  1959. jj_la1[32] = jj_gen;
  1960. jj_consume_token(-1);
  1961. throw new ParseException();
  1962. }
  1963. } catch (ParseException pe) {
  1964. addException(pe);
  1965. }
  1966. } finally {
  1967. if (jjtc000) {
  1968. jjtree.closeNodeScope(jjtn000, true);
  1969. jjtreeCloseNodeScope(jjtn000);
  1970. }
  1971. }
  1972. }
  1973. final public void RelationalExpressionNoIn() throws ParseException {
  1974. /*@bgen(jjtree) #BinaryExpressionSequence(> 1) */
  1975. ASTBinaryExpressionSequence jjtn000 = new ASTBinaryExpressionSequence(JJTBINARYEXPRESSIONSEQUENCE);
  1976. boolean jjtc000 = true;
  1977. jjtree.openNodeScope(jjtn000);
  1978. jjtreeOpenNodeScope(jjtn000);
  1979. try {
  1980. try {
  1981. ShiftExpression();
  1982. label_16:
  1983. while (true) {
  1984. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  1985. case LT:
  1986. case GT:
  1987. case LE:
  1988. case GE:
  1989. case INTANCE_OF:
  1990. ;
  1991. break;
  1992. default:
  1993. jj_la1[33] = jj_gen;
  1994. break label_16;
  1995. }
  1996. RelationalNoInOperator();
  1997. ShiftExpression();
  1998. }
  1999. } catch (ParseException pe) {
  2000. addException(pe);
  2001. }
  2002. } catch (Throwable jjte000) {
  2003. if (jjtc000) {
  2004. jjtree.clearNodeScope(jjtn000);
  2005. jjtc000 = false;
  2006. } else {
  2007. jjtree.popNode();
  2008. }
  2009. if (jjte000 instanceof RuntimeException) {
  2010. {if (true) throw (RuntimeException)jjte000;}
  2011. }
  2012. if (jjte000 instanceof ParseException) {
  2013. {if (true) throw (ParseException)jjte000;}
  2014. }
  2015. {if (true) throw (Error)jjte000;}
  2016. } finally {
  2017. if (jjtc000) {
  2018. jjtree.closeNodeScope(jjtn000, jjtree.nodeArity() > 1);
  2019. jjtreeCloseNodeScope(jjtn000);
  2020. }
  2021. }
  2022. }
  2023. final public void RelationalNoInOperator() throws ParseException {
  2024. /*@bgen(jjtree) Operator */
  2025. ASTOperator jjtn000 = new ASTOperator(JJTOPERATOR);
  2026. boolean jjtc000 = true;
  2027. jjtree.openNodeScope(jjtn000);
  2028. jjtreeOpenNodeScope(jjtn000);
  2029. try {
  2030. try {
  2031. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  2032. case LT:
  2033. jj_consume_token(LT);
  2034. break;
  2035. case GT:
  2036. jj_consume_token(GT);
  2037. break;
  2038. case LE:
  2039. jj_consume_token(LE);
  2040. break;
  2041. case GE:
  2042. jj_consume_token(GE);
  2043. break;
  2044. case INTANCE_OF:
  2045. jj_consume_token(INTANCE_OF);
  2046. break;
  2047. default:
  2048. jj_la1[34] = jj_gen;
  2049. jj_consume_token(-1);
  2050. throw new ParseException();
  2051. }
  2052. } catch (ParseException pe) {
  2053. addException(pe);
  2054. }
  2055. } finally {
  2056. if (jjtc000) {
  2057. jjtree.closeNodeScope(jjtn000, true);
  2058. jjtreeCloseNodeScope(jjtn000);
  2059. }
  2060. }
  2061. }
  2062. /* Section 11.9: Equality Operators */
  2063. final public void EqualityExpression() throws ParseException {
  2064. /*@bgen(jjtree) #BinaryExpressionSequence(> 1) */
  2065. ASTBinaryExpressionSequence jjtn000 = new ASTBinaryExpressionSequence(JJTBINARYEXPRESSIONSEQUENCE);
  2066. boolean jjtc000 = true;
  2067. jjtree.openNodeScope(jjtn000);
  2068. jjtreeOpenNodeScope(jjtn000);
  2069. try {
  2070. try {
  2071. RelationalExpression();
  2072. label_17:
  2073. while (true) {
  2074. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  2075. case EQ:
  2076. case NE:
  2077. case SEQ:
  2078. case SNEQ:
  2079. ;
  2080. break;
  2081. default:
  2082. jj_la1[35] = jj_gen;
  2083. break label_17;
  2084. }
  2085. EqualityOperator();
  2086. RelationalExpression();
  2087. }
  2088. } catch (ParseException pe) {
  2089. addException(pe);
  2090. }
  2091. } catch (Throwable jjte000) {
  2092. if (jjtc000) {
  2093. jjtree.clearNodeScope(jjtn000);
  2094. jjtc000 = false;
  2095. } else {
  2096. jjtree.popNode();
  2097. }
  2098. if (jjte000 instanceof RuntimeException) {
  2099. {if (true) throw (RuntimeException)jjte000;}
  2100. }
  2101. if (jjte000 instanceof ParseException) {
  2102. {if (true) throw (ParseException)jjte000;}
  2103. }
  2104. {if (true) throw (Error)jjte000;}
  2105. } finally {
  2106. if (jjtc000) {
  2107. jjtree.closeNodeScope(jjtn000, jjtree.nodeArity() > 1);
  2108. jjtreeCloseNodeScope(jjtn000);
  2109. }
  2110. }
  2111. }
  2112. final public void EqualityExpressionNoIn() throws ParseException {
  2113. /*@bgen(jjtree) #BinaryExpressionSequence(> 1) */
  2114. ASTBinaryExpressionSequence jjtn000 = new ASTBinaryExpressionSequence(JJTBINARYEXPRESSIONSEQUENCE);
  2115. boolean jjtc000 = true;
  2116. jjtree.openNodeScope(jjtn000);
  2117. jjtreeOpenNodeScope(jjtn000);
  2118. try {
  2119. try {
  2120. RelationalExpressionNoIn();
  2121. label_18:
  2122. while (true) {
  2123. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  2124. case EQ:
  2125. case NE:
  2126. case SEQ:
  2127. case SNEQ:
  2128. ;
  2129. break;
  2130. default:
  2131. jj_la1[36] = jj_gen;
  2132. break label_18;
  2133. }
  2134. EqualityOperator();
  2135. RelationalExpressionNoIn();
  2136. }
  2137. } catch (ParseException pe) {
  2138. addException(pe);
  2139. }
  2140. } catch (Throwable jjte000) {
  2141. if (jjtc000) {
  2142. jjtree.clearNodeScope(jjtn000);
  2143. jjtc000 = false;
  2144. } else {
  2145. jjtree.popNode();
  2146. }
  2147. if (jjte000 instanceof RuntimeException) {
  2148. {if (true) throw (RuntimeException)jjte000;}
  2149. }
  2150. if (jjte000