deukpack 1.0.0

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 (122) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +6 -0
  3. package/README.ko.md +138 -0
  4. package/README.md +182 -0
  5. package/RELEASING.md +71 -0
  6. package/bin/deukpack.js +9 -0
  7. package/dist/ast/DeukPackASTBuilder.d.ts +153 -0
  8. package/dist/ast/DeukPackASTBuilder.d.ts.map +1 -0
  9. package/dist/ast/DeukPackASTBuilder.js +931 -0
  10. package/dist/ast/DeukPackASTBuilder.js.map +1 -0
  11. package/dist/codegen/CSharpGenerator.d.ts +136 -0
  12. package/dist/codegen/CSharpGenerator.d.ts.map +1 -0
  13. package/dist/codegen/CSharpGenerator.js +2303 -0
  14. package/dist/codegen/CSharpGenerator.js.map +1 -0
  15. package/dist/codegen/CodeGenerator.d.ts +11 -0
  16. package/dist/codegen/CodeGenerator.d.ts.map +1 -0
  17. package/dist/codegen/CodeGenerator.js +11 -0
  18. package/dist/codegen/CodeGenerator.js.map +1 -0
  19. package/dist/codegen/CppGenerator.d.ts +23 -0
  20. package/dist/codegen/CppGenerator.d.ts.map +1 -0
  21. package/dist/codegen/CppGenerator.js +215 -0
  22. package/dist/codegen/CppGenerator.js.map +1 -0
  23. package/dist/codegen/HighPerformanceCSharpGenerator.d.ts +29 -0
  24. package/dist/codegen/HighPerformanceCSharpGenerator.d.ts.map +1 -0
  25. package/dist/codegen/HighPerformanceCSharpGenerator.js +486 -0
  26. package/dist/codegen/HighPerformanceCSharpGenerator.js.map +1 -0
  27. package/dist/core/DeukPackEngine.d.ts +69 -0
  28. package/dist/core/DeukPackEngine.d.ts.map +1 -0
  29. package/dist/core/DeukPackEngine.js +379 -0
  30. package/dist/core/DeukPackEngine.js.map +1 -0
  31. package/dist/core/DeukPackGenerator.d.ts +9 -0
  32. package/dist/core/DeukPackGenerator.d.ts.map +1 -0
  33. package/dist/core/DeukPackGenerator.js +15 -0
  34. package/dist/core/DeukPackGenerator.js.map +1 -0
  35. package/dist/core/DeukParser.d.ts +12 -0
  36. package/dist/core/DeukParser.d.ts.map +1 -0
  37. package/dist/core/DeukParser.js +27 -0
  38. package/dist/core/DeukParser.js.map +1 -0
  39. package/dist/core/IdlParser.d.ts +27 -0
  40. package/dist/core/IdlParser.d.ts.map +1 -0
  41. package/dist/core/IdlParser.js +157 -0
  42. package/dist/core/IdlParser.js.map +1 -0
  43. package/dist/core/ProtoParser.d.ts +12 -0
  44. package/dist/core/ProtoParser.d.ts.map +1 -0
  45. package/dist/core/ProtoParser.js +27 -0
  46. package/dist/core/ProtoParser.js.map +1 -0
  47. package/dist/csharp/DpExcelProtocol.cs +3005 -0
  48. package/dist/csharp/DpProtocolLibrary.cs +13 -0
  49. package/dist/index.d.ts +22 -0
  50. package/dist/index.d.ts.map +1 -0
  51. package/dist/index.js +43 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/lexer/DeukLexer.d.ts +31 -0
  54. package/dist/lexer/DeukLexer.d.ts.map +1 -0
  55. package/dist/lexer/DeukLexer.js +292 -0
  56. package/dist/lexer/DeukLexer.js.map +1 -0
  57. package/dist/lexer/IdlLexer.d.ts +33 -0
  58. package/dist/lexer/IdlLexer.d.ts.map +1 -0
  59. package/dist/lexer/IdlLexer.js +286 -0
  60. package/dist/lexer/IdlLexer.js.map +1 -0
  61. package/dist/native/NativeDeukPackEngine.d.ts +30 -0
  62. package/dist/native/NativeDeukPackEngine.d.ts.map +1 -0
  63. package/dist/native/NativeDeukPackEngine.js +99 -0
  64. package/dist/native/NativeDeukPackEngine.js.map +1 -0
  65. package/dist/proto/ProtoASTBuilder.d.ts +29 -0
  66. package/dist/proto/ProtoASTBuilder.d.ts.map +1 -0
  67. package/dist/proto/ProtoASTBuilder.js +239 -0
  68. package/dist/proto/ProtoASTBuilder.js.map +1 -0
  69. package/dist/proto/ProtoLexer.d.ts +29 -0
  70. package/dist/proto/ProtoLexer.d.ts.map +1 -0
  71. package/dist/proto/ProtoLexer.js +264 -0
  72. package/dist/proto/ProtoLexer.js.map +1 -0
  73. package/dist/proto/ProtoTypes.d.ts +40 -0
  74. package/dist/proto/ProtoTypes.d.ts.map +1 -0
  75. package/dist/proto/ProtoTypes.js +37 -0
  76. package/dist/proto/ProtoTypes.js.map +1 -0
  77. package/dist/protocols/BinaryProtocol.d.ts +7 -0
  78. package/dist/protocols/BinaryProtocol.d.ts.map +1 -0
  79. package/dist/protocols/BinaryProtocol.js +11 -0
  80. package/dist/protocols/BinaryProtocol.js.map +1 -0
  81. package/dist/protocols/BinaryWriter.d.ts +22 -0
  82. package/dist/protocols/BinaryWriter.d.ts.map +1 -0
  83. package/dist/protocols/BinaryWriter.js +104 -0
  84. package/dist/protocols/BinaryWriter.js.map +1 -0
  85. package/dist/protocols/CompactProtocol.d.ts +7 -0
  86. package/dist/protocols/CompactProtocol.d.ts.map +1 -0
  87. package/dist/protocols/CompactProtocol.js +11 -0
  88. package/dist/protocols/CompactProtocol.js.map +1 -0
  89. package/dist/protocols/ExcelProtocol.d.ts +98 -0
  90. package/dist/protocols/ExcelProtocol.d.ts.map +1 -0
  91. package/dist/protocols/ExcelProtocol.js +639 -0
  92. package/dist/protocols/ExcelProtocol.js.map +1 -0
  93. package/dist/protocols/JsonProtocol.d.ts +68 -0
  94. package/dist/protocols/JsonProtocol.d.ts.map +1 -0
  95. package/dist/protocols/JsonProtocol.js +422 -0
  96. package/dist/protocols/JsonProtocol.js.map +1 -0
  97. package/dist/protocols/WireProtocol.d.ts +348 -0
  98. package/dist/protocols/WireProtocol.d.ts.map +1 -0
  99. package/dist/protocols/WireProtocol.js +912 -0
  100. package/dist/protocols/WireProtocol.js.map +1 -0
  101. package/dist/serialization/WireDeserializer.d.ts +8 -0
  102. package/dist/serialization/WireDeserializer.d.ts.map +1 -0
  103. package/dist/serialization/WireDeserializer.js +13 -0
  104. package/dist/serialization/WireDeserializer.js.map +1 -0
  105. package/dist/serialization/WireSerializer.d.ts +20 -0
  106. package/dist/serialization/WireSerializer.d.ts.map +1 -0
  107. package/dist/serialization/WireSerializer.js +100 -0
  108. package/dist/serialization/WireSerializer.js.map +1 -0
  109. package/dist/types/DeukPackTypes.d.ts +291 -0
  110. package/dist/types/DeukPackTypes.d.ts.map +1 -0
  111. package/dist/types/DeukPackTypes.js +76 -0
  112. package/dist/types/DeukPackTypes.js.map +1 -0
  113. package/dist/utils/EndianUtils.d.ts +11 -0
  114. package/dist/utils/EndianUtils.d.ts.map +1 -0
  115. package/dist/utils/EndianUtils.js +32 -0
  116. package/dist/utils/EndianUtils.js.map +1 -0
  117. package/dist/utils/PerformanceMonitor.d.ts +26 -0
  118. package/dist/utils/PerformanceMonitor.d.ts.map +1 -0
  119. package/dist/utils/PerformanceMonitor.js +57 -0
  120. package/dist/utils/PerformanceMonitor.js.map +1 -0
  121. package/package.json +77 -0
  122. package/scripts/build_deukpack.js +669 -0
@@ -0,0 +1,239 @@
1
+ "use strict";
2
+ /**
3
+ * Protocol Buffers (.proto) AST builder. Builds DeukPackAST from ProtoLexer tokens.
4
+ * message → struct, enum → enum, package → namespace; field number and type mapping to wire format.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.ProtoASTBuilder = void 0;
8
+ const ProtoTypes_1 = require("./ProtoTypes");
9
+ const PROTO_TYPE_TO_DEUKPACK = {
10
+ int32: 'int32', int64: 'int64', uint32: 'int32', uint64: 'int64',
11
+ sint32: 'int32', sint64: 'int64', fixed32: 'int32', fixed64: 'int64',
12
+ sfixed32: 'int32', sfixed64: 'int64',
13
+ float: 'float', double: 'double',
14
+ string: 'string', bytes: 'binary', bool: 'bool'
15
+ };
16
+ class ProtoASTBuilder {
17
+ constructor() {
18
+ this.tokens = [];
19
+ this.position = 0;
20
+ this.currentFile = '';
21
+ }
22
+ build(tokens, fileName) {
23
+ this.tokens = tokens;
24
+ this.position = 0;
25
+ this.currentFile = fileName;
26
+ const ast = {
27
+ namespaces: [],
28
+ structs: [],
29
+ enums: [],
30
+ services: [],
31
+ typedefs: [],
32
+ constants: [],
33
+ includes: []
34
+ };
35
+ while (!this.isAtEnd()) {
36
+ const t = this.peek();
37
+ switch (t.type) {
38
+ case ProtoTypes_1.ProtoTokenType.PACKAGE:
39
+ ast.namespaces.push(this.parsePackage());
40
+ break;
41
+ case ProtoTypes_1.ProtoTokenType.MESSAGE:
42
+ ast.structs.push(this.parseMessage());
43
+ break;
44
+ case ProtoTypes_1.ProtoTokenType.ENUM:
45
+ ast.enums.push(this.parseEnum());
46
+ break;
47
+ case ProtoTypes_1.ProtoTokenType.SYNTAX:
48
+ case ProtoTypes_1.ProtoTokenType.OPTION:
49
+ this.skipToNextStatement();
50
+ break;
51
+ case ProtoTypes_1.ProtoTokenType.IMPORT:
52
+ ast.includes.push(this.parseImport());
53
+ break;
54
+ case ProtoTypes_1.ProtoTokenType.EOF:
55
+ return ast;
56
+ default:
57
+ this.advance();
58
+ break;
59
+ }
60
+ }
61
+ return ast;
62
+ }
63
+ peek() {
64
+ const t = this.tokens[this.position];
65
+ if (t)
66
+ return t;
67
+ const last = this.tokens[this.tokens.length - 1];
68
+ return last ?? { type: ProtoTypes_1.ProtoTokenType.EOF, value: '', position: 0, line: 1, column: 1 };
69
+ }
70
+ advance() {
71
+ const t = this.tokens[this.position];
72
+ if (this.position < this.tokens.length)
73
+ this.position++;
74
+ const fallback = { type: ProtoTypes_1.ProtoTokenType.EOF, value: '', position: 0, line: 1, column: 1 };
75
+ return t ?? this.tokens[this.tokens.length - 1] ?? fallback;
76
+ }
77
+ isAtEnd() {
78
+ return this.position >= this.tokens.length || this.peek().type === ProtoTypes_1.ProtoTokenType.EOF;
79
+ }
80
+ expect(type) {
81
+ const t = this.peek();
82
+ if (t.type !== type)
83
+ throw new Error(`Expected ${type} at ${t.line}:${t.column}`);
84
+ return this.advance();
85
+ }
86
+ parseImport() {
87
+ this.advance(); // import
88
+ const path = this.expect(ProtoTypes_1.ProtoTokenType.STRING_LITERAL).value;
89
+ this.optionalSemicolon();
90
+ return path;
91
+ }
92
+ parsePackage() {
93
+ this.advance(); // package
94
+ let name = this.expect(ProtoTypes_1.ProtoTokenType.IDENTIFIER).value;
95
+ while (this.check(ProtoTypes_1.ProtoTokenType.DOT)) {
96
+ this.advance();
97
+ name += '.' + this.expect(ProtoTypes_1.ProtoTokenType.IDENTIFIER).value;
98
+ }
99
+ this.optionalSemicolon();
100
+ return { language: '*', name };
101
+ }
102
+ parseMessage() {
103
+ this.advance(); // message
104
+ const name = this.expect(ProtoTypes_1.ProtoTokenType.IDENTIFIER).value;
105
+ this.expect(ProtoTypes_1.ProtoTokenType.LEFT_BRACE);
106
+ const fields = [];
107
+ while (!this.check(ProtoTypes_1.ProtoTokenType.RIGHT_BRACE) && !this.isAtEnd()) {
108
+ if (this.check(ProtoTypes_1.ProtoTokenType.MESSAGE) || this.check(ProtoTypes_1.ProtoTokenType.ENUM)) {
109
+ this.skipNestedDeclaration();
110
+ continue;
111
+ }
112
+ if (this.check(ProtoTypes_1.ProtoTokenType.ONEOF)) {
113
+ this.skipOneof();
114
+ continue;
115
+ }
116
+ const field = this.parseField();
117
+ if (field)
118
+ fields.push(field);
119
+ }
120
+ this.expect(ProtoTypes_1.ProtoTokenType.RIGHT_BRACE);
121
+ const result = { name, fields };
122
+ result.sourceFile = this.currentFile;
123
+ return result;
124
+ }
125
+ parseField() {
126
+ let required = false;
127
+ let repeated = false;
128
+ if (this.check(ProtoTypes_1.ProtoTokenType.REQUIRED)) {
129
+ required = true;
130
+ this.advance();
131
+ }
132
+ else if (this.check(ProtoTypes_1.ProtoTokenType.OPTIONAL)) {
133
+ this.advance();
134
+ }
135
+ else if (this.check(ProtoTypes_1.ProtoTokenType.REPEATED)) {
136
+ repeated = true;
137
+ this.advance();
138
+ }
139
+ let type;
140
+ if (this.check(ProtoTypes_1.ProtoTokenType.MAP)) {
141
+ type = this.parseMapType();
142
+ }
143
+ else {
144
+ type = this.parseProtoScalarOrUserType();
145
+ if (repeated)
146
+ type = { type: 'list', elementType: type };
147
+ }
148
+ const name = this.expect(ProtoTypes_1.ProtoTokenType.IDENTIFIER).value;
149
+ this.expect(ProtoTypes_1.ProtoTokenType.EQUALS);
150
+ const id = parseInt(this.expect(ProtoTypes_1.ProtoTokenType.NUMBER).value);
151
+ this.optionalSemicolon();
152
+ return { id, name, type, required };
153
+ }
154
+ parseProtoScalarOrUserType() {
155
+ const raw = this.expect(ProtoTypes_1.ProtoTokenType.IDENTIFIER).value;
156
+ const typeName = PROTO_TYPE_TO_DEUKPACK[raw];
157
+ if (typeName)
158
+ return typeName;
159
+ return raw;
160
+ }
161
+ parseMapType() {
162
+ this.advance(); // map
163
+ this.expect(ProtoTypes_1.ProtoTokenType.LEFT_ANGLE);
164
+ const keyType = this.parseProtoScalarOrUserType();
165
+ this.expect(ProtoTypes_1.ProtoTokenType.COMMA);
166
+ const valueType = this.parseProtoScalarOrUserType();
167
+ this.expect(ProtoTypes_1.ProtoTokenType.RIGHT_ANGLE);
168
+ return { type: 'map', keyType, valueType };
169
+ }
170
+ parseEnum() {
171
+ this.advance(); // enum
172
+ const name = this.expect(ProtoTypes_1.ProtoTokenType.IDENTIFIER).value;
173
+ this.expect(ProtoTypes_1.ProtoTokenType.LEFT_BRACE);
174
+ const values = {};
175
+ while (!this.check(ProtoTypes_1.ProtoTokenType.RIGHT_BRACE) && !this.isAtEnd()) {
176
+ if (this.check(ProtoTypes_1.ProtoTokenType.OPTION)) {
177
+ this.skipToNextStatement();
178
+ continue;
179
+ }
180
+ const id = this.expect(ProtoTypes_1.ProtoTokenType.IDENTIFIER).value;
181
+ if (this.check(ProtoTypes_1.ProtoTokenType.EQUALS)) {
182
+ this.advance();
183
+ const num = parseInt(this.expect(ProtoTypes_1.ProtoTokenType.NUMBER).value);
184
+ values[id] = num;
185
+ }
186
+ else {
187
+ const nextVal = Object.keys(values).length === 0 ? 0 : Math.max(...Object.values(values)) + 1;
188
+ values[id] = nextVal;
189
+ }
190
+ this.optionalSemicolon();
191
+ }
192
+ this.expect(ProtoTypes_1.ProtoTokenType.RIGHT_BRACE);
193
+ const result = { name, values };
194
+ result.sourceFile = this.currentFile;
195
+ return result;
196
+ }
197
+ check(type) {
198
+ return this.peek().type === type;
199
+ }
200
+ optionalSemicolon() {
201
+ if (this.check(ProtoTypes_1.ProtoTokenType.SEMICOLON))
202
+ this.advance();
203
+ }
204
+ skipToNextStatement() {
205
+ while (!this.isAtEnd() && !this.check(ProtoTypes_1.ProtoTokenType.SEMICOLON) && !this.check(ProtoTypes_1.ProtoTokenType.RIGHT_BRACE) && this.peek().type !== ProtoTypes_1.ProtoTokenType.MESSAGE && this.peek().type !== ProtoTypes_1.ProtoTokenType.ENUM && this.peek().type !== ProtoTypes_1.ProtoTokenType.PACKAGE)
206
+ this.advance();
207
+ this.optionalSemicolon();
208
+ }
209
+ skipNestedDeclaration() {
210
+ if (this.check(ProtoTypes_1.ProtoTokenType.MESSAGE) || this.check(ProtoTypes_1.ProtoTokenType.ENUM)) {
211
+ this.advance();
212
+ this.expect(ProtoTypes_1.ProtoTokenType.IDENTIFIER);
213
+ this.expect(ProtoTypes_1.ProtoTokenType.LEFT_BRACE);
214
+ let depth = 1;
215
+ while (depth > 0 && !this.isAtEnd()) {
216
+ const t = this.advance();
217
+ if (t.type === ProtoTypes_1.ProtoTokenType.LEFT_BRACE)
218
+ depth++;
219
+ else if (t.type === ProtoTypes_1.ProtoTokenType.RIGHT_BRACE)
220
+ depth--;
221
+ }
222
+ }
223
+ }
224
+ skipOneof() {
225
+ this.advance(); // oneof
226
+ this.expect(ProtoTypes_1.ProtoTokenType.IDENTIFIER);
227
+ this.expect(ProtoTypes_1.ProtoTokenType.LEFT_BRACE);
228
+ let depth = 1;
229
+ while (depth > 0 && !this.isAtEnd()) {
230
+ const t = this.advance();
231
+ if (t.type === ProtoTypes_1.ProtoTokenType.LEFT_BRACE)
232
+ depth++;
233
+ else if (t.type === ProtoTypes_1.ProtoTokenType.RIGHT_BRACE)
234
+ depth--;
235
+ }
236
+ }
237
+ }
238
+ exports.ProtoASTBuilder = ProtoASTBuilder;
239
+ //# sourceMappingURL=ProtoASTBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProtoASTBuilder.js","sourceRoot":"","sources":["../../src/proto/ProtoASTBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Protocol Buffers (.proto) lexer. Tokenizes .proto source for ProtoASTBuilder.
3
+ */
4
+ import { ProtoToken } from './ProtoTypes';
5
+ export declare class ProtoLexer {
6
+ private input;
7
+ private position;
8
+ private line;
9
+ private column;
10
+ private tokens;
11
+ private keywords;
12
+ tokenize(input: string): ProtoToken[];
13
+ private nextToken;
14
+ private readStringLiteral;
15
+ private readEscapeSequence;
16
+ private readNumber;
17
+ private readIdentifier;
18
+ private readLineComment;
19
+ private readBlockComment;
20
+ private skipWhitespace;
21
+ private advance;
22
+ private peek;
23
+ private isAlpha;
24
+ private isAlphaNumeric;
25
+ private isDigit;
26
+ private isWhitespace;
27
+ private createToken;
28
+ }
29
+ //# sourceMappingURL=ProtoLexer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProtoLexer.d.ts","sourceRoot":"","sources":["../../src/proto/ProtoLexer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAkB,MAAM,cAAc,CAAC;AAE1D,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,MAAM,CAAoB;IAElC,OAAO,CAAC,QAAQ,CA2Bb;IAEH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE;IA0BrC,OAAO,CAAC,SAAS;IA+BjB,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,OAAO;IAGf,OAAO,CAAC,cAAc;IAGtB,OAAO,CAAC,OAAO;IAGf,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,WAAW;CAGpB"}
@@ -0,0 +1,264 @@
1
+ "use strict";
2
+ /**
3
+ * Protocol Buffers (.proto) lexer. Tokenizes .proto source for ProtoASTBuilder.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ProtoLexer = void 0;
7
+ const ProtoTypes_1 = require("./ProtoTypes");
8
+ class ProtoLexer {
9
+ constructor() {
10
+ this.input = '';
11
+ this.position = 0;
12
+ this.line = 1;
13
+ this.column = 1;
14
+ this.tokens = [];
15
+ this.keywords = new Map([
16
+ ['message', ProtoTypes_1.ProtoTokenType.MESSAGE],
17
+ ['enum', ProtoTypes_1.ProtoTokenType.ENUM],
18
+ ['package', ProtoTypes_1.ProtoTokenType.PACKAGE],
19
+ ['syntax', ProtoTypes_1.ProtoTokenType.SYNTAX],
20
+ ['import', ProtoTypes_1.ProtoTokenType.IMPORT],
21
+ ['option', ProtoTypes_1.ProtoTokenType.OPTION],
22
+ ['optional', ProtoTypes_1.ProtoTokenType.OPTIONAL],
23
+ ['repeated', ProtoTypes_1.ProtoTokenType.REPEATED],
24
+ ['required', ProtoTypes_1.ProtoTokenType.REQUIRED],
25
+ ['oneof', ProtoTypes_1.ProtoTokenType.ONEOF],
26
+ ['map', ProtoTypes_1.ProtoTokenType.MAP],
27
+ ['int32', ProtoTypes_1.ProtoTokenType.IDENTIFIER],
28
+ ['int64', ProtoTypes_1.ProtoTokenType.IDENTIFIER],
29
+ ['uint32', ProtoTypes_1.ProtoTokenType.IDENTIFIER],
30
+ ['uint64', ProtoTypes_1.ProtoTokenType.IDENTIFIER],
31
+ ['sint32', ProtoTypes_1.ProtoTokenType.IDENTIFIER],
32
+ ['sint64', ProtoTypes_1.ProtoTokenType.IDENTIFIER],
33
+ ['fixed32', ProtoTypes_1.ProtoTokenType.IDENTIFIER],
34
+ ['fixed64', ProtoTypes_1.ProtoTokenType.IDENTIFIER],
35
+ ['sfixed32', ProtoTypes_1.ProtoTokenType.IDENTIFIER],
36
+ ['sfixed64', ProtoTypes_1.ProtoTokenType.IDENTIFIER],
37
+ ['float', ProtoTypes_1.ProtoTokenType.IDENTIFIER],
38
+ ['double', ProtoTypes_1.ProtoTokenType.IDENTIFIER],
39
+ ['string', ProtoTypes_1.ProtoTokenType.IDENTIFIER],
40
+ ['bytes', ProtoTypes_1.ProtoTokenType.IDENTIFIER],
41
+ ['bool', ProtoTypes_1.ProtoTokenType.IDENTIFIER]
42
+ ]);
43
+ }
44
+ tokenize(input) {
45
+ this.input = input;
46
+ this.position = 0;
47
+ this.line = 1;
48
+ this.column = 1;
49
+ this.tokens = [];
50
+ while (this.position < this.input.length) {
51
+ this.skipWhitespace();
52
+ if (this.position >= this.input.length)
53
+ break;
54
+ const token = this.nextToken();
55
+ if (token && token.type !== ProtoTypes_1.ProtoTokenType.LINE_COMMENT && token.type !== ProtoTypes_1.ProtoTokenType.BLOCK_COMMENT) {
56
+ this.tokens.push(token);
57
+ }
58
+ }
59
+ this.tokens.push({
60
+ type: ProtoTypes_1.ProtoTokenType.EOF,
61
+ value: '',
62
+ position: this.position,
63
+ line: this.line,
64
+ column: this.column
65
+ });
66
+ return this.tokens;
67
+ }
68
+ nextToken() {
69
+ const startPos = this.position;
70
+ const startLine = this.line;
71
+ const startColumn = this.column;
72
+ const char = this.input[this.position] || '';
73
+ switch (char) {
74
+ case '=':
75
+ this.advance();
76
+ return this.createToken(ProtoTypes_1.ProtoTokenType.EQUALS, '=', startPos, startLine, startColumn);
77
+ case ';':
78
+ this.advance();
79
+ return this.createToken(ProtoTypes_1.ProtoTokenType.SEMICOLON, ';', startPos, startLine, startColumn);
80
+ case ',':
81
+ this.advance();
82
+ return this.createToken(ProtoTypes_1.ProtoTokenType.COMMA, ',', startPos, startLine, startColumn);
83
+ case '.':
84
+ this.advance();
85
+ return this.createToken(ProtoTypes_1.ProtoTokenType.DOT, '.', startPos, startLine, startColumn);
86
+ case '{':
87
+ this.advance();
88
+ return this.createToken(ProtoTypes_1.ProtoTokenType.LEFT_BRACE, '{', startPos, startLine, startColumn);
89
+ case '}':
90
+ this.advance();
91
+ return this.createToken(ProtoTypes_1.ProtoTokenType.RIGHT_BRACE, '}', startPos, startLine, startColumn);
92
+ case '[':
93
+ this.advance();
94
+ return this.createToken(ProtoTypes_1.ProtoTokenType.LEFT_BRACKET, '[', startPos, startLine, startColumn);
95
+ case ']':
96
+ this.advance();
97
+ return this.createToken(ProtoTypes_1.ProtoTokenType.RIGHT_BRACKET, ']', startPos, startLine, startColumn);
98
+ case '<':
99
+ this.advance();
100
+ return this.createToken(ProtoTypes_1.ProtoTokenType.LEFT_ANGLE, '<', startPos, startLine, startColumn);
101
+ case '>':
102
+ this.advance();
103
+ return this.createToken(ProtoTypes_1.ProtoTokenType.RIGHT_ANGLE, '>', startPos, startLine, startColumn);
104
+ case '(':
105
+ this.advance();
106
+ return this.createToken(ProtoTypes_1.ProtoTokenType.LEFT_BRACKET, '(', startPos, startLine, startColumn);
107
+ case ')':
108
+ this.advance();
109
+ return this.createToken(ProtoTypes_1.ProtoTokenType.RIGHT_BRACKET, ')', startPos, startLine, startColumn);
110
+ }
111
+ if (char === '"' || char === "'")
112
+ return this.readStringLiteral();
113
+ if (this.isDigit(char))
114
+ return this.readNumber();
115
+ if (this.isAlpha(char) || char === '_')
116
+ return this.readIdentifier();
117
+ if (char === '/' && this.peek() === '/')
118
+ return this.readLineComment();
119
+ if (char === '/' && this.peek() === '*')
120
+ return this.readBlockComment();
121
+ this.advance();
122
+ return null;
123
+ }
124
+ readStringLiteral() {
125
+ const startPos = this.position;
126
+ const startLine = this.line;
127
+ const startColumn = this.column;
128
+ const quote = this.input[this.position];
129
+ this.advance();
130
+ let value = '';
131
+ while (this.position < this.input.length && this.input[this.position] !== quote) {
132
+ if (this.input[this.position] === '\\') {
133
+ this.advance();
134
+ if (this.position < this.input.length)
135
+ value += this.readEscapeSequence();
136
+ }
137
+ else {
138
+ value += this.input[this.position];
139
+ this.advance();
140
+ }
141
+ }
142
+ if (this.position < this.input.length)
143
+ this.advance();
144
+ return this.createToken(ProtoTypes_1.ProtoTokenType.STRING_LITERAL, value, startPos, startLine, startColumn);
145
+ }
146
+ readEscapeSequence() {
147
+ const c = this.input[this.position] || '';
148
+ this.advance();
149
+ switch (c) {
150
+ case 'n': return '\n';
151
+ case 't': return '\t';
152
+ case 'r': return '\r';
153
+ case '\\': return '\\';
154
+ case '"': return '"';
155
+ case "'": return "'";
156
+ default: return c || '';
157
+ }
158
+ }
159
+ readNumber() {
160
+ const startPos = this.position;
161
+ const startLine = this.line;
162
+ const startColumn = this.column;
163
+ let value = '';
164
+ while (this.position < this.input.length && this.isDigit(this.input[this.position] || '')) {
165
+ value += this.input[this.position];
166
+ this.advance();
167
+ }
168
+ return this.createToken(ProtoTypes_1.ProtoTokenType.NUMBER, value, startPos, startLine, startColumn);
169
+ }
170
+ readIdentifier() {
171
+ const startPos = this.position;
172
+ const startLine = this.line;
173
+ const startColumn = this.column;
174
+ let value = '';
175
+ while (this.position < this.input.length &&
176
+ (this.isAlphaNumeric(this.input[this.position] || '') || (this.input[this.position] || '') === '_')) {
177
+ value += this.input[this.position];
178
+ this.advance();
179
+ }
180
+ const keywordType = this.keywords.get(value);
181
+ if (keywordType === ProtoTypes_1.ProtoTokenType.MESSAGE || keywordType === ProtoTypes_1.ProtoTokenType.ENUM ||
182
+ keywordType === ProtoTypes_1.ProtoTokenType.PACKAGE || keywordType === ProtoTypes_1.ProtoTokenType.SYNTAX ||
183
+ keywordType === ProtoTypes_1.ProtoTokenType.IMPORT || keywordType === ProtoTypes_1.ProtoTokenType.OPTION ||
184
+ keywordType === ProtoTypes_1.ProtoTokenType.OPTIONAL || keywordType === ProtoTypes_1.ProtoTokenType.REPEATED ||
185
+ keywordType === ProtoTypes_1.ProtoTokenType.REQUIRED || keywordType === ProtoTypes_1.ProtoTokenType.ONEOF ||
186
+ keywordType === ProtoTypes_1.ProtoTokenType.MAP) {
187
+ return this.createToken(keywordType, value, startPos, startLine, startColumn);
188
+ }
189
+ return this.createToken(ProtoTypes_1.ProtoTokenType.IDENTIFIER, value, startPos, startLine, startColumn);
190
+ }
191
+ readLineComment() {
192
+ const startPos = this.position;
193
+ const startLine = this.line;
194
+ const startColumn = this.column;
195
+ let value = '';
196
+ this.advance();
197
+ this.advance();
198
+ while (this.position < this.input.length && this.input[this.position] !== '\n') {
199
+ value += this.input[this.position];
200
+ this.advance();
201
+ }
202
+ return this.createToken(ProtoTypes_1.ProtoTokenType.LINE_COMMENT, value, startPos, startLine, startColumn);
203
+ }
204
+ readBlockComment() {
205
+ const startPos = this.position;
206
+ const startLine = this.line;
207
+ const startColumn = this.column;
208
+ let value = '';
209
+ this.advance();
210
+ this.advance();
211
+ while (this.position < this.input.length - 1) {
212
+ if (this.input[this.position] === '*' && this.input[this.position + 1] === '/') {
213
+ this.advance();
214
+ this.advance();
215
+ break;
216
+ }
217
+ value += this.input[this.position];
218
+ this.advance();
219
+ }
220
+ return this.createToken(ProtoTypes_1.ProtoTokenType.BLOCK_COMMENT, value, startPos, startLine, startColumn);
221
+ }
222
+ skipWhitespace() {
223
+ while (this.position < this.input.length && this.isWhitespace(this.input[this.position] || '')) {
224
+ if (this.input[this.position] === '\n') {
225
+ this.line++;
226
+ this.column = 1;
227
+ }
228
+ else
229
+ this.column++;
230
+ this.position++;
231
+ }
232
+ }
233
+ advance() {
234
+ if (this.position < this.input.length) {
235
+ if (this.input[this.position] === '\n') {
236
+ this.line++;
237
+ this.column = 1;
238
+ }
239
+ else
240
+ this.column++;
241
+ this.position++;
242
+ }
243
+ }
244
+ peek() {
245
+ return this.position + 1 < this.input.length ? (this.input[this.position + 1] || '') : '';
246
+ }
247
+ isAlpha(c) {
248
+ return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z');
249
+ }
250
+ isAlphaNumeric(c) {
251
+ return this.isAlpha(c) || this.isDigit(c);
252
+ }
253
+ isDigit(c) {
254
+ return c >= '0' && c <= '9';
255
+ }
256
+ isWhitespace(c) {
257
+ return c === ' ' || c === '\t' || c === '\n' || c === '\r';
258
+ }
259
+ createToken(type, value, position, line, column) {
260
+ return { type, value, position, line, column };
261
+ }
262
+ }
263
+ exports.ProtoLexer = ProtoLexer;
264
+ //# sourceMappingURL=ProtoLexer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProtoLexer.js","sourceRoot":"","sources":["../../src/proto/ProtoLexer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Protocol Buffers (.proto) token types and token for use by ProtoLexer/ProtoASTBuilder.
3
+ */
4
+ export declare enum ProtoTokenType {
5
+ MESSAGE = "MESSAGE",
6
+ ENUM = "ENUM",
7
+ PACKAGE = "PACKAGE",
8
+ SYNTAX = "SYNTAX",
9
+ IMPORT = "IMPORT",
10
+ OPTION = "OPTION",
11
+ OPTIONAL = "OPTIONAL",
12
+ REPEATED = "REPEATED",
13
+ REQUIRED = "REQUIRED",
14
+ ONEOF = "ONEOF",
15
+ MAP = "MAP",
16
+ IDENTIFIER = "IDENTIFIER",
17
+ NUMBER = "NUMBER",
18
+ STRING_LITERAL = "STRING_LITERAL",
19
+ EQUALS = "EQUALS",
20
+ SEMICOLON = "SEMICOLON",
21
+ LEFT_BRACE = "LEFT_BRACE",
22
+ RIGHT_BRACE = "RIGHT_BRACE",
23
+ LEFT_BRACKET = "LEFT_BRACKET",
24
+ RIGHT_BRACKET = "RIGHT_BRACKET",
25
+ LEFT_ANGLE = "LEFT_ANGLE",
26
+ RIGHT_ANGLE = "RIGHT_ANGLE",
27
+ COMMA = "COMMA",
28
+ DOT = "DOT",
29
+ LINE_COMMENT = "LINE_COMMENT",
30
+ BLOCK_COMMENT = "BLOCK_COMMENT",
31
+ EOF = "EOF"
32
+ }
33
+ export interface ProtoToken {
34
+ type: ProtoTokenType;
35
+ value: string;
36
+ position: number;
37
+ line: number;
38
+ column: number;
39
+ }
40
+ //# sourceMappingURL=ProtoTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProtoTypes.d.ts","sourceRoot":"","sources":["../../src/proto/ProtoTypes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,cAAc,mBAAmB;IACjC,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,WAAW,gBAAgB;IAC3B,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAC/B,UAAU,eAAe;IACzB,WAAW,gBAAgB;IAC3B,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAC/B,GAAG,QAAQ;CACZ;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ /**
3
+ * Protocol Buffers (.proto) token types and token for use by ProtoLexer/ProtoASTBuilder.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ProtoTokenType = void 0;
7
+ var ProtoTokenType;
8
+ (function (ProtoTokenType) {
9
+ ProtoTokenType["MESSAGE"] = "MESSAGE";
10
+ ProtoTokenType["ENUM"] = "ENUM";
11
+ ProtoTokenType["PACKAGE"] = "PACKAGE";
12
+ ProtoTokenType["SYNTAX"] = "SYNTAX";
13
+ ProtoTokenType["IMPORT"] = "IMPORT";
14
+ ProtoTokenType["OPTION"] = "OPTION";
15
+ ProtoTokenType["OPTIONAL"] = "OPTIONAL";
16
+ ProtoTokenType["REPEATED"] = "REPEATED";
17
+ ProtoTokenType["REQUIRED"] = "REQUIRED";
18
+ ProtoTokenType["ONEOF"] = "ONEOF";
19
+ ProtoTokenType["MAP"] = "MAP";
20
+ ProtoTokenType["IDENTIFIER"] = "IDENTIFIER";
21
+ ProtoTokenType["NUMBER"] = "NUMBER";
22
+ ProtoTokenType["STRING_LITERAL"] = "STRING_LITERAL";
23
+ ProtoTokenType["EQUALS"] = "EQUALS";
24
+ ProtoTokenType["SEMICOLON"] = "SEMICOLON";
25
+ ProtoTokenType["LEFT_BRACE"] = "LEFT_BRACE";
26
+ ProtoTokenType["RIGHT_BRACE"] = "RIGHT_BRACE";
27
+ ProtoTokenType["LEFT_BRACKET"] = "LEFT_BRACKET";
28
+ ProtoTokenType["RIGHT_BRACKET"] = "RIGHT_BRACKET";
29
+ ProtoTokenType["LEFT_ANGLE"] = "LEFT_ANGLE";
30
+ ProtoTokenType["RIGHT_ANGLE"] = "RIGHT_ANGLE";
31
+ ProtoTokenType["COMMA"] = "COMMA";
32
+ ProtoTokenType["DOT"] = "DOT";
33
+ ProtoTokenType["LINE_COMMENT"] = "LINE_COMMENT";
34
+ ProtoTokenType["BLOCK_COMMENT"] = "BLOCK_COMMENT";
35
+ ProtoTokenType["EOF"] = "EOF";
36
+ })(ProtoTokenType || (exports.ProtoTokenType = ProtoTokenType = {}));
37
+ //# sourceMappingURL=ProtoTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProtoTypes.js","sourceRoot":"","sources":["../../src/proto/ProtoTypes.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,IAAY,cA4BX;AA5BD,WAAY,cAAc;IACxB,qCAAmB,CAAA;IACnB,+BAAa,CAAA;IACb,qCAAmB,CAAA;IACnB,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;IACjB,uCAAqB,CAAA;IACrB,uCAAqB,CAAA;IACrB,uCAAqB,CAAA;IACrB,iCAAe,CAAA;IACf,6BAAW,CAAA;IACX,2CAAyB,CAAA;IACzB,mCAAiB,CAAA;IACjB,mDAAiC,CAAA;IACjC,mCAAiB,CAAA;IACjB,yCAAuB,CAAA;IACvB,2CAAyB,CAAA;IACzB,6CAA2B,CAAA;IAC3B,+CAA6B,CAAA;IAC7B,iDAA+B,CAAA;IAC/B,2CAAyB,CAAA;IACzB,6CAA2B,CAAA;IAC3B,iCAAe,CAAA;IACf,6BAAW,CAAA;IACX,+CAA6B,CAAA;IAC7B,iDAA+B,CAAA;IAC/B,6BAAW,CAAA;AACb,CAAC,EA5BW,cAAc,8BAAd,cAAc,QA4BzB"}