PageRenderTime 51ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/projects/netbeans-7.3/cnd.modelimpl/src/org/netbeans/modules/cnd/modelimpl/parser/FortranParserEx.java

https://gitlab.com/essere.lab.public/qualitas.class-corpus
Java | 1943 lines | 1216 code | 665 blank | 62 comment | 195 complexity | 8b925c9c6fc93d14c8cf7f6dfa99411a MD5 | raw file
  1. /*
  2. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
  3. *
  4. * Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
  5. *
  6. * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
  7. * Other names may be trademarks of their respective owners.
  8. *
  9. * The contents of this file are subject to the terms of either the GNU
  10. * General Public License Version 2 only ("GPL") or the Common
  11. * Development and Distribution License("CDDL") (collectively, the
  12. * "License"). You may not use this file except in compliance with the
  13. * License. You can obtain a copy of the License at
  14. * http://www.netbeans.org/cddl-gplv2.html
  15. * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
  16. * specific language governing permissions and limitations under the
  17. * License. When distributing the software, include this License Header
  18. * Notice in each file and include the License file at
  19. * nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
  20. * particular file as subject to the "Classpath" exception as provided
  21. * by Oracle in the GPL Version 2 section of the License file that
  22. * accompanied this code. If applicable, add the following below the
  23. * License Header, with the fields enclosed by brackets [] replaced by
  24. * your own identifying information:
  25. * "Portions Copyrighted [year] [name of copyright owner]"
  26. *
  27. * Contributor(s):
  28. *
  29. * The Original Software is NetBeans. The Initial Developer of the Original
  30. * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
  31. * Microsystems, Inc. All Rights Reserved.
  32. *
  33. * If you wish your version of this file to be governed by only the CDDL
  34. * or only the GPL Version 2, indicate your decision by adding
  35. * "[Contributor] elects to include this software in this distribution
  36. * under the [CDDL or GPL Version 2] license." If you do not indicate a
  37. * single choice of license, a recipient has the option to distribute
  38. * your version of this file under either the CDDL, the GPL Version 2 or
  39. * to extend the choice of license to its licensees as provided above.
  40. * However, if you add GPL Version 2 code and therefore, elected the GPL
  41. * Version 2 license, then the option applies only if the new code is
  42. * made subject to such option by the copyright holder.
  43. */
  44. package org.netbeans.modules.cnd.modelimpl.parser;
  45. import java.util.ArrayList;
  46. import java.util.HashMap;
  47. import java.util.List;
  48. import java.util.Map;
  49. import java.util.Stack;
  50. import org.antlr.runtime.CharStream;
  51. import org.antlr.runtime.RecognitionException;
  52. import org.antlr.runtime.Token;
  53. import org.antlr.runtime.TokenSource;
  54. import org.netbeans.modules.cnd.antlr.TokenBuffer;
  55. import org.netbeans.modules.cnd.antlr.TokenStream;
  56. import org.netbeans.modules.cnd.antlr.TokenStreamException;
  57. import org.netbeans.modules.cnd.apt.support.APTToken;
  58. import org.netbeans.modules.cnd.apt.support.APTTokenTypes;
  59. import org.netbeans.modules.cnd.apt.utils.APTUtils;
  60. import org.netbeans.modules.cnd.modelimpl.parser.generated.FortranParser;
  61. import org.netbeans.modules.cnd.modelimpl.parser.generated.FortranParser.program_return;
  62. import org.openide.util.Exceptions;
  63. /**
  64. *
  65. * @author nk220367
  66. */
  67. public class FortranParserEx {
  68. public static final int UNKNOWN_SOURCE_FORM = -1;
  69. public static final int FREE_FORM = 1;
  70. public static final int FIXED_FORM = 2;
  71. public List<Object> parsedObjects = new ArrayList<Object>();
  72. private FortranParser parser;
  73. private final int form;
  74. public program_return program() throws RecognitionException {
  75. return parser.program();
  76. }
  77. int getNumberOfSyntaxErrors() {
  78. return parser.getNumberOfSyntaxErrors();
  79. }
  80. public class ProgramData {
  81. public String name;
  82. public int startOffset;
  83. public int endOffset;
  84. public List<Object> members = null;
  85. }
  86. public class SubroutineData {
  87. public String name;
  88. public int startOffset;
  89. public int endOffset;
  90. public List<String> args = null;
  91. }
  92. public class ModuleData {
  93. public String name;
  94. public int startOffset;
  95. public int endOffset;
  96. public List<Object> members = null;
  97. }
  98. public static class MyTokenSource implements TokenSource {
  99. TokenStream ts;
  100. public MyTokenSource(TokenStream ts) {
  101. this.ts = ts;
  102. }
  103. @Override
  104. public Token nextToken() {
  105. org.netbeans.modules.cnd.antlr.Token nextToken = null;
  106. try {
  107. nextToken = ts.nextToken();
  108. } catch (TokenStreamException ex) {
  109. Exceptions.printStackTrace(ex);
  110. }
  111. return (nextToken != null) ? new MyToken(nextToken) : null;
  112. }
  113. @Override
  114. public String getSourceName() {
  115. return "my token source"; // NOI18N
  116. }
  117. }
  118. public FortranParserEx(TokenStream ts, int form) {
  119. this.form = form;
  120. MyTokenSource myts = new MyTokenSource(ts);
  121. FortranTokenStream tokens = new FortranTokenStream(myts);
  122. tokens.fill();
  123. tokens.toString();
  124. parser = new FortranParser(tokens);
  125. try {
  126. FortranLexicalPrepass prepass = new FortranLexicalPrepass(tokens);
  127. prepass.setSourceForm(form);
  128. prepass.performPrepass();
  129. tokens.finalizeTokenStream();
  130. // int i = 0;
  131. // Token token = tokens.get(i);
  132. // while (token.getType() != -1) {
  133. // System.out.println(token.getType() + " " + token.getText() + " " + token.getLine() + " " + (token.getCharPositionInLine()));
  134. // i++;
  135. // token = tokens.get(i);
  136. // }
  137. // System.out.println(token.getType() + " " + token.getText() + " " + token.getLine() + " " + (token.getCharPositionInLine()));
  138. } catch (Throwable t) {
  139. System.out.println(t);
  140. t.printStackTrace(System.out);
  141. }
  142. parser.inputStreams = new Stack<String>();
  143. parser.action = new IFortranParserAction() {
  144. // Proogram
  145. ProgramData programData = null;
  146. @Override
  147. public void program_stmt(Token label, Token programKeyword, Token id, Token eos) {
  148. if (id != null && programKeyword instanceof MyToken && ((MyToken) programKeyword).t instanceof APTToken) {
  149. programData = new ProgramData();
  150. programData.name = id.getText();
  151. programData.startOffset = ((APTToken) ((MyToken) programKeyword).t).getOffset();
  152. programData.members = new ArrayList<Object>();
  153. // System.out.println("program " + id);
  154. }
  155. }
  156. @Override
  157. public void end_program_stmt(Token label, Token endKeyword, Token programKeyword, Token id, Token eos) {
  158. if(programData != null) {
  159. if(endKeyword instanceof APTToken) {
  160. programData.endOffset = ((APTToken)endKeyword).getEndOffset();
  161. } else if(endKeyword instanceof MyToken && ((MyToken) endKeyword).t instanceof APTToken) {
  162. programData.endOffset = ((APTToken)((MyToken)endKeyword).t).getEndOffset();
  163. }
  164. parsedObjects.add(programData);
  165. }
  166. programData = null;
  167. if(subroutineData != null && subroutineData.name != null) {
  168. if(endKeyword instanceof APTToken) {
  169. subroutineData.endOffset = ((APTToken)endKeyword).getEndOffset();
  170. } else if(endKeyword instanceof MyToken && ((MyToken) endKeyword).t instanceof APTToken) {
  171. subroutineData.endOffset = ((APTToken)((MyToken)endKeyword).t).getEndOffset();
  172. }
  173. if(moduleData != null && moduleData.members != null) {
  174. moduleData.members.add(subroutineData);
  175. } else if(programData != null && programData.members != null) {
  176. programData.members.add(subroutineData);
  177. } else {
  178. parsedObjects.add(subroutineData);
  179. }
  180. }
  181. subroutineData = null;
  182. if(functionData != null && functionData.name != null) {
  183. if(endKeyword instanceof APTToken) {
  184. functionData.endOffset = ((APTToken)endKeyword).getEndOffset();
  185. } else if(endKeyword instanceof MyToken && ((MyToken) endKeyword).t instanceof APTToken) {
  186. functionData.endOffset = ((APTToken)((MyToken)endKeyword).t).getEndOffset();
  187. }
  188. if(moduleData != null && moduleData.members != null) {
  189. moduleData.members.add(functionData);
  190. } else if(programData != null && programData.members != null) {
  191. programData.members.add(functionData);
  192. } else {
  193. parsedObjects.add(functionData);
  194. }
  195. }
  196. functionData = null;
  197. if(moduleData != null && moduleData.name != null) {
  198. if(endKeyword instanceof APTToken) {
  199. moduleData.endOffset = ((APTToken)endKeyword).getEndOffset();
  200. } else if(endKeyword instanceof MyToken && ((MyToken) endKeyword).t instanceof APTToken) {
  201. moduleData.endOffset = ((APTToken)((MyToken)endKeyword).t).getEndOffset();
  202. }
  203. parsedObjects.add(moduleData);
  204. }
  205. moduleData = null;
  206. }
  207. // Subroutine
  208. SubroutineData subroutineData = null;
  209. @Override
  210. public void subroutine_stmt__begin() {
  211. subroutineData = new SubroutineData();
  212. }
  213. @Override
  214. public void subroutine_stmt(Token label, Token keyword, Token name, Token eos, boolean hasPrefix, boolean hasDummyArgList, boolean hasBindingSpec, boolean hasArgSpecifier) {
  215. if (subroutineData != null && name != null && name.getText() != null && keyword instanceof MyToken && ((MyToken) keyword).t instanceof APTToken) {
  216. subroutineData.name = name.getText();
  217. subroutineData.startOffset = ((APTToken) ((MyToken) keyword).t).getOffset();
  218. }
  219. }
  220. @Override
  221. public void end_subroutine_stmt(Token label, Token keyword1, Token keyword2, Token name, Token eos) {
  222. if(subroutineData != null && subroutineData.name != null) {
  223. if (keyword2 instanceof MyToken && ((MyToken) keyword2).t instanceof APTToken) {
  224. subroutineData.endOffset = ((APTToken) ((MyToken) keyword2).t).getEndOffset();
  225. } else if(keyword1 instanceof MyToken && ((MyToken) keyword1).t instanceof APTToken) {
  226. subroutineData.endOffset = ((APTToken)((MyToken)keyword1).t).getEndOffset();
  227. }
  228. if(moduleData != null && moduleData.members != null) {
  229. moduleData.members.add(subroutineData);
  230. } else if(programData != null && programData.members != null) {
  231. programData.members.add(subroutineData);
  232. } else {
  233. parsedObjects.add(subroutineData);
  234. }
  235. }
  236. subroutineData = null;
  237. }
  238. // Function
  239. SubroutineData functionData = null;
  240. @Override
  241. public void function_stmt__begin() {
  242. functionData = new SubroutineData();
  243. }
  244. @Override
  245. public void function_stmt(Token label, Token keyword, Token name, Token eos, boolean hasGenericNameList, boolean hasSuffix) {
  246. if (functionData != null && name != null && name.getText() != null && keyword instanceof MyToken && ((MyToken) keyword).t instanceof APTToken) {
  247. functionData.name = name.getText();
  248. functionData.startOffset = ((APTToken) ((MyToken) keyword).t).getOffset();
  249. }
  250. }
  251. @Override
  252. public void end_function_stmt(Token label, Token keyword1, Token keyword2, Token name, Token eos) {
  253. if(functionData != null && functionData.name != null) {
  254. if (keyword2 instanceof MyToken && ((MyToken) keyword2).t instanceof APTToken) {
  255. functionData.endOffset = ((APTToken) ((MyToken) keyword2).t).getEndOffset();
  256. } else if(keyword1 instanceof MyToken && ((MyToken) keyword1).t instanceof APTToken) {
  257. functionData.endOffset = ((APTToken)((MyToken)keyword1).t).getEndOffset();
  258. }
  259. if(moduleData != null && moduleData.members != null) {
  260. moduleData.members.add(functionData);
  261. } else if(programData != null && programData.members != null) {
  262. programData.members.add(functionData);
  263. } else {
  264. parsedObjects.add(functionData);
  265. }
  266. }
  267. functionData = null;
  268. }
  269. // Subroutine arguments
  270. @Override
  271. public void dummy_arg(Token dummy) {
  272. if(dummy!= null && subroutineData != null && subroutineData.args != null) {
  273. subroutineData.args.add(dummy.getText());
  274. }
  275. if(dummy!= null && functionData != null && functionData.args != null) {
  276. functionData.args.add(dummy.getText());
  277. }
  278. }
  279. @Override
  280. public void dummy_arg_list__begin() {
  281. if(subroutineData != null) {
  282. if(subroutineData.args == null) {
  283. subroutineData.args = new ArrayList<String>();
  284. }
  285. }
  286. if(functionData != null) {
  287. if(functionData.args == null) {
  288. functionData.args = new ArrayList<String>();
  289. }
  290. }
  291. }
  292. @Override
  293. public void dummy_arg_list(int count) {
  294. }
  295. // Function arguments
  296. @Override
  297. public void generic_name_list_part(Token ident) {
  298. if(ident!= null && subroutineData != null && subroutineData.args != null) {
  299. subroutineData.args.add(ident.getText());
  300. }
  301. if(ident!= null && functionData != null && functionData.args != null) {
  302. functionData.args.add(ident.getText());
  303. }
  304. }
  305. @Override
  306. public void generic_name_list__begin() {
  307. if(subroutineData != null) {
  308. if(subroutineData.args == null) {
  309. subroutineData.args = new ArrayList<String>();
  310. }
  311. }
  312. if(functionData != null) {
  313. if(functionData.args == null) {
  314. functionData.args = new ArrayList<String>();
  315. }
  316. }
  317. }
  318. @Override
  319. public void generic_name_list(int count) {
  320. }
  321. // Module
  322. ModuleData moduleData = null;
  323. @Override
  324. public void module() {
  325. }
  326. @Override
  327. public void module_stmt__begin() {
  328. moduleData = new ModuleData();
  329. }
  330. @Override
  331. public void module_stmt(Token label, Token moduleKeyword, Token id, Token eos) {
  332. if (moduleData != null && id != null && moduleKeyword instanceof MyToken && ((MyToken) moduleKeyword).t instanceof APTToken) {
  333. moduleData.name = id.getText();
  334. moduleData.startOffset = ((APTToken) ((MyToken) moduleKeyword).t).getOffset();
  335. moduleData.members = new ArrayList<Object>();
  336. }
  337. }
  338. @Override
  339. public void end_module_stmt(Token label, Token endKeyword, Token moduleKeyword, Token id, Token eos) {
  340. if(subroutineData != null && subroutineData.name != null) {
  341. if(endKeyword instanceof APTToken) {
  342. subroutineData.endOffset = ((APTToken)endKeyword).getEndOffset();
  343. } else if(endKeyword instanceof MyToken && ((MyToken) endKeyword).t instanceof APTToken) {
  344. subroutineData.endOffset = ((APTToken)((MyToken)endKeyword).t).getEndOffset();
  345. }
  346. if(moduleData != null && moduleData.members != null) {
  347. moduleData.members.add(subroutineData);
  348. } else if(programData != null && programData.members != null) {
  349. programData.members.add(subroutineData);
  350. } else {
  351. parsedObjects.add(subroutineData);
  352. }
  353. }
  354. subroutineData = null;
  355. if(functionData != null && functionData.name != null) {
  356. if(endKeyword instanceof APTToken) {
  357. functionData.endOffset = ((APTToken)endKeyword).getEndOffset();
  358. } else if(endKeyword instanceof MyToken && ((MyToken) endKeyword).t instanceof APTToken) {
  359. functionData.endOffset = ((APTToken)((MyToken)endKeyword).t).getEndOffset();
  360. }
  361. if(moduleData != null && moduleData.members != null) {
  362. moduleData.members.add(functionData);
  363. } else if(programData != null && programData.members != null) {
  364. programData.members.add(functionData);
  365. } else {
  366. parsedObjects.add(functionData);
  367. }
  368. }
  369. functionData = null;
  370. if(moduleData != null && moduleData.name != null) {
  371. if(endKeyword instanceof APTToken) {
  372. moduleData.endOffset = ((APTToken)endKeyword).getEndOffset();
  373. } else if(endKeyword instanceof MyToken && ((MyToken) endKeyword).t instanceof APTToken) {
  374. moduleData.endOffset = ((APTToken)((MyToken)endKeyword).t).getEndOffset();
  375. }
  376. parsedObjects.add(moduleData);
  377. }
  378. moduleData = null;
  379. }
  380. @Override
  381. public void module_subprogram_part() {
  382. }
  383. @Override
  384. public void module_subprogram(boolean hasPrefix) {
  385. }
  386. @Override
  387. public void specification_part(int numUseStmts, int numImportStmts, int numDeclConstructs) {
  388. }
  389. @Override
  390. public void declaration_construct() {
  391. }
  392. @Override
  393. public void execution_part() {
  394. }
  395. @Override
  396. public void execution_part_construct() {
  397. }
  398. @Override
  399. public void internal_subprogram_part(int count) {
  400. }
  401. @Override
  402. public void internal_subprogram() {
  403. }
  404. @Override
  405. public void specification_stmt() {
  406. }
  407. @Override
  408. public void executable_construct() {
  409. }
  410. @Override
  411. public void action_stmt() {
  412. }
  413. @Override
  414. public void keyword() {
  415. }
  416. @Override
  417. public void name(Token id) {
  418. }
  419. @Override
  420. public void constant(Token id) {
  421. }
  422. @Override
  423. public void scalar_constant() {
  424. }
  425. @Override
  426. public void literal_constant() {
  427. }
  428. @Override
  429. public void int_constant(Token id) {
  430. }
  431. @Override
  432. public void char_constant(Token id) {
  433. }
  434. @Override
  435. public void intrinsic_operator() {
  436. }
  437. @Override
  438. public void defined_operator(Token definedOp, boolean isExtended) {
  439. }
  440. @Override
  441. public void extended_intrinsic_op() {
  442. }
  443. @Override
  444. public void label(Token lbl) {
  445. }
  446. @Override
  447. public void label_list__begin() {
  448. }
  449. @Override
  450. public void label_list(int count) {
  451. }
  452. @Override
  453. public void type_spec() {
  454. }
  455. @Override
  456. public void type_param_value(boolean hasExpr, boolean hasAsterisk, boolean hasColon) {
  457. }
  458. @Override
  459. public void intrinsic_type_spec(Token keyword1, Token keyword2, int type, boolean hasKindSelector) {
  460. }
  461. @Override
  462. public void kind_selector(Token token1, Token token2, boolean hasExpression) {
  463. }
  464. @Override
  465. public void signed_int_literal_constant(Token sign) {
  466. }
  467. @Override
  468. public void int_literal_constant(Token digitString, Token kindParam) {
  469. }
  470. @Override
  471. public void kind_param(Token kind) {
  472. }
  473. @Override
  474. public void boz_literal_constant(Token constant) {
  475. }
  476. @Override
  477. public void signed_real_literal_constant(Token sign) {
  478. }
  479. @Override
  480. public void real_literal_constant(Token realConstant, Token kindParam) {
  481. }
  482. @Override
  483. public void complex_literal_constant() {
  484. }
  485. @Override
  486. public void real_part(boolean hasIntConstant, boolean hasRealConstant, Token id) {
  487. }
  488. @Override
  489. public void imag_part(boolean hasIntConstant, boolean hasRealConstant, Token id) {
  490. }
  491. @Override
  492. public void char_selector(Token tk1, Token tk2, int kindOrLen1, int kindOrLen2, boolean hasAsterisk) {
  493. }
  494. @Override
  495. public void length_selector(Token len, int kindOrLen, boolean hasAsterisk) {
  496. }
  497. @Override
  498. public void char_length(boolean hasTypeParamValue) {
  499. }
  500. @Override
  501. public void scalar_int_literal_constant() {
  502. }
  503. @Override
  504. public void char_literal_constant(Token digitString, Token id, Token str) {
  505. }
  506. @Override
  507. public void logical_literal_constant(Token logicalValue, boolean isTrue, Token kindParam) {
  508. }
  509. @Override
  510. public void derived_type_def() {
  511. }
  512. @Override
  513. public void type_param_or_comp_def_stmt(Token eos, int type) {
  514. }
  515. @Override
  516. public void type_param_or_comp_def_stmt_list() {
  517. }
  518. @Override
  519. public void derived_type_stmt(Token label, Token keyword, Token id, Token eos, boolean hasTypeAttrSpecList, boolean hasGenericNameList) {
  520. }
  521. @Override
  522. public void type_attr_spec(Token keyword, Token id, int specType) {
  523. }
  524. @Override
  525. public void type_attr_spec_list__begin() {
  526. }
  527. @Override
  528. public void type_attr_spec_list(int count) {
  529. }
  530. @Override
  531. public void private_or_sequence() {
  532. }
  533. @Override
  534. public void end_type_stmt(Token label, Token endKeyword, Token typeKeyword, Token id, Token eos) {
  535. }
  536. @Override
  537. public void sequence_stmt(Token label, Token sequenceKeyword, Token eos) {
  538. }
  539. @Override
  540. public void type_param_decl(Token id, boolean hasInit) {
  541. }
  542. @Override
  543. public void type_param_decl_list__begin() {
  544. }
  545. @Override
  546. public void type_param_decl_list(int count) {
  547. }
  548. @Override
  549. public void type_param_attr_spec(Token kindOrLen) {
  550. }
  551. @Override
  552. public void component_def_stmt(int type) {
  553. }
  554. @Override
  555. public void data_component_def_stmt(Token label, Token eos, boolean hasSpec) {
  556. }
  557. @Override
  558. public void component_attr_spec(Token attrKeyword, int specType) {
  559. }
  560. @Override
  561. public void component_attr_spec_list__begin() {
  562. }
  563. @Override
  564. public void component_attr_spec_list(int count) {
  565. }
  566. @Override
  567. public void component_decl(Token id, boolean hasComponentArraySpec, boolean hasCoArraySpec, boolean hasCharLength, boolean hasComponentInitialization) {
  568. }
  569. @Override
  570. public void component_decl_list__begin() {
  571. }
  572. @Override
  573. public void component_decl_list(int count) {
  574. }
  575. @Override
  576. public void component_array_spec(boolean isExplicit) {
  577. }
  578. @Override
  579. public void deferred_shape_spec_list__begin() {
  580. }
  581. @Override
  582. public void deferred_shape_spec_list(int count) {
  583. }
  584. @Override
  585. public void component_initialization() {
  586. }
  587. @Override
  588. public void proc_component_def_stmt(Token label, Token procedureKeyword, Token eos, boolean hasInterface) {
  589. }
  590. @Override
  591. public void proc_component_attr_spec(Token attrSpecKeyword, Token id, int specType) {
  592. }
  593. @Override
  594. public void proc_component_attr_spec_list__begin() {
  595. }
  596. @Override
  597. public void proc_component_attr_spec_list(int count) {
  598. }
  599. @Override
  600. public void private_components_stmt(Token label, Token privateKeyword, Token eos) {
  601. }
  602. @Override
  603. public void type_bound_procedure_part(int count, boolean hasBindingPrivateStmt) {
  604. }
  605. @Override
  606. public void binding_private_stmt(Token label, Token privateKeyword, Token eos) {
  607. }
  608. @Override
  609. public void proc_binding_stmt(Token label, int type, Token eos) {
  610. }
  611. @Override
  612. public void specific_binding(Token procedureKeyword, Token interfaceName, Token bindingName, Token procedureName, boolean hasBindingAttrList) {
  613. }
  614. @Override
  615. public void generic_binding(Token genericKeyword, boolean hasAccessSpec) {
  616. }
  617. @Override
  618. public void binding_attr(Token bindingAttr, int attr, Token id) {
  619. }
  620. @Override
  621. public void binding_attr_list__begin() {
  622. }
  623. @Override
  624. public void binding_attr_list(int count) {
  625. }
  626. @Override
  627. public void final_binding(Token finalKeyword) {
  628. }
  629. @Override
  630. public void derived_type_spec(Token typeName, boolean hasTypeParamSpecList) {
  631. }
  632. @Override
  633. public void type_param_spec(Token keyword) {
  634. }
  635. @Override
  636. public void type_param_spec_list__begin() {
  637. }
  638. @Override
  639. public void type_param_spec_list(int count) {
  640. }
  641. @Override
  642. public void structure_constructor(Token id) {
  643. }
  644. @Override
  645. public void component_spec(Token id) {
  646. }
  647. @Override
  648. public void component_spec_list__begin() {
  649. }
  650. @Override
  651. public void component_spec_list(int count) {
  652. }
  653. @Override
  654. public void component_data_source() {
  655. }
  656. @Override
  657. public void enum_def(int numEls) {
  658. }
  659. @Override
  660. public void enum_def_stmt(Token label, Token enumKeyword, Token bindKeyword, Token id, Token eos) {
  661. }
  662. @Override
  663. public void enumerator_def_stmt(Token label, Token enumeratorKeyword, Token eos) {
  664. }
  665. @Override
  666. public void enumerator(Token id, boolean hasExpr) {
  667. }
  668. @Override
  669. public void enumerator_list__begin() {
  670. }
  671. @Override
  672. public void enumerator_list(int count) {
  673. }
  674. @Override
  675. public void end_enum_stmt(Token label, Token endKeyword, Token enumKeyword, Token eos) {
  676. }
  677. @Override
  678. public void array_constructor() {
  679. }
  680. @Override
  681. public void ac_spec() {
  682. }
  683. @Override
  684. public void ac_value() {
  685. }
  686. @Override
  687. public void ac_value_list__begin() {
  688. }
  689. @Override
  690. public void ac_value_list(int count) {
  691. }
  692. @Override
  693. public void ac_implied_do() {
  694. }
  695. @Override
  696. public void ac_implied_do_control(boolean hasStride) {
  697. }
  698. @Override
  699. public void scalar_int_variable() {
  700. }
  701. @Override
  702. public void type_declaration_stmt(Token label, int numAttributes, Token eos) {
  703. }
  704. @Override
  705. public void declaration_type_spec(Token udtKeyword, int type) {
  706. }
  707. @Override
  708. public void attr_spec(Token attrKeyword, int attr) {
  709. }
  710. @Override
  711. public void entity_decl(Token id) {
  712. }
  713. @Override
  714. public void entity_decl_list__begin() {
  715. }
  716. @Override
  717. public void entity_decl_list(int count) {
  718. }
  719. @Override
  720. public void initialization(boolean hasExpr, boolean hasNullInit) {
  721. }
  722. @Override
  723. public void null_init(Token id) {
  724. }
  725. @Override
  726. public void access_spec(Token keyword, int type) {
  727. }
  728. @Override
  729. public void language_binding_spec(Token keyword, Token id, boolean hasName) {
  730. }
  731. @Override
  732. public void array_spec(int count) {
  733. }
  734. @Override
  735. public void array_spec_element(int type) {
  736. }
  737. @Override
  738. public void explicit_shape_spec(boolean hasUpperBound) {
  739. }
  740. @Override
  741. public void explicit_shape_spec_list__begin() {
  742. }
  743. @Override
  744. public void explicit_shape_spec_list(int count) {
  745. }
  746. @Override
  747. public void co_array_spec() {
  748. }
  749. @Override
  750. public void intent_spec(Token intentKeyword1, Token intentKeyword2, int intent) {
  751. }
  752. @Override
  753. public void access_stmt(Token label, Token eos, boolean hasList) {
  754. }
  755. @Override
  756. public void deferred_co_shape_spec() {
  757. }
  758. @Override
  759. public void deferred_co_shape_spec_list__begin() {
  760. }
  761. @Override
  762. public void deferred_co_shape_spec_list(int count) {
  763. }
  764. @Override
  765. public void explicit_co_shape_spec() {
  766. }
  767. @Override
  768. public void explicit_co_shape_spec_suffix() {
  769. }
  770. @Override
  771. public void access_id() {
  772. }
  773. @Override
  774. public void access_id_list__begin() {
  775. }
  776. @Override
  777. public void access_id_list(int count) {
  778. }
  779. @Override
  780. public void allocatable_stmt(Token label, Token keyword, Token eos, int count) {
  781. }
  782. @Override
  783. public void allocatable_decl(Token id, boolean hasArraySpec, boolean hasCoArraySpec) {
  784. }
  785. @Override
  786. public void asynchronous_stmt(Token label, Token keyword, Token eos) {
  787. }
  788. @Override
  789. public void bind_stmt(Token label, Token eos) {
  790. }
  791. @Override
  792. public void bind_entity(Token entity, boolean isCommonBlockName) {
  793. }
  794. @Override
  795. public void bind_entity_list__begin() {
  796. }
  797. @Override
  798. public void bind_entity_list(int count) {
  799. }
  800. @Override
  801. public void data_stmt(Token label, Token keyword, Token eos, int count) {
  802. }
  803. @Override
  804. public void data_stmt_set() {
  805. }
  806. @Override
  807. public void data_stmt_object() {
  808. }
  809. @Override
  810. public void data_stmt_object_list__begin() {
  811. }
  812. @Override
  813. public void data_stmt_object_list(int count) {
  814. }
  815. @Override
  816. public void data_implied_do(Token id, boolean hasThirdExpr) {
  817. }
  818. @Override
  819. public void data_i_do_object() {
  820. }
  821. @Override
  822. public void data_i_do_object_list__begin() {
  823. }
  824. @Override
  825. public void data_i_do_object_list(int count) {
  826. }
  827. @Override
  828. public void data_stmt_value(Token asterisk) {
  829. }
  830. @Override
  831. public void data_stmt_value_list__begin() {
  832. }
  833. @Override
  834. public void data_stmt_value_list(int count) {
  835. }
  836. @Override
  837. public void scalar_int_constant() {
  838. }
  839. @Override
  840. public void hollerith_constant(Token hollerithConstant) {
  841. }
  842. @Override
  843. public void data_stmt_constant() {
  844. }
  845. @Override
  846. public void dimension_stmt(Token label, Token keyword, Token eos, int count) {
  847. }
  848. @Override
  849. public void dimension_decl(Token id, boolean hasArraySpec, boolean hasCoArraySpec) {
  850. }
  851. @Override
  852. public void dimension_spec(Token dimensionKeyword) {
  853. }
  854. @Override
  855. public void intent_stmt(Token label, Token keyword, Token eos) {
  856. }
  857. @Override
  858. public void optional_stmt(Token label, Token keyword, Token eos) {
  859. }
  860. @Override
  861. public void parameter_stmt(Token label, Token keyword, Token eos) {
  862. }
  863. @Override
  864. public void named_constant_def_list__begin() {
  865. }
  866. @Override
  867. public void named_constant_def_list(int count) {
  868. }
  869. @Override
  870. public void named_constant_def(Token id) {
  871. }
  872. @Override
  873. public void pointer_stmt(Token label, Token keyword, Token eos) {
  874. }
  875. @Override
  876. public void pointer_decl_list__begin() {
  877. }
  878. @Override
  879. public void pointer_decl_list(int count) {
  880. }
  881. @Override
  882. public void pointer_decl(Token id, boolean hasSpecList) {
  883. }
  884. @Override
  885. public void protected_stmt(Token label, Token keyword, Token eos) {
  886. }
  887. @Override
  888. public void save_stmt(Token label, Token keyword, Token eos, boolean hasSavedEntityList) {
  889. }
  890. @Override
  891. public void saved_entity_list__begin() {
  892. }
  893. @Override
  894. public void saved_entity_list(int count) {
  895. }
  896. @Override
  897. public void saved_entity(Token id, boolean isCommonBlockName) {
  898. }
  899. @Override
  900. public void target_stmt(Token label, Token keyword, Token eos, int count) {
  901. }
  902. @Override
  903. public void target_decl(Token id, boolean hasArraySpec, boolean hasCoArraySpec) {
  904. }
  905. @Override
  906. public void value_stmt(Token label, Token keyword, Token eos) {
  907. }
  908. @Override
  909. public void volatile_stmt(Token label, Token keyword, Token eos) {
  910. }
  911. @Override
  912. public void implicit_stmt(Token label, Token implicitKeyword, Token noneKeyword, Token eos, boolean hasImplicitSpecList) {
  913. }
  914. @Override
  915. public void implicit_spec() {
  916. }
  917. @Override
  918. public void implicit_spec_list__begin() {
  919. }
  920. @Override
  921. public void implicit_spec_list(int count) {
  922. }
  923. @Override
  924. public void letter_spec(Token id1, Token id2) {
  925. }
  926. @Override
  927. public void letter_spec_list__begin() {
  928. }
  929. @Override
  930. public void letter_spec_list(int count) {
  931. }
  932. @Override
  933. public void namelist_stmt(Token label, Token keyword, Token eos, int count) {
  934. }
  935. @Override
  936. public void namelist_group_name(Token id) {
  937. }
  938. @Override
  939. public void namelist_group_object(Token id) {
  940. }
  941. @Override
  942. public void namelist_group_object_list__begin() {
  943. }
  944. @Override
  945. public void namelist_group_object_list(int count) {
  946. }
  947. @Override
  948. public void equivalence_stmt(Token label, Token equivalenceKeyword, Token eos) {
  949. }
  950. @Override
  951. public void equivalence_set() {
  952. }
  953. @Override
  954. public void equivalence_set_list__begin() {
  955. }
  956. @Override
  957. public void equivalence_set_list(int count) {
  958. }
  959. @Override
  960. public void equivalence_object() {
  961. }
  962. @Override
  963. public void equivalence_object_list__begin() {
  964. }
  965. @Override
  966. public void equivalence_object_list(int count) {
  967. }
  968. @Override
  969. public void common_stmt(Token label, Token commonKeyword, Token eos, int numBlocks) {
  970. }
  971. @Override
  972. public void common_block_name(Token id) {
  973. }
  974. @Override
  975. public void common_block_object_list__begin() {
  976. }
  977. @Override
  978. public void common_block_object_list(int count) {
  979. }
  980. @Override
  981. public void common_block_object(Token id, boolean hasShapeSpecList) {
  982. }
  983. @Override
  984. public void variable() {
  985. }
  986. @Override
  987. public void designator(boolean hasSubstringRange) {
  988. }
  989. @Override
  990. public void designator_or_func_ref() {
  991. }
  992. @Override
  993. public void substring_range_or_arg_list() {
  994. }
  995. @Override
  996. public void substr_range_or_arg_list_suffix() {
  997. }
  998. @Override
  999. public void logical_variable() {
  1000. }
  1001. @Override
  1002. public void default_logical_variable() {
  1003. }
  1004. @Override
  1005. public void scalar_default_logical_variable() {
  1006. }
  1007. @Override
  1008. public void char_variable() {
  1009. }
  1010. @Override
  1011. public void default_char_variable() {
  1012. }
  1013. @Override
  1014. public void scalar_default_char_variable() {
  1015. }
  1016. @Override
  1017. public void int_variable() {
  1018. }
  1019. @Override
  1020. public void substring(boolean hasSubstringRange) {
  1021. }
  1022. @Override
  1023. public void substring_range(boolean hasLowerBound, boolean hasUpperBound) {
  1024. }
  1025. @Override
  1026. public void data_ref(int numPartRef) {
  1027. }
  1028. @Override
  1029. public void part_ref(Token id, boolean hasSelectionSubscriptList, boolean hasImageSelector) {
  1030. }
  1031. @Override
  1032. public void section_subscript(boolean hasLowerBound, boolean hasUpperBound, boolean hasStride, boolean isAmbiguous) {
  1033. }
  1034. @Override
  1035. public void section_subscript_list__begin() {
  1036. }
  1037. @Override
  1038. public void section_subscript_list(int count) {
  1039. }
  1040. @Override
  1041. public void vector_subscript() {
  1042. }
  1043. @Override
  1044. public void allocate_stmt(Token label, Token allocateKeyword, Token eos, boolean hasTypeSpec, boolean hasAllocOptList) {
  1045. }
  1046. @Override
  1047. public void image_selector(int exprCount) {
  1048. }
  1049. @Override
  1050. public void alloc_opt(Token allocOpt) {
  1051. }
  1052. @Override
  1053. public void alloc_opt_list__begin() {
  1054. }
  1055. @Override
  1056. public void alloc_opt_list(int count) {
  1057. }
  1058. @Override
  1059. public void allocation(boolean hasAllocateShapeSpecList, boolean hasAllocateCoArraySpec) {
  1060. }
  1061. @Override
  1062. public void allocation_list__begin() {
  1063. }
  1064. @Override
  1065. public void allocation_list(int count) {
  1066. }
  1067. @Override
  1068. public void allocate_object() {
  1069. }
  1070. @Override
  1071. public void allocate_object_list__begin() {
  1072. }
  1073. @Override
  1074. public void allocate_object_list(int count) {
  1075. }
  1076. @Override
  1077. public void allocate_shape_spec(boolean hasLowerBound, boolean hasUpperBound) {
  1078. }
  1079. @Override
  1080. public void allocate_shape_spec_list__begin() {
  1081. }
  1082. @Override
  1083. public void allocate_shape_spec_list(int count) {
  1084. }
  1085. @Override
  1086. public void nullify_stmt(Token label, Token nullifyKeyword, Token eos) {
  1087. }
  1088. @Override
  1089. public void pointer_object() {
  1090. }
  1091. @Override
  1092. public void pointer_object_list__begin() {
  1093. }
  1094. @Override
  1095. public void pointer_object_list(int count) {
  1096. }
  1097. @Override
  1098. public void deallocate_stmt(Token label, Token deallocateKeyword, Token eos, boolean hasDeallocOptList) {
  1099. }
  1100. @Override
  1101. public void dealloc_opt(Token id) {
  1102. }
  1103. @Override
  1104. public void dealloc_opt_list__begin() {
  1105. }
  1106. @Override
  1107. public void dealloc_opt_list(int count) {
  1108. }
  1109. @Override
  1110. public void allocate_co_array_spec() {
  1111. }
  1112. @Override
  1113. public void allocate_co_shape_spec(boolean hasExpr) {
  1114. }
  1115. @Override
  1116. public void allocate_co_shape_spec_list__begin() {
  1117. }
  1118. @Override
  1119. public void allocate_co_shape_spec_list(int count) {
  1120. }
  1121. @Override
  1122. public void primary() {
  1123. }
  1124. @Override
  1125. public void level_1_expr(Token definedUnaryOp) {
  1126. }
  1127. @Override
  1128. public void defined_unary_op(Token definedOp) {
  1129. }
  1130. @Override
  1131. public void power_operand(boolean hasPowerOperand) {
  1132. }
  1133. @Override
  1134. public void power_operand__power_op(Token powerOp) {
  1135. }
  1136. @Override
  1137. public void mult_operand(int numMultOps) {
  1138. }
  1139. @Override
  1140. public void mult_operand__mult_op(Token multOp) {
  1141. }
  1142. @Override
  1143. public void add_operand(Token addOp, int numAddOps) {
  1144. }
  1145. @Override
  1146. public void add_operand__add_op(Token addOp) {
  1147. }
  1148. @Override
  1149. public void level_2_expr(int numConcatOps) {
  1150. }
  1151. @Override
  1152. public void power_op(Token powerKeyword) {
  1153. }
  1154. @Override
  1155. public void mult_op(Token multKeyword) {
  1156. }
  1157. @Override
  1158. public void add_op(Token addKeyword) {
  1159. }
  1160. @Override
  1161. public void level_3_expr(Token relOp) {
  1162. }
  1163. @Override
  1164. public void concat_op(Token concatKeyword) {
  1165. }
  1166. @Override
  1167. public void rel_op(Token relOp) {
  1168. }
  1169. @Override
  1170. public void and_operand(boolean hasNotOp, int numAndOps) {
  1171. }
  1172. @Override
  1173. public void and_operand__not_op(boolean hasNotOp) {
  1174. }
  1175. @Override
  1176. public void or_operand(int numOrOps) {
  1177. }
  1178. @Override
  1179. public void equiv_operand(int numEquivOps) {
  1180. }
  1181. @Override
  1182. public void equiv_operand__equiv_op(Token equivOp) {
  1183. }
  1184. @Override
  1185. public void level_5_expr(int numDefinedBinaryOps) {
  1186. }
  1187. @Override
  1188. public void level_5_expr__defined_binary_op(Token definedBinaryOp) {
  1189. }
  1190. @Override
  1191. public void not_op(Token notOp) {
  1192. }
  1193. @Override
  1194. public void and_op(Token andOp) {
  1195. }
  1196. @Override
  1197. public void or_op(Token orOp) {
  1198. }
  1199. @Override
  1200. public void equiv_op(Token equivOp) {
  1201. }
  1202. @Override
  1203. public void expr() {
  1204. }
  1205. @Override
  1206. public void defined_binary_op(Token binaryOp) {
  1207. }
  1208. @Override
  1209. public void assignment_stmt(Token label, Token eos) {
  1210. }
  1211. @Override
  1212. public void pointer_assignment_stmt(Token label, Token eos, boolean hasBoundsSpecList, boolean hasBRList) {
  1213. }
  1214. @Override
  1215. public void data_pointer_object() {
  1216. }
  1217. @Override
  1218. public void bounds_spec() {
  1219. }
  1220. @Override
  1221. public void bounds_spec_list__begin() {
  1222. }
  1223. @Override
  1224. public void bounds_spec_list(int count) {
  1225. }
  1226. @Override
  1227. public void bounds_remapping() {
  1228. }
  1229. @Override
  1230. public void bounds_remapping_list__begin() {
  1231. }
  1232. @Override
  1233. public void bounds_remapping_list(int count) {
  1234. }
  1235. @Override
  1236. public void proc_pointer_object() {
  1237. }
  1238. @Override
  1239. public void where_stmt__begin() {
  1240. }
  1241. @Override
  1242. public void where_stmt(Token label, Token whereKeyword) {
  1243. }
  1244. @Override
  1245. public void where_construct(int numConstructs, boolean hasMaskedElsewhere, boolean hasElsewhere) {
  1246. }
  1247. @Override
  1248. public void where_construct_stmt(Token id, Token whereKeyword, Token eos) {
  1249. }
  1250. @Override
  1251. public void where_body_construct() {
  1252. }
  1253. @Override
  1254. public void masked_elsewhere_stmt(Token label, Token elseKeyword, Token whereKeyword, Token id, Token eos) {
  1255. }
  1256. @Override
  1257. public void masked_elsewhere_stmt__end(int numBodyConstructs) {
  1258. }
  1259. @Override
  1260. public void elsewhere_stmt(Token label, Token elseKeyword, Token whereKeyword, Token id, Token eos) {
  1261. }
  1262. @Override
  1263. public void elsewhere_stmt__end(int numBodyConstructs) {
  1264. }
  1265. @Override
  1266. public void end_where_stmt(Token label, Token endKeyword, Token whereKeyword, Token id, Token eos) {
  1267. }
  1268. @Override
  1269. public void forall_construct() {
  1270. }
  1271. @Override
  1272. public void forall_construct_stmt(Token label, Token id, Token forallKeyword, Token eos) {
  1273. }
  1274. @Override
  1275. public void forall_header() {
  1276. }
  1277. @Override
  1278. public void forall_triplet_spec(Token id, bool