apiparser_parser3.go 15 KB

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