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,13 @@
1
+ /**
2
+ * DeukPack Protocol Library — 모듈화됨.
3
+ * 기존 단일 파일(2100+ 라인)을 아래 6개 파일로 분리. 이 파일은 빌드에서 제외됨.
4
+ *
5
+ * - DpProtocolCore.cs 인터페이스·와이어 타입·스키마·DpTypeNames
6
+ * - DpBinaryProtocol.cs 바이너리 프로토콜 (ArrayPool·최적화)
7
+ * - DpJsonProtocol.cs JSON 프로토콜
8
+ * - DeukPackSerializer.cs 직렬화 헬퍼 (WriteValue, ReadValue, WriteList, ReadList 등)
9
+ * - DpProtocolUtil.cs Skip 등 유틸
10
+ * - TBinaryProtocol.cs Thrift 호환 별도 구현
11
+ *
12
+ * DeukPack.Protocol.csproj 에서는 위 6개만 Compile에 포함.
13
+ */
@@ -0,0 +1,22 @@
1
+ /**
2
+ * DeukPack - 100x faster than Apache Thrift
3
+ * Multi-language support: JavaScript, C++, C#
4
+ */
5
+ export * from './core/DeukPackEngine';
6
+ export * from './core/IdlParser';
7
+ export * from './core/DeukParser';
8
+ export * from './core/ProtoParser';
9
+ export * from './core/DeukPackGenerator';
10
+ export * from './serialization/WireSerializer';
11
+ export * from './serialization/WireDeserializer';
12
+ export * from './codegen/CodeGenerator';
13
+ export * from './codegen/CppGenerator';
14
+ export * from './codegen/CSharpGenerator';
15
+ export * from './types/DeukPackTypes';
16
+ export * from './protocols/WireProtocol';
17
+ export * from './protocols/JsonProtocol';
18
+ export * from './protocols/ExcelProtocol';
19
+ export { NativeDeukPackEngine } from './native/NativeDeukPackEngine';
20
+ export declare const VERSION = "1.0.0";
21
+ export declare const ENGINE_NAME = "DeukPack";
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAG1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAGrE,eAAO,MAAM,OAAO,UAAU,CAAC;AAC/B,eAAO,MAAM,WAAW,aAAa,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ /**
3
+ * DeukPack - 100x faster than Apache Thrift
4
+ * Multi-language support: JavaScript, C++, C#
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
18
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.ENGINE_NAME = exports.VERSION = exports.NativeDeukPackEngine = void 0;
22
+ __exportStar(require("./core/DeukPackEngine"), exports);
23
+ __exportStar(require("./core/IdlParser"), exports);
24
+ __exportStar(require("./core/DeukParser"), exports);
25
+ __exportStar(require("./core/ProtoParser"), exports);
26
+ __exportStar(require("./core/DeukPackGenerator"), exports);
27
+ // export * from './protocols/BinaryWriter';
28
+ __exportStar(require("./serialization/WireSerializer"), exports);
29
+ __exportStar(require("./serialization/WireDeserializer"), exports);
30
+ __exportStar(require("./codegen/CodeGenerator"), exports);
31
+ __exportStar(require("./codegen/CppGenerator"), exports);
32
+ __exportStar(require("./codegen/CSharpGenerator"), exports);
33
+ __exportStar(require("./types/DeukPackTypes"), exports);
34
+ __exportStar(require("./protocols/WireProtocol"), exports);
35
+ __exportStar(require("./protocols/JsonProtocol"), exports);
36
+ __exportStar(require("./protocols/ExcelProtocol"), exports);
37
+ // Native bindings
38
+ var NativeDeukPackEngine_1 = require("./native/NativeDeukPackEngine");
39
+ Object.defineProperty(exports, "NativeDeukPackEngine", { enumerable: true, get: function () { return NativeDeukPackEngine_1.NativeDeukPackEngine; } });
40
+ // Version info
41
+ exports.VERSION = '1.0.0';
42
+ exports.ENGINE_NAME = 'DeukPack';
43
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAEH,wDAAsC;AACtC,mDAAiC;AACjC,oDAAkC;AAClC,qDAAmC;AACnC,2DAAyC;AACzC,4CAA4C;AAC5C,iEAA+C;AAC/C,mEAAiD;AACjD,0DAAwC;AACxC,yDAAuC;AACvC,4DAA0C;AAC1C,wDAAsC;AACtC,2DAAyC;AACzC,2DAAyC;AACzC,4DAA0C;AAE1C,kBAAkB;AAClB,sEAAqE;AAA5D,4HAAA,oBAAoB,OAAA;AAE7B,eAAe;AACF,QAAA,OAAO,GAAG,OAAO,CAAC;AAClB,QAAA,WAAW,GAAG,UAAU,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * DeukPack .deuk IDL Lexer
3
+ * Tokenizes .deuk source; produces same token types as IdlLexer where possible
4
+ * so that AST can be ThriftAST. Adds: record/struct → RECORD(득팩 표준), 득팩 숫자형 (int32→I32, int64→I64, etc.)
5
+ */
6
+ import { DeukPackToken } from '../types/DeukPackTypes';
7
+ export declare class DeukLexer {
8
+ private input;
9
+ private position;
10
+ private line;
11
+ private column;
12
+ private tokens;
13
+ private keywords;
14
+ tokenize(input: string): DeukPackToken[];
15
+ private nextToken;
16
+ private readStringLiteral;
17
+ private readEscapeSequence;
18
+ private readNumber;
19
+ private readIdentifier;
20
+ private readLineComment;
21
+ private readBlockComment;
22
+ private skipWhitespace;
23
+ private advance;
24
+ private peek;
25
+ private isAlpha;
26
+ private isAlphaNumeric;
27
+ private isDigit;
28
+ private isWhitespace;
29
+ private createToken;
30
+ }
31
+ //# sourceMappingURL=DeukLexer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeukLexer.d.ts","sourceRoot":"","sources":["../../src/lexer/DeukLexer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAa,MAAM,wBAAwB,CAAC;AAElE,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,MAAM,CAAuB;IAErC,OAAO,CAAC,QAAQ,CA+Bb;IAEH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE;IAwBxC,OAAO,CAAC,SAAS;IAkCjB,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,UAAU;IAgClB,OAAO,CAAC,cAAc;IAetB,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,292 @@
1
+ "use strict";
2
+ /**
3
+ * DeukPack .deuk IDL Lexer
4
+ * Tokenizes .deuk source; produces same token types as IdlLexer where possible
5
+ * so that AST can be ThriftAST. Adds: record/struct → RECORD(득팩 표준), 득팩 숫자형 (int32→I32, int64→I64, etc.)
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.DeukLexer = void 0;
9
+ const DeukPackTypes_1 = require("../types/DeukPackTypes");
10
+ class DeukLexer {
11
+ constructor() {
12
+ this.input = '';
13
+ this.position = 0;
14
+ this.line = 1;
15
+ this.column = 1;
16
+ this.tokens = [];
17
+ this.keywords = new Map([
18
+ ['namespace', DeukPackTypes_1.TokenType.NAMESPACE],
19
+ ['struct', DeukPackTypes_1.TokenType.RECORD],
20
+ ['record', DeukPackTypes_1.TokenType.RECORD],
21
+ ['enum', DeukPackTypes_1.TokenType.ENUM],
22
+ ['service', DeukPackTypes_1.TokenType.SERVICE],
23
+ ['typedef', DeukPackTypes_1.TokenType.TYPEDEF],
24
+ ['const', DeukPackTypes_1.TokenType.CONST],
25
+ ['include', DeukPackTypes_1.TokenType.INCLUDE],
26
+ ['exception', DeukPackTypes_1.TokenType.EXCEPTION],
27
+ ['union', DeukPackTypes_1.TokenType.UNION],
28
+ ['required', DeukPackTypes_1.TokenType.REQUIRED],
29
+ ['optional', DeukPackTypes_1.TokenType.OPTIONAL],
30
+ ['bool', DeukPackTypes_1.TokenType.BOOL],
31
+ ['byte', DeukPackTypes_1.TokenType.BYTE],
32
+ ['i16', DeukPackTypes_1.TokenType.I16],
33
+ ['i32', DeukPackTypes_1.TokenType.I32],
34
+ ['i64', DeukPackTypes_1.TokenType.I64],
35
+ ['int8', DeukPackTypes_1.TokenType.BYTE],
36
+ ['int16', DeukPackTypes_1.TokenType.I16],
37
+ ['int32', DeukPackTypes_1.TokenType.I32],
38
+ ['int64', DeukPackTypes_1.TokenType.I64],
39
+ ['double', DeukPackTypes_1.TokenType.DOUBLE],
40
+ ['float', DeukPackTypes_1.TokenType.DOUBLE],
41
+ ['string', DeukPackTypes_1.TokenType.STRING],
42
+ ['binary', DeukPackTypes_1.TokenType.BINARY],
43
+ ['list', DeukPackTypes_1.TokenType.LIST],
44
+ ['set', DeukPackTypes_1.TokenType.SET],
45
+ ['map', DeukPackTypes_1.TokenType.MAP],
46
+ ['tablelink', DeukPackTypes_1.TokenType.TABLELINK],
47
+ ['table', DeukPackTypes_1.TokenType.TABLE]
48
+ ]);
49
+ }
50
+ tokenize(input) {
51
+ this.input = input;
52
+ this.position = 0;
53
+ this.line = 1;
54
+ this.column = 1;
55
+ this.tokens = [];
56
+ while (this.position < this.input.length) {
57
+ this.skipWhitespace();
58
+ if (this.position >= this.input.length)
59
+ break;
60
+ const token = this.nextToken();
61
+ if (token && token.type !== DeukPackTypes_1.TokenType.WHITESPACE)
62
+ this.tokens.push(token);
63
+ }
64
+ this.tokens.push({
65
+ type: DeukPackTypes_1.TokenType.EOF,
66
+ value: '',
67
+ position: this.position,
68
+ line: this.line,
69
+ column: this.column
70
+ });
71
+ return this.tokens;
72
+ }
73
+ nextToken() {
74
+ const startPos = this.position;
75
+ const startLine = this.line;
76
+ const startColumn = this.column;
77
+ const char = this.input[this.position] || '';
78
+ switch (char) {
79
+ case '=':
80
+ this.advance();
81
+ return this.createToken(DeukPackTypes_1.TokenType.EQUALS, '=', startPos, startLine, startColumn);
82
+ case ':':
83
+ this.advance();
84
+ return this.createToken(DeukPackTypes_1.TokenType.COLON, ':', startPos, startLine, startColumn);
85
+ case ';':
86
+ this.advance();
87
+ return this.createToken(DeukPackTypes_1.TokenType.SEMICOLON, ';', startPos, startLine, startColumn);
88
+ case ',':
89
+ this.advance();
90
+ return this.createToken(DeukPackTypes_1.TokenType.COMMA, ',', startPos, startLine, startColumn);
91
+ case '.':
92
+ this.advance();
93
+ return this.createToken(DeukPackTypes_1.TokenType.DOT, '.', startPos, startLine, startColumn);
94
+ case '*':
95
+ this.advance();
96
+ return this.createToken(DeukPackTypes_1.TokenType.ASTERISK, '*', startPos, startLine, startColumn);
97
+ case '{':
98
+ this.advance();
99
+ return this.createToken(DeukPackTypes_1.TokenType.LEFT_BRACE, '{', startPos, startLine, startColumn);
100
+ case '}':
101
+ this.advance();
102
+ return this.createToken(DeukPackTypes_1.TokenType.RIGHT_BRACE, '}', startPos, startLine, startColumn);
103
+ case '[':
104
+ this.advance();
105
+ return this.createToken(DeukPackTypes_1.TokenType.LEFT_BRACKET, '[', startPos, startLine, startColumn);
106
+ case ']':
107
+ this.advance();
108
+ return this.createToken(DeukPackTypes_1.TokenType.RIGHT_BRACKET, ']', startPos, startLine, startColumn);
109
+ case '<':
110
+ this.advance();
111
+ return this.createToken(DeukPackTypes_1.TokenType.LEFT_BRACKET, '<', startPos, startLine, startColumn);
112
+ case '>':
113
+ this.advance();
114
+ return this.createToken(DeukPackTypes_1.TokenType.RIGHT_BRACKET, '>', startPos, startLine, startColumn);
115
+ case '(':
116
+ this.advance();
117
+ return this.createToken(DeukPackTypes_1.TokenType.LEFT_PAREN, '(', startPos, startLine, startColumn);
118
+ case ')':
119
+ this.advance();
120
+ return this.createToken(DeukPackTypes_1.TokenType.RIGHT_PAREN, ')', startPos, startLine, startColumn);
121
+ }
122
+ if (char === '"' || char === "'")
123
+ return this.readStringLiteral();
124
+ if (this.isDigit(char))
125
+ return this.readNumber();
126
+ if (this.isAlpha(char) || char === '_')
127
+ return this.readIdentifier();
128
+ if (char === '/' && this.peek() === '/')
129
+ return this.readLineComment();
130
+ if (char === '/' && this.peek() === '*')
131
+ return this.readBlockComment();
132
+ if (char === '#' || (char === '-' && this.peek() === '-'))
133
+ return this.readLineComment();
134
+ this.advance();
135
+ return null;
136
+ }
137
+ readStringLiteral() {
138
+ const startPos = this.position;
139
+ const startLine = this.line;
140
+ const startColumn = this.column;
141
+ const quote = this.input[this.position];
142
+ this.advance();
143
+ let value = '';
144
+ while (this.position < this.input.length && this.input[this.position] !== quote) {
145
+ if (this.input[this.position] === '\\') {
146
+ this.advance();
147
+ if (this.position < this.input.length)
148
+ value += this.readEscapeSequence();
149
+ }
150
+ else {
151
+ value += this.input[this.position];
152
+ this.advance();
153
+ }
154
+ }
155
+ if (this.position < this.input.length)
156
+ this.advance();
157
+ return this.createToken(DeukPackTypes_1.TokenType.STRING_LITERAL, value, startPos, startLine, startColumn);
158
+ }
159
+ readEscapeSequence() {
160
+ const c = this.input[this.position] || '';
161
+ this.advance();
162
+ switch (c) {
163
+ case 'n': return '\n';
164
+ case 't': return '\t';
165
+ case 'r': return '\r';
166
+ case '\\': return '\\';
167
+ case '"': return '"';
168
+ case "'": return "'";
169
+ default: return c || '';
170
+ }
171
+ }
172
+ readNumber() {
173
+ const startPos = this.position;
174
+ const startLine = this.line;
175
+ const startColumn = this.column;
176
+ let value = '';
177
+ while (this.position < this.input.length && this.isDigit(this.input[this.position] || '')) {
178
+ value += this.input[this.position];
179
+ this.advance();
180
+ }
181
+ if (this.input[this.position] === '.') {
182
+ value += this.input[this.position];
183
+ this.advance();
184
+ while (this.position < this.input.length && this.isDigit(this.input[this.position] || '')) {
185
+ value += this.input[this.position];
186
+ this.advance();
187
+ }
188
+ }
189
+ if (this.input[this.position] === 'e' || this.input[this.position] === 'E') {
190
+ value += this.input[this.position];
191
+ this.advance();
192
+ if (this.input[this.position] === '+' || this.input[this.position] === '-') {
193
+ value += this.input[this.position];
194
+ this.advance();
195
+ }
196
+ while (this.position < this.input.length && this.isDigit(this.input[this.position] || '')) {
197
+ value += this.input[this.position];
198
+ this.advance();
199
+ }
200
+ }
201
+ return this.createToken(DeukPackTypes_1.TokenType.NUMBER, value, startPos, startLine, startColumn);
202
+ }
203
+ readIdentifier() {
204
+ const startPos = this.position;
205
+ const startLine = this.line;
206
+ const startColumn = this.column;
207
+ let value = '';
208
+ while (this.position < this.input.length &&
209
+ (this.isAlphaNumeric(this.input[this.position] || '') || (this.input[this.position] || '') === '_')) {
210
+ value += this.input[this.position];
211
+ this.advance();
212
+ }
213
+ const keywordType = this.keywords.get(value);
214
+ if (keywordType)
215
+ return this.createToken(keywordType, value, startPos, startLine, startColumn);
216
+ return this.createToken(DeukPackTypes_1.TokenType.IDENTIFIER, value, startPos, startLine, startColumn);
217
+ }
218
+ readLineComment() {
219
+ const startPos = this.position;
220
+ const startLine = this.line;
221
+ const startColumn = this.column;
222
+ let value = '';
223
+ this.advance();
224
+ if (this.input[this.position - 1] === '/' || this.input[this.position - 1] === '-')
225
+ this.advance();
226
+ while (this.position < this.input.length && this.input[this.position] !== '\n') {
227
+ value += this.input[this.position];
228
+ this.advance();
229
+ }
230
+ return this.createToken(DeukPackTypes_1.TokenType.LINE_COMMENT, value, startPos, startLine, startColumn);
231
+ }
232
+ readBlockComment() {
233
+ const startPos = this.position;
234
+ const startLine = this.line;
235
+ const startColumn = this.column;
236
+ let value = '';
237
+ this.advance();
238
+ this.advance();
239
+ while (this.position < this.input.length - 1) {
240
+ if (this.input[this.position] === '*' && this.input[this.position + 1] === '/') {
241
+ this.advance();
242
+ this.advance();
243
+ break;
244
+ }
245
+ value += this.input[this.position];
246
+ this.advance();
247
+ }
248
+ return this.createToken(DeukPackTypes_1.TokenType.BLOCK_COMMENT, value, startPos, startLine, startColumn);
249
+ }
250
+ skipWhitespace() {
251
+ while (this.position < this.input.length && this.isWhitespace(this.input[this.position] || '')) {
252
+ if (this.input[this.position] === '\n') {
253
+ this.line++;
254
+ this.column = 1;
255
+ }
256
+ else
257
+ this.column++;
258
+ this.position++;
259
+ }
260
+ }
261
+ advance() {
262
+ if (this.position < this.input.length) {
263
+ if (this.input[this.position] === '\n') {
264
+ this.line++;
265
+ this.column = 1;
266
+ }
267
+ else
268
+ this.column++;
269
+ this.position++;
270
+ }
271
+ }
272
+ peek() {
273
+ return this.position + 1 < this.input.length ? (this.input[this.position + 1] || '') : '';
274
+ }
275
+ isAlpha(c) {
276
+ return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z');
277
+ }
278
+ isAlphaNumeric(c) {
279
+ return this.isAlpha(c) || this.isDigit(c);
280
+ }
281
+ isDigit(c) {
282
+ return c >= '0' && c <= '9';
283
+ }
284
+ isWhitespace(c) {
285
+ return c === ' ' || c === '\t' || c === '\n' || c === '\r';
286
+ }
287
+ createToken(type, value, position, line, column) {
288
+ return { type, value, position, line, column };
289
+ }
290
+ }
291
+ exports.DeukLexer = DeukLexer;
292
+ //# sourceMappingURL=DeukLexer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeukLexer.js","sourceRoot":"","sources":["../../src/lexer/DeukLexer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * IDL Lexer (.thrift-style source)
3
+ * Same token types as DeukLexer for shared AST builder.
4
+ */
5
+ import { DeukPackToken } from '../types/DeukPackTypes';
6
+ export declare class IdlLexer {
7
+ private input;
8
+ private position;
9
+ private line;
10
+ private column;
11
+ private tokens;
12
+ private keywords;
13
+ /**
14
+ * Tokenize IDL input string
15
+ */
16
+ tokenize(input: string): DeukPackToken[];
17
+ private nextToken;
18
+ private readStringLiteral;
19
+ private readEscapeSequence;
20
+ private readNumber;
21
+ private readIdentifier;
22
+ private readLineComment;
23
+ private readBlockComment;
24
+ private skipWhitespace;
25
+ private advance;
26
+ private peek;
27
+ private isAlpha;
28
+ private isAlphaNumeric;
29
+ private isDigit;
30
+ private isWhitespace;
31
+ private createToken;
32
+ }
33
+ //# sourceMappingURL=IdlLexer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IdlLexer.d.ts","sourceRoot":"","sources":["../../src/lexer/IdlLexer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAa,MAAM,wBAAwB,CAAC;AAElE,qBAAa,QAAQ;IACnB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,MAAM,CAAuB;IAGrC,OAAO,CAAC,QAAQ,CAwBb;IAEH;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE;IA+BxC,OAAO,CAAC,SAAS;IA8DjB,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,UAAU;IAgClB,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,cAAc;IAEtB,OAAO,CAAC,OAAO;IAEf,OAAO,CAAC,YAAY;IAEpB,OAAO,CAAC,WAAW;CAGpB"}