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.
- package/LICENSE +201 -0
- package/NOTICE +6 -0
- package/README.ko.md +138 -0
- package/README.md +182 -0
- package/RELEASING.md +71 -0
- package/bin/deukpack.js +9 -0
- package/dist/ast/DeukPackASTBuilder.d.ts +153 -0
- package/dist/ast/DeukPackASTBuilder.d.ts.map +1 -0
- package/dist/ast/DeukPackASTBuilder.js +931 -0
- package/dist/ast/DeukPackASTBuilder.js.map +1 -0
- package/dist/codegen/CSharpGenerator.d.ts +136 -0
- package/dist/codegen/CSharpGenerator.d.ts.map +1 -0
- package/dist/codegen/CSharpGenerator.js +2303 -0
- package/dist/codegen/CSharpGenerator.js.map +1 -0
- package/dist/codegen/CodeGenerator.d.ts +11 -0
- package/dist/codegen/CodeGenerator.d.ts.map +1 -0
- package/dist/codegen/CodeGenerator.js +11 -0
- package/dist/codegen/CodeGenerator.js.map +1 -0
- package/dist/codegen/CppGenerator.d.ts +23 -0
- package/dist/codegen/CppGenerator.d.ts.map +1 -0
- package/dist/codegen/CppGenerator.js +215 -0
- package/dist/codegen/CppGenerator.js.map +1 -0
- package/dist/codegen/HighPerformanceCSharpGenerator.d.ts +29 -0
- package/dist/codegen/HighPerformanceCSharpGenerator.d.ts.map +1 -0
- package/dist/codegen/HighPerformanceCSharpGenerator.js +486 -0
- package/dist/codegen/HighPerformanceCSharpGenerator.js.map +1 -0
- package/dist/core/DeukPackEngine.d.ts +69 -0
- package/dist/core/DeukPackEngine.d.ts.map +1 -0
- package/dist/core/DeukPackEngine.js +379 -0
- package/dist/core/DeukPackEngine.js.map +1 -0
- package/dist/core/DeukPackGenerator.d.ts +9 -0
- package/dist/core/DeukPackGenerator.d.ts.map +1 -0
- package/dist/core/DeukPackGenerator.js +15 -0
- package/dist/core/DeukPackGenerator.js.map +1 -0
- package/dist/core/DeukParser.d.ts +12 -0
- package/dist/core/DeukParser.d.ts.map +1 -0
- package/dist/core/DeukParser.js +27 -0
- package/dist/core/DeukParser.js.map +1 -0
- package/dist/core/IdlParser.d.ts +27 -0
- package/dist/core/IdlParser.d.ts.map +1 -0
- package/dist/core/IdlParser.js +157 -0
- package/dist/core/IdlParser.js.map +1 -0
- package/dist/core/ProtoParser.d.ts +12 -0
- package/dist/core/ProtoParser.d.ts.map +1 -0
- package/dist/core/ProtoParser.js +27 -0
- package/dist/core/ProtoParser.js.map +1 -0
- package/dist/csharp/DpExcelProtocol.cs +3005 -0
- package/dist/csharp/DpProtocolLibrary.cs +13 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -0
- package/dist/lexer/DeukLexer.d.ts +31 -0
- package/dist/lexer/DeukLexer.d.ts.map +1 -0
- package/dist/lexer/DeukLexer.js +292 -0
- package/dist/lexer/DeukLexer.js.map +1 -0
- package/dist/lexer/IdlLexer.d.ts +33 -0
- package/dist/lexer/IdlLexer.d.ts.map +1 -0
- package/dist/lexer/IdlLexer.js +286 -0
- package/dist/lexer/IdlLexer.js.map +1 -0
- package/dist/native/NativeDeukPackEngine.d.ts +30 -0
- package/dist/native/NativeDeukPackEngine.d.ts.map +1 -0
- package/dist/native/NativeDeukPackEngine.js +99 -0
- package/dist/native/NativeDeukPackEngine.js.map +1 -0
- package/dist/proto/ProtoASTBuilder.d.ts +29 -0
- package/dist/proto/ProtoASTBuilder.d.ts.map +1 -0
- package/dist/proto/ProtoASTBuilder.js +239 -0
- package/dist/proto/ProtoASTBuilder.js.map +1 -0
- package/dist/proto/ProtoLexer.d.ts +29 -0
- package/dist/proto/ProtoLexer.d.ts.map +1 -0
- package/dist/proto/ProtoLexer.js +264 -0
- package/dist/proto/ProtoLexer.js.map +1 -0
- package/dist/proto/ProtoTypes.d.ts +40 -0
- package/dist/proto/ProtoTypes.d.ts.map +1 -0
- package/dist/proto/ProtoTypes.js +37 -0
- package/dist/proto/ProtoTypes.js.map +1 -0
- package/dist/protocols/BinaryProtocol.d.ts +7 -0
- package/dist/protocols/BinaryProtocol.d.ts.map +1 -0
- package/dist/protocols/BinaryProtocol.js +11 -0
- package/dist/protocols/BinaryProtocol.js.map +1 -0
- package/dist/protocols/BinaryWriter.d.ts +22 -0
- package/dist/protocols/BinaryWriter.d.ts.map +1 -0
- package/dist/protocols/BinaryWriter.js +104 -0
- package/dist/protocols/BinaryWriter.js.map +1 -0
- package/dist/protocols/CompactProtocol.d.ts +7 -0
- package/dist/protocols/CompactProtocol.d.ts.map +1 -0
- package/dist/protocols/CompactProtocol.js +11 -0
- package/dist/protocols/CompactProtocol.js.map +1 -0
- package/dist/protocols/ExcelProtocol.d.ts +98 -0
- package/dist/protocols/ExcelProtocol.d.ts.map +1 -0
- package/dist/protocols/ExcelProtocol.js +639 -0
- package/dist/protocols/ExcelProtocol.js.map +1 -0
- package/dist/protocols/JsonProtocol.d.ts +68 -0
- package/dist/protocols/JsonProtocol.d.ts.map +1 -0
- package/dist/protocols/JsonProtocol.js +422 -0
- package/dist/protocols/JsonProtocol.js.map +1 -0
- package/dist/protocols/WireProtocol.d.ts +348 -0
- package/dist/protocols/WireProtocol.d.ts.map +1 -0
- package/dist/protocols/WireProtocol.js +912 -0
- package/dist/protocols/WireProtocol.js.map +1 -0
- package/dist/serialization/WireDeserializer.d.ts +8 -0
- package/dist/serialization/WireDeserializer.d.ts.map +1 -0
- package/dist/serialization/WireDeserializer.js +13 -0
- package/dist/serialization/WireDeserializer.js.map +1 -0
- package/dist/serialization/WireSerializer.d.ts +20 -0
- package/dist/serialization/WireSerializer.d.ts.map +1 -0
- package/dist/serialization/WireSerializer.js +100 -0
- package/dist/serialization/WireSerializer.js.map +1 -0
- package/dist/types/DeukPackTypes.d.ts +291 -0
- package/dist/types/DeukPackTypes.d.ts.map +1 -0
- package/dist/types/DeukPackTypes.js +76 -0
- package/dist/types/DeukPackTypes.js.map +1 -0
- package/dist/utils/EndianUtils.d.ts +11 -0
- package/dist/utils/EndianUtils.d.ts.map +1 -0
- package/dist/utils/EndianUtils.js +32 -0
- package/dist/utils/EndianUtils.js.map +1 -0
- package/dist/utils/PerformanceMonitor.d.ts +26 -0
- package/dist/utils/PerformanceMonitor.d.ts.map +1 -0
- package/dist/utils/PerformanceMonitor.js +57 -0
- package/dist/utils/PerformanceMonitor.js.map +1 -0
- package/package.json +77 -0
- 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"}
|