/src/main/java/io/proleap/cobol/asg/resolver/impl/NameResolverImpl.java

https://github.com/uwol/proleap-cobol-parser · Java · 489 lines · 415 code · 67 blank · 7 comment · 190 complexity · b1c09ca70d9fe7342f0c7a1785ad0b3a MD5 · raw file

  1. /*
  2. * Copyright (C) 2017, Ulrich Wolffgang <ulrich.wolffgang@proleap.io>
  3. * All rights reserved.
  4. *
  5. * This software may be modified and distributed under the terms
  6. * of the MIT license. See the LICENSE file for details.
  7. */
  8. package io.proleap.cobol.asg.resolver.impl;
  9. import org.antlr.v4.runtime.tree.ParseTree;
  10. import io.proleap.cobol.CobolParser.AlphabetNameContext;
  11. import io.proleap.cobol.CobolParser.AssignmentNameContext;
  12. import io.proleap.cobol.CobolParser.CdNameContext;
  13. import io.proleap.cobol.CobolParser.ClassNameContext;
  14. import io.proleap.cobol.CobolParser.CobolWordContext;
  15. import io.proleap.cobol.CobolParser.ComputerNameContext;
  16. import io.proleap.cobol.CobolParser.ConditionNameContext;
  17. import io.proleap.cobol.CobolParser.DataDescNameContext;
  18. import io.proleap.cobol.CobolParser.DataDescriptionEntryFormat1Context;
  19. import io.proleap.cobol.CobolParser.DataDescriptionEntryFormat2Context;
  20. import io.proleap.cobol.CobolParser.DataDescriptionEntryFormat3Context;
  21. import io.proleap.cobol.CobolParser.DataNameContext;
  22. import io.proleap.cobol.CobolParser.FileControlEntryContext;
  23. import io.proleap.cobol.CobolParser.FileDescriptionEntryContext;
  24. import io.proleap.cobol.CobolParser.FileNameContext;
  25. import io.proleap.cobol.CobolParser.FunctionCallContext;
  26. import io.proleap.cobol.CobolParser.FunctionNameContext;
  27. import io.proleap.cobol.CobolParser.IdentifierContext;
  28. import io.proleap.cobol.CobolParser.InDataContext;
  29. import io.proleap.cobol.CobolParser.InSectionContext;
  30. import io.proleap.cobol.CobolParser.InTableContext;
  31. import io.proleap.cobol.CobolParser.IndexNameContext;
  32. import io.proleap.cobol.CobolParser.LibraryNameContext;
  33. import io.proleap.cobol.CobolParser.LocalNameContext;
  34. import io.proleap.cobol.CobolParser.ObjectComputerParagraphContext;
  35. import io.proleap.cobol.CobolParser.ParagraphContext;
  36. import io.proleap.cobol.CobolParser.ParagraphNameContext;
  37. import io.proleap.cobol.CobolParser.ProcedureNameContext;
  38. import io.proleap.cobol.CobolParser.ProcedureSectionContext;
  39. import io.proleap.cobol.CobolParser.ProcedureSectionHeaderContext;
  40. import io.proleap.cobol.CobolParser.ProgramIdParagraphContext;
  41. import io.proleap.cobol.CobolParser.ProgramNameContext;
  42. import io.proleap.cobol.CobolParser.QualifiedDataNameContext;
  43. import io.proleap.cobol.CobolParser.QualifiedDataNameFormat1Context;
  44. import io.proleap.cobol.CobolParser.QualifiedDataNameFormat2Context;
  45. import io.proleap.cobol.CobolParser.QualifiedDataNameFormat3Context;
  46. import io.proleap.cobol.CobolParser.QualifiedInDataContext;
  47. import io.proleap.cobol.CobolParser.RecordNameContext;
  48. import io.proleap.cobol.CobolParser.ReportDescriptionContext;
  49. import io.proleap.cobol.CobolParser.ReportDescriptionEntryContext;
  50. import io.proleap.cobol.CobolParser.ReportGroupDescriptionEntryFormat1Context;
  51. import io.proleap.cobol.CobolParser.ReportGroupDescriptionEntryFormat2Context;
  52. import io.proleap.cobol.CobolParser.ReportGroupDescriptionEntryFormat3Context;
  53. import io.proleap.cobol.CobolParser.ReportNameContext;
  54. import io.proleap.cobol.CobolParser.ScreenDescriptionEntryContext;
  55. import io.proleap.cobol.CobolParser.ScreenNameContext;
  56. import io.proleap.cobol.CobolParser.SectionNameContext;
  57. import io.proleap.cobol.CobolParser.SelectClauseContext;
  58. import io.proleap.cobol.CobolParser.SourceComputerParagraphContext;
  59. import io.proleap.cobol.CobolParser.SpecialRegisterContext;
  60. import io.proleap.cobol.CobolParser.SystemNameContext;
  61. import io.proleap.cobol.CobolParser.TableCallContext;
  62. import io.proleap.cobol.asg.resolver.NameResolver;
  63. public class NameResolverImpl implements NameResolver {
  64. public String determineName(final AlphabetNameContext ctx) {
  65. final String result = ctx != null ? ctx.getText() : null;
  66. return result;
  67. }
  68. public String determineName(final AssignmentNameContext ctx) {
  69. final String result = ctx != null ? ctx.getText() : null;
  70. return result;
  71. }
  72. public String determineName(final CdNameContext ctx) {
  73. final String result = ctx != null ? ctx.getText() : null;
  74. return result;
  75. }
  76. public String determineName(final ClassNameContext ctx) {
  77. final String result = ctx != null ? ctx.getText() : null;
  78. return result;
  79. }
  80. public String determineName(final CobolWordContext ctx) {
  81. final String result = ctx != null ? ctx.getText() : null;
  82. return result;
  83. }
  84. public String determineName(final ComputerNameContext ctx) {
  85. final String result = ctx != null ? ctx.getText() : null;
  86. return result;
  87. }
  88. public String determineName(final ConditionNameContext ctx) {
  89. final String result = ctx != null ? ctx.getText() : null;
  90. return result;
  91. }
  92. public String determineName(final DataDescNameContext ctx) {
  93. final String result = ctx != null ? ctx.getText() : null;
  94. return result;
  95. }
  96. public String determineName(final DataDescriptionEntryFormat1Context ctx) {
  97. final String result = ctx != null ? determineName(ctx.dataName()) : null;
  98. return result;
  99. }
  100. public String determineName(final DataDescriptionEntryFormat2Context ctx) {
  101. final String result = ctx != null ? determineName(ctx.dataName()) : null;
  102. return result;
  103. }
  104. public String determineName(final DataDescriptionEntryFormat3Context ctx) {
  105. final String result = ctx != null ? determineName(ctx.conditionName()) : null;
  106. return result;
  107. }
  108. public String determineName(final DataNameContext ctx) {
  109. final String result = ctx != null ? ctx.getText() : null;
  110. return result;
  111. }
  112. public String determineName(final FileControlEntryContext ctx) {
  113. final String result = ctx != null ? determineName(ctx.selectClause()) : null;
  114. return result;
  115. }
  116. public String determineName(final FileDescriptionEntryContext ctx) {
  117. final String result = ctx != null ? determineName(ctx.fileName()) : null;
  118. return result;
  119. }
  120. public String determineName(final FileNameContext ctx) {
  121. final String result = ctx != null ? ctx.getText() : null;
  122. return result;
  123. }
  124. public String determineName(final FunctionCallContext ctx) {
  125. final String result = ctx != null ? determineName(ctx.functionName()) : null;
  126. return result;
  127. }
  128. public String determineName(final FunctionNameContext ctx) {
  129. final String result = ctx != null ? ctx.getText() : null;
  130. return result;
  131. }
  132. public String determineName(final IdentifierContext ctx) {
  133. final String result;
  134. if (ctx == null) {
  135. result = null;
  136. } else if (ctx.qualifiedDataName() != null) {
  137. result = determineName(ctx.qualifiedDataName());
  138. } else {
  139. result = ctx.getText();
  140. }
  141. return result;
  142. }
  143. public String determineName(final InDataContext ctx) {
  144. final String result = ctx != null ? determineName(ctx.dataName()) : null;
  145. return result;
  146. }
  147. public String determineName(final IndexNameContext ctx) {
  148. final String result = ctx != null ? ctx.getText() : null;
  149. return result;
  150. }
  151. public String determineName(final InSectionContext ctx) {
  152. final String result = ctx != null ? determineName(ctx.sectionName()) : null;
  153. return result;
  154. }
  155. public String determineName(final InTableContext ctx) {
  156. final String result = ctx != null ? determineName(ctx.tableCall()) : null;
  157. return result;
  158. }
  159. public String determineName(final LibraryNameContext ctx) {
  160. final String result = ctx != null ? ctx.getText() : null;
  161. return result;
  162. }
  163. public String determineName(final LocalNameContext ctx) {
  164. final String result = ctx != null ? ctx.getText() : null;
  165. return result;
  166. }
  167. public String determineName(final ObjectComputerParagraphContext ctx) {
  168. final String result = ctx != null ? determineName(ctx.computerName()) : null;
  169. return result;
  170. }
  171. public String determineName(final ParagraphContext ctx) {
  172. final String result = ctx != null ? determineName(ctx.paragraphName()) : null;
  173. return result;
  174. }
  175. public String determineName(final ParagraphNameContext ctx) {
  176. final String result = ctx != null ? ctx.getText() : null;
  177. return result;
  178. }
  179. @Override
  180. public String determineName(final ParseTree ctx) {
  181. final String result;
  182. if (ctx instanceof AlphabetNameContext) {
  183. result = determineName((AlphabetNameContext) ctx);
  184. } else if (ctx instanceof AssignmentNameContext) {
  185. result = determineName((AssignmentNameContext) ctx);
  186. } else if (ctx instanceof CdNameContext) {
  187. result = determineName((CdNameContext) ctx);
  188. } else if (ctx instanceof ClassNameContext) {
  189. result = determineName((ClassNameContext) ctx);
  190. } else if (ctx instanceof CobolWordContext) {
  191. result = determineName((CobolWordContext) ctx);
  192. } else if (ctx instanceof ComputerNameContext) {
  193. result = determineName((ComputerNameContext) ctx);
  194. } else if (ctx instanceof ConditionNameContext) {
  195. result = determineName((ConditionNameContext) ctx);
  196. } else if (ctx instanceof DataDescriptionEntryFormat1Context) {
  197. result = determineName((DataDescriptionEntryFormat1Context) ctx);
  198. } else if (ctx instanceof DataDescriptionEntryFormat2Context) {
  199. result = determineName((DataDescriptionEntryFormat2Context) ctx);
  200. } else if (ctx instanceof DataDescriptionEntryFormat3Context) {
  201. result = determineName((DataDescriptionEntryFormat3Context) ctx);
  202. } else if (ctx instanceof DataDescNameContext) {
  203. result = determineName((DataDescNameContext) ctx);
  204. } else if (ctx instanceof DataNameContext) {
  205. result = determineName((DataNameContext) ctx);
  206. } else if (ctx instanceof FileControlEntryContext) {
  207. result = determineName((FileControlEntryContext) ctx);
  208. } else if (ctx instanceof FileDescriptionEntryContext) {
  209. result = determineName((FileDescriptionEntryContext) ctx);
  210. } else if (ctx instanceof FileNameContext) {
  211. result = determineName((FileNameContext) ctx);
  212. } else if (ctx instanceof FunctionCallContext) {
  213. result = determineName((FunctionCallContext) ctx);
  214. } else if (ctx instanceof FunctionNameContext) {
  215. result = determineName((FunctionNameContext) ctx);
  216. } else if (ctx instanceof IdentifierContext) {
  217. result = determineName((IdentifierContext) ctx);
  218. } else if (ctx instanceof IndexNameContext) {
  219. result = determineName((IndexNameContext) ctx);
  220. } else if (ctx instanceof InDataContext) {
  221. result = determineName((InDataContext) ctx);
  222. } else if (ctx instanceof InSectionContext) {
  223. result = determineName((InSectionContext) ctx);
  224. } else if (ctx instanceof InTableContext) {
  225. result = determineName((InTableContext) ctx);
  226. } else if (ctx instanceof LibraryNameContext) {
  227. result = determineName((LibraryNameContext) ctx);
  228. } else if (ctx instanceof LocalNameContext) {
  229. result = determineName((LocalNameContext) ctx);
  230. } else if (ctx instanceof ObjectComputerParagraphContext) {
  231. result = determineName((ObjectComputerParagraphContext) ctx);
  232. } else if (ctx instanceof ParagraphContext) {
  233. result = determineName((ParagraphContext) ctx);
  234. } else if (ctx instanceof ParagraphNameContext) {
  235. result = determineName((ParagraphNameContext) ctx);
  236. } else if (ctx instanceof ProcedureNameContext) {
  237. result = determineName((ProcedureNameContext) ctx);
  238. } else if (ctx instanceof ProcedureSectionContext) {
  239. result = determineName((ProcedureSectionContext) ctx);
  240. } else if (ctx instanceof ProcedureSectionHeaderContext) {
  241. result = determineName((ProcedureSectionHeaderContext) ctx);
  242. } else if (ctx instanceof ProgramIdParagraphContext) {
  243. result = determineName((ProgramIdParagraphContext) ctx);
  244. } else if (ctx instanceof ProgramNameContext) {
  245. result = determineName((ProgramNameContext) ctx);
  246. } else if (ctx instanceof QualifiedDataNameContext) {
  247. result = determineName((QualifiedDataNameContext) ctx);
  248. } else if (ctx instanceof QualifiedDataNameFormat1Context) {
  249. result = determineName((QualifiedDataNameFormat1Context) ctx);
  250. } else if (ctx instanceof QualifiedDataNameFormat2Context) {
  251. result = determineName((QualifiedDataNameFormat2Context) ctx);
  252. } else if (ctx instanceof QualifiedDataNameFormat3Context) {
  253. result = determineName((QualifiedDataNameFormat3Context) ctx);
  254. } else if (ctx instanceof QualifiedInDataContext) {
  255. result = determineName((QualifiedInDataContext) ctx);
  256. } else if (ctx instanceof RecordNameContext) {
  257. result = determineName((RecordNameContext) ctx);
  258. } else if (ctx instanceof ReportDescriptionContext) {
  259. result = determineName((ReportDescriptionContext) ctx);
  260. } else if (ctx instanceof ReportDescriptionEntryContext) {
  261. result = determineName((ReportDescriptionEntryContext) ctx);
  262. } else if (ctx instanceof ReportGroupDescriptionEntryFormat1Context) {
  263. result = determineName((ReportGroupDescriptionEntryFormat1Context) ctx);
  264. } else if (ctx instanceof ReportGroupDescriptionEntryFormat2Context) {
  265. result = determineName((ReportGroupDescriptionEntryFormat2Context) ctx);
  266. } else if (ctx instanceof ReportGroupDescriptionEntryFormat3Context) {
  267. result = determineName((ReportGroupDescriptionEntryFormat3Context) ctx);
  268. } else if (ctx instanceof ReportNameContext) {
  269. result = determineName((ReportNameContext) ctx);
  270. } else if (ctx instanceof SectionNameContext) {
  271. result = determineName((SectionNameContext) ctx);
  272. } else if (ctx instanceof SelectClauseContext) {
  273. result = determineName((SelectClauseContext) ctx);
  274. } else if (ctx instanceof ScreenNameContext) {
  275. result = determineName((ScreenNameContext) ctx);
  276. } else if (ctx instanceof ScreenDescriptionEntryContext) {
  277. result = determineName((ScreenDescriptionEntryContext) ctx);
  278. } else if (ctx instanceof SourceComputerParagraphContext) {
  279. result = determineName((SourceComputerParagraphContext) ctx);
  280. } else if (ctx instanceof SpecialRegisterContext) {
  281. result = determineName((SpecialRegisterContext) ctx);
  282. } else if (ctx instanceof SystemNameContext) {
  283. result = determineName((SystemNameContext) ctx);
  284. } else if (ctx instanceof TableCallContext) {
  285. result = determineName((TableCallContext) ctx);
  286. } else {
  287. result = null;
  288. }
  289. return result;
  290. }
  291. public String determineName(final ProcedureNameContext ctx) {
  292. final String result = ctx != null ? determineName(ctx.paragraphName()) : null;
  293. return result;
  294. }
  295. public String determineName(final ProcedureSectionContext ctx) {
  296. final String result = ctx != null ? determineName(ctx.procedureSectionHeader()) : null;
  297. return result;
  298. }
  299. public String determineName(final ProcedureSectionHeaderContext ctx) {
  300. final String result = ctx != null ? determineName(ctx.sectionName()) : null;
  301. return result;
  302. }
  303. public String determineName(final ProgramIdParagraphContext ctx) {
  304. final String result = determineName(ctx.programName());
  305. return result;
  306. }
  307. public String determineName(final ProgramNameContext ctx) {
  308. final String result = ctx != null ? ctx.getText() : null;
  309. return result;
  310. }
  311. public String determineName(final QualifiedDataNameContext ctx) {
  312. final String result;
  313. if (ctx == null) {
  314. result = null;
  315. } else if (ctx.qualifiedDataNameFormat1() != null) {
  316. result = determineName(ctx.qualifiedDataNameFormat1());
  317. } else if (ctx.qualifiedDataNameFormat2() != null) {
  318. result = determineName(ctx.qualifiedDataNameFormat2());
  319. } else if (ctx.qualifiedDataNameFormat3() != null) {
  320. result = determineName(ctx.qualifiedDataNameFormat3());
  321. } else if (ctx.qualifiedDataNameFormat4() != null) {
  322. result = determineName(ctx.qualifiedDataNameFormat4());
  323. } else {
  324. result = null;
  325. }
  326. return result;
  327. }
  328. public String determineName(final QualifiedDataNameFormat1Context ctx) {
  329. final String result;
  330. if (ctx == null) {
  331. result = null;
  332. } else if (ctx.dataName() != null) {
  333. result = determineName(ctx.dataName());
  334. } else if (ctx.conditionName() != null) {
  335. result = determineName(ctx.conditionName());
  336. } else {
  337. result = null;
  338. }
  339. return result;
  340. }
  341. public String determineName(final QualifiedDataNameFormat2Context ctx) {
  342. final String result = ctx != null ? determineName(ctx.paragraphName()) : null;
  343. return result;
  344. }
  345. public String determineName(final QualifiedDataNameFormat3Context ctx) {
  346. final String result = ctx != null ? determineName(ctx.textName()) : null;
  347. return result;
  348. }
  349. public String determineName(final QualifiedInDataContext ctx) {
  350. final String result;
  351. if (ctx == null) {
  352. result = null;
  353. } else if (ctx.inData() != null) {
  354. result = determineName(ctx.inData());
  355. } else if (ctx.inTable() != null) {
  356. result = determineName(ctx.inTable());
  357. } else {
  358. result = null;
  359. }
  360. return result;
  361. }
  362. public String determineName(final RecordNameContext ctx) {
  363. final String result = ctx != null ? determineName(ctx.qualifiedDataName()) : null;
  364. return result;
  365. }
  366. public String determineName(final ReportDescriptionContext ctx) {
  367. final String result = ctx != null ? determineName(ctx.reportDescriptionEntry()) : null;
  368. return result;
  369. }
  370. public String determineName(final ReportDescriptionEntryContext ctx) {
  371. final String result = ctx != null ? determineName(ctx.reportName()) : null;
  372. return result;
  373. }
  374. public String determineName(final ReportGroupDescriptionEntryFormat1Context ctx) {
  375. final String result = ctx != null ? determineName(ctx.dataName()) : null;
  376. return result;
  377. }
  378. public String determineName(final ReportGroupDescriptionEntryFormat2Context ctx) {
  379. final String result = ctx != null ? determineName(ctx.dataName()) : null;
  380. return result;
  381. }
  382. public String determineName(final ReportGroupDescriptionEntryFormat3Context ctx) {
  383. final String result = ctx != null ? determineName(ctx.dataName()) : null;
  384. return result;
  385. }
  386. public String determineName(final ReportNameContext ctx) {
  387. final String result = ctx != null ? ctx.getText() : null;
  388. return result;
  389. }
  390. public String determineName(final ScreenDescriptionEntryContext ctx) {
  391. final String result = ctx != null ? determineName(ctx.screenName()) : null;
  392. return result;
  393. }
  394. public String determineName(final ScreenNameContext ctx) {
  395. final String result = ctx != null ? ctx.getText() : null;
  396. return result;
  397. }
  398. public String determineName(final SectionNameContext ctx) {
  399. final String result = ctx != null ? ctx.getText() : null;
  400. return result;
  401. }
  402. public String determineName(final SelectClauseContext ctx) {
  403. final String result = ctx != null ? determineName(ctx.fileName()) : null;
  404. return result;
  405. }
  406. public String determineName(final SourceComputerParagraphContext ctx) {
  407. final String result = ctx != null ? determineName(ctx.computerName()) : null;
  408. return result;
  409. }
  410. public String determineName(final SpecialRegisterContext ctx) {
  411. final String result = ctx != null ? ctx.getText() : null;
  412. return result;
  413. }
  414. public String determineName(final SystemNameContext ctx) {
  415. final String result = ctx != null ? ctx.getText() : null;
  416. return result;
  417. }
  418. public String determineName(final TableCallContext ctx) {
  419. final String result = ctx != null ? ctx.qualifiedDataName().getText() : null;
  420. return result;
  421. }
  422. }