blend-kit 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/dist/helper/ApiHelper.js +0 -0
  2. package/dist/helper/BasicHelper.js +28 -0
  3. package/dist/helper/CommonHelper.js +10 -0
  4. package/dist/helper/DataHelper.js +241 -0
  5. package/dist/helper/ExpressHelper.js +728 -0
  6. package/dist/helper/FrontEndApiHelper.js +485 -0
  7. package/dist/helper/FrontEndReactApiHelper.js +483 -0
  8. package/dist/helper/MongoHelper.js +143 -0
  9. package/dist/helper/RNHelper.js +560 -0
  10. package/dist/helper/ReactHelper.js +524 -0
  11. package/dist/helper/SectionHelper.js +152 -0
  12. package/dist/helper/fileHelper.js +127 -0
  13. package/dist/helper/grammarHelper/BlendApiGrammarHelper.js +48 -0
  14. package/dist/helper/grammarHelper/BlendBasicGrammarHelper.js +98 -0
  15. package/dist/helper/grammarHelper/BlendDataGrammarHelper.js +47 -0
  16. package/dist/helper/grammarHelper/BlendMDPGrammarHelper.js +29 -0
  17. package/dist/helper/grammarHelper/BlendMongoGrammarHelper.js +51 -0
  18. package/dist/helper/grammarHelper/BlendRNGrammarHelper.js +56 -0
  19. package/dist/helper/grammarHelper/BlendReactGrammarHelper.js +55 -0
  20. package/dist/helper/grammarHelper/GrammarErrorHelper.js +16 -0
  21. package/dist/index.js +159 -0
  22. package/dist/parser/blendApi/src/grammar/BlendApiLexer.js +201 -0
  23. package/dist/parser/blendApi/src/grammar/BlendApiListener.js +3 -0
  24. package/dist/parser/blendApi/src/grammar/BlendApiParser.js +961 -0
  25. package/dist/parser/blendData/src/grammar/BlendDataLexer.js +154 -0
  26. package/dist/parser/blendData/src/grammar/BlendDataListener.js +3 -0
  27. package/dist/parser/blendData/src/grammar/BlendDataParser.js +641 -0
  28. package/dist/parser/blendMDP/src/grammar/BlendMDPLexer.js +151 -0
  29. package/dist/parser/blendMDP/src/grammar/BlendMDPListener.js +3 -0
  30. package/dist/parser/blendMDP/src/grammar/BlendMDPParser.js +490 -0
  31. package/dist/parser/blendMongo/src/grammar/BlendMongoLexer.js +187 -0
  32. package/dist/parser/blendMongo/src/grammar/BlendMongoListener.js +3 -0
  33. package/dist/parser/blendMongo/src/grammar/BlendMongoParser.js +848 -0
  34. package/dist/parser/blendRN/src/grammar/BlendRNLexer.js +172 -0
  35. package/dist/parser/blendRN/src/grammar/BlendRNListener.js +3 -0
  36. package/dist/parser/blendRN/src/grammar/BlendRNParser.js +657 -0
  37. package/dist/parser/blendReact/src/grammar/BlendReactLexer.js +159 -0
  38. package/dist/parser/blendReact/src/grammar/BlendReactListener.js +3 -0
  39. package/dist/parser/blendReact/src/grammar/BlendReactParser.js +644 -0
  40. package/dist/parser/blendbasic/src/grammar/BlendBasicLexer.js +147 -0
  41. package/dist/parser/blendbasic/src/grammar/BlendBasicListener.js +3 -0
  42. package/dist/parser/blendbasic/src/grammar/BlendBasicParser.js +747 -0
  43. package/dist/src/app.js +76 -0
  44. package/dist/src/app.ts +54 -0
  45. package/dist/types/apiOperationTypes.js +13 -0
  46. package/dist/types/basicOperationTypes.js +2 -0
  47. package/dist/types/dataOperationTypes.js +2 -0
  48. package/dist/types/frontendOperationTypes.js +4 -0
  49. package/dist/types/generalTypes.js +0 -0
  50. package/dist/types/mongoOperationTypes.js +12 -0
  51. package/package.json +29 -0
  52. package/src/grammar/.antlr/ApiModuleLexer.interp +71 -0
  53. package/src/grammar/.antlr/ApiModuleLexer.java +194 -0
  54. package/src/grammar/.antlr/ApiModuleLexer.tokens +32 -0
  55. package/src/grammar/.antlr/BlendApi.interp +70 -0
  56. package/src/grammar/.antlr/BlendApi.tokens +44 -0
  57. package/src/grammar/.antlr/BlendApiLexer.interp +89 -0
  58. package/src/grammar/.antlr/BlendApiLexer.java +237 -0
  59. package/src/grammar/.antlr/BlendApiLexer.tokens +44 -0
  60. package/src/grammar/.antlr/BlendApiParser.java +767 -0
  61. package/src/grammar/.antlr/BlendBasic.interp +41 -0
  62. package/src/grammar/.antlr/BlendBasic.tokens +20 -0
  63. package/src/grammar/.antlr/BlendBasicLexer.interp +50 -0
  64. package/src/grammar/.antlr/BlendBasicLexer.java +179 -0
  65. package/src/grammar/.antlr/BlendBasicLexer.tokens +20 -0
  66. package/src/grammar/.antlr/BlendBasicParser.java +599 -0
  67. package/src/grammar/.antlr/BlendData.interp +50 -0
  68. package/src/grammar/.antlr/BlendData.tokens +29 -0
  69. package/src/grammar/.antlr/BlendDataLexer.interp +65 -0
  70. package/src/grammar/.antlr/BlendDataLexer.java +181 -0
  71. package/src/grammar/.antlr/BlendDataLexer.tokens +29 -0
  72. package/src/grammar/.antlr/BlendDataParser.java +520 -0
  73. package/src/grammar/.antlr/BlendMDP.interp +45 -0
  74. package/src/grammar/.antlr/BlendMDP.tokens +25 -0
  75. package/src/grammar/.antlr/BlendMDPLexer.interp +59 -0
  76. package/src/grammar/.antlr/BlendMDPLexer.java +178 -0
  77. package/src/grammar/.antlr/BlendMDPLexer.tokens +25 -0
  78. package/src/grammar/.antlr/BlendMDPParser.java +386 -0
  79. package/src/grammar/.antlr/BlendMongo.interp +65 -0
  80. package/src/grammar/.antlr/BlendMongo.tokens +41 -0
  81. package/src/grammar/.antlr/BlendMongoLexer.interp +83 -0
  82. package/src/grammar/.antlr/BlendMongoLexer.java +219 -0
  83. package/src/grammar/.antlr/BlendMongoLexer.tokens +41 -0
  84. package/src/grammar/.antlr/BlendMongoParser.java +669 -0
  85. package/src/grammar/.antlr/BlendRN.interp +53 -0
  86. package/src/grammar/.antlr/BlendRN.tokens +31 -0
  87. package/src/grammar/.antlr/BlendRNLexer.interp +71 -0
  88. package/src/grammar/.antlr/BlendRNLexer.java +202 -0
  89. package/src/grammar/.antlr/BlendRNLexer.tokens +31 -0
  90. package/src/grammar/.antlr/BlendRNParser.java +542 -0
  91. package/src/grammar/.antlr/BlendReact.interp +49 -0
  92. package/src/grammar/.antlr/BlendReact.tokens +28 -0
  93. package/src/grammar/.antlr/BlendReactLexer.interp +65 -0
  94. package/src/grammar/.antlr/BlendReactLexer.java +188 -0
  95. package/src/grammar/.antlr/BlendReactLexer.tokens +28 -0
  96. package/src/grammar/.antlr/BlendReactParser.java +530 -0
  97. package/src/grammar/BlendApi.g4 +26 -0
  98. package/src/grammar/BlendBasic.g4 +16 -0
  99. package/src/grammar/BlendData.g4 +24 -0
  100. package/src/grammar/BlendMDP.g4 +12 -0
  101. package/src/grammar/BlendMongo.g4 +24 -0
  102. package/src/grammar/BlendRN.g4 +18 -0
  103. package/src/grammar/BlendReact.g4 +16 -0
  104. package/src/helper/BasicHelper.ts +35 -0
  105. package/src/helper/CommonHelper.ts +5 -0
  106. package/src/helper/DataHelper.ts +268 -0
  107. package/src/helper/ExpressHelper.ts +807 -0
  108. package/src/helper/FrontEndApiHelper.ts +526 -0
  109. package/src/helper/FrontEndReactApiHelper.ts +532 -0
  110. package/src/helper/MongoHelper.ts +165 -0
  111. package/src/helper/RNHelper.ts +651 -0
  112. package/src/helper/ReactHelper.ts +597 -0
  113. package/src/helper/SectionHelper.ts +154 -0
  114. package/src/helper/fileHelper.ts +111 -0
  115. package/src/helper/grammarHelper/BlendApiGrammarHelper.ts +45 -0
  116. package/src/helper/grammarHelper/BlendBasicGrammarHelper.ts +101 -0
  117. package/src/helper/grammarHelper/BlendDataGrammarHelper.ts +49 -0
  118. package/src/helper/grammarHelper/BlendMDPGrammarHelper.ts +33 -0
  119. package/src/helper/grammarHelper/BlendMongoGrammarHelper.ts +50 -0
  120. package/src/helper/grammarHelper/BlendRNGrammarHelper.ts +65 -0
  121. package/src/helper/grammarHelper/BlendReactGrammarHelper.ts +65 -0
  122. package/src/helper/grammarHelper/GrammarErrorHelper.ts +13 -0
  123. package/src/index.ts +168 -0
  124. package/src/parser/blendApi/src/grammar/BlendApi.interp +70 -0
  125. package/src/parser/blendApi/src/grammar/BlendApi.tokens +44 -0
  126. package/src/parser/blendApi/src/grammar/BlendApiLexer.interp +89 -0
  127. package/src/parser/blendApi/src/grammar/BlendApiLexer.tokens +44 -0
  128. package/src/parser/blendApi/src/grammar/BlendApiLexer.ts +193 -0
  129. package/src/parser/blendApi/src/grammar/BlendApiListener.ts +145 -0
  130. package/src/parser/blendApi/src/grammar/BlendApiParser.ts +968 -0
  131. package/src/parser/blendData/src/grammar/BlendData.interp +50 -0
  132. package/src/parser/blendData/src/grammar/BlendData.tokens +29 -0
  133. package/src/parser/blendData/src/grammar/BlendDataLexer.interp +65 -0
  134. package/src/parser/blendData/src/grammar/BlendDataLexer.tokens +29 -0
  135. package/src/parser/blendData/src/grammar/BlendDataLexer.ts +146 -0
  136. package/src/parser/blendData/src/grammar/BlendDataListener.ts +97 -0
  137. package/src/parser/blendData/src/grammar/BlendDataParser.ts +641 -0
  138. package/src/parser/blendMDP/src/grammar/BlendMDP.interp +45 -0
  139. package/src/parser/blendMDP/src/grammar/BlendMDP.tokens +25 -0
  140. package/src/parser/blendMDP/src/grammar/BlendMDPLexer.interp +59 -0
  141. package/src/parser/blendMDP/src/grammar/BlendMDPLexer.tokens +25 -0
  142. package/src/parser/blendMDP/src/grammar/BlendMDPLexer.ts +143 -0
  143. package/src/parser/blendMDP/src/grammar/BlendMDPListener.ts +85 -0
  144. package/src/parser/blendMDP/src/grammar/BlendMDPParser.ts +483 -0
  145. package/src/parser/blendMongo/src/grammar/BlendMongo.interp +65 -0
  146. package/src/parser/blendMongo/src/grammar/BlendMongo.tokens +41 -0
  147. package/src/parser/blendMongo/src/grammar/BlendMongoLexer.interp +83 -0
  148. package/src/parser/blendMongo/src/grammar/BlendMongoLexer.tokens +41 -0
  149. package/src/parser/blendMongo/src/grammar/BlendMongoLexer.ts +179 -0
  150. package/src/parser/blendMongo/src/grammar/BlendMongoListener.ts +133 -0
  151. package/src/parser/blendMongo/src/grammar/BlendMongoParser.ts +849 -0
  152. package/src/parser/blendRN/src/grammar/BlendRN.interp +53 -0
  153. package/src/parser/blendRN/src/grammar/BlendRN.tokens +31 -0
  154. package/src/parser/blendRN/src/grammar/BlendRNLexer.interp +71 -0
  155. package/src/parser/blendRN/src/grammar/BlendRNLexer.tokens +31 -0
  156. package/src/parser/blendRN/src/grammar/BlendRNLexer.ts +164 -0
  157. package/src/parser/blendRN/src/grammar/BlendRNListener.ts +85 -0
  158. package/src/parser/blendRN/src/grammar/BlendRNParser.ts +659 -0
  159. package/src/parser/blendReact/src/grammar/BlendReact.interp +49 -0
  160. package/src/parser/blendReact/src/grammar/BlendReact.tokens +28 -0
  161. package/src/parser/blendReact/src/grammar/BlendReactLexer.interp +65 -0
  162. package/src/parser/blendReact/src/grammar/BlendReactLexer.tokens +28 -0
  163. package/src/parser/blendReact/src/grammar/BlendReactLexer.ts +151 -0
  164. package/src/parser/blendReact/src/grammar/BlendReactListener.ts +85 -0
  165. package/src/parser/blendReact/src/grammar/BlendReactParser.ts +646 -0
  166. package/src/parser/blendbasic/src/grammar/BlendBasic.interp +41 -0
  167. package/src/parser/blendbasic/src/grammar/BlendBasic.tokens +20 -0
  168. package/src/parser/blendbasic/src/grammar/BlendBasicLexer.interp +50 -0
  169. package/src/parser/blendbasic/src/grammar/BlendBasicLexer.tokens +20 -0
  170. package/src/parser/blendbasic/src/grammar/BlendBasicLexer.ts +139 -0
  171. package/src/parser/blendbasic/src/grammar/BlendBasicListener.ts +109 -0
  172. package/src/parser/blendbasic/src/grammar/BlendBasicParser.ts +747 -0
  173. package/src/types/apiOperationTypes.ts +43 -0
  174. package/src/types/basicOperationTypes.ts +15 -0
  175. package/src/types/dataOperationTypes.ts +20 -0
  176. package/src/types/frontendOperationTypes.ts +92 -0
  177. package/src/types/generalTypes.ts +0 -0
  178. package/src/types/mongoOperationTypes.ts +36 -0
  179. package/template/.env.dev +1 -0
  180. package/template/package.json +36 -0
  181. package/template/src/app.js +76 -0
  182. package/template/src/app.ts +54 -0
  183. package/template/src/config/app.config.js +0 -0
  184. package/template/src/config/app.config.ts +0 -0
  185. package/template/src/config/database.config.js +6 -0
  186. package/template/src/config/database.config.ts +4 -0
  187. package/template/src/data/interfaces.js +2 -0
  188. package/template/src/data/interfaces.ts +23 -0
  189. package/template/src/middlewares/auth.js +22 -0
  190. package/template/src/middlewares/auth.ts +21 -0
  191. package/template/src/models/Database.js +10 -0
  192. package/template/src/models/Database.ts +8 -0
  193. package/template/src/models/User/Permission.model.js +13 -0
  194. package/template/src/models/User/Permission.model.ts +14 -0
  195. package/template/src/models/User/Role.model.js +13 -0
  196. package/template/src/models/User/Role.model.ts +14 -0
  197. package/template/src/models/User/User.model.js +17 -0
  198. package/template/src/models/User/User.model.ts +18 -0
  199. package/template/src/routes/User.routes.js +47 -0
  200. package/template/src/routes/User.routes.ts +41 -0
  201. package/template/src/routes/common/common.routes.config.js +14 -0
  202. package/template/src/routes/common/common.routes.config.ts +15 -0
  203. package/template/src/services/User/User.service.js +75 -0
  204. package/template/src/services/User/User.service.ts +68 -0
  205. package/template/src/services/User/api.data.js +72 -0
  206. package/template/src/services/User/api.data.ts +79 -0
  207. package/template/src/services/User/api.interface.js +3 -0
  208. package/template/src/services/User/api.interface.ts +10 -0
  209. package/template/tsconfig.json +10 -0
  210. package/tsconfig.json +13 -0
@@ -0,0 +1,483 @@
1
+ // Generated from src/grammar/BlendMDP.g4 by ANTLR 4.9.0-SNAPSHOT
2
+
3
+
4
+ import { ATN } from "antlr4ts/atn/ATN";
5
+ import { ATNDeserializer } from "antlr4ts/atn/ATNDeserializer";
6
+ import { FailedPredicateException } from "antlr4ts/FailedPredicateException";
7
+ import { NotNull } from "antlr4ts/Decorators";
8
+ import { NoViableAltException } from "antlr4ts/NoViableAltException";
9
+ import { Override } from "antlr4ts/Decorators";
10
+ import { Parser } from "antlr4ts/Parser";
11
+ import { ParserRuleContext } from "antlr4ts/ParserRuleContext";
12
+ import { ParserATNSimulator } from "antlr4ts/atn/ParserATNSimulator";
13
+ import { ParseTreeListener } from "antlr4ts/tree/ParseTreeListener";
14
+ import { ParseTreeVisitor } from "antlr4ts/tree/ParseTreeVisitor";
15
+ import { RecognitionException } from "antlr4ts/RecognitionException";
16
+ import { RuleContext } from "antlr4ts/RuleContext";
17
+ //import { RuleVersion } from "antlr4ts/RuleVersion";
18
+ import { TerminalNode } from "antlr4ts/tree/TerminalNode";
19
+ import { Token } from "antlr4ts/Token";
20
+ import { TokenStream } from "antlr4ts/TokenStream";
21
+ import { Vocabulary } from "antlr4ts/Vocabulary";
22
+ import { VocabularyImpl } from "antlr4ts/VocabularyImpl";
23
+
24
+ import * as Utils from "antlr4ts/misc/Utils";
25
+
26
+ import { BlendMDPListener } from "./BlendMDPListener";
27
+
28
+ export class BlendMDPParser extends Parser {
29
+ public static readonly T__0 = 1;
30
+ public static readonly T__1 = 2;
31
+ public static readonly T__2 = 3;
32
+ public static readonly T__3 = 4;
33
+ public static readonly T__4 = 5;
34
+ public static readonly T__5 = 6;
35
+ public static readonly T__6 = 7;
36
+ public static readonly T__7 = 8;
37
+ public static readonly T__8 = 9;
38
+ public static readonly T__9 = 10;
39
+ public static readonly T__10 = 11;
40
+ public static readonly IDENTIFIER = 12;
41
+ public static readonly CAPITAL_IDENTIFIER = 13;
42
+ public static readonly WS = 14;
43
+ public static readonly RULE_program = 0;
44
+ public static readonly RULE_moduleDefinition = 1;
45
+ public static readonly RULE_parentDefinition = 2;
46
+ public static readonly RULE_propsDefinition = 3;
47
+ public static readonly RULE_propsBodyDefinition = 4;
48
+ public static readonly RULE_primitiveType = 5;
49
+ // tslint:disable:no-trailing-whitespace
50
+ public static readonly ruleNames: string[] = [
51
+ "program", "moduleDefinition", "parentDefinition", "propsDefinition",
52
+ "propsBodyDefinition", "primitiveType",
53
+ ];
54
+
55
+ private static readonly _LITERAL_NAMES: Array<string | undefined> = [
56
+ undefined, "'module'", "'parent'", "'props'", "'{'", "'}'", "':'", "'string'",
57
+ "'number'", "'boolean'", "'any'", "'object'",
58
+ ];
59
+ private static readonly _SYMBOLIC_NAMES: Array<string | undefined> = [
60
+ undefined, undefined, undefined, undefined, undefined, undefined, undefined,
61
+ undefined, undefined, undefined, undefined, undefined, "IDENTIFIER", "CAPITAL_IDENTIFIER",
62
+ "WS",
63
+ ];
64
+ public static readonly VOCABULARY: Vocabulary = new VocabularyImpl(BlendMDPParser._LITERAL_NAMES, BlendMDPParser._SYMBOLIC_NAMES, []);
65
+
66
+ // @Override
67
+ // @NotNull
68
+ public get vocabulary(): Vocabulary {
69
+ return BlendMDPParser.VOCABULARY;
70
+ }
71
+ // tslint:enable:no-trailing-whitespace
72
+
73
+ // @Override
74
+ public get grammarFileName(): string { return "BlendMDP.g4"; }
75
+
76
+ // @Override
77
+ public get ruleNames(): string[] { return BlendMDPParser.ruleNames; }
78
+
79
+ // @Override
80
+ public get serializedATN(): string { return BlendMDPParser._serializedATN; }
81
+
82
+ protected createFailedPredicateException(predicate?: string, message?: string): FailedPredicateException {
83
+ return new FailedPredicateException(this, predicate, message);
84
+ }
85
+
86
+ constructor(input: TokenStream) {
87
+ super(input);
88
+ this._interp = new ParserATNSimulator(BlendMDPParser._ATN, this);
89
+ }
90
+ // @RuleVersion(0)
91
+ public program(): ProgramContext {
92
+ let _localctx: ProgramContext = new ProgramContext(this._ctx, this.state);
93
+ this.enterRule(_localctx, 0, BlendMDPParser.RULE_program);
94
+ try {
95
+ this.enterOuterAlt(_localctx, 1);
96
+ {
97
+ this.state = 12;
98
+ this.moduleDefinition();
99
+ this.state = 13;
100
+ this.parentDefinition();
101
+ this.state = 14;
102
+ this.propsDefinition();
103
+ }
104
+ }
105
+ catch (re) {
106
+ if (re instanceof RecognitionException) {
107
+ _localctx.exception = re;
108
+ this._errHandler.reportError(this, re);
109
+ this._errHandler.recover(this, re);
110
+ } else {
111
+ throw re;
112
+ }
113
+ }
114
+ finally {
115
+ this.exitRule();
116
+ }
117
+ return _localctx;
118
+ }
119
+ // @RuleVersion(0)
120
+ public moduleDefinition(): ModuleDefinitionContext {
121
+ let _localctx: ModuleDefinitionContext = new ModuleDefinitionContext(this._ctx, this.state);
122
+ this.enterRule(_localctx, 2, BlendMDPParser.RULE_moduleDefinition);
123
+ try {
124
+ this.enterOuterAlt(_localctx, 1);
125
+ {
126
+ this.state = 16;
127
+ this.match(BlendMDPParser.T__0);
128
+ this.state = 17;
129
+ this.match(BlendMDPParser.CAPITAL_IDENTIFIER);
130
+ }
131
+ }
132
+ catch (re) {
133
+ if (re instanceof RecognitionException) {
134
+ _localctx.exception = re;
135
+ this._errHandler.reportError(this, re);
136
+ this._errHandler.recover(this, re);
137
+ } else {
138
+ throw re;
139
+ }
140
+ }
141
+ finally {
142
+ this.exitRule();
143
+ }
144
+ return _localctx;
145
+ }
146
+ // @RuleVersion(0)
147
+ public parentDefinition(): ParentDefinitionContext {
148
+ let _localctx: ParentDefinitionContext = new ParentDefinitionContext(this._ctx, this.state);
149
+ this.enterRule(_localctx, 4, BlendMDPParser.RULE_parentDefinition);
150
+ try {
151
+ this.enterOuterAlt(_localctx, 1);
152
+ {
153
+ this.state = 19;
154
+ this.match(BlendMDPParser.T__1);
155
+ this.state = 20;
156
+ this.match(BlendMDPParser.CAPITAL_IDENTIFIER);
157
+ }
158
+ }
159
+ catch (re) {
160
+ if (re instanceof RecognitionException) {
161
+ _localctx.exception = re;
162
+ this._errHandler.reportError(this, re);
163
+ this._errHandler.recover(this, re);
164
+ } else {
165
+ throw re;
166
+ }
167
+ }
168
+ finally {
169
+ this.exitRule();
170
+ }
171
+ return _localctx;
172
+ }
173
+ // @RuleVersion(0)
174
+ public propsDefinition(): PropsDefinitionContext {
175
+ let _localctx: PropsDefinitionContext = new PropsDefinitionContext(this._ctx, this.state);
176
+ this.enterRule(_localctx, 6, BlendMDPParser.RULE_propsDefinition);
177
+ let _la: number;
178
+ try {
179
+ this.enterOuterAlt(_localctx, 1);
180
+ {
181
+ this.state = 22;
182
+ this.match(BlendMDPParser.T__2);
183
+ this.state = 23;
184
+ this.match(BlendMDPParser.T__3);
185
+ this.state = 27;
186
+ this._errHandler.sync(this);
187
+ _la = this._input.LA(1);
188
+ while (_la === BlendMDPParser.IDENTIFIER) {
189
+ {
190
+ {
191
+ this.state = 24;
192
+ this.propsBodyDefinition();
193
+ }
194
+ }
195
+ this.state = 29;
196
+ this._errHandler.sync(this);
197
+ _la = this._input.LA(1);
198
+ }
199
+ this.state = 30;
200
+ this.match(BlendMDPParser.T__4);
201
+ }
202
+ }
203
+ catch (re) {
204
+ if (re instanceof RecognitionException) {
205
+ _localctx.exception = re;
206
+ this._errHandler.reportError(this, re);
207
+ this._errHandler.recover(this, re);
208
+ } else {
209
+ throw re;
210
+ }
211
+ }
212
+ finally {
213
+ this.exitRule();
214
+ }
215
+ return _localctx;
216
+ }
217
+ // @RuleVersion(0)
218
+ public propsBodyDefinition(): PropsBodyDefinitionContext {
219
+ let _localctx: PropsBodyDefinitionContext = new PropsBodyDefinitionContext(this._ctx, this.state);
220
+ this.enterRule(_localctx, 8, BlendMDPParser.RULE_propsBodyDefinition);
221
+ try {
222
+ this.enterOuterAlt(_localctx, 1);
223
+ {
224
+ this.state = 32;
225
+ this.match(BlendMDPParser.IDENTIFIER);
226
+ this.state = 33;
227
+ this.match(BlendMDPParser.T__5);
228
+ this.state = 36;
229
+ this._errHandler.sync(this);
230
+ switch (this._input.LA(1)) {
231
+ case BlendMDPParser.CAPITAL_IDENTIFIER:
232
+ {
233
+ this.state = 34;
234
+ this.match(BlendMDPParser.CAPITAL_IDENTIFIER);
235
+ }
236
+ break;
237
+ case BlendMDPParser.T__6:
238
+ case BlendMDPParser.T__7:
239
+ case BlendMDPParser.T__8:
240
+ case BlendMDPParser.T__9:
241
+ case BlendMDPParser.T__10:
242
+ {
243
+ this.state = 35;
244
+ this.primitiveType();
245
+ }
246
+ break;
247
+ default:
248
+ throw new NoViableAltException(this);
249
+ }
250
+ }
251
+ }
252
+ catch (re) {
253
+ if (re instanceof RecognitionException) {
254
+ _localctx.exception = re;
255
+ this._errHandler.reportError(this, re);
256
+ this._errHandler.recover(this, re);
257
+ } else {
258
+ throw re;
259
+ }
260
+ }
261
+ finally {
262
+ this.exitRule();
263
+ }
264
+ return _localctx;
265
+ }
266
+ // @RuleVersion(0)
267
+ public primitiveType(): PrimitiveTypeContext {
268
+ let _localctx: PrimitiveTypeContext = new PrimitiveTypeContext(this._ctx, this.state);
269
+ this.enterRule(_localctx, 10, BlendMDPParser.RULE_primitiveType);
270
+ let _la: number;
271
+ try {
272
+ this.enterOuterAlt(_localctx, 1);
273
+ {
274
+ this.state = 38;
275
+ _la = this._input.LA(1);
276
+ if (!((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << BlendMDPParser.T__6) | (1 << BlendMDPParser.T__7) | (1 << BlendMDPParser.T__8) | (1 << BlendMDPParser.T__9) | (1 << BlendMDPParser.T__10))) !== 0))) {
277
+ this._errHandler.recoverInline(this);
278
+ } else {
279
+ if (this._input.LA(1) === Token.EOF) {
280
+ this.matchedEOF = true;
281
+ }
282
+
283
+ this._errHandler.reportMatch(this);
284
+ this.consume();
285
+ }
286
+ }
287
+ }
288
+ catch (re) {
289
+ if (re instanceof RecognitionException) {
290
+ _localctx.exception = re;
291
+ this._errHandler.reportError(this, re);
292
+ this._errHandler.recover(this, re);
293
+ } else {
294
+ throw re;
295
+ }
296
+ }
297
+ finally {
298
+ this.exitRule();
299
+ }
300
+ return _localctx;
301
+ }
302
+
303
+ public static readonly _serializedATN: string =
304
+ "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x03\x10+\x04\x02" +
305
+ "\t\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06\x04\x07" +
306
+ "\t\x07\x03\x02\x03\x02\x03\x02\x03\x02\x03\x03\x03\x03\x03\x03\x03\x04" +
307
+ "\x03\x04\x03\x04\x03\x05\x03\x05\x03\x05\x07\x05\x1C\n\x05\f\x05\x0E\x05" +
308
+ "\x1F\v\x05\x03\x05\x03\x05\x03\x06\x03\x06\x03\x06\x03\x06\x05\x06\'\n" +
309
+ "\x06\x03\x07\x03\x07\x03\x07\x02\x02\x02\b\x02\x02\x04\x02\x06\x02\b\x02" +
310
+ "\n\x02\f\x02\x02\x03\x03\x02\t\r\x02&\x02\x0E\x03\x02\x02\x02\x04\x12" +
311
+ "\x03\x02\x02\x02\x06\x15\x03\x02\x02\x02\b\x18\x03\x02\x02\x02\n\"\x03" +
312
+ "\x02\x02\x02\f(\x03\x02\x02\x02\x0E\x0F\x05\x04\x03\x02\x0F\x10\x05\x06" +
313
+ "\x04\x02\x10\x11\x05\b\x05\x02\x11\x03\x03\x02\x02\x02\x12\x13\x07\x03" +
314
+ "\x02\x02\x13\x14\x07\x0F\x02\x02\x14\x05\x03\x02\x02\x02\x15\x16\x07\x04" +
315
+ "\x02\x02\x16\x17\x07\x0F\x02\x02\x17\x07\x03\x02\x02\x02\x18\x19\x07\x05" +
316
+ "\x02\x02\x19\x1D\x07\x06\x02\x02\x1A\x1C\x05\n\x06\x02\x1B\x1A\x03\x02" +
317
+ "\x02\x02\x1C\x1F\x03\x02\x02\x02\x1D\x1B\x03\x02\x02\x02\x1D\x1E\x03\x02" +
318
+ "\x02\x02\x1E \x03\x02\x02\x02\x1F\x1D\x03\x02\x02\x02 !\x07\x07\x02\x02" +
319
+ "!\t\x03\x02\x02\x02\"#\x07\x0E\x02\x02#&\x07\b\x02\x02$\'\x07\x0F\x02" +
320
+ "\x02%\'\x05\f\x07\x02&$\x03\x02\x02\x02&%\x03\x02\x02\x02\'\v\x03\x02" +
321
+ "\x02\x02()\t\x02\x02\x02)\r\x03\x02\x02\x02\x04\x1D&";
322
+ public static __ATN: ATN;
323
+ public static get _ATN(): ATN {
324
+ if (!BlendMDPParser.__ATN) {
325
+ BlendMDPParser.__ATN = new ATNDeserializer().deserialize(Utils.toCharArray(BlendMDPParser._serializedATN));
326
+ }
327
+
328
+ return BlendMDPParser.__ATN;
329
+ }
330
+
331
+ }
332
+
333
+ export class ProgramContext extends ParserRuleContext {
334
+ public moduleDefinition(): ModuleDefinitionContext {
335
+ return this.getRuleContext(0, ModuleDefinitionContext);
336
+ }
337
+ public parentDefinition(): ParentDefinitionContext {
338
+ return this.getRuleContext(0, ParentDefinitionContext);
339
+ }
340
+ public propsDefinition(): PropsDefinitionContext {
341
+ return this.getRuleContext(0, PropsDefinitionContext);
342
+ }
343
+ constructor(parent: ParserRuleContext | undefined, invokingState: number) {
344
+ super(parent, invokingState);
345
+ }
346
+ // @Override
347
+ public get ruleIndex(): number { return BlendMDPParser.RULE_program; }
348
+ // @Override
349
+ public enterRule(listener: BlendMDPListener): void {
350
+ if (listener.enterProgram) {
351
+ listener.enterProgram(this);
352
+ }
353
+ }
354
+ // @Override
355
+ public exitRule(listener: BlendMDPListener): void {
356
+ if (listener.exitProgram) {
357
+ listener.exitProgram(this);
358
+ }
359
+ }
360
+ }
361
+
362
+
363
+ export class ModuleDefinitionContext extends ParserRuleContext {
364
+ public CAPITAL_IDENTIFIER(): TerminalNode { return this.getToken(BlendMDPParser.CAPITAL_IDENTIFIER, 0); }
365
+ constructor(parent: ParserRuleContext | undefined, invokingState: number) {
366
+ super(parent, invokingState);
367
+ }
368
+ // @Override
369
+ public get ruleIndex(): number { return BlendMDPParser.RULE_moduleDefinition; }
370
+ // @Override
371
+ public enterRule(listener: BlendMDPListener): void {
372
+ if (listener.enterModuleDefinition) {
373
+ listener.enterModuleDefinition(this);
374
+ }
375
+ }
376
+ // @Override
377
+ public exitRule(listener: BlendMDPListener): void {
378
+ if (listener.exitModuleDefinition) {
379
+ listener.exitModuleDefinition(this);
380
+ }
381
+ }
382
+ }
383
+
384
+
385
+ export class ParentDefinitionContext extends ParserRuleContext {
386
+ public CAPITAL_IDENTIFIER(): TerminalNode { return this.getToken(BlendMDPParser.CAPITAL_IDENTIFIER, 0); }
387
+ constructor(parent: ParserRuleContext | undefined, invokingState: number) {
388
+ super(parent, invokingState);
389
+ }
390
+ // @Override
391
+ public get ruleIndex(): number { return BlendMDPParser.RULE_parentDefinition; }
392
+ // @Override
393
+ public enterRule(listener: BlendMDPListener): void {
394
+ if (listener.enterParentDefinition) {
395
+ listener.enterParentDefinition(this);
396
+ }
397
+ }
398
+ // @Override
399
+ public exitRule(listener: BlendMDPListener): void {
400
+ if (listener.exitParentDefinition) {
401
+ listener.exitParentDefinition(this);
402
+ }
403
+ }
404
+ }
405
+
406
+
407
+ export class PropsDefinitionContext extends ParserRuleContext {
408
+ public propsBodyDefinition(): PropsBodyDefinitionContext[];
409
+ public propsBodyDefinition(i: number): PropsBodyDefinitionContext;
410
+ public propsBodyDefinition(i?: number): PropsBodyDefinitionContext | PropsBodyDefinitionContext[] {
411
+ if (i === undefined) {
412
+ return this.getRuleContexts(PropsBodyDefinitionContext);
413
+ } else {
414
+ return this.getRuleContext(i, PropsBodyDefinitionContext);
415
+ }
416
+ }
417
+ constructor(parent: ParserRuleContext | undefined, invokingState: number) {
418
+ super(parent, invokingState);
419
+ }
420
+ // @Override
421
+ public get ruleIndex(): number { return BlendMDPParser.RULE_propsDefinition; }
422
+ // @Override
423
+ public enterRule(listener: BlendMDPListener): void {
424
+ if (listener.enterPropsDefinition) {
425
+ listener.enterPropsDefinition(this);
426
+ }
427
+ }
428
+ // @Override
429
+ public exitRule(listener: BlendMDPListener): void {
430
+ if (listener.exitPropsDefinition) {
431
+ listener.exitPropsDefinition(this);
432
+ }
433
+ }
434
+ }
435
+
436
+
437
+ export class PropsBodyDefinitionContext extends ParserRuleContext {
438
+ public IDENTIFIER(): TerminalNode { return this.getToken(BlendMDPParser.IDENTIFIER, 0); }
439
+ public CAPITAL_IDENTIFIER(): TerminalNode | undefined { return this.tryGetToken(BlendMDPParser.CAPITAL_IDENTIFIER, 0); }
440
+ public primitiveType(): PrimitiveTypeContext | undefined {
441
+ return this.tryGetRuleContext(0, PrimitiveTypeContext);
442
+ }
443
+ constructor(parent: ParserRuleContext | undefined, invokingState: number) {
444
+ super(parent, invokingState);
445
+ }
446
+ // @Override
447
+ public get ruleIndex(): number { return BlendMDPParser.RULE_propsBodyDefinition; }
448
+ // @Override
449
+ public enterRule(listener: BlendMDPListener): void {
450
+ if (listener.enterPropsBodyDefinition) {
451
+ listener.enterPropsBodyDefinition(this);
452
+ }
453
+ }
454
+ // @Override
455
+ public exitRule(listener: BlendMDPListener): void {
456
+ if (listener.exitPropsBodyDefinition) {
457
+ listener.exitPropsBodyDefinition(this);
458
+ }
459
+ }
460
+ }
461
+
462
+
463
+ export class PrimitiveTypeContext extends ParserRuleContext {
464
+ constructor(parent: ParserRuleContext | undefined, invokingState: number) {
465
+ super(parent, invokingState);
466
+ }
467
+ // @Override
468
+ public get ruleIndex(): number { return BlendMDPParser.RULE_primitiveType; }
469
+ // @Override
470
+ public enterRule(listener: BlendMDPListener): void {
471
+ if (listener.enterPrimitiveType) {
472
+ listener.enterPrimitiveType(this);
473
+ }
474
+ }
475
+ // @Override
476
+ public exitRule(listener: BlendMDPListener): void {
477
+ if (listener.exitPrimitiveType) {
478
+ listener.exitPrimitiveType(this);
479
+ }
480
+ }
481
+ }
482
+
483
+
@@ -0,0 +1,65 @@
1
+ token literal names:
2
+ null
3
+ 'module'
4
+ 'collection'
5
+ '{'
6
+ ','
7
+ '}'
8
+ 'property'
9
+ ':'
10
+ '('
11
+ ')'
12
+ 'reference'
13
+ 'unique'
14
+ 'index'
15
+ '[]'
16
+ '?'
17
+ 'String'
18
+ 'Number'
19
+ 'Boolean'
20
+ 'any'
21
+ 'Object'
22
+ null
23
+ null
24
+ null
25
+
26
+ token symbolic names:
27
+ null
28
+ null
29
+ null
30
+ null
31
+ null
32
+ null
33
+ null
34
+ null
35
+ null
36
+ null
37
+ null
38
+ null
39
+ null
40
+ null
41
+ null
42
+ null
43
+ null
44
+ null
45
+ null
46
+ null
47
+ IDENTIFIER
48
+ CAPITAL_IDENTIFIER
49
+ WS
50
+
51
+ rule names:
52
+ program
53
+ moduleDefinition
54
+ collectionDefinition
55
+ property
56
+ propertyChars
57
+ reference
58
+ mongoChars
59
+ type
60
+ baseType
61
+ primitiveType
62
+
63
+
64
+ atn:
65
+ [3, 51485, 51898, 1421, 44986, 20307, 1543, 60043, 49729, 3, 24, 96, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 3, 2, 3, 2, 6, 2, 25, 10, 2, 13, 2, 14, 2, 26, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 7, 4, 38, 10, 4, 12, 4, 14, 4, 41, 11, 4, 3, 4, 3, 4, 3, 4, 3, 4, 7, 4, 47, 10, 4, 12, 4, 14, 4, 50, 11, 4, 5, 4, 52, 10, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 5, 5, 61, 10, 5, 3, 6, 3, 6, 3, 6, 3, 6, 7, 6, 67, 10, 6, 12, 6, 14, 6, 70, 11, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 5, 7, 79, 10, 7, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 5, 9, 90, 10, 9, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 2, 2, 2, 12, 2, 2, 4, 2, 6, 2, 8, 2, 10, 2, 12, 2, 14, 2, 16, 2, 18, 2, 20, 2, 2, 4, 3, 2, 13, 14, 3, 2, 17, 21, 2, 94, 2, 22, 3, 2, 2, 2, 4, 28, 3, 2, 2, 2, 6, 31, 3, 2, 2, 2, 8, 55, 3, 2, 2, 2, 10, 62, 3, 2, 2, 2, 12, 73, 3, 2, 2, 2, 14, 80, 3, 2, 2, 2, 16, 89, 3, 2, 2, 2, 18, 91, 3, 2, 2, 2, 20, 93, 3, 2, 2, 2, 22, 24, 5, 4, 3, 2, 23, 25, 5, 6, 4, 2, 24, 23, 3, 2, 2, 2, 25, 26, 3, 2, 2, 2, 26, 24, 3, 2, 2, 2, 26, 27, 3, 2, 2, 2, 27, 3, 3, 2, 2, 2, 28, 29, 7, 3, 2, 2, 29, 30, 7, 23, 2, 2, 30, 5, 3, 2, 2, 2, 31, 32, 7, 4, 2, 2, 32, 33, 7, 23, 2, 2, 33, 34, 7, 5, 2, 2, 34, 39, 5, 8, 5, 2, 35, 36, 7, 6, 2, 2, 36, 38, 5, 8, 5, 2, 37, 35, 3, 2, 2, 2, 38, 41, 3, 2, 2, 2, 39, 37, 3, 2, 2, 2, 39, 40, 3, 2, 2, 2, 40, 51, 3, 2, 2, 2, 41, 39, 3, 2, 2, 2, 42, 43, 7, 6, 2, 2, 43, 48, 5, 12, 7, 2, 44, 45, 7, 6, 2, 2, 45, 47, 5, 12, 7, 2, 46, 44, 3, 2, 2, 2, 47, 50, 3, 2, 2, 2, 48, 46, 3, 2, 2, 2, 48, 49, 3, 2, 2, 2, 49, 52, 3, 2, 2, 2, 50, 48, 3, 2, 2, 2, 51, 42, 3, 2, 2, 2, 51, 52, 3, 2, 2, 2, 52, 53, 3, 2, 2, 2, 53, 54, 7, 7, 2, 2, 54, 7, 3, 2, 2, 2, 55, 56, 7, 8, 2, 2, 56, 57, 7, 22, 2, 2, 57, 58, 7, 9, 2, 2, 58, 60, 5, 16, 9, 2, 59, 61, 5, 10, 6, 2, 60, 59, 3, 2, 2, 2, 60, 61, 3, 2, 2, 2, 61, 9, 3, 2, 2, 2, 62, 63, 7, 10, 2, 2, 63, 68, 5, 14, 8, 2, 64, 65, 7, 6, 2, 2, 65, 67, 5, 14, 8, 2, 66, 64, 3, 2, 2, 2, 67, 70, 3, 2, 2, 2, 68, 66, 3, 2, 2, 2, 68, 69, 3, 2, 2, 2, 69, 71, 3, 2, 2, 2, 70, 68, 3, 2, 2, 2, 71, 72, 7, 11, 2, 2, 72, 11, 3, 2, 2, 2, 73, 74, 7, 12, 2, 2, 74, 75, 7, 22, 2, 2, 75, 76, 7, 9, 2, 2, 76, 78, 7, 23, 2, 2, 77, 79, 5, 10, 6, 2, 78, 77, 3, 2, 2, 2, 78, 79, 3, 2, 2, 2, 79, 13, 3, 2, 2, 2, 80, 81, 9, 2, 2, 2, 81, 15, 3, 2, 2, 2, 82, 90, 5, 18, 10, 2, 83, 84, 5, 18, 10, 2, 84, 85, 7, 15, 2, 2, 85, 90, 3, 2, 2, 2, 86, 87, 5, 18, 10, 2, 87, 88, 7, 16, 2, 2, 88, 90, 3, 2, 2, 2, 89, 82, 3, 2, 2, 2, 89, 83, 3, 2, 2, 2, 89, 86, 3, 2, 2, 2, 90, 17, 3, 2, 2, 2, 91, 92, 5, 20, 11, 2, 92, 19, 3, 2, 2, 2, 93, 94, 9, 3, 2, 2, 94, 21, 3, 2, 2, 2, 10, 26, 39, 48, 51, 60, 68, 78, 89]
@@ -0,0 +1,41 @@
1
+ T__0=1
2
+ T__1=2
3
+ T__2=3
4
+ T__3=4
5
+ T__4=5
6
+ T__5=6
7
+ T__6=7
8
+ T__7=8
9
+ T__8=9
10
+ T__9=10
11
+ T__10=11
12
+ T__11=12
13
+ T__12=13
14
+ T__13=14
15
+ T__14=15
16
+ T__15=16
17
+ T__16=17
18
+ T__17=18
19
+ T__18=19
20
+ IDENTIFIER=20
21
+ CAPITAL_IDENTIFIER=21
22
+ WS=22
23
+ 'module'=1
24
+ 'collection'=2
25
+ '{'=3
26
+ ','=4
27
+ '}'=5
28
+ 'property'=6
29
+ ':'=7
30
+ '('=8
31
+ ')'=9
32
+ 'reference'=10
33
+ 'unique'=11
34
+ 'index'=12
35
+ '[]'=13
36
+ '?'=14
37
+ 'String'=15
38
+ 'Number'=16
39
+ 'Boolean'=17
40
+ 'any'=18
41
+ 'Object'=19
@@ -0,0 +1,83 @@
1
+ token literal names:
2
+ null
3
+ 'module'
4
+ 'collection'
5
+ '{'
6
+ ','
7
+ '}'
8
+ 'property'
9
+ ':'
10
+ '('
11
+ ')'
12
+ 'reference'
13
+ 'unique'
14
+ 'index'
15
+ '[]'
16
+ '?'
17
+ 'String'
18
+ 'Number'
19
+ 'Boolean'
20
+ 'any'
21
+ 'Object'
22
+ null
23
+ null
24
+ null
25
+
26
+ token symbolic names:
27
+ null
28
+ null
29
+ null
30
+ null
31
+ null
32
+ null
33
+ null
34
+ null
35
+ null
36
+ null
37
+ null
38
+ null
39
+ null
40
+ null
41
+ null
42
+ null
43
+ null
44
+ null
45
+ null
46
+ null
47
+ IDENTIFIER
48
+ CAPITAL_IDENTIFIER
49
+ WS
50
+
51
+ rule names:
52
+ T__0
53
+ T__1
54
+ T__2
55
+ T__3
56
+ T__4
57
+ T__5
58
+ T__6
59
+ T__7
60
+ T__8
61
+ T__9
62
+ T__10
63
+ T__11
64
+ T__12
65
+ T__13
66
+ T__14
67
+ T__15
68
+ T__16
69
+ T__17
70
+ T__18
71
+ IDENTIFIER
72
+ CAPITAL_IDENTIFIER
73
+ WS
74
+
75
+ channel names:
76
+ DEFAULT_TOKEN_CHANNEL
77
+ HIDDEN
78
+
79
+ mode names:
80
+ DEFAULT_MODE
81
+
82
+ atn:
83
+ [3, 51485, 51898, 1421, 44986, 20307, 1543, 60043, 49729, 2, 24, 168, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 5, 3, 5, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 9, 3, 9, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 7, 21, 150, 10, 21, 12, 21, 14, 21, 153, 11, 21, 3, 22, 3, 22, 7, 22, 157, 10, 22, 12, 22, 14, 22, 160, 11, 22, 3, 23, 6, 23, 163, 10, 23, 13, 23, 14, 23, 164, 3, 23, 3, 23, 2, 2, 2, 24, 3, 2, 3, 5, 2, 4, 7, 2, 5, 9, 2, 6, 11, 2, 7, 13, 2, 8, 15, 2, 9, 17, 2, 10, 19, 2, 11, 21, 2, 12, 23, 2, 13, 25, 2, 14, 27, 2, 15, 29, 2, 16, 31, 2, 17, 33, 2, 18, 35, 2, 19, 37, 2, 20, 39, 2, 21, 41, 2, 22, 43, 2, 23, 45, 2, 24, 3, 2, 6, 4, 2, 97, 97, 99, 124, 6, 2, 50, 59, 67, 92, 97, 97, 99, 124, 3, 2, 67, 92, 5, 2, 11, 12, 15, 15, 34, 34, 2, 170, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 2, 39, 3, 2, 2, 2, 2, 41, 3, 2, 2, 2, 2, 43, 3, 2, 2, 2, 2, 45, 3, 2, 2, 2, 3, 47, 3, 2, 2, 2, 5, 54, 3, 2, 2, 2, 7, 65, 3, 2, 2, 2, 9, 67, 3, 2, 2, 2, 11, 69, 3, 2, 2, 2, 13, 71, 3, 2, 2, 2, 15, 80, 3, 2, 2, 2, 17, 82, 3, 2, 2, 2, 19, 84, 3, 2, 2, 2, 21, 86, 3, 2, 2, 2, 23, 96, 3, 2, 2, 2, 25, 103, 3, 2, 2, 2, 27, 109, 3, 2, 2, 2, 29, 112, 3, 2, 2, 2, 31, 114, 3, 2, 2, 2, 33, 121, 3, 2, 2, 2, 35, 128, 3, 2, 2, 2, 37, 136, 3, 2, 2, 2, 39, 140, 3, 2, 2, 2, 41, 147, 3, 2, 2, 2, 43, 154, 3, 2, 2, 2, 45, 162, 3, 2, 2, 2, 47, 48, 7, 111, 2, 2, 48, 49, 7, 113, 2, 2, 49, 50, 7, 102, 2, 2, 50, 51, 7, 119, 2, 2, 51, 52, 7, 110, 2, 2, 52, 53, 7, 103, 2, 2, 53, 4, 3, 2, 2, 2, 54, 55, 7, 101, 2, 2, 55, 56, 7, 113, 2, 2, 56, 57, 7, 110, 2, 2, 57, 58, 7, 110, 2, 2, 58, 59, 7, 103, 2, 2, 59, 60, 7, 101, 2, 2, 60, 61, 7, 118, 2, 2, 61, 62, 7, 107, 2, 2, 62, 63, 7, 113, 2, 2, 63, 64, 7, 112, 2, 2, 64, 6, 3, 2, 2, 2, 65, 66, 7, 125, 2, 2, 66, 8, 3, 2, 2, 2, 67, 68, 7, 46, 2, 2, 68, 10, 3, 2, 2, 2, 69, 70, 7, 127, 2, 2, 70, 12, 3, 2, 2, 2, 71, 72, 7, 114, 2, 2, 72, 73, 7, 116, 2, 2, 73, 74, 7, 113, 2, 2, 74, 75, 7, 114, 2, 2, 75, 76, 7, 103, 2, 2, 76, 77, 7, 116, 2, 2, 77, 78, 7, 118, 2, 2, 78, 79, 7, 123, 2, 2, 79, 14, 3, 2, 2, 2, 80, 81, 7, 60, 2, 2, 81, 16, 3, 2, 2, 2, 82, 83, 7, 42, 2, 2, 83, 18, 3, 2, 2, 2, 84, 85, 7, 43, 2, 2, 85, 20, 3, 2, 2, 2, 86, 87, 7, 116, 2, 2, 87, 88, 7, 103, 2, 2, 88, 89, 7, 104, 2, 2, 89, 90, 7, 103, 2, 2, 90, 91, 7, 116, 2, 2, 91, 92, 7, 103, 2, 2, 92, 93, 7, 112, 2, 2, 93, 94, 7, 101, 2, 2, 94, 95, 7, 103, 2, 2, 95, 22, 3, 2, 2, 2, 96, 97, 7, 119, 2, 2, 97, 98, 7, 112, 2, 2, 98, 99, 7, 107, 2, 2, 99, 100, 7, 115, 2, 2, 100, 101, 7, 119, 2, 2, 101, 102, 7, 103, 2, 2, 102, 24, 3, 2, 2, 2, 103, 104, 7, 107, 2, 2, 104, 105, 7, 112, 2, 2, 105, 106, 7, 102, 2, 2, 106, 107, 7, 103, 2, 2, 107, 108, 7, 122, 2, 2, 108, 26, 3, 2, 2, 2, 109, 110, 7, 93, 2, 2, 110, 111, 7, 95, 2, 2, 111, 28, 3, 2, 2, 2, 112, 113, 7, 65, 2, 2, 113, 30, 3, 2, 2, 2, 114, 115, 7, 85, 2, 2, 115, 116, 7, 118, 2, 2, 116, 117, 7, 116, 2, 2, 117, 118, 7, 107, 2, 2, 118, 119, 7, 112, 2, 2, 119, 120, 7, 105, 2, 2, 120, 32, 3, 2, 2, 2, 121, 122, 7, 80, 2, 2, 122, 123, 7, 119, 2, 2, 123, 124, 7, 111, 2, 2, 124, 125, 7, 100, 2, 2, 125, 126, 7, 103, 2, 2, 126, 127, 7, 116, 2, 2, 127, 34, 3, 2, 2, 2, 128, 129, 7, 68, 2, 2, 129, 130, 7, 113, 2, 2, 130, 131, 7, 113, 2, 2, 131, 132, 7, 110, 2, 2, 132, 133, 7, 103, 2, 2, 133, 134, 7, 99, 2, 2, 134, 135, 7, 112, 2, 2, 135, 36, 3, 2, 2, 2, 136, 137, 7, 99, 2, 2, 137, 138, 7, 112, 2, 2, 138, 139, 7, 123, 2, 2, 139, 38, 3, 2, 2, 2, 140, 141, 7, 81, 2, 2, 141, 142, 7, 100, 2, 2, 142, 143, 7, 108, 2, 2, 143, 144, 7, 103, 2, 2, 144, 145, 7, 101, 2, 2, 145, 146, 7, 118, 2, 2, 146, 40, 3, 2, 2, 2, 147, 151, 9, 2, 2, 2, 148, 150, 9, 3, 2, 2, 149, 148, 3, 2, 2, 2, 150, 153, 3, 2, 2, 2, 151, 149, 3, 2, 2, 2, 151, 152, 3, 2, 2, 2, 152, 42, 3, 2, 2, 2, 153, 151, 3, 2, 2, 2, 154, 158, 9, 4, 2, 2, 155, 157, 9, 3, 2, 2, 156, 155, 3, 2, 2, 2, 157, 160, 3, 2, 2, 2, 158, 156, 3, 2, 2, 2, 158, 159, 3, 2, 2, 2, 159, 44, 3, 2, 2, 2, 160, 158, 3, 2, 2, 2, 161, 163, 9, 5, 2, 2, 162, 161, 3, 2, 2, 2, 163, 164, 3, 2, 2, 2, 164, 162, 3, 2, 2, 2, 164, 165, 3, 2, 2, 2, 165, 166, 3, 2, 2, 2, 166, 167, 8, 23, 2, 2, 167, 46, 3, 2, 2, 2, 6, 2, 151, 158, 164, 3, 8, 2, 2]