apiparser_parser2.go 14 KB

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