apiparser_parser3.go 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695
  1. package api
  2. import (
  3. "reflect"
  4. "github.com/zeromicro/antlr"
  5. )
  6. // Part 3
  7. // The apiparser_parser.go file was split into multiple files because it
  8. // was too large and caused a possible memory overflow during goctlwt installation.
  9. // ITypeBlockBodyContext is an interface to support dynamic dispatch.
  10. type ITypeBlockBodyContext interface {
  11. antlr.ParserRuleContext
  12. // GetParser returns the parser.
  13. GetParser() antlr.Parser
  14. // IsTypeBlockBodyContext differentiates from other interfaces.
  15. IsTypeBlockBodyContext()
  16. }
  17. type TypeBlockBodyContext struct {
  18. *antlr.BaseParserRuleContext
  19. parser antlr.Parser
  20. }
  21. func NewEmptyTypeBlockBodyContext() *TypeBlockBodyContext {
  22. var p = new(TypeBlockBodyContext)
  23. p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
  24. p.RuleIndex = ApiParserParserRULE_typeBlockBody
  25. return p
  26. }
  27. func (*TypeBlockBodyContext) IsTypeBlockBodyContext() {}
  28. func NewTypeBlockBodyContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *TypeBlockBodyContext {
  29. var p = new(TypeBlockBodyContext)
  30. p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
  31. p.parser = parser
  32. p.RuleIndex = ApiParserParserRULE_typeBlockBody
  33. return p
  34. }
  35. func (s *TypeBlockBodyContext) GetParser() antlr.Parser { return s.parser }
  36. func (s *TypeBlockBodyContext) TypeBlockStruct() ITypeBlockStructContext {
  37. var t = s.GetTypedRuleContext(reflect.TypeOf((*ITypeBlockStructContext)(nil)).Elem(), 0)
  38. if t == nil {
  39. return nil
  40. }
  41. return t.(ITypeBlockStructContext)
  42. }
  43. func (s *TypeBlockBodyContext) TypeBlockAlias() ITypeBlockAliasContext {
  44. var t = s.GetTypedRuleContext(reflect.TypeOf((*ITypeBlockAliasContext)(nil)).Elem(), 0)
  45. if t == nil {
  46. return nil
  47. }
  48. return t.(ITypeBlockAliasContext)
  49. }
  50. func (s *TypeBlockBodyContext) GetRuleContext() antlr.RuleContext {
  51. return s
  52. }
  53. func (s *TypeBlockBodyContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
  54. return antlr.TreesStringTree(s, ruleNames, recog)
  55. }
  56. func (s *TypeBlockBodyContext) Accept(visitor antlr.ParseTreeVisitor) any {
  57. switch t := visitor.(type) {
  58. case ApiParserVisitor:
  59. return t.VisitTypeBlockBody(s)
  60. default:
  61. return t.VisitChildren(s)
  62. }
  63. }
  64. func (p *ApiParserParser) TypeBlockBody() (localctx ITypeBlockBodyContext) {
  65. localctx = NewTypeBlockBodyContext(p, p.GetParserRuleContext(), p.GetState())
  66. p.EnterRule(localctx, 26, ApiParserParserRULE_typeBlockBody)
  67. defer func() {
  68. p.ExitRule()
  69. }()
  70. defer func() {
  71. if err := recover(); err != nil {
  72. if v, ok := err.(antlr.RecognitionException); ok {
  73. localctx.SetException(v)
  74. p.GetErrorHandler().ReportError(p, v)
  75. p.GetErrorHandler().Recover(p, v)
  76. } else {
  77. panic(err)
  78. }
  79. }
  80. }()
  81. p.SetState(153)
  82. p.GetErrorHandler().Sync(p)
  83. switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 8, p.GetParserRuleContext()) {
  84. case 1:
  85. p.EnterOuterAlt(localctx, 1)
  86. {
  87. p.SetState(151)
  88. p.TypeBlockStruct()
  89. }
  90. case 2:
  91. p.EnterOuterAlt(localctx, 2)
  92. {
  93. p.SetState(152)
  94. p.TypeBlockAlias()
  95. }
  96. }
  97. return localctx
  98. }
  99. // ITypeStructContext is an interface to support dynamic dispatch.
  100. type ITypeStructContext interface {
  101. antlr.ParserRuleContext
  102. // GetParser returns the parser.
  103. GetParser() antlr.Parser
  104. // GetStructName returns the structName token.
  105. GetStructName() antlr.Token
  106. // GetStructToken returns the structToken token.
  107. GetStructToken() antlr.Token
  108. // GetLbrace returns the lbrace token.
  109. GetLbrace() antlr.Token
  110. // GetRbrace returns the rbrace token.
  111. GetRbrace() antlr.Token
  112. // SetStructName sets the structName token.
  113. SetStructName(antlr.Token)
  114. // SetStructToken sets the structToken token.
  115. SetStructToken(antlr.Token)
  116. // SetLbrace sets the lbrace token.
  117. SetLbrace(antlr.Token)
  118. // SetRbrace sets the rbrace token.
  119. SetRbrace(antlr.Token)
  120. // IsTypeStructContext differentiates from other interfaces.
  121. IsTypeStructContext()
  122. }
  123. type TypeStructContext struct {
  124. *antlr.BaseParserRuleContext
  125. parser antlr.Parser
  126. structName antlr.Token
  127. structToken antlr.Token
  128. lbrace antlr.Token
  129. rbrace antlr.Token
  130. }
  131. func NewEmptyTypeStructContext() *TypeStructContext {
  132. var p = new(TypeStructContext)
  133. p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
  134. p.RuleIndex = ApiParserParserRULE_typeStruct
  135. return p
  136. }
  137. func (*TypeStructContext) IsTypeStructContext() {}
  138. func NewTypeStructContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *TypeStructContext {
  139. var p = new(TypeStructContext)
  140. p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
  141. p.parser = parser
  142. p.RuleIndex = ApiParserParserRULE_typeStruct
  143. return p
  144. }
  145. func (s *TypeStructContext) GetParser() antlr.Parser { return s.parser }
  146. func (s *TypeStructContext) GetStructName() antlr.Token { return s.structName }
  147. func (s *TypeStructContext) GetStructToken() antlr.Token { return s.structToken }
  148. func (s *TypeStructContext) GetLbrace() antlr.Token { return s.lbrace }
  149. func (s *TypeStructContext) GetRbrace() antlr.Token { return s.rbrace }
  150. func (s *TypeStructContext) SetStructName(v antlr.Token) { s.structName = v }
  151. func (s *TypeStructContext) SetStructToken(v antlr.Token) { s.structToken = v }
  152. func (s *TypeStructContext) SetLbrace(v antlr.Token) { s.lbrace = v }
  153. func (s *TypeStructContext) SetRbrace(v antlr.Token) { s.rbrace = v }
  154. func (s *TypeStructContext) AllID() []antlr.TerminalNode {
  155. return s.GetTokens(ApiParserParserID)
  156. }
  157. func (s *TypeStructContext) ID(i int) antlr.TerminalNode {
  158. return s.GetToken(ApiParserParserID, i)
  159. }
  160. func (s *TypeStructContext) AllField() []IFieldContext {
  161. var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IFieldContext)(nil)).Elem())
  162. var tst = make([]IFieldContext, len(ts))
  163. for i, t := range ts {
  164. if t != nil {
  165. tst[i] = t.(IFieldContext)
  166. }
  167. }
  168. return tst
  169. }
  170. func (s *TypeStructContext) Field(i int) IFieldContext {
  171. var t = s.GetTypedRuleContext(reflect.TypeOf((*IFieldContext)(nil)).Elem(), i)
  172. if t == nil {
  173. return nil
  174. }
  175. return t.(IFieldContext)
  176. }
  177. func (s *TypeStructContext) GetRuleContext() antlr.RuleContext {
  178. return s
  179. }
  180. func (s *TypeStructContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
  181. return antlr.TreesStringTree(s, ruleNames, recog)
  182. }
  183. func (s *TypeStructContext) Accept(visitor antlr.ParseTreeVisitor) any {
  184. switch t := visitor.(type) {
  185. case ApiParserVisitor:
  186. return t.VisitTypeStruct(s)
  187. default:
  188. return t.VisitChildren(s)
  189. }
  190. }
  191. func (p *ApiParserParser) TypeStruct() (localctx ITypeStructContext) {
  192. localctx = NewTypeStructContext(p, p.GetParserRuleContext(), p.GetState())
  193. p.EnterRule(localctx, 28, ApiParserParserRULE_typeStruct)
  194. var _la int
  195. defer func() {
  196. p.ExitRule()
  197. }()
  198. defer func() {
  199. if err := recover(); err != nil {
  200. if v, ok := err.(antlr.RecognitionException); ok {
  201. localctx.SetException(v)
  202. p.GetErrorHandler().ReportError(p, v)
  203. p.GetErrorHandler().Recover(p, v)
  204. } else {
  205. panic(err)
  206. }
  207. }
  208. }()
  209. var _alt int
  210. p.EnterOuterAlt(localctx, 1)
  211. checkKeyword(p)
  212. {
  213. p.SetState(156)
  214. var _m = p.Match(ApiParserParserID)
  215. localctx.(*TypeStructContext).structName = _m
  216. }
  217. p.SetState(158)
  218. p.GetErrorHandler().Sync(p)
  219. _la = p.GetTokenStream().LA(1)
  220. if _la == ApiParserParserID {
  221. {
  222. p.SetState(157)
  223. var _m = p.Match(ApiParserParserID)
  224. localctx.(*TypeStructContext).structToken = _m
  225. }
  226. }
  227. {
  228. p.SetState(160)
  229. var _m = p.Match(ApiParserParserT__3)
  230. localctx.(*TypeStructContext).lbrace = _m
  231. }
  232. p.SetState(164)
  233. p.GetErrorHandler().Sync(p)
  234. _alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 10, p.GetParserRuleContext())
  235. for _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
  236. if _alt == 1 {
  237. {
  238. p.SetState(161)
  239. p.Field()
  240. }
  241. }
  242. p.SetState(166)
  243. p.GetErrorHandler().Sync(p)
  244. _alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 10, p.GetParserRuleContext())
  245. }
  246. {
  247. p.SetState(167)
  248. var _m = p.Match(ApiParserParserT__4)
  249. localctx.(*TypeStructContext).rbrace = _m
  250. }
  251. return localctx
  252. }
  253. // ITypeAliasContext is an interface to support dynamic dispatch.
  254. type ITypeAliasContext interface {
  255. antlr.ParserRuleContext
  256. // GetParser returns the parser.
  257. GetParser() antlr.Parser
  258. // GetAlias returns the alias token.
  259. GetAlias() antlr.Token
  260. // GetAssign returns the assign token.
  261. GetAssign() antlr.Token
  262. // SetAlias sets the alias token.
  263. SetAlias(antlr.Token)
  264. // SetAssign sets the assign token.
  265. SetAssign(antlr.Token)
  266. // IsTypeAliasContext differentiates from other interfaces.
  267. IsTypeAliasContext()
  268. }
  269. type TypeAliasContext struct {
  270. *antlr.BaseParserRuleContext
  271. parser antlr.Parser
  272. alias antlr.Token
  273. assign antlr.Token
  274. }
  275. func NewEmptyTypeAliasContext() *TypeAliasContext {
  276. var p = new(TypeAliasContext)
  277. p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
  278. p.RuleIndex = ApiParserParserRULE_typeAlias
  279. return p
  280. }
  281. func (*TypeAliasContext) IsTypeAliasContext() {}
  282. func NewTypeAliasContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *TypeAliasContext {
  283. var p = new(TypeAliasContext)
  284. p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
  285. p.parser = parser
  286. p.RuleIndex = ApiParserParserRULE_typeAlias
  287. return p
  288. }
  289. func (s *TypeAliasContext) GetParser() antlr.Parser { return s.parser }
  290. func (s *TypeAliasContext) GetAlias() antlr.Token { return s.alias }
  291. func (s *TypeAliasContext) GetAssign() antlr.Token { return s.assign }
  292. func (s *TypeAliasContext) SetAlias(v antlr.Token) { s.alias = v }
  293. func (s *TypeAliasContext) SetAssign(v antlr.Token) { s.assign = v }
  294. func (s *TypeAliasContext) DataType() IDataTypeContext {
  295. var t = s.GetTypedRuleContext(reflect.TypeOf((*IDataTypeContext)(nil)).Elem(), 0)
  296. if t == nil {
  297. return nil
  298. }
  299. return t.(IDataTypeContext)
  300. }
  301. func (s *TypeAliasContext) ID() antlr.TerminalNode {
  302. return s.GetToken(ApiParserParserID, 0)
  303. }
  304. func (s *TypeAliasContext) GetRuleContext() antlr.RuleContext {
  305. return s
  306. }
  307. func (s *TypeAliasContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
  308. return antlr.TreesStringTree(s, ruleNames, recog)
  309. }
  310. func (s *TypeAliasContext) Accept(visitor antlr.ParseTreeVisitor) any {
  311. switch t := visitor.(type) {
  312. case ApiParserVisitor:
  313. return t.VisitTypeAlias(s)
  314. default:
  315. return t.VisitChildren(s)
  316. }
  317. }
  318. func (p *ApiParserParser) TypeAlias() (localctx ITypeAliasContext) {
  319. localctx = NewTypeAliasContext(p, p.GetParserRuleContext(), p.GetState())
  320. p.EnterRule(localctx, 30, ApiParserParserRULE_typeAlias)
  321. var _la int
  322. defer func() {
  323. p.ExitRule()
  324. }()
  325. defer func() {
  326. if err := recover(); err != nil {
  327. if v, ok := err.(antlr.RecognitionException); ok {
  328. localctx.SetException(v)
  329. p.GetErrorHandler().ReportError(p, v)
  330. p.GetErrorHandler().Recover(p, v)
  331. } else {
  332. panic(err)
  333. }
  334. }
  335. }()
  336. p.EnterOuterAlt(localctx, 1)
  337. checkKeyword(p)
  338. {
  339. p.SetState(170)
  340. var _m = p.Match(ApiParserParserID)
  341. localctx.(*TypeAliasContext).alias = _m
  342. }
  343. p.SetState(172)
  344. p.GetErrorHandler().Sync(p)
  345. _la = p.GetTokenStream().LA(1)
  346. if _la == ApiParserParserT__0 {
  347. {
  348. p.SetState(171)
  349. var _m = p.Match(ApiParserParserT__0)
  350. localctx.(*TypeAliasContext).assign = _m
  351. }
  352. }
  353. {
  354. p.SetState(174)
  355. p.DataType()
  356. }
  357. return localctx
  358. }
  359. // ITypeBlockStructContext is an interface to support dynamic dispatch.
  360. type ITypeBlockStructContext interface {
  361. antlr.ParserRuleContext
  362. // GetParser returns the parser.
  363. GetParser() antlr.Parser
  364. // GetStructName returns the structName token.
  365. GetStructName() antlr.Token
  366. // GetStructToken returns the structToken token.
  367. GetStructToken() antlr.Token
  368. // GetLbrace returns the lbrace token.
  369. GetLbrace() antlr.Token
  370. // GetRbrace returns the rbrace token.
  371. GetRbrace() antlr.Token
  372. // SetStructName sets the structName token.
  373. SetStructName(antlr.Token)
  374. // SetStructToken sets the structToken token.
  375. SetStructToken(antlr.Token)
  376. // SetLbrace sets the lbrace token.
  377. SetLbrace(antlr.Token)
  378. // SetRbrace sets the rbrace token.
  379. SetRbrace(antlr.Token)
  380. // IsTypeBlockStructContext differentiates from other interfaces.
  381. IsTypeBlockStructContext()
  382. }
  383. type TypeBlockStructContext struct {
  384. *antlr.BaseParserRuleContext
  385. parser antlr.Parser
  386. structName antlr.Token
  387. structToken antlr.Token
  388. lbrace antlr.Token
  389. rbrace antlr.Token
  390. }
  391. func NewEmptyTypeBlockStructContext() *TypeBlockStructContext {
  392. var p = new(TypeBlockStructContext)
  393. p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
  394. p.RuleIndex = ApiParserParserRULE_typeBlockStruct
  395. return p
  396. }
  397. func (*TypeBlockStructContext) IsTypeBlockStructContext() {}
  398. func NewTypeBlockStructContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *TypeBlockStructContext {
  399. var p = new(TypeBlockStructContext)
  400. p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
  401. p.parser = parser
  402. p.RuleIndex = ApiParserParserRULE_typeBlockStruct
  403. return p
  404. }
  405. func (s *TypeBlockStructContext) GetParser() antlr.Parser { return s.parser }
  406. func (s *TypeBlockStructContext) GetStructName() antlr.Token { return s.structName }
  407. func (s *TypeBlockStructContext) GetStructToken() antlr.Token { return s.structToken }
  408. func (s *TypeBlockStructContext) GetLbrace() antlr.Token { return s.lbrace }
  409. func (s *TypeBlockStructContext) GetRbrace() antlr.Token { return s.rbrace }
  410. func (s *TypeBlockStructContext) SetStructName(v antlr.Token) { s.structName = v }
  411. func (s *TypeBlockStructContext) SetStructToken(v antlr.Token) { s.structToken = v }
  412. func (s *TypeBlockStructContext) SetLbrace(v antlr.Token) { s.lbrace = v }
  413. func (s *TypeBlockStructContext) SetRbrace(v antlr.Token) { s.rbrace = v }
  414. func (s *TypeBlockStructContext) AllID() []antlr.TerminalNode {
  415. return s.GetTokens(ApiParserParserID)
  416. }
  417. func (s *TypeBlockStructContext) ID(i int) antlr.TerminalNode {
  418. return s.GetToken(ApiParserParserID, i)
  419. }
  420. func (s *TypeBlockStructContext) AllField() []IFieldContext {
  421. var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IFieldContext)(nil)).Elem())
  422. var tst = make([]IFieldContext, len(ts))
  423. for i, t := range ts {
  424. if t != nil {
  425. tst[i] = t.(IFieldContext)
  426. }
  427. }
  428. return tst
  429. }
  430. func (s *TypeBlockStructContext) Field(i int) IFieldContext {
  431. var t = s.GetTypedRuleContext(reflect.TypeOf((*IFieldContext)(nil)).Elem(), i)
  432. if t == nil {
  433. return nil
  434. }
  435. return t.(IFieldContext)
  436. }
  437. func (s *TypeBlockStructContext) GetRuleContext() antlr.RuleContext {
  438. return s
  439. }
  440. func (s *TypeBlockStructContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
  441. return antlr.TreesStringTree(s, ruleNames, recog)
  442. }
  443. func (s *TypeBlockStructContext) Accept(visitor antlr.ParseTreeVisitor) any {
  444. switch t := visitor.(type) {
  445. case ApiParserVisitor:
  446. return t.VisitTypeBlockStruct(s)
  447. default:
  448. return t.VisitChildren(s)
  449. }
  450. }
  451. func (p *ApiParserParser) TypeBlockStruct() (localctx ITypeBlockStructContext) {
  452. localctx = NewTypeBlockStructContext(p, p.GetParserRuleContext(), p.GetState())
  453. p.EnterRule(localctx, 32, ApiParserParserRULE_typeBlockStruct)
  454. var _la int
  455. defer func() {
  456. p.ExitRule()
  457. }()
  458. defer func() {
  459. if err := recover(); err != nil {
  460. if v, ok := err.(antlr.RecognitionException); ok {
  461. localctx.SetException(v)
  462. p.GetErrorHandler().ReportError(p, v)
  463. p.GetErrorHandler().Recover(p, v)
  464. } else {
  465. panic(err)
  466. }
  467. }
  468. }()
  469. var _alt int
  470. p.EnterOuterAlt(localctx, 1)
  471. checkKeyword(p)
  472. {
  473. p.SetState(177)
  474. var _m = p.Match(ApiParserParserID)
  475. localctx.(*TypeBlockStructContext).structName = _m
  476. }
  477. p.SetState(179)
  478. p.GetErrorHandler().Sync(p)
  479. _la = p.GetTokenStream().LA(1)
  480. if _la == ApiParserParserID {
  481. {
  482. p.SetState(178)
  483. var _m = p.Match(ApiParserParserID)
  484. localctx.(*TypeBlockStructContext).structToken = _m
  485. }
  486. }
  487. {
  488. p.SetState(181)
  489. var _m = p.Match(ApiParserParserT__3)
  490. localctx.(*TypeBlockStructContext).lbrace = _m
  491. }
  492. p.SetState(185)
  493. p.GetErrorHandler().Sync(p)
  494. _alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 13, p.GetParserRuleContext())
  495. for _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
  496. if _alt == 1 {
  497. {
  498. p.SetState(182)
  499. p.Field()
  500. }
  501. }
  502. p.SetState(187)
  503. p.GetErrorHandler().Sync(p)
  504. _alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 13, p.GetParserRuleContext())
  505. }
  506. {
  507. p.SetState(188)
  508. var _m = p.Match(ApiParserParserT__4)
  509. localctx.(*TypeBlockStructContext).rbrace = _m
  510. }
  511. return localctx
  512. }