apiparser_parser5.go 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671
  1. package api
  2. import (
  3. "reflect"
  4. "github.com/zeromicro/antlr"
  5. )
  6. // Part 5
  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. type AnonymousFiledContext struct {
  10. *antlr.BaseParserRuleContext
  11. parser antlr.Parser
  12. star antlr.Token
  13. }
  14. func NewEmptyAnonymousFiledContext() *AnonymousFiledContext {
  15. var p = new(AnonymousFiledContext)
  16. p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
  17. p.RuleIndex = ApiParserParserRULE_anonymousFiled
  18. return p
  19. }
  20. func (*AnonymousFiledContext) IsAnonymousFiledContext() {}
  21. func NewAnonymousFiledContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *AnonymousFiledContext {
  22. var p = new(AnonymousFiledContext)
  23. p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
  24. p.parser = parser
  25. p.RuleIndex = ApiParserParserRULE_anonymousFiled
  26. return p
  27. }
  28. func (s *AnonymousFiledContext) GetParser() antlr.Parser { return s.parser }
  29. func (s *AnonymousFiledContext) GetStar() antlr.Token { return s.star }
  30. func (s *AnonymousFiledContext) SetStar(v antlr.Token) { s.star = v }
  31. func (s *AnonymousFiledContext) ID() antlr.TerminalNode {
  32. return s.GetToken(ApiParserParserID, 0)
  33. }
  34. func (s *AnonymousFiledContext) GetRuleContext() antlr.RuleContext {
  35. return s
  36. }
  37. func (s *AnonymousFiledContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
  38. return antlr.TreesStringTree(s, ruleNames, recog)
  39. }
  40. func (s *AnonymousFiledContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
  41. switch t := visitor.(type) {
  42. case ApiParserVisitor:
  43. return t.VisitAnonymousFiled(s)
  44. default:
  45. return t.VisitChildren(s)
  46. }
  47. }
  48. func (p *ApiParserParser) AnonymousFiled() (localctx IAnonymousFiledContext) {
  49. localctx = NewAnonymousFiledContext(p, p.GetParserRuleContext(), p.GetState())
  50. p.EnterRule(localctx, 40, ApiParserParserRULE_anonymousFiled)
  51. var _la int
  52. defer func() {
  53. p.ExitRule()
  54. }()
  55. defer func() {
  56. if err := recover(); err != nil {
  57. if v, ok := err.(antlr.RecognitionException); ok {
  58. localctx.SetException(v)
  59. p.GetErrorHandler().ReportError(p, v)
  60. p.GetErrorHandler().Recover(p, v)
  61. } else {
  62. panic(err)
  63. }
  64. }
  65. }()
  66. p.EnterOuterAlt(localctx, 1)
  67. p.SetState(207)
  68. p.GetErrorHandler().Sync(p)
  69. _la = p.GetTokenStream().LA(1)
  70. if _la == ApiParserParserT__5 {
  71. {
  72. p.SetState(206)
  73. var _m = p.Match(ApiParserParserT__5)
  74. localctx.(*AnonymousFiledContext).star = _m
  75. }
  76. }
  77. {
  78. p.SetState(209)
  79. p.Match(ApiParserParserID)
  80. }
  81. return localctx
  82. }
  83. // IDataTypeContext is an interface to support dynamic dispatch.
  84. type IDataTypeContext interface {
  85. antlr.ParserRuleContext
  86. // GetParser returns the parser.
  87. GetParser() antlr.Parser
  88. // GetInter returns the inter token.
  89. GetInter() antlr.Token
  90. // GetTime returns the time token.
  91. GetTime() antlr.Token
  92. // SetInter sets the inter token.
  93. SetInter(antlr.Token)
  94. // SetTime sets the time token.
  95. SetTime(antlr.Token)
  96. // IsDataTypeContext differentiates from other interfaces.
  97. IsDataTypeContext()
  98. }
  99. type DataTypeContext struct {
  100. *antlr.BaseParserRuleContext
  101. parser antlr.Parser
  102. inter antlr.Token
  103. time antlr.Token
  104. }
  105. func NewEmptyDataTypeContext() *DataTypeContext {
  106. var p = new(DataTypeContext)
  107. p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
  108. p.RuleIndex = ApiParserParserRULE_dataType
  109. return p
  110. }
  111. func (*DataTypeContext) IsDataTypeContext() {}
  112. func NewDataTypeContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *DataTypeContext {
  113. var p = new(DataTypeContext)
  114. p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
  115. p.parser = parser
  116. p.RuleIndex = ApiParserParserRULE_dataType
  117. return p
  118. }
  119. func (s *DataTypeContext) GetParser() antlr.Parser { return s.parser }
  120. func (s *DataTypeContext) GetInter() antlr.Token { return s.inter }
  121. func (s *DataTypeContext) GetTime() antlr.Token { return s.time }
  122. func (s *DataTypeContext) SetInter(v antlr.Token) { s.inter = v }
  123. func (s *DataTypeContext) SetTime(v antlr.Token) { s.time = v }
  124. func (s *DataTypeContext) ID() antlr.TerminalNode {
  125. return s.GetToken(ApiParserParserID, 0)
  126. }
  127. func (s *DataTypeContext) MapType() IMapTypeContext {
  128. var t = s.GetTypedRuleContext(reflect.TypeOf((*IMapTypeContext)(nil)).Elem(), 0)
  129. if t == nil {
  130. return nil
  131. }
  132. return t.(IMapTypeContext)
  133. }
  134. func (s *DataTypeContext) ArrayType() IArrayTypeContext {
  135. var t = s.GetTypedRuleContext(reflect.TypeOf((*IArrayTypeContext)(nil)).Elem(), 0)
  136. if t == nil {
  137. return nil
  138. }
  139. return t.(IArrayTypeContext)
  140. }
  141. func (s *DataTypeContext) INTERFACE() antlr.TerminalNode {
  142. return s.GetToken(ApiParserParserINTERFACE, 0)
  143. }
  144. func (s *DataTypeContext) PointerType() IPointerTypeContext {
  145. var t = s.GetTypedRuleContext(reflect.TypeOf((*IPointerTypeContext)(nil)).Elem(), 0)
  146. if t == nil {
  147. return nil
  148. }
  149. return t.(IPointerTypeContext)
  150. }
  151. func (s *DataTypeContext) TypeStruct() ITypeStructContext {
  152. var t = s.GetTypedRuleContext(reflect.TypeOf((*ITypeStructContext)(nil)).Elem(), 0)
  153. if t == nil {
  154. return nil
  155. }
  156. return t.(ITypeStructContext)
  157. }
  158. func (s *DataTypeContext) GetRuleContext() antlr.RuleContext {
  159. return s
  160. }
  161. func (s *DataTypeContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
  162. return antlr.TreesStringTree(s, ruleNames, recog)
  163. }
  164. func (s *DataTypeContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
  165. switch t := visitor.(type) {
  166. case ApiParserVisitor:
  167. return t.VisitDataType(s)
  168. default:
  169. return t.VisitChildren(s)
  170. }
  171. }
  172. func (p *ApiParserParser) DataType() (localctx IDataTypeContext) {
  173. localctx = NewDataTypeContext(p, p.GetParserRuleContext(), p.GetState())
  174. p.EnterRule(localctx, 42, ApiParserParserRULE_dataType)
  175. defer func() {
  176. p.ExitRule()
  177. }()
  178. defer func() {
  179. if err := recover(); err != nil {
  180. if v, ok := err.(antlr.RecognitionException); ok {
  181. localctx.SetException(v)
  182. p.GetErrorHandler().ReportError(p, v)
  183. p.GetErrorHandler().Recover(p, v)
  184. } else {
  185. panic(err)
  186. }
  187. }
  188. }()
  189. p.SetState(219)
  190. p.GetErrorHandler().Sync(p)
  191. switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 18, p.GetParserRuleContext()) {
  192. case 1:
  193. p.EnterOuterAlt(localctx, 1)
  194. isInterface(p)
  195. {
  196. p.SetState(212)
  197. p.Match(ApiParserParserID)
  198. }
  199. case 2:
  200. p.EnterOuterAlt(localctx, 2)
  201. {
  202. p.SetState(213)
  203. p.MapType()
  204. }
  205. case 3:
  206. p.EnterOuterAlt(localctx, 3)
  207. {
  208. p.SetState(214)
  209. p.ArrayType()
  210. }
  211. case 4:
  212. p.EnterOuterAlt(localctx, 4)
  213. {
  214. p.SetState(215)
  215. var _m = p.Match(ApiParserParserINTERFACE)
  216. localctx.(*DataTypeContext).inter = _m
  217. }
  218. case 5:
  219. p.EnterOuterAlt(localctx, 5)
  220. {
  221. p.SetState(216)
  222. var _m = p.Match(ApiParserParserT__6)
  223. localctx.(*DataTypeContext).time = _m
  224. }
  225. case 6:
  226. p.EnterOuterAlt(localctx, 6)
  227. {
  228. p.SetState(217)
  229. p.PointerType()
  230. }
  231. case 7:
  232. p.EnterOuterAlt(localctx, 7)
  233. {
  234. p.SetState(218)
  235. p.TypeStruct()
  236. }
  237. }
  238. return localctx
  239. }
  240. // IPointerTypeContext is an interface to support dynamic dispatch.
  241. type IPointerTypeContext interface {
  242. antlr.ParserRuleContext
  243. // GetParser returns the parser.
  244. GetParser() antlr.Parser
  245. // GetStar returns the star token.
  246. GetStar() antlr.Token
  247. // SetStar sets the star token.
  248. SetStar(antlr.Token)
  249. // IsPointerTypeContext differentiates from other interfaces.
  250. IsPointerTypeContext()
  251. }
  252. type PointerTypeContext struct {
  253. *antlr.BaseParserRuleContext
  254. parser antlr.Parser
  255. star antlr.Token
  256. }
  257. func NewEmptyPointerTypeContext() *PointerTypeContext {
  258. var p = new(PointerTypeContext)
  259. p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
  260. p.RuleIndex = ApiParserParserRULE_pointerType
  261. return p
  262. }
  263. func (*PointerTypeContext) IsPointerTypeContext() {}
  264. func NewPointerTypeContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *PointerTypeContext {
  265. var p = new(PointerTypeContext)
  266. p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
  267. p.parser = parser
  268. p.RuleIndex = ApiParserParserRULE_pointerType
  269. return p
  270. }
  271. func (s *PointerTypeContext) GetParser() antlr.Parser { return s.parser }
  272. func (s *PointerTypeContext) GetStar() antlr.Token { return s.star }
  273. func (s *PointerTypeContext) SetStar(v antlr.Token) { s.star = v }
  274. func (s *PointerTypeContext) ID() antlr.TerminalNode {
  275. return s.GetToken(ApiParserParserID, 0)
  276. }
  277. func (s *PointerTypeContext) GetRuleContext() antlr.RuleContext {
  278. return s
  279. }
  280. func (s *PointerTypeContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
  281. return antlr.TreesStringTree(s, ruleNames, recog)
  282. }
  283. func (s *PointerTypeContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
  284. switch t := visitor.(type) {
  285. case ApiParserVisitor:
  286. return t.VisitPointerType(s)
  287. default:
  288. return t.VisitChildren(s)
  289. }
  290. }
  291. func (p *ApiParserParser) PointerType() (localctx IPointerTypeContext) {
  292. localctx = NewPointerTypeContext(p, p.GetParserRuleContext(), p.GetState())
  293. p.EnterRule(localctx, 44, ApiParserParserRULE_pointerType)
  294. defer func() {
  295. p.ExitRule()
  296. }()
  297. defer func() {
  298. if err := recover(); err != nil {
  299. if v, ok := err.(antlr.RecognitionException); ok {
  300. localctx.SetException(v)
  301. p.GetErrorHandler().ReportError(p, v)
  302. p.GetErrorHandler().Recover(p, v)
  303. } else {
  304. panic(err)
  305. }
  306. }
  307. }()
  308. p.EnterOuterAlt(localctx, 1)
  309. {
  310. p.SetState(221)
  311. var _m = p.Match(ApiParserParserT__5)
  312. localctx.(*PointerTypeContext).star = _m
  313. }
  314. checkKeyword(p)
  315. {
  316. p.SetState(223)
  317. p.Match(ApiParserParserID)
  318. }
  319. return localctx
  320. }
  321. // IMapTypeContext is an interface to support dynamic dispatch.
  322. type IMapTypeContext interface {
  323. antlr.ParserRuleContext
  324. // GetParser returns the parser.
  325. GetParser() antlr.Parser
  326. // GetMapToken returns the mapToken token.
  327. GetMapToken() antlr.Token
  328. // GetLbrack returns the lbrack token.
  329. GetLbrack() antlr.Token
  330. // GetKey returns the key token.
  331. GetKey() antlr.Token
  332. // GetRbrack returns the rbrack token.
  333. GetRbrack() antlr.Token
  334. // SetMapToken sets the mapToken token.
  335. SetMapToken(antlr.Token)
  336. // SetLbrack sets the lbrack token.
  337. SetLbrack(antlr.Token)
  338. // SetKey sets the key token.
  339. SetKey(antlr.Token)
  340. // SetRbrack sets the rbrack token.
  341. SetRbrack(antlr.Token)
  342. // GetValue returns the value rule contexts.
  343. GetValue() IDataTypeContext
  344. // SetValue sets the value rule contexts.
  345. SetValue(IDataTypeContext)
  346. // IsMapTypeContext differentiates from other interfaces.
  347. IsMapTypeContext()
  348. }
  349. type MapTypeContext struct {
  350. *antlr.BaseParserRuleContext
  351. parser antlr.Parser
  352. mapToken antlr.Token
  353. lbrack antlr.Token
  354. key antlr.Token
  355. rbrack antlr.Token
  356. value IDataTypeContext
  357. }
  358. func NewEmptyMapTypeContext() *MapTypeContext {
  359. var p = new(MapTypeContext)
  360. p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
  361. p.RuleIndex = ApiParserParserRULE_mapType
  362. return p
  363. }
  364. func (*MapTypeContext) IsMapTypeContext() {}
  365. func NewMapTypeContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *MapTypeContext {
  366. var p = new(MapTypeContext)
  367. p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
  368. p.parser = parser
  369. p.RuleIndex = ApiParserParserRULE_mapType
  370. return p
  371. }
  372. func (s *MapTypeContext) GetParser() antlr.Parser { return s.parser }
  373. func (s *MapTypeContext) GetMapToken() antlr.Token { return s.mapToken }
  374. func (s *MapTypeContext) GetLbrack() antlr.Token { return s.lbrack }
  375. func (s *MapTypeContext) GetKey() antlr.Token { return s.key }
  376. func (s *MapTypeContext) GetRbrack() antlr.Token { return s.rbrack }
  377. func (s *MapTypeContext) SetMapToken(v antlr.Token) { s.mapToken = v }
  378. func (s *MapTypeContext) SetLbrack(v antlr.Token) { s.lbrack = v }
  379. func (s *MapTypeContext) SetKey(v antlr.Token) { s.key = v }
  380. func (s *MapTypeContext) SetRbrack(v antlr.Token) { s.rbrack = v }
  381. func (s *MapTypeContext) GetValue() IDataTypeContext { return s.value }
  382. func (s *MapTypeContext) SetValue(v IDataTypeContext) { s.value = v }
  383. func (s *MapTypeContext) AllID() []antlr.TerminalNode {
  384. return s.GetTokens(ApiParserParserID)
  385. }
  386. func (s *MapTypeContext) ID(i int) antlr.TerminalNode {
  387. return s.GetToken(ApiParserParserID, i)
  388. }
  389. func (s *MapTypeContext) DataType() IDataTypeContext {
  390. var t = s.GetTypedRuleContext(reflect.TypeOf((*IDataTypeContext)(nil)).Elem(), 0)
  391. if t == nil {
  392. return nil
  393. }
  394. return t.(IDataTypeContext)
  395. }
  396. func (s *MapTypeContext) GetRuleContext() antlr.RuleContext {
  397. return s
  398. }
  399. func (s *MapTypeContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
  400. return antlr.TreesStringTree(s, ruleNames, recog)
  401. }
  402. func (s *MapTypeContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
  403. switch t := visitor.(type) {
  404. case ApiParserVisitor:
  405. return t.VisitMapType(s)
  406. default:
  407. return t.VisitChildren(s)
  408. }
  409. }
  410. func (p *ApiParserParser) MapType() (localctx IMapTypeContext) {
  411. localctx = NewMapTypeContext(p, p.GetParserRuleContext(), p.GetState())
  412. p.EnterRule(localctx, 46, ApiParserParserRULE_mapType)
  413. defer func() {
  414. p.ExitRule()
  415. }()
  416. defer func() {
  417. if err := recover(); err != nil {
  418. if v, ok := err.(antlr.RecognitionException); ok {
  419. localctx.SetException(v)
  420. p.GetErrorHandler().ReportError(p, v)
  421. p.GetErrorHandler().Recover(p, v)
  422. } else {
  423. panic(err)
  424. }
  425. }
  426. }()
  427. p.EnterOuterAlt(localctx, 1)
  428. match(p,"map")
  429. {
  430. p.SetState(226)
  431. var _m = p.Match(ApiParserParserID)
  432. localctx.(*MapTypeContext).mapToken = _m
  433. }
  434. {
  435. p.SetState(227)
  436. var _m = p.Match(ApiParserParserT__7)
  437. localctx.(*MapTypeContext).lbrack = _m
  438. }
  439. checkKey(p)
  440. {
  441. p.SetState(229)
  442. var _m = p.Match(ApiParserParserID)
  443. localctx.(*MapTypeContext).key = _m
  444. }
  445. {
  446. p.SetState(230)
  447. var _m = p.Match(ApiParserParserT__8)
  448. localctx.(*MapTypeContext).rbrack = _m
  449. }
  450. {
  451. p.SetState(231)
  452. var _x = p.DataType()
  453. localctx.(*MapTypeContext).value = _x
  454. }
  455. return localctx
  456. }