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,520 @@
1
+ // Generated from /Users/govindve/govi/Projects/NodeProjects/blend-cli/src/grammar/BlendData.g4 by ANTLR 4.13.1
2
+ import org.antlr.v4.runtime.atn.*;
3
+ import org.antlr.v4.runtime.dfa.DFA;
4
+ import org.antlr.v4.runtime.*;
5
+ import org.antlr.v4.runtime.misc.*;
6
+ import org.antlr.v4.runtime.tree.*;
7
+ import java.util.List;
8
+ import java.util.Iterator;
9
+ import java.util.ArrayList;
10
+
11
+ @SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast", "CheckReturnValue"})
12
+ public class BlendDataParser extends Parser {
13
+ static { RuntimeMetaData.checkVersion("4.13.1", RuntimeMetaData.VERSION); }
14
+
15
+ protected static final DFA[] _decisionToDFA;
16
+ protected static final PredictionContextCache _sharedContextCache =
17
+ new PredictionContextCache();
18
+ public static final int
19
+ T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9,
20
+ T__9=10, T__10=11, T__11=12, T__12=13, IDENTIFIER=14, CAPITAL_IDENTIFIER=15,
21
+ WS=16;
22
+ public static final int
23
+ RULE_program = 0, RULE_moduleDefinition = 1, RULE_dataDefinition = 2,
24
+ RULE_field = 3, RULE_type = 4, RULE_baseType = 5, RULE_primitiveType = 6;
25
+ private static String[] makeRuleNames() {
26
+ return new String[] {
27
+ "program", "moduleDefinition", "dataDefinition", "field", "type", "baseType",
28
+ "primitiveType"
29
+ };
30
+ }
31
+ public static final String[] ruleNames = makeRuleNames();
32
+
33
+ private static String[] makeLiteralNames() {
34
+ return new String[] {
35
+ null, "'module'", "'data'", "'('", "','", "')'", "':'", "'[]'", "'?'",
36
+ "'->'", "'string'", "'number'", "'boolean'", "'any'"
37
+ };
38
+ }
39
+ private static final String[] _LITERAL_NAMES = makeLiteralNames();
40
+ private static String[] makeSymbolicNames() {
41
+ return new String[] {
42
+ null, null, null, null, null, null, null, null, null, null, null, null,
43
+ null, null, "IDENTIFIER", "CAPITAL_IDENTIFIER", "WS"
44
+ };
45
+ }
46
+ private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
47
+ public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
48
+
49
+ /**
50
+ * @deprecated Use {@link #VOCABULARY} instead.
51
+ */
52
+ @Deprecated
53
+ public static final String[] tokenNames;
54
+ static {
55
+ tokenNames = new String[_SYMBOLIC_NAMES.length];
56
+ for (int i = 0; i < tokenNames.length; i++) {
57
+ tokenNames[i] = VOCABULARY.getLiteralName(i);
58
+ if (tokenNames[i] == null) {
59
+ tokenNames[i] = VOCABULARY.getSymbolicName(i);
60
+ }
61
+
62
+ if (tokenNames[i] == null) {
63
+ tokenNames[i] = "<INVALID>";
64
+ }
65
+ }
66
+ }
67
+
68
+ @Override
69
+ @Deprecated
70
+ public String[] getTokenNames() {
71
+ return tokenNames;
72
+ }
73
+
74
+ @Override
75
+
76
+ public Vocabulary getVocabulary() {
77
+ return VOCABULARY;
78
+ }
79
+
80
+ @Override
81
+ public String getGrammarFileName() { return "BlendData.g4"; }
82
+
83
+ @Override
84
+ public String[] getRuleNames() { return ruleNames; }
85
+
86
+ @Override
87
+ public String getSerializedATN() { return _serializedATN; }
88
+
89
+ @Override
90
+ public ATN getATN() { return _ATN; }
91
+
92
+ public BlendDataParser(TokenStream input) {
93
+ super(input);
94
+ _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
95
+ }
96
+
97
+ @SuppressWarnings("CheckReturnValue")
98
+ public static class ProgramContext extends ParserRuleContext {
99
+ public ModuleDefinitionContext moduleDefinition() {
100
+ return getRuleContext(ModuleDefinitionContext.class,0);
101
+ }
102
+ public TerminalNode EOF() { return getToken(BlendDataParser.EOF, 0); }
103
+ public List<DataDefinitionContext> dataDefinition() {
104
+ return getRuleContexts(DataDefinitionContext.class);
105
+ }
106
+ public DataDefinitionContext dataDefinition(int i) {
107
+ return getRuleContext(DataDefinitionContext.class,i);
108
+ }
109
+ public ProgramContext(ParserRuleContext parent, int invokingState) {
110
+ super(parent, invokingState);
111
+ }
112
+ @Override public int getRuleIndex() { return RULE_program; }
113
+ }
114
+
115
+ public final ProgramContext program() throws RecognitionException {
116
+ ProgramContext _localctx = new ProgramContext(_ctx, getState());
117
+ enterRule(_localctx, 0, RULE_program);
118
+ int _la;
119
+ try {
120
+ enterOuterAlt(_localctx, 1);
121
+ {
122
+ setState(14);
123
+ moduleDefinition();
124
+ setState(16);
125
+ _errHandler.sync(this);
126
+ _la = _input.LA(1);
127
+ do {
128
+ {
129
+ {
130
+ setState(15);
131
+ dataDefinition();
132
+ }
133
+ }
134
+ setState(18);
135
+ _errHandler.sync(this);
136
+ _la = _input.LA(1);
137
+ } while ( _la==T__1 );
138
+ setState(20);
139
+ match(EOF);
140
+ }
141
+ }
142
+ catch (RecognitionException re) {
143
+ _localctx.exception = re;
144
+ _errHandler.reportError(this, re);
145
+ _errHandler.recover(this, re);
146
+ }
147
+ finally {
148
+ exitRule();
149
+ }
150
+ return _localctx;
151
+ }
152
+
153
+ @SuppressWarnings("CheckReturnValue")
154
+ public static class ModuleDefinitionContext extends ParserRuleContext {
155
+ public TerminalNode CAPITAL_IDENTIFIER() { return getToken(BlendDataParser.CAPITAL_IDENTIFIER, 0); }
156
+ public ModuleDefinitionContext(ParserRuleContext parent, int invokingState) {
157
+ super(parent, invokingState);
158
+ }
159
+ @Override public int getRuleIndex() { return RULE_moduleDefinition; }
160
+ }
161
+
162
+ public final ModuleDefinitionContext moduleDefinition() throws RecognitionException {
163
+ ModuleDefinitionContext _localctx = new ModuleDefinitionContext(_ctx, getState());
164
+ enterRule(_localctx, 2, RULE_moduleDefinition);
165
+ try {
166
+ enterOuterAlt(_localctx, 1);
167
+ {
168
+ setState(22);
169
+ match(T__0);
170
+ setState(23);
171
+ match(CAPITAL_IDENTIFIER);
172
+ }
173
+ }
174
+ catch (RecognitionException re) {
175
+ _localctx.exception = re;
176
+ _errHandler.reportError(this, re);
177
+ _errHandler.recover(this, re);
178
+ }
179
+ finally {
180
+ exitRule();
181
+ }
182
+ return _localctx;
183
+ }
184
+
185
+ @SuppressWarnings("CheckReturnValue")
186
+ public static class DataDefinitionContext extends ParserRuleContext {
187
+ public TerminalNode CAPITAL_IDENTIFIER() { return getToken(BlendDataParser.CAPITAL_IDENTIFIER, 0); }
188
+ public List<FieldContext> field() {
189
+ return getRuleContexts(FieldContext.class);
190
+ }
191
+ public FieldContext field(int i) {
192
+ return getRuleContext(FieldContext.class,i);
193
+ }
194
+ public DataDefinitionContext(ParserRuleContext parent, int invokingState) {
195
+ super(parent, invokingState);
196
+ }
197
+ @Override public int getRuleIndex() { return RULE_dataDefinition; }
198
+ }
199
+
200
+ public final DataDefinitionContext dataDefinition() throws RecognitionException {
201
+ DataDefinitionContext _localctx = new DataDefinitionContext(_ctx, getState());
202
+ enterRule(_localctx, 4, RULE_dataDefinition);
203
+ int _la;
204
+ try {
205
+ enterOuterAlt(_localctx, 1);
206
+ {
207
+ setState(25);
208
+ match(T__1);
209
+ setState(26);
210
+ match(CAPITAL_IDENTIFIER);
211
+ setState(27);
212
+ match(T__2);
213
+ setState(28);
214
+ field();
215
+ setState(33);
216
+ _errHandler.sync(this);
217
+ _la = _input.LA(1);
218
+ while (_la==T__3) {
219
+ {
220
+ {
221
+ setState(29);
222
+ match(T__3);
223
+ setState(30);
224
+ field();
225
+ }
226
+ }
227
+ setState(35);
228
+ _errHandler.sync(this);
229
+ _la = _input.LA(1);
230
+ }
231
+ setState(36);
232
+ match(T__4);
233
+ }
234
+ }
235
+ catch (RecognitionException re) {
236
+ _localctx.exception = re;
237
+ _errHandler.reportError(this, re);
238
+ _errHandler.recover(this, re);
239
+ }
240
+ finally {
241
+ exitRule();
242
+ }
243
+ return _localctx;
244
+ }
245
+
246
+ @SuppressWarnings("CheckReturnValue")
247
+ public static class FieldContext extends ParserRuleContext {
248
+ public TerminalNode IDENTIFIER() { return getToken(BlendDataParser.IDENTIFIER, 0); }
249
+ public TypeContext type() {
250
+ return getRuleContext(TypeContext.class,0);
251
+ }
252
+ public FieldContext(ParserRuleContext parent, int invokingState) {
253
+ super(parent, invokingState);
254
+ }
255
+ @Override public int getRuleIndex() { return RULE_field; }
256
+ }
257
+
258
+ public final FieldContext field() throws RecognitionException {
259
+ FieldContext _localctx = new FieldContext(_ctx, getState());
260
+ enterRule(_localctx, 6, RULE_field);
261
+ try {
262
+ enterOuterAlt(_localctx, 1);
263
+ {
264
+ setState(38);
265
+ match(IDENTIFIER);
266
+ setState(39);
267
+ match(T__5);
268
+ setState(40);
269
+ type();
270
+ }
271
+ }
272
+ catch (RecognitionException re) {
273
+ _localctx.exception = re;
274
+ _errHandler.reportError(this, re);
275
+ _errHandler.recover(this, re);
276
+ }
277
+ finally {
278
+ exitRule();
279
+ }
280
+ return _localctx;
281
+ }
282
+
283
+ @SuppressWarnings("CheckReturnValue")
284
+ public static class TypeContext extends ParserRuleContext {
285
+ public List<BaseTypeContext> baseType() {
286
+ return getRuleContexts(BaseTypeContext.class);
287
+ }
288
+ public BaseTypeContext baseType(int i) {
289
+ return getRuleContext(BaseTypeContext.class,i);
290
+ }
291
+ public TypeContext(ParserRuleContext parent, int invokingState) {
292
+ super(parent, invokingState);
293
+ }
294
+ @Override public int getRuleIndex() { return RULE_type; }
295
+ }
296
+
297
+ public final TypeContext type() throws RecognitionException {
298
+ TypeContext _localctx = new TypeContext(_ctx, getState());
299
+ enterRule(_localctx, 8, RULE_type);
300
+ try {
301
+ setState(63);
302
+ _errHandler.sync(this);
303
+ switch ( getInterpreter().adaptivePredict(_input,2,_ctx) ) {
304
+ case 1:
305
+ enterOuterAlt(_localctx, 1);
306
+ {
307
+ setState(42);
308
+ baseType();
309
+ }
310
+ break;
311
+ case 2:
312
+ enterOuterAlt(_localctx, 2);
313
+ {
314
+ setState(43);
315
+ baseType();
316
+ setState(44);
317
+ match(T__6);
318
+ }
319
+ break;
320
+ case 3:
321
+ enterOuterAlt(_localctx, 3);
322
+ {
323
+ setState(46);
324
+ baseType();
325
+ setState(47);
326
+ match(T__7);
327
+ }
328
+ break;
329
+ case 4:
330
+ enterOuterAlt(_localctx, 4);
331
+ {
332
+ setState(49);
333
+ baseType();
334
+ setState(50);
335
+ match(T__8);
336
+ setState(51);
337
+ baseType();
338
+ }
339
+ break;
340
+ case 5:
341
+ enterOuterAlt(_localctx, 5);
342
+ {
343
+ setState(53);
344
+ baseType();
345
+ setState(54);
346
+ match(T__8);
347
+ setState(55);
348
+ baseType();
349
+ setState(56);
350
+ match(T__7);
351
+ }
352
+ break;
353
+ case 6:
354
+ enterOuterAlt(_localctx, 6);
355
+ {
356
+ setState(58);
357
+ baseType();
358
+ setState(59);
359
+ match(T__8);
360
+ setState(60);
361
+ baseType();
362
+ setState(61);
363
+ match(T__6);
364
+ }
365
+ break;
366
+ }
367
+ }
368
+ catch (RecognitionException re) {
369
+ _localctx.exception = re;
370
+ _errHandler.reportError(this, re);
371
+ _errHandler.recover(this, re);
372
+ }
373
+ finally {
374
+ exitRule();
375
+ }
376
+ return _localctx;
377
+ }
378
+
379
+ @SuppressWarnings("CheckReturnValue")
380
+ public static class BaseTypeContext extends ParserRuleContext {
381
+ public PrimitiveTypeContext primitiveType() {
382
+ return getRuleContext(PrimitiveTypeContext.class,0);
383
+ }
384
+ public TerminalNode CAPITAL_IDENTIFIER() { return getToken(BlendDataParser.CAPITAL_IDENTIFIER, 0); }
385
+ public BaseTypeContext(ParserRuleContext parent, int invokingState) {
386
+ super(parent, invokingState);
387
+ }
388
+ @Override public int getRuleIndex() { return RULE_baseType; }
389
+ }
390
+
391
+ public final BaseTypeContext baseType() throws RecognitionException {
392
+ BaseTypeContext _localctx = new BaseTypeContext(_ctx, getState());
393
+ enterRule(_localctx, 10, RULE_baseType);
394
+ try {
395
+ setState(67);
396
+ _errHandler.sync(this);
397
+ switch (_input.LA(1)) {
398
+ case T__9:
399
+ case T__10:
400
+ case T__11:
401
+ case T__12:
402
+ enterOuterAlt(_localctx, 1);
403
+ {
404
+ setState(65);
405
+ primitiveType();
406
+ }
407
+ break;
408
+ case CAPITAL_IDENTIFIER:
409
+ enterOuterAlt(_localctx, 2);
410
+ {
411
+ setState(66);
412
+ match(CAPITAL_IDENTIFIER);
413
+ }
414
+ break;
415
+ default:
416
+ throw new NoViableAltException(this);
417
+ }
418
+ }
419
+ catch (RecognitionException re) {
420
+ _localctx.exception = re;
421
+ _errHandler.reportError(this, re);
422
+ _errHandler.recover(this, re);
423
+ }
424
+ finally {
425
+ exitRule();
426
+ }
427
+ return _localctx;
428
+ }
429
+
430
+ @SuppressWarnings("CheckReturnValue")
431
+ public static class PrimitiveTypeContext extends ParserRuleContext {
432
+ public PrimitiveTypeContext(ParserRuleContext parent, int invokingState) {
433
+ super(parent, invokingState);
434
+ }
435
+ @Override public int getRuleIndex() { return RULE_primitiveType; }
436
+ }
437
+
438
+ public final PrimitiveTypeContext primitiveType() throws RecognitionException {
439
+ PrimitiveTypeContext _localctx = new PrimitiveTypeContext(_ctx, getState());
440
+ enterRule(_localctx, 12, RULE_primitiveType);
441
+ int _la;
442
+ try {
443
+ enterOuterAlt(_localctx, 1);
444
+ {
445
+ setState(69);
446
+ _la = _input.LA(1);
447
+ if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 15360L) != 0)) ) {
448
+ _errHandler.recoverInline(this);
449
+ }
450
+ else {
451
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
452
+ _errHandler.reportMatch(this);
453
+ consume();
454
+ }
455
+ }
456
+ }
457
+ catch (RecognitionException re) {
458
+ _localctx.exception = re;
459
+ _errHandler.reportError(this, re);
460
+ _errHandler.recover(this, re);
461
+ }
462
+ finally {
463
+ exitRule();
464
+ }
465
+ return _localctx;
466
+ }
467
+
468
+ public static final String _serializedATN =
469
+ "\u0004\u0001\u0010H\u0002\u0000\u0007\u0000\u0002\u0001\u0007\u0001\u0002"+
470
+ "\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002\u0004\u0007\u0004\u0002"+
471
+ "\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0001\u0000\u0001\u0000\u0004"+
472
+ "\u0000\u0011\b\u0000\u000b\u0000\f\u0000\u0012\u0001\u0000\u0001\u0000"+
473
+ "\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0001\u0002\u0001\u0002"+
474
+ "\u0001\u0002\u0001\u0002\u0001\u0002\u0005\u0002 \b\u0002\n\u0002\f\u0002"+
475
+ "#\t\u0002\u0001\u0002\u0001\u0002\u0001\u0003\u0001\u0003\u0001\u0003"+
476
+ "\u0001\u0003\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004"+
477
+ "\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004"+
478
+ "\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004"+
479
+ "\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0003\u0004@\b\u0004"+
480
+ "\u0001\u0005\u0001\u0005\u0003\u0005D\b\u0005\u0001\u0006\u0001\u0006"+
481
+ "\u0001\u0006\u0000\u0000\u0007\u0000\u0002\u0004\u0006\b\n\f\u0000\u0001"+
482
+ "\u0001\u0000\n\rH\u0000\u000e\u0001\u0000\u0000\u0000\u0002\u0016\u0001"+
483
+ "\u0000\u0000\u0000\u0004\u0019\u0001\u0000\u0000\u0000\u0006&\u0001\u0000"+
484
+ "\u0000\u0000\b?\u0001\u0000\u0000\u0000\nC\u0001\u0000\u0000\u0000\fE"+
485
+ "\u0001\u0000\u0000\u0000\u000e\u0010\u0003\u0002\u0001\u0000\u000f\u0011"+
486
+ "\u0003\u0004\u0002\u0000\u0010\u000f\u0001\u0000\u0000\u0000\u0011\u0012"+
487
+ "\u0001\u0000\u0000\u0000\u0012\u0010\u0001\u0000\u0000\u0000\u0012\u0013"+
488
+ "\u0001\u0000\u0000\u0000\u0013\u0014\u0001\u0000\u0000\u0000\u0014\u0015"+
489
+ "\u0005\u0000\u0000\u0001\u0015\u0001\u0001\u0000\u0000\u0000\u0016\u0017"+
490
+ "\u0005\u0001\u0000\u0000\u0017\u0018\u0005\u000f\u0000\u0000\u0018\u0003"+
491
+ "\u0001\u0000\u0000\u0000\u0019\u001a\u0005\u0002\u0000\u0000\u001a\u001b"+
492
+ "\u0005\u000f\u0000\u0000\u001b\u001c\u0005\u0003\u0000\u0000\u001c!\u0003"+
493
+ "\u0006\u0003\u0000\u001d\u001e\u0005\u0004\u0000\u0000\u001e \u0003\u0006"+
494
+ "\u0003\u0000\u001f\u001d\u0001\u0000\u0000\u0000 #\u0001\u0000\u0000\u0000"+
495
+ "!\u001f\u0001\u0000\u0000\u0000!\"\u0001\u0000\u0000\u0000\"$\u0001\u0000"+
496
+ "\u0000\u0000#!\u0001\u0000\u0000\u0000$%\u0005\u0005\u0000\u0000%\u0005"+
497
+ "\u0001\u0000\u0000\u0000&\'\u0005\u000e\u0000\u0000\'(\u0005\u0006\u0000"+
498
+ "\u0000()\u0003\b\u0004\u0000)\u0007\u0001\u0000\u0000\u0000*@\u0003\n"+
499
+ "\u0005\u0000+,\u0003\n\u0005\u0000,-\u0005\u0007\u0000\u0000-@\u0001\u0000"+
500
+ "\u0000\u0000./\u0003\n\u0005\u0000/0\u0005\b\u0000\u00000@\u0001\u0000"+
501
+ "\u0000\u000012\u0003\n\u0005\u000023\u0005\t\u0000\u000034\u0003\n\u0005"+
502
+ "\u00004@\u0001\u0000\u0000\u000056\u0003\n\u0005\u000067\u0005\t\u0000"+
503
+ "\u000078\u0003\n\u0005\u000089\u0005\b\u0000\u00009@\u0001\u0000\u0000"+
504
+ "\u0000:;\u0003\n\u0005\u0000;<\u0005\t\u0000\u0000<=\u0003\n\u0005\u0000"+
505
+ "=>\u0005\u0007\u0000\u0000>@\u0001\u0000\u0000\u0000?*\u0001\u0000\u0000"+
506
+ "\u0000?+\u0001\u0000\u0000\u0000?.\u0001\u0000\u0000\u0000?1\u0001\u0000"+
507
+ "\u0000\u0000?5\u0001\u0000\u0000\u0000?:\u0001\u0000\u0000\u0000@\t\u0001"+
508
+ "\u0000\u0000\u0000AD\u0003\f\u0006\u0000BD\u0005\u000f\u0000\u0000CA\u0001"+
509
+ "\u0000\u0000\u0000CB\u0001\u0000\u0000\u0000D\u000b\u0001\u0000\u0000"+
510
+ "\u0000EF\u0007\u0000\u0000\u0000F\r\u0001\u0000\u0000\u0000\u0004\u0012"+
511
+ "!?C";
512
+ public static final ATN _ATN =
513
+ new ATNDeserializer().deserialize(_serializedATN.toCharArray());
514
+ static {
515
+ _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
516
+ for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
517
+ _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
518
+ }
519
+ }
520
+ }
@@ -0,0 +1,45 @@
1
+ token literal names:
2
+ null
3
+ 'module'
4
+ 'parent'
5
+ 'props'
6
+ '{'
7
+ '}'
8
+ ':'
9
+ 'string'
10
+ 'number'
11
+ 'boolean'
12
+ 'any'
13
+ 'object'
14
+ null
15
+ null
16
+ null
17
+
18
+ token symbolic names:
19
+ null
20
+ null
21
+ null
22
+ null
23
+ null
24
+ null
25
+ null
26
+ null
27
+ null
28
+ null
29
+ null
30
+ null
31
+ IDENTIFIER
32
+ CAPITAL_IDENTIFIER
33
+ WS
34
+
35
+ rule names:
36
+ program
37
+ moduleDefinition
38
+ parentDefinition
39
+ propsDefinition
40
+ propsBodyDefinition
41
+ primitiveType
42
+
43
+
44
+ atn:
45
+ [4, 1, 14, 41, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 5, 3, 26, 8, 3, 10, 3, 12, 3, 29, 9, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 37, 8, 4, 1, 5, 1, 5, 1, 5, 0, 0, 6, 0, 2, 4, 6, 8, 10, 0, 1, 1, 0, 7, 11, 36, 0, 12, 1, 0, 0, 0, 2, 16, 1, 0, 0, 0, 4, 19, 1, 0, 0, 0, 6, 22, 1, 0, 0, 0, 8, 32, 1, 0, 0, 0, 10, 38, 1, 0, 0, 0, 12, 13, 3, 2, 1, 0, 13, 14, 3, 4, 2, 0, 14, 15, 3, 6, 3, 0, 15, 1, 1, 0, 0, 0, 16, 17, 5, 1, 0, 0, 17, 18, 5, 13, 0, 0, 18, 3, 1, 0, 0, 0, 19, 20, 5, 2, 0, 0, 20, 21, 5, 13, 0, 0, 21, 5, 1, 0, 0, 0, 22, 23, 5, 3, 0, 0, 23, 27, 5, 4, 0, 0, 24, 26, 3, 8, 4, 0, 25, 24, 1, 0, 0, 0, 26, 29, 1, 0, 0, 0, 27, 25, 1, 0, 0, 0, 27, 28, 1, 0, 0, 0, 28, 30, 1, 0, 0, 0, 29, 27, 1, 0, 0, 0, 30, 31, 5, 5, 0, 0, 31, 7, 1, 0, 0, 0, 32, 33, 5, 12, 0, 0, 33, 36, 5, 6, 0, 0, 34, 37, 5, 13, 0, 0, 35, 37, 3, 10, 5, 0, 36, 34, 1, 0, 0, 0, 36, 35, 1, 0, 0, 0, 37, 9, 1, 0, 0, 0, 38, 39, 7, 0, 0, 0, 39, 11, 1, 0, 0, 0, 2, 27, 36]
@@ -0,0 +1,25 @@
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
+ IDENTIFIER=12
13
+ CAPITAL_IDENTIFIER=13
14
+ WS=14
15
+ 'module'=1
16
+ 'parent'=2
17
+ 'props'=3
18
+ '{'=4
19
+ '}'=5
20
+ ':'=6
21
+ 'string'=7
22
+ 'number'=8
23
+ 'boolean'=9
24
+ 'any'=10
25
+ 'object'=11
@@ -0,0 +1,59 @@
1
+ token literal names:
2
+ null
3
+ 'module'
4
+ 'parent'
5
+ 'props'
6
+ '{'
7
+ '}'
8
+ ':'
9
+ 'string'
10
+ 'number'
11
+ 'boolean'
12
+ 'any'
13
+ 'object'
14
+ null
15
+ null
16
+ null
17
+
18
+ token symbolic names:
19
+ null
20
+ null
21
+ null
22
+ null
23
+ null
24
+ null
25
+ null
26
+ null
27
+ null
28
+ null
29
+ null
30
+ null
31
+ IDENTIFIER
32
+ CAPITAL_IDENTIFIER
33
+ WS
34
+
35
+ rule names:
36
+ T__0
37
+ T__1
38
+ T__2
39
+ T__3
40
+ T__4
41
+ T__5
42
+ T__6
43
+ T__7
44
+ T__8
45
+ T__9
46
+ T__10
47
+ IDENTIFIER
48
+ CAPITAL_IDENTIFIER
49
+ WS
50
+
51
+ channel names:
52
+ DEFAULT_TOKEN_CHANNEL
53
+ HIDDEN
54
+
55
+ mode names:
56
+ DEFAULT_MODE
57
+
58
+ atn:
59
+ [4, 0, 14, 109, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 5, 11, 91, 8, 11, 10, 11, 12, 11, 94, 9, 11, 1, 12, 1, 12, 5, 12, 98, 8, 12, 10, 12, 12, 12, 101, 9, 12, 1, 13, 4, 13, 104, 8, 13, 11, 13, 12, 13, 105, 1, 13, 1, 13, 0, 0, 14, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, 13, 27, 14, 1, 0, 4, 2, 0, 95, 95, 97, 122, 4, 0, 48, 57, 65, 90, 95, 95, 97, 122, 1, 0, 65, 90, 3, 0, 9, 10, 13, 13, 32, 32, 111, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 1, 29, 1, 0, 0, 0, 3, 36, 1, 0, 0, 0, 5, 43, 1, 0, 0, 0, 7, 49, 1, 0, 0, 0, 9, 51, 1, 0, 0, 0, 11, 53, 1, 0, 0, 0, 13, 55, 1, 0, 0, 0, 15, 62, 1, 0, 0, 0, 17, 69, 1, 0, 0, 0, 19, 77, 1, 0, 0, 0, 21, 81, 1, 0, 0, 0, 23, 88, 1, 0, 0, 0, 25, 95, 1, 0, 0, 0, 27, 103, 1, 0, 0, 0, 29, 30, 5, 109, 0, 0, 30, 31, 5, 111, 0, 0, 31, 32, 5, 100, 0, 0, 32, 33, 5, 117, 0, 0, 33, 34, 5, 108, 0, 0, 34, 35, 5, 101, 0, 0, 35, 2, 1, 0, 0, 0, 36, 37, 5, 112, 0, 0, 37, 38, 5, 97, 0, 0, 38, 39, 5, 114, 0, 0, 39, 40, 5, 101, 0, 0, 40, 41, 5, 110, 0, 0, 41, 42, 5, 116, 0, 0, 42, 4, 1, 0, 0, 0, 43, 44, 5, 112, 0, 0, 44, 45, 5, 114, 0, 0, 45, 46, 5, 111, 0, 0, 46, 47, 5, 112, 0, 0, 47, 48, 5, 115, 0, 0, 48, 6, 1, 0, 0, 0, 49, 50, 5, 123, 0, 0, 50, 8, 1, 0, 0, 0, 51, 52, 5, 125, 0, 0, 52, 10, 1, 0, 0, 0, 53, 54, 5, 58, 0, 0, 54, 12, 1, 0, 0, 0, 55, 56, 5, 115, 0, 0, 56, 57, 5, 116, 0, 0, 57, 58, 5, 114, 0, 0, 58, 59, 5, 105, 0, 0, 59, 60, 5, 110, 0, 0, 60, 61, 5, 103, 0, 0, 61, 14, 1, 0, 0, 0, 62, 63, 5, 110, 0, 0, 63, 64, 5, 117, 0, 0, 64, 65, 5, 109, 0, 0, 65, 66, 5, 98, 0, 0, 66, 67, 5, 101, 0, 0, 67, 68, 5, 114, 0, 0, 68, 16, 1, 0, 0, 0, 69, 70, 5, 98, 0, 0, 70, 71, 5, 111, 0, 0, 71, 72, 5, 111, 0, 0, 72, 73, 5, 108, 0, 0, 73, 74, 5, 101, 0, 0, 74, 75, 5, 97, 0, 0, 75, 76, 5, 110, 0, 0, 76, 18, 1, 0, 0, 0, 77, 78, 5, 97, 0, 0, 78, 79, 5, 110, 0, 0, 79, 80, 5, 121, 0, 0, 80, 20, 1, 0, 0, 0, 81, 82, 5, 111, 0, 0, 82, 83, 5, 98, 0, 0, 83, 84, 5, 106, 0, 0, 84, 85, 5, 101, 0, 0, 85, 86, 5, 99, 0, 0, 86, 87, 5, 116, 0, 0, 87, 22, 1, 0, 0, 0, 88, 92, 7, 0, 0, 0, 89, 91, 7, 1, 0, 0, 90, 89, 1, 0, 0, 0, 91, 94, 1, 0, 0, 0, 92, 90, 1, 0, 0, 0, 92, 93, 1, 0, 0, 0, 93, 24, 1, 0, 0, 0, 94, 92, 1, 0, 0, 0, 95, 99, 7, 2, 0, 0, 96, 98, 7, 1, 0, 0, 97, 96, 1, 0, 0, 0, 98, 101, 1, 0, 0, 0, 99, 97, 1, 0, 0, 0, 99, 100, 1, 0, 0, 0, 100, 26, 1, 0, 0, 0, 101, 99, 1, 0, 0, 0, 102, 104, 7, 3, 0, 0, 103, 102, 1, 0, 0, 0, 104, 105, 1, 0, 0, 0, 105, 103, 1, 0, 0, 0, 105, 106, 1, 0, 0, 0, 106, 107, 1, 0, 0, 0, 107, 108, 6, 13, 0, 0, 108, 28, 1, 0, 0, 0, 4, 0, 92, 99, 105, 1, 6, 0, 0]