@cparra/apex-reflection 0.1.0-alpha.0 → 0.1.1-alpha.10

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 (158) hide show
  1. package/__tests__/end-to-end.test.ts +256 -0
  2. package/coverage/clover.xml +12857 -0
  3. package/coverage/coverage-final.json +3 -0
  4. package/coverage/lcov-report/base.css +224 -0
  5. package/coverage/lcov-report/block-navigation.js +79 -0
  6. package/coverage/lcov-report/favicon.png +0 -0
  7. package/coverage/lcov-report/index.html +126 -0
  8. package/coverage/lcov-report/index.js.html +104 -0
  9. package/coverage/lcov-report/out.js.html +41126 -0
  10. package/coverage/lcov-report/prettify.css +1 -0
  11. package/coverage/lcov-report/prettify.js +2 -0
  12. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  13. package/coverage/lcov-report/sorter.js +170 -0
  14. package/coverage/lcov.info +24801 -0
  15. package/index.d.ts +118 -0
  16. package/index.js +8 -0
  17. package/index.ts +141 -0
  18. package/jest.config.js +11 -0
  19. package/out.js +13708 -0
  20. package/package.json +22 -17
  21. package/tsconfig.json +5 -3
  22. package/.idea/apexdocs-dart.iml +0 -18
  23. package/.idea/jsLibraryMappings.xml +0 -6
  24. package/.idea/libraries/Dart_Packages.xml +0 -556
  25. package/.idea/libraries/Dart_SDK.xml +0 -28
  26. package/.idea/misc.xml +0 -6
  27. package/.idea/modules.xml +0 -8
  28. package/.idea/runConfigurations/_template__of_Dart_Test.xml +0 -6
  29. package/.idea/vcs.xml +0 -6
  30. package/CHANGELOG.md +0 -3
  31. package/README.md +0 -26
  32. package/TODO.md +0 -5
  33. package/analysis_options.yaml +0 -30
  34. package/antlr4-4.9.2/CHANGELOG.md +0 -4
  35. package/antlr4-4.9.2/LICENSE +0 -52
  36. package/antlr4-4.9.2/README.md +0 -11
  37. package/antlr4-4.9.2/analysis_options.yaml +0 -1
  38. package/antlr4-4.9.2/lib/antlr4.dart +0 -21
  39. package/antlr4-4.9.2/lib/src/atn/atn.dart +0 -18
  40. package/antlr4-4.9.2/lib/src/atn/src/atn.dart +0 -170
  41. package/antlr4-4.9.2/lib/src/atn/src/atn_config.dart +0 -242
  42. package/antlr4-4.9.2/lib/src/atn/src/atn_config_set.dart +0 -283
  43. package/antlr4-4.9.2/lib/src/atn/src/atn_deserializer.dart +0 -809
  44. package/antlr4-4.9.2/lib/src/atn/src/atn_simulator.dart +0 -95
  45. package/antlr4-4.9.2/lib/src/atn/src/atn_state.dart +0 -296
  46. package/antlr4-4.9.2/lib/src/atn/src/atn_type.dart +0 -14
  47. package/antlr4-4.9.2/lib/src/atn/src/info.dart +0 -553
  48. package/antlr4-4.9.2/lib/src/atn/src/lexer_action.dart +0 -601
  49. package/antlr4-4.9.2/lib/src/atn/src/lexer_action_executor.dart +0 -167
  50. package/antlr4-4.9.2/lib/src/atn/src/lexer_atn_simulator.dart +0 -731
  51. package/antlr4-4.9.2/lib/src/atn/src/parser_atn_simulator.dart +0 -2630
  52. package/antlr4-4.9.2/lib/src/atn/src/profiling_atn_simulator.dart +0 -229
  53. package/antlr4-4.9.2/lib/src/atn/src/semantic_context.dart +0 -404
  54. package/antlr4-4.9.2/lib/src/atn/src/transition.dart +0 -305
  55. package/antlr4-4.9.2/lib/src/dfa/dfa.dart +0 -8
  56. package/antlr4-4.9.2/lib/src/dfa/src/dfa.dart +0 -138
  57. package/antlr4-4.9.2/lib/src/dfa/src/dfa_serializer.dart +0 -76
  58. package/antlr4-4.9.2/lib/src/dfa/src/dfa_state.dart +0 -151
  59. package/antlr4-4.9.2/lib/src/error/error.dart +0 -10
  60. package/antlr4-4.9.2/lib/src/error/src/diagnostic_error_listener.dart +0 -116
  61. package/antlr4-4.9.2/lib/src/error/src/error_listener.dart +0 -241
  62. package/antlr4-4.9.2/lib/src/error/src/error_strategy.dart +0 -902
  63. package/antlr4-4.9.2/lib/src/error/src/errors.dart +0 -204
  64. package/antlr4-4.9.2/lib/src/input_stream.dart +0 -335
  65. package/antlr4-4.9.2/lib/src/interval_set.dart +0 -735
  66. package/antlr4-4.9.2/lib/src/lexer.dart +0 -343
  67. package/antlr4-4.9.2/lib/src/ll1_analyzer.dart +0 -204
  68. package/antlr4-4.9.2/lib/src/misc/multi_map.dart +0 -32
  69. package/antlr4-4.9.2/lib/src/misc/pair.dart +0 -34
  70. package/antlr4-4.9.2/lib/src/parser.dart +0 -777
  71. package/antlr4-4.9.2/lib/src/parser_interpreter.dart +0 -393
  72. package/antlr4-4.9.2/lib/src/parser_rule_context.dart +0 -275
  73. package/antlr4-4.9.2/lib/src/prediction_context.dart +0 -877
  74. package/antlr4-4.9.2/lib/src/recognizer.dart +0 -182
  75. package/antlr4-4.9.2/lib/src/rule_context.dart +0 -192
  76. package/antlr4-4.9.2/lib/src/runtime_meta_data.dart +0 -188
  77. package/antlr4-4.9.2/lib/src/token.dart +0 -431
  78. package/antlr4-4.9.2/lib/src/token_factory.dart +0 -88
  79. package/antlr4-4.9.2/lib/src/token_source.dart +0 -241
  80. package/antlr4-4.9.2/lib/src/token_stream.dart +0 -627
  81. package/antlr4-4.9.2/lib/src/tree/src/pattern/chunk.dart +0 -90
  82. package/antlr4-4.9.2/lib/src/tree/src/pattern/parse_tree_match.dart +0 -635
  83. package/antlr4-4.9.2/lib/src/tree/src/tree.dart +0 -370
  84. package/antlr4-4.9.2/lib/src/tree/src/trees.dart +0 -226
  85. package/antlr4-4.9.2/lib/src/tree/tree.dart +0 -10
  86. package/antlr4-4.9.2/lib/src/util/bit_set.dart +0 -308
  87. package/antlr4-4.9.2/lib/src/util/murmur_hash.dart +0 -77
  88. package/antlr4-4.9.2/lib/src/util/utils.dart +0 -31
  89. package/antlr4-4.9.2/lib/src/vocabulary.dart +0 -254
  90. package/antlr4-4.9.2/pubspec.yaml +0 -13
  91. package/example/node_example/index.js +0 -8
  92. package/example/node_example/package.json +0 -12
  93. package/example/node_example_ts/package-lock.json +0 -70
  94. package/example/node_example_ts/package.json +0 -19
  95. package/example/node_example_ts/src/index.js +0 -5
  96. package/example/node_example_ts/src/index.ts +0 -9
  97. package/example/node_example_ts/tsconfig.json +0 -79
  98. package/js/dart2jsout.js +0 -25898
  99. package/js/dart2jsout.js.map +0 -16
  100. package/js/index.d.ts +0 -1
  101. package/js/index.js +0 -4
  102. package/js/out.js +0 -26023
  103. package/js/out.js.map +0 -16
  104. package/js/package-lock.json +0 -57
  105. package/js/preamble.js +0 -125
  106. package/lib/apexdocs_dart.dart +0 -28
  107. package/lib/src/antlr/grammars/Apexdoc/ApexdocLexer.g4 +0 -120
  108. package/lib/src/antlr/grammars/Apexdoc/ApexdocParser.g4 +0 -158
  109. package/lib/src/antlr/grammars/Apexdoc/gen/ApexdocLexer.interp +0 -95
  110. package/lib/src/antlr/grammars/Apexdoc/gen/ApexdocLexer.java +0 -238
  111. package/lib/src/antlr/grammars/Apexdoc/gen/ApexdocLexer.tokens +0 -23
  112. package/lib/src/antlr/grammars/apex/ApexLexer.g4 +0 -255
  113. package/lib/src/antlr/grammars/apex/ApexParser.g4 +0 -567
  114. package/lib/src/antlr/grammars/apex/examples/ApexClass.cls +0 -6
  115. package/lib/src/antlr/lib/apex/ApexLexer.dart +0 -1223
  116. package/lib/src/antlr/lib/apex/ApexLexer.interp +0 -393
  117. package/lib/src/antlr/lib/apex/ApexLexer.tokens +0 -212
  118. package/lib/src/antlr/lib/apex/ApexParser.dart +0 -9349
  119. package/lib/src/antlr/lib/apex/ApexParser.interp +0 -326
  120. package/lib/src/antlr/lib/apex/ApexParser.tokens +0 -212
  121. package/lib/src/antlr/lib/apex/ApexParserBaseListener.dart +0 -1036
  122. package/lib/src/antlr/lib/apex/ApexParserListener.dart +0 -975
  123. package/lib/src/antlr/lib/apexdoc/ApexdocLexer.dart +0 -373
  124. package/lib/src/antlr/lib/apexdoc/ApexdocLexer.interp +0 -95
  125. package/lib/src/antlr/lib/apexdoc/ApexdocLexer.tokens +0 -23
  126. package/lib/src/antlr/lib/apexdoc/ApexdocParser.dart +0 -2471
  127. package/lib/src/antlr/lib/apexdoc/ApexdocParser.interp +0 -69
  128. package/lib/src/antlr/lib/apexdoc/ApexdocParser.tokens +0 -23
  129. package/lib/src/antlr/lib/apexdoc/ApexdocParserBaseListener.dart +0 -252
  130. package/lib/src/antlr/lib/apexdoc/ApexdocParserListener.dart +0 -215
  131. package/lib/src/builders/builders.dart +0 -32
  132. package/lib/src/model/apex_file_manifest.dart +0 -37
  133. package/lib/src/model/apex_file_manifest.g.dart +0 -18
  134. package/lib/src/model/declaration.dart +0 -50
  135. package/lib/src/model/doc_comment.dart +0 -117
  136. package/lib/src/model/doc_comment.g.dart +0 -118
  137. package/lib/src/model/members.dart +0 -143
  138. package/lib/src/model/members.g.dart +0 -105
  139. package/lib/src/model/types.dart +0 -159
  140. package/lib/src/model/types.g.dart +0 -111
  141. package/lib/src/service/apex_listener.dart +0 -226
  142. package/lib/src/service/apexdoc_listener.dart +0 -82
  143. package/lib/src/service/parsers.dart +0 -33
  144. package/lib/src/service/utils/parsing/access_modifiers_parser.dart +0 -33
  145. package/lib/src/service/utils/parsing/parameters_parser.dart +0 -18
  146. package/lib/src/service/utils/parsing/parsing_utils.dart +0 -2
  147. package/lib/src/service/walker.dart +0 -82
  148. package/pubspec.yaml +0 -19
  149. package/test/apex_file_manifest_test.dart +0 -16
  150. package/test/apex_listener_test.dart +0 -703
  151. package/test/apexdoc_parser_test.dart +0 -179
  152. package/test/doc_comment_test.dart +0 -89
  153. package/test/members_serialization_test.dart +0 -158
  154. package/test/members_test.dart +0 -178
  155. package/test/types_serialization_test.dart +0 -191
  156. package/test/types_test.dart +0 -311
  157. package/test/walker_test.dart +0 -58
  158. package/tool/grind.dart +0 -20
@@ -1,57 +0,0 @@
1
- {
2
- "name": "@cparra/apex-reflection",
3
- "version": "0.0.2",
4
- "lockfileVersion": 2,
5
- "requires": true,
6
- "packages": {
7
- "": {
8
- "name": "@cparra/apex-reflection",
9
- "version": "0.0.2",
10
- "license": "ISC",
11
- "devDependencies": {
12
- "@types/typescript": "^2.0.0",
13
- "typescript": "^4.4.3"
14
- }
15
- },
16
- "node_modules/@types/typescript": {
17
- "version": "2.0.0",
18
- "resolved": "https://registry.npmjs.org/@types/typescript/-/typescript-2.0.0.tgz",
19
- "integrity": "sha1-xDNTnJi64oaCswfqp6D9IRW4PCg=",
20
- "deprecated": "This is a stub types definition for TypeScript (https://github.com/Microsoft/TypeScript). TypeScript provides its own type definitions, so you don't need @types/typescript installed!",
21
- "dev": true,
22
- "dependencies": {
23
- "typescript": "*"
24
- }
25
- },
26
- "node_modules/typescript": {
27
- "version": "4.4.3",
28
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.3.tgz",
29
- "integrity": "sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==",
30
- "dev": true,
31
- "bin": {
32
- "tsc": "bin/tsc",
33
- "tsserver": "bin/tsserver"
34
- },
35
- "engines": {
36
- "node": ">=4.2.0"
37
- }
38
- }
39
- },
40
- "dependencies": {
41
- "@types/typescript": {
42
- "version": "2.0.0",
43
- "resolved": "https://registry.npmjs.org/@types/typescript/-/typescript-2.0.0.tgz",
44
- "integrity": "sha1-xDNTnJi64oaCswfqp6D9IRW4PCg=",
45
- "dev": true,
46
- "requires": {
47
- "typescript": "*"
48
- }
49
- },
50
- "typescript": {
51
- "version": "4.4.3",
52
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.3.tgz",
53
- "integrity": "sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==",
54
- "dev": true
55
- }
56
- }
57
- }
package/js/preamble.js DELETED
@@ -1,125 +0,0 @@
1
- // make sure to keep this as 'var'
2
- // we don't want block scoping
3
-
4
- var dartNodePreambleSelf = typeof global !== "undefined" ? global : window;
5
-
6
- var self = Object.create(dartNodePreambleSelf);
7
-
8
- self.scheduleImmediate = typeof setImmediate !== "undefined"
9
- ? function (cb) {
10
- setImmediate(cb);
11
- }
12
- : function (cb) {
13
- setTimeout(cb, 0);
14
- };
15
-
16
- // CommonJS globals.
17
- self.require = require;
18
- self.exports = exports;
19
-
20
- // Node.js specific exports, check to see if they exist & or polyfilled
21
-
22
- if (typeof process !== "undefined") {
23
- self.process = process;
24
- }
25
-
26
- if (typeof __dirname !== "undefined") {
27
- self.__dirname = __dirname;
28
- }
29
-
30
- if (typeof __filename !== "undefined") {
31
- self.__filename = __filename;
32
- }
33
-
34
- if (typeof Buffer !== "undefined") {
35
- self.Buffer = Buffer;
36
- }
37
-
38
- // if we're running in a browser, Dart supports most of this out of box
39
- // make sure we only run these in Node.js environment
40
-
41
- var dartNodeIsActuallyNode = !dartNodePreambleSelf.window
42
-
43
- try {
44
- // Check if we're in a Web Worker instead.
45
- if ("undefined" !== typeof WorkerGlobalScope && dartNodePreambleSelf instanceof WorkerGlobalScope) {
46
- dartNodeIsActuallyNode = false;
47
- }
48
-
49
- // Check if we're in Electron, with Node.js integration, and override if true.
50
- if ("undefined" !== typeof process && process.versions && process.versions.hasOwnProperty('electron') && process.versions.hasOwnProperty('node')) {
51
- dartNodeIsActuallyNode = true;
52
- }
53
- } catch (e) {
54
- }
55
-
56
- if (dartNodeIsActuallyNode) {
57
- // This line is to:
58
- // 1) Prevent Webpack from bundling.
59
- // 2) In Webpack on Node.js, make sure we're using the native Node.js require, which is available via __non_webpack_require__
60
- // https://github.com/mbullington/node_preamble.dart/issues/18#issuecomment-527305561
61
- var url = ("undefined" !== typeof __webpack_require__ ? __non_webpack_require__ : require)("url");
62
-
63
- // Setting `self.location=` in Electron throws a `TypeError`, so we define it
64
- // as a property instead to be safe.
65
- Object.defineProperty(self, "location", {
66
- value: {
67
- get href() {
68
- if (url.pathToFileURL) {
69
- return url.pathToFileURL(process.cwd()).href + "/";
70
- } else {
71
- // This isn't really a correct transformation, but it's the best we have
72
- // for versions of Node <10.12.0 which introduced `url.pathToFileURL()`.
73
- // For example, it will fail for paths that contain characters that need
74
- // to be escaped in URLs.
75
- return "file://" + (function () {
76
- var cwd = process.cwd();
77
- if (process.platform != "win32") return cwd;
78
- return "/" + cwd.replace(/\\/g, "/");
79
- })() + "/"
80
- }
81
- }
82
- }
83
- });
84
-
85
- (function () {
86
- function computeCurrentScript() {
87
- try {
88
- throw new Error();
89
- } catch (e) {
90
- var stack = e.stack;
91
- var re = new RegExp("^ *at [^(]*\\((.*):[0-9]*:[0-9]*\\)$", "mg");
92
- var lastMatch = null;
93
- do {
94
- var match = re.exec(stack);
95
- if (match != null) lastMatch = match;
96
- } while (match != null);
97
- return lastMatch[1];
98
- }
99
- }
100
-
101
- // Setting `self.document=` isn't known to throw an error anywhere like
102
- // `self.location=` does on Electron, but it's better to be future-proof
103
- // just in case..
104
- var cachedCurrentScript = null;
105
- Object.defineProperty(self, "document", {
106
- value: {
107
- get currentScript() {
108
- if (cachedCurrentScript == null) {
109
- cachedCurrentScript = {src: computeCurrentScript()};
110
- }
111
- return cachedCurrentScript;
112
- }
113
- }
114
- });
115
- })();
116
-
117
- self.dartDeferredLibraryLoader = function (uri, successCallback, errorCallback) {
118
- try {
119
- load(uri);
120
- successCallback();
121
- } catch (error) {
122
- errorCallback(error);
123
- }
124
- };
125
- }
@@ -1,28 +0,0 @@
1
- // @dart=2.9
2
-
3
- @JS()
4
- library apex_reflection;
5
-
6
- import 'dart:convert';
7
-
8
- import 'package:js/js.dart';
9
- import 'package:apexdocs_dart/src/service/parsers.dart';
10
-
11
- @JS()
12
- class Exports {
13
- external set run_(Function function);
14
-
15
- external set reflect(Function function);
16
- }
17
-
18
- @JS()
19
- external Exports get exports;
20
-
21
- String _parseFromDeclarationBody(String declarationBody) {
22
- return jsonEncode(ApexParser.parseFromBody(declarationBody));
23
- }
24
-
25
- void main() {
26
- exports.reflect = allowInterop(
27
- (String declarationBody) => _parseFromDeclarationBody(declarationBody));
28
- }
@@ -1,120 +0,0 @@
1
- /*
2
- [The "BSD licence"]
3
- Copyright (c) 2016 Pascal Gruen
4
- All rights reserved.
5
- Redistribution and use in source and binary forms, with or without
6
- modification, are permitted provided that the following conditions
7
- are met:
8
- 1. Redistributions of source code must retain the above copyright
9
- notice, this list of conditions and the following disclaimer.
10
- 2. Redistributions in binary form must reproduce the above copyright
11
- notice, this list of conditions and the following disclaimer in the
12
- documentation and/or other materials provided with the distribution.
13
- 3. The name of the author may not be used to endorse or promote products
14
- derived from this software without specific prior written permission.
15
- THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16
- IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17
- OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18
- IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19
- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20
- NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
- */
26
-
27
- lexer grammar ApexdocLexer;
28
-
29
- // Keywords
30
- PARAM: AT P A R A M;
31
- RETURN: AT R E T U R N;
32
- EXAMPLE: AT E X A M P L E;
33
- THROWS: AT T H R O W S;
34
- EXCEPTION: AT E X C E P T I O N;
35
-
36
- NAME
37
- : [a-zA-Z]+ JavaLetterOrDigit?
38
- ;
39
-
40
- fragment
41
- JavaLetterOrDigit
42
- : [a-zA-Z0-9$_] // these are the "java letters or digits" below 0xFF
43
- | // covers all characters above 0xFF which are not a surrogate
44
- ~[\u0000-\u00FF\uD800-\uDBFF]
45
- | // covers UTF-16 surrogate pairs encodings for U+10000 to U+10FFFF
46
- [\uD800-\uDBFF] [\uDC00-\uDFFF]
47
- ;
48
-
49
- NEWLINE
50
- : '\n' (SPACE? (STAR {inputStream.LA(1) != '/'}?)+)?
51
- | '\r\n' (SPACE? (STAR {inputStream.LA(1) != '/'}?)+)?
52
- | '\r' (SPACE? (STAR {inputStream.LA(1) != '/'}?)+)?
53
- ;
54
-
55
- SPACE
56
- : [ \t\r\n\u000C]+
57
- ;
58
-
59
- TEXT_CONTENT
60
- : ~[\n\r\t @*{}/a-zA-Z]+
61
- ;
62
-
63
- AT
64
- : '@'
65
- ;
66
-
67
- STAR
68
- : '*'
69
- ;
70
-
71
- SLASH
72
- : '/'
73
- ;
74
-
75
- JAVADOC_START
76
- : '/**' STAR*
77
- ;
78
-
79
- JAVADOC_END
80
- : SPACE? STAR* '*/'
81
- ;
82
-
83
- INLINE_TAG_START
84
- : '{@'
85
- ;
86
-
87
- BRACE_OPEN
88
- : '{'
89
- ;
90
-
91
- BRACE_CLOSE
92
- : '}'
93
- ;
94
-
95
- fragment A:('a'|'A');
96
- fragment B:('b'|'B');
97
- fragment C:('c'|'C');
98
- fragment D:('d'|'D');
99
- fragment E:('e'|'E');
100
- fragment F:('f'|'F');
101
- fragment G:('g'|'G');
102
- fragment H:('h'|'H');
103
- fragment I:('i'|'I');
104
- fragment J:('j'|'J');
105
- fragment K:('k'|'K');
106
- fragment L:('l'|'L');
107
- fragment M:('m'|'M');
108
- fragment N:('n'|'N');
109
- fragment O:('o'|'O');
110
- fragment P:('p'|'P');
111
- fragment Q:('q'|'Q');
112
- fragment R:('r'|'R');
113
- fragment S:('s'|'S');
114
- fragment T:('t'|'T');
115
- fragment U:('u'|'U');
116
- fragment V:('v'|'V');
117
- fragment W:('w'|'W');
118
- fragment X:('x'|'X');
119
- fragment Y:('y'|'Y');
120
- fragment Z:('z'|'Z');
@@ -1,158 +0,0 @@
1
- /*
2
- [The "BSD licence"]
3
- Copyright (c) 2016 Pascal Gruen
4
- All rights reserved.
5
- Redistribution and use in source and binary forms, with or without
6
- modification, are permitted provided that the following conditions
7
- are met:
8
- 1. Redistributions of source code must retain the above copyright
9
- notice, this list of conditions and the following disclaimer.
10
- 2. Redistributions in binary form must reproduce the above copyright
11
- notice, this list of conditions and the following disclaimer in the
12
- documentation and/or other materials provided with the distribution.
13
- 3. The name of the author may not be used to endorse or promote products
14
- derived from this software without specific prior written permission.
15
- THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16
- IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17
- OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18
- IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19
- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20
- NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
- */
26
-
27
- parser grammar ApexdocParser;
28
-
29
- options { tokenVocab=ApexdocLexer; }
30
-
31
-
32
- documentation
33
- : EOF
34
- | JAVADOC_START skipWhitespace* documentationContent JAVADOC_END EOF
35
- | skipWhitespace* documentationContent EOF
36
- ;
37
-
38
- documentationContent
39
- : description skipWhitespace*
40
- | skipWhitespace* tagSection
41
- | description NEWLINE+ skipWhitespace* tagSection
42
- ;
43
-
44
-
45
- description
46
- : descriptionLine (descriptionNewline+ descriptionLine)*
47
- ;
48
-
49
- descriptionLine
50
- : descriptionLineStart descriptionLineElement*
51
- | inlineTag descriptionLineElement*
52
- ;
53
-
54
- descriptionLineStart
55
- : SPACE? descriptionLineNoSpaceNoAt+ (descriptionLineNoSpaceNoAt | SPACE | AT)*
56
- ;
57
-
58
- descriptionLineNoSpaceNoAt
59
- : TEXT_CONTENT
60
- | NAME
61
- | STAR
62
- | SLASH
63
- | BRACE_OPEN
64
- | BRACE_CLOSE
65
- ;
66
-
67
- descriptionLineElement
68
- : inlineTag
69
- | descriptionLineText
70
- ;
71
-
72
- descriptionLineText
73
- : (descriptionLineNoSpaceNoAt | SPACE | AT)+
74
- ;
75
-
76
- descriptionNewline
77
- : NEWLINE
78
- ;
79
-
80
- tagSection
81
- : blockTag*
82
- ;
83
-
84
- blockTag
85
- : STAR* SPACE? PARAM SPACE+ paramName SPACE+ blockTagContent* #ParamBlockTag
86
- | STAR* SPACE? (THROWS | EXCEPTION) SPACE+ exceptionName SPACE+ blockTagContent* #ThrowsBlockTag
87
- | STAR* SPACE? RETURN SPACE+ blockTagContent* #ReturnBlockTag
88
- | STAR* SPACE? EXAMPLE skipWhitespace+ blockTagContent* #ExampleBlockTag
89
- | STAR* SPACE? AT blockTagName SPACE+ blockTagContent* #DefaultBlockTag
90
- ;
91
-
92
- paramName
93
- : blockTagTextElement
94
- ;
95
-
96
- exceptionName
97
- : blockTagTextElement
98
- ;
99
-
100
- blockTagName
101
- : NAME
102
- ;
103
-
104
- blockTagContent
105
- : blockTagText
106
- | inlineTag
107
- | NEWLINE
108
- ;
109
-
110
- blockTagText
111
- : blockTagTextElement+
112
- ;
113
-
114
- blockTagTextElement
115
- : TEXT_CONTENT
116
- | NAME
117
- | SPACE
118
- | STAR
119
- | SLASH
120
- | BRACE_OPEN
121
- | BRACE_CLOSE
122
- ;
123
-
124
-
125
- inlineTag
126
- : INLINE_TAG_START inlineTagName SPACE* inlineTagContent? BRACE_CLOSE
127
- ;
128
-
129
- inlineTagName
130
- : NAME
131
- ;
132
-
133
- inlineTagContent
134
- : braceContent+
135
- ;
136
-
137
- braceExpression
138
- : BRACE_OPEN braceContent* BRACE_CLOSE
139
- ;
140
-
141
- braceContent
142
- : braceExpression
143
- | braceText (NEWLINE* braceText)*
144
- ;
145
-
146
- skipWhitespace
147
- : SPACE
148
- | NEWLINE
149
- ;
150
-
151
- braceText
152
- : TEXT_CONTENT
153
- | NAME
154
- | SPACE
155
- | STAR
156
- | SLASH
157
- | NEWLINE
158
- ;
@@ -1,95 +0,0 @@
1
- token literal names:
2
- null
3
- null
4
- null
5
- null
6
- null
7
- null
8
- null
9
- null
10
- null
11
- null
12
- '@'
13
- '*'
14
- '/'
15
- null
16
- null
17
- '{@'
18
- '{'
19
- '}'
20
-
21
- token symbolic names:
22
- null
23
- PARAM
24
- RETURN
25
- EXAMPLE
26
- THROWS
27
- EXCEPTION
28
- NAME
29
- NEWLINE
30
- SPACE
31
- TEXT_CONTENT
32
- AT
33
- STAR
34
- SLASH
35
- JAVADOC_START
36
- JAVADOC_END
37
- INLINE_TAG_START
38
- BRACE_OPEN
39
- BRACE_CLOSE
40
-
41
- rule names:
42
- PARAM
43
- RETURN
44
- EXAMPLE
45
- THROWS
46
- EXCEPTION
47
- NAME
48
- JavaLetterOrDigit
49
- NEWLINE
50
- SPACE
51
- TEXT_CONTENT
52
- AT
53
- STAR
54
- SLASH
55
- JAVADOC_START
56
- JAVADOC_END
57
- INLINE_TAG_START
58
- BRACE_OPEN
59
- BRACE_CLOSE
60
- A
61
- B
62
- C
63
- D
64
- E
65
- F
66
- G
67
- H
68
- I
69
- J
70
- K
71
- L
72
- M
73
- N
74
- O
75
- P
76
- Q
77
- R
78
- S
79
- T
80
- U
81
- V
82
- W
83
- X
84
- Y
85
- Z
86
-
87
- channel names:
88
- DEFAULT_TOKEN_CHANNEL
89
- HIDDEN
90
-
91
- mode names:
92
- DEFAULT_MODE
93
-
94
- atn:
95
- [3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 19, 288, 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, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 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, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 6, 7, 136, 10, 7, 13, 7, 14, 7, 137, 3, 7, 5, 7, 141, 10, 7, 3, 8, 3, 8, 3, 8, 3, 8, 5, 8, 147, 10, 8, 3, 9, 3, 9, 5, 9, 151, 10, 9, 3, 9, 3, 9, 3, 9, 6, 9, 156, 10, 9, 13, 9, 14, 9, 157, 5, 9, 160, 10, 9, 3, 9, 3, 9, 3, 9, 3, 9, 5, 9, 166, 10, 9, 3, 9, 3, 9, 3, 9, 6, 9, 171, 10, 9, 13, 9, 14, 9, 172, 5, 9, 175, 10, 9, 3, 9, 3, 9, 5, 9, 179, 10, 9, 3, 9, 3, 9, 3, 9, 6, 9, 184, 10, 9, 13, 9, 14, 9, 185, 5, 9, 188, 10, 9, 5, 9, 190, 10, 9, 3, 10, 6, 10, 193, 10, 10, 13, 10, 14, 10, 194, 3, 11, 6, 11, 198, 10, 11, 13, 11, 14, 11, 199, 3, 12, 3, 12, 3, 13, 3, 13, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 7, 15, 213, 10, 15, 12, 15, 14, 15, 216, 11, 15, 3, 16, 5, 16, 219, 10, 16, 3, 16, 7, 16, 222, 10, 16, 12, 16, 14, 16, 225, 11, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 19, 3, 19, 3, 20, 3, 20, 3, 21, 3, 21, 3, 22, 3, 22, 3, 23, 3, 23, 3, 24, 3, 24, 3, 25, 3, 25, 3, 26, 3, 26, 3, 27, 3, 27, 3, 28, 3, 28, 3, 29, 3, 29, 3, 30, 3, 30, 3, 31, 3, 31, 3, 32, 3, 32, 3, 33, 3, 33, 3, 34, 3, 34, 3, 35, 3, 35, 3, 36, 3, 36, 3, 37, 3, 37, 3, 38, 3, 38, 3, 39, 3, 39, 3, 40, 3, 40, 3, 41, 3, 41, 3, 42, 3, 42, 3, 43, 3, 43, 3, 44, 3, 44, 3, 45, 3, 45, 2, 2, 46, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 2, 17, 9, 19, 10, 21, 11, 23, 12, 25, 13, 27, 14, 29, 15, 31, 16, 33, 17, 35, 18, 37, 19, 39, 2, 41, 2, 43, 2, 45, 2, 47, 2, 49, 2, 51, 2, 53, 2, 55, 2, 57, 2, 59, 2, 61, 2, 63, 2, 65, 2, 67, 2, 69, 2, 71, 2, 73, 2, 75, 2, 77, 2, 79, 2, 81, 2, 83, 2, 85, 2, 87, 2, 89, 2, 3, 2, 35, 4, 2, 67, 92, 99, 124, 7, 2, 38, 38, 50, 59, 67, 92, 97, 97, 99, 124, 4, 2, 2, 257, 55298, 56321, 3, 2, 55298, 56321, 3, 2, 56322, 57345, 5, 2, 11, 12, 14, 15, 34, 34, 10, 2, 11, 12, 15, 15, 34, 34, 44, 44, 49, 49, 66, 92, 99, 125, 127, 127, 4, 2, 67, 67, 99, 99, 4, 2, 68, 68, 100, 100, 4, 2, 69, 69, 101, 101, 4, 2, 70, 70, 102, 102, 4, 2, 71, 71, 103, 103, 4, 2, 72, 72, 104, 104, 4, 2, 73, 73, 105, 105, 4, 2, 74, 74, 106, 106, 4, 2, 75, 75, 107, 107, 4, 2, 76, 76, 108, 108, 4, 2, 77, 77, 109, 109, 4, 2, 78, 78, 110, 110, 4, 2, 79, 79, 111, 111, 4, 2, 80, 80, 112, 112, 4, 2, 81, 81, 113, 113, 4, 2, 82, 82, 114, 114, 4, 2, 83, 83, 115, 115, 4, 2, 84, 84, 116, 116, 4, 2, 85, 85, 117, 117, 4, 2, 86, 86, 118, 118, 4, 2, 87, 87, 119, 119, 4, 2, 88, 88, 120, 120, 4, 2, 89, 89, 121, 121, 4, 2, 90, 90, 122, 122, 4, 2, 91, 91, 123, 123, 4, 2, 92, 92, 124, 124, 2, 280, 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, 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, 3, 91, 3, 2, 2, 2, 5, 98, 3, 2, 2, 2, 7, 106, 3, 2, 2, 2, 9, 115, 3, 2, 2, 2, 11, 123, 3, 2, 2, 2, 13, 135, 3, 2, 2, 2, 15, 146, 3, 2, 2, 2, 17, 189, 3, 2, 2, 2, 19, 192, 3, 2, 2, 2, 21, 197, 3, 2, 2, 2, 23, 201, 3, 2, 2, 2, 25, 203, 3, 2, 2, 2, 27, 205, 3, 2, 2, 2, 29, 207, 3, 2, 2, 2, 31, 218, 3, 2, 2, 2, 33, 229, 3, 2, 2, 2, 35, 232, 3, 2, 2, 2, 37, 234, 3, 2, 2, 2, 39, 236, 3, 2, 2, 2, 41, 238, 3, 2, 2, 2, 43, 240, 3, 2, 2, 2, 45, 242, 3, 2, 2, 2, 47, 244, 3, 2, 2, 2, 49, 246, 3, 2, 2, 2, 51, 248, 3, 2, 2, 2, 53, 250, 3, 2, 2, 2, 55, 252, 3, 2, 2, 2, 57, 254, 3, 2, 2, 2, 59, 256, 3, 2, 2, 2, 61, 258, 3, 2, 2, 2, 63, 260, 3, 2, 2, 2, 65, 262, 3, 2, 2, 2, 67, 264, 3, 2, 2, 2, 69, 266, 3, 2, 2, 2, 71, 268, 3, 2, 2, 2, 73, 270, 3, 2, 2, 2, 75, 272, 3, 2, 2, 2, 77, 274, 3, 2, 2, 2, 79, 276, 3, 2, 2, 2, 81, 278, 3, 2, 2, 2, 83, 280, 3, 2, 2, 2, 85, 282, 3, 2, 2, 2, 87, 284, 3, 2, 2, 2, 89, 286, 3, 2, 2, 2, 91, 92, 5, 23, 12, 2, 92, 93, 5, 69, 35, 2, 93, 94, 5, 39, 20, 2, 94, 95, 5, 73, 37, 2, 95, 96, 5, 39, 20, 2, 96, 97, 5, 63, 32, 2, 97, 4, 3, 2, 2, 2, 98, 99, 5, 23, 12, 2, 99, 100, 5, 73, 37, 2, 100, 101, 5, 47, 24, 2, 101, 102, 5, 77, 39, 2, 102, 103, 5, 79, 40, 2, 103, 104, 5, 73, 37, 2, 104, 105, 5, 65, 33, 2, 105, 6, 3, 2, 2, 2, 106, 107, 5, 23, 12, 2, 107, 108, 5, 47, 24, 2, 108, 109, 5, 85, 43, 2, 109, 110, 5, 39, 20, 2, 110, 111, 5, 63, 32, 2, 111, 112, 5, 69, 35, 2, 112, 113, 5, 61, 31, 2, 113, 114, 5, 47, 24, 2, 114, 8, 3, 2, 2, 2, 115, 116, 5, 23, 12, 2, 116, 117, 5, 77, 39, 2, 117, 118, 5, 53, 27, 2, 118, 119, 5, 73, 37, 2, 119, 120, 5, 67, 34, 2, 120, 121, 5, 83, 42, 2, 121, 122, 5, 75, 38, 2, 122, 10, 3, 2, 2, 2, 123, 124, 5, 23, 12, 2, 124, 125, 5, 47, 24, 2, 125, 126, 5, 85, 43, 2, 126, 127, 5, 43, 22, 2, 127, 128, 5, 47, 24, 2, 128, 129, 5, 69, 35, 2, 129, 130, 5, 77, 39, 2, 130, 131, 5, 55, 28, 2, 131, 132, 5, 67, 34, 2, 132, 133, 5, 65, 33, 2, 133, 12, 3, 2, 2, 2, 134, 136, 9, 2, 2, 2, 135, 134, 3, 2, 2, 2, 136, 137, 3, 2, 2, 2, 137, 135, 3, 2, 2, 2, 137, 138, 3, 2, 2, 2, 138, 140, 3, 2, 2, 2, 139, 141, 5, 15, 8, 2, 140, 139, 3, 2, 2, 2, 140, 141, 3, 2, 2, 2, 141, 14, 3, 2, 2, 2, 142, 147, 9, 3, 2, 2, 143, 147, 10, 4, 2, 2, 144, 145, 9, 5, 2, 2, 145, 147, 9, 6, 2, 2, 146, 142, 3, 2, 2, 2, 146, 143, 3, 2, 2, 2, 146, 144, 3, 2, 2, 2, 147, 16, 3, 2, 2, 2, 148, 159, 7, 12, 2, 2, 149, 151, 5, 19, 10, 2, 150, 149, 3, 2, 2, 2, 150, 151, 3, 2, 2, 2, 151, 155, 3, 2, 2, 2, 152, 153, 5, 25, 13, 2, 153, 154, 6, 9, 2, 2, 154, 156, 3, 2, 2, 2, 155, 152, 3, 2, 2, 2, 156, 157, 3, 2, 2, 2, 157, 155, 3, 2, 2, 2, 157, 158, 3, 2, 2, 2, 158, 160, 3, 2, 2, 2, 159, 150, 3, 2, 2, 2, 159, 160, 3, 2, 2, 2, 160, 190, 3, 2, 2, 2, 161, 162, 7, 15, 2, 2, 162, 163, 7, 12, 2, 2, 163, 174, 3, 2, 2, 2, 164, 166, 5, 19, 10, 2, 165, 164, 3, 2, 2, 2, 165, 166, 3, 2, 2, 2, 166, 170, 3, 2, 2, 2, 167, 168, 5, 25, 13, 2, 168, 169, 6, 9, 3, 2, 169, 171, 3, 2, 2, 2, 170, 167, 3, 2, 2, 2, 171, 172, 3, 2, 2, 2, 172, 170, 3, 2, 2, 2, 172, 173, 3, 2, 2, 2, 173, 175, 3, 2, 2, 2, 174, 165, 3, 2, 2, 2, 174, 175, 3, 2, 2, 2, 175, 190, 3, 2, 2, 2, 176, 187, 7, 15, 2, 2, 177, 179, 5, 19, 10, 2, 178, 177, 3, 2, 2, 2, 178, 179, 3, 2, 2, 2, 179, 183, 3, 2, 2, 2, 180, 181, 5, 25, 13, 2, 181, 182, 6, 9, 4, 2, 182, 184, 3, 2, 2, 2, 183, 180, 3, 2, 2, 2, 184, 185, 3, 2, 2, 2, 185, 183, 3, 2, 2, 2, 185, 186, 3, 2, 2, 2, 186, 188, 3, 2, 2, 2, 187, 178, 3, 2, 2, 2, 187, 188, 3, 2, 2, 2, 188, 190, 3, 2, 2, 2, 189, 148, 3, 2, 2, 2, 189, 161, 3, 2, 2, 2, 189, 176, 3, 2, 2, 2, 190, 18, 3, 2, 2, 2, 191, 193, 9, 7, 2, 2, 192, 191, 3, 2, 2, 2, 193, 194, 3, 2, 2, 2, 194, 192, 3, 2, 2, 2, 194, 195, 3, 2, 2, 2, 195, 20, 3, 2, 2, 2, 196, 198, 10, 8, 2, 2, 197, 196, 3, 2, 2, 2, 198, 199, 3, 2, 2, 2, 199, 197, 3, 2, 2, 2, 199, 200, 3, 2, 2, 2, 200, 22, 3, 2, 2, 2, 201, 202, 7, 66, 2, 2, 202, 24, 3, 2, 2, 2, 203, 204, 7, 44, 2, 2, 204, 26, 3, 2, 2, 2, 205, 206, 7, 49, 2, 2, 206, 28, 3, 2, 2, 2, 207, 208, 7, 49, 2, 2, 208, 209, 7, 44, 2, 2, 209, 210, 7, 44, 2, 2, 210, 214, 3, 2, 2, 2, 211, 213, 5, 25, 13, 2, 212, 211, 3, 2, 2, 2, 213, 216, 3, 2, 2, 2, 214, 212, 3, 2, 2, 2, 214, 215, 3, 2, 2, 2, 215, 30, 3, 2, 2, 2, 216, 214, 3, 2, 2, 2, 217, 219, 5, 19, 10, 2, 218, 217, 3, 2, 2, 2, 218, 219, 3, 2, 2, 2, 219, 223, 3, 2, 2, 2, 220, 222, 5, 25, 13, 2, 221, 220, 3, 2, 2, 2, 222, 225, 3, 2, 2, 2, 223, 221, 3, 2, 2, 2, 223, 224, 3, 2, 2, 2, 224, 226, 3, 2, 2, 2, 225, 223, 3, 2, 2, 2, 226, 227, 7, 44, 2, 2, 227, 228, 7, 49, 2, 2, 228, 32, 3, 2, 2, 2, 229, 230, 7, 125, 2, 2, 230, 231, 7, 66, 2, 2, 231, 34, 3, 2, 2, 2, 232, 233, 7, 125, 2, 2, 233, 36, 3, 2, 2, 2, 234, 235, 7, 127, 2, 2, 235, 38, 3, 2, 2, 2, 236, 237, 9, 9, 2, 2, 237, 40, 3, 2, 2, 2, 238, 239, 9, 10, 2, 2, 239, 42, 3, 2, 2, 2, 240, 241, 9, 11, 2, 2, 241, 44, 3, 2, 2, 2, 242, 243, 9, 12, 2, 2, 243, 46, 3, 2, 2, 2, 244, 245, 9, 13, 2, 2, 245, 48, 3, 2, 2, 2, 246, 247, 9, 14, 2, 2, 247, 50, 3, 2, 2, 2, 248, 249, 9, 15, 2, 2, 249, 52, 3, 2, 2, 2, 250, 251, 9, 16, 2, 2, 251, 54, 3, 2, 2, 2, 252, 253, 9, 17, 2, 2, 253, 56, 3, 2, 2, 2, 254, 255, 9, 18, 2, 2, 255, 58, 3, 2, 2, 2, 256, 257, 9, 19, 2, 2, 257, 60, 3, 2, 2, 2, 258, 259, 9, 20, 2, 2, 259, 62, 3, 2, 2, 2, 260, 261, 9, 21, 2, 2, 261, 64, 3, 2, 2, 2, 262, 263, 9, 22, 2, 2, 263, 66, 3, 2, 2, 2, 264, 265, 9, 23, 2, 2, 265, 68, 3, 2, 2, 2, 266, 267, 9, 24, 2, 2, 267, 70, 3, 2, 2, 2, 268, 269, 9, 25, 2, 2, 269, 72, 3, 2, 2, 2, 270, 271, 9, 26, 2, 2, 271, 74, 3, 2, 2, 2, 272, 273, 9, 27, 2, 2, 273, 76, 3, 2, 2, 2, 274, 275, 9, 28, 2, 2, 275, 78, 3, 2, 2, 2, 276, 277, 9, 29, 2, 2, 277, 80, 3, 2, 2, 2, 278, 279, 9, 30, 2, 2, 279, 82, 3, 2, 2, 2, 280, 281, 9, 31, 2, 2, 281, 84, 3, 2, 2, 2, 282, 283, 9, 32, 2, 2, 283, 86, 3, 2, 2, 2, 284, 285, 9, 33, 2, 2, 285, 88, 3, 2, 2, 2, 286, 287, 9, 34, 2, 2, 287, 90, 3, 2, 2, 2, 21, 2, 137, 140, 146, 150, 157, 159, 165, 172, 174, 178, 185, 187, 189, 194, 199, 214, 218, 223, 2]