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,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DeukPack AST Builder
|
|
3
|
+
* Builds Abstract Syntax Tree from tokens
|
|
4
|
+
*/
|
|
5
|
+
import { DeukPackAST, DeukPackToken } from '../types/DeukPackTypes';
|
|
6
|
+
export interface DeukPackASTBuilderOptions {
|
|
7
|
+
/** When true, parse .deuk field syntax: id> [Attr]… type name [= default] and single-identifier namespace */
|
|
8
|
+
deuk?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare class DeukPackASTBuilder {
|
|
11
|
+
private tokens;
|
|
12
|
+
private position;
|
|
13
|
+
private currentFile;
|
|
14
|
+
/** Collected doc comments for the next declaration (struct/enum/field etc.) */
|
|
15
|
+
private leadingCommentBuffer;
|
|
16
|
+
private deukMode;
|
|
17
|
+
/**
|
|
18
|
+
* Collect consecutive LINE_COMMENT/BLOCK_COMMENT tokens and return combined text (trimmed). Consumes tokens.
|
|
19
|
+
*/
|
|
20
|
+
private collectLeadingComments;
|
|
21
|
+
/**
|
|
22
|
+
* Split leading comment into docComment and C# attribute lines.
|
|
23
|
+
* Lines that look like [AttrName] or [AttrName("arg")] are treated as csharpAttributes (DeukPack extension).
|
|
24
|
+
*/
|
|
25
|
+
private parseDocCommentAndCSharpAttributes;
|
|
26
|
+
/**
|
|
27
|
+
* Parse IDL annotations: ( key = "value", key2 = "value2" ) or ( key ). Consumes tokens.
|
|
28
|
+
*/
|
|
29
|
+
private tryParseAnnotations;
|
|
30
|
+
/**
|
|
31
|
+
* Build AST from tokens
|
|
32
|
+
*/
|
|
33
|
+
build(tokens: DeukPackToken[], fileName: string, options?: DeukPackASTBuilderOptions): DeukPackAST;
|
|
34
|
+
/**
|
|
35
|
+
* Parse namespace declaration
|
|
36
|
+
*/
|
|
37
|
+
private parseNamespace;
|
|
38
|
+
/**
|
|
39
|
+
* Parse struct declaration
|
|
40
|
+
*/
|
|
41
|
+
private parseStruct;
|
|
42
|
+
/** 예약 필드 ID: message<> 자동 주입 msgInfo (IDL에는 적지 않음, 코드젠에서만 사용). DEUKPACK_MESSAGE_INFO_KEYWORD §5. */
|
|
43
|
+
private static readonly MSGINFO_FIELD_ID;
|
|
44
|
+
/**
|
|
45
|
+
* Parse message<id> name { fields } — 득팩 프로토콜 메시지.
|
|
46
|
+
* IDL에는 사용자 필드만 적고, 파서가 예약 ID(31000)로 msgInfo 필드를 자동 주입.
|
|
47
|
+
*/
|
|
48
|
+
private parseMessage;
|
|
49
|
+
/**
|
|
50
|
+
* Parse table<rowType> = { version: "...", key?: "..." } — 득팩 테이블 정의.
|
|
51
|
+
* Produces a synthetic struct named "table" with header + infos for existing codegen (IDeukMetaContainer).
|
|
52
|
+
*/
|
|
53
|
+
private parseTableDefinition;
|
|
54
|
+
/**
|
|
55
|
+
* Parse field declaration. Deuk: id> [Attr]… type name [= default]. Legacy .thrift: id: [required|optional] type name [= default]
|
|
56
|
+
*/
|
|
57
|
+
private parseField;
|
|
58
|
+
/** Parse one [Attr] or [Attr("v")] or [Attr(K=V)] in .deuk; return string for csharpAttributes */
|
|
59
|
+
private parseOneDeukInlineAttribute;
|
|
60
|
+
/**
|
|
61
|
+
* Parse type declaration
|
|
62
|
+
*/
|
|
63
|
+
private parseType;
|
|
64
|
+
/** 레거시 식별자 타입(i32 등) → 득팩 이름 정규화 (Protobuf와 동일하게 AST에는 득팩 타입만 저장) */
|
|
65
|
+
private static readonly THRIFT_TYPE_TO_DEUKPACK;
|
|
66
|
+
/** 득팩 테이블 프리미티브(DEUKPACK_IDL_DESIGN §5.1): name/note는 string 별칭. id/tid는 int64와 동일해 타입 구분 불필요. */
|
|
67
|
+
private static readonly META_PRIMITIVES;
|
|
68
|
+
/**
|
|
69
|
+
* Parse identifier type (handles namespaced types like mo_define.projectile_type_e)
|
|
70
|
+
*/
|
|
71
|
+
private parseIdentifierType;
|
|
72
|
+
/**
|
|
73
|
+
* Parse list type
|
|
74
|
+
*/
|
|
75
|
+
private parseListType;
|
|
76
|
+
/**
|
|
77
|
+
* Parse set type
|
|
78
|
+
*/
|
|
79
|
+
private parseSetType;
|
|
80
|
+
/**
|
|
81
|
+
* Parse tablelink<TableCategory, KeyField> — 득팩 테이블 행 참조.
|
|
82
|
+
*/
|
|
83
|
+
private parseTableLinkType;
|
|
84
|
+
/**
|
|
85
|
+
* Parse map type
|
|
86
|
+
*/
|
|
87
|
+
private parseMapType;
|
|
88
|
+
/**
|
|
89
|
+
* Parse default value
|
|
90
|
+
*/
|
|
91
|
+
private parseDefaultValue;
|
|
92
|
+
/**
|
|
93
|
+
* Parse identifier default value (handles namespaced values; . or :: in .deuk, stored as . in AST)
|
|
94
|
+
*/
|
|
95
|
+
private parseIdentifierDefaultValue;
|
|
96
|
+
/**
|
|
97
|
+
* Parse array default value (handles values like [{"weight":30}, {"weight":30}] or [])
|
|
98
|
+
*/
|
|
99
|
+
private parseArrayDefaultValue;
|
|
100
|
+
/**
|
|
101
|
+
* Parse object default value (handles values like { "version": 20250802 } or {})
|
|
102
|
+
*/
|
|
103
|
+
private parseObjectDefaultValue;
|
|
104
|
+
/**
|
|
105
|
+
* Parse enum declaration
|
|
106
|
+
*/
|
|
107
|
+
private parseEnum;
|
|
108
|
+
/**
|
|
109
|
+
* Parse service declaration
|
|
110
|
+
*/
|
|
111
|
+
private parseService;
|
|
112
|
+
/**
|
|
113
|
+
* Parse a single service method: returnType methodName( [ params ] )
|
|
114
|
+
*/
|
|
115
|
+
private parseServiceMethod;
|
|
116
|
+
/**
|
|
117
|
+
* Parse include statement
|
|
118
|
+
*/
|
|
119
|
+
private parseInclude;
|
|
120
|
+
/**
|
|
121
|
+
* Parse typedef declaration
|
|
122
|
+
*/
|
|
123
|
+
private parseTypedef;
|
|
124
|
+
/**
|
|
125
|
+
* Parse const declaration
|
|
126
|
+
*/
|
|
127
|
+
private parseConst;
|
|
128
|
+
/**
|
|
129
|
+
* Check if current token matches expected type
|
|
130
|
+
*/
|
|
131
|
+
private check;
|
|
132
|
+
/**
|
|
133
|
+
* Expect token of specific type and advance
|
|
134
|
+
*/
|
|
135
|
+
private expect;
|
|
136
|
+
/**
|
|
137
|
+
* Advance and return current token
|
|
138
|
+
*/
|
|
139
|
+
private advance;
|
|
140
|
+
/**
|
|
141
|
+
* Get current token without advancing
|
|
142
|
+
*/
|
|
143
|
+
private peek;
|
|
144
|
+
/**
|
|
145
|
+
* Get previous token
|
|
146
|
+
*/
|
|
147
|
+
private previous;
|
|
148
|
+
/**
|
|
149
|
+
* Check if at end of tokens
|
|
150
|
+
*/
|
|
151
|
+
private isAtEnd;
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=DeukPackASTBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeukPackASTBuilder.d.ts","sourceRoot":"","sources":["../../src/ast/DeukPackASTBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAmG,aAAa,EAA4C,MAAM,wBAAwB,CAAC;AAE/M,MAAM,WAAW,yBAAyB;IACxC,6GAA6G;IAC7G,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,WAAW,CAAc;IACjC,+EAA+E;IAC/E,OAAO,CAAC,oBAAoB,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAkB;IAElC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAU9B;;;OAGG;IACH,OAAO,CAAC,kCAAkC;IAoB1C;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAwB3B;;OAEG;IACH,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,yBAAyB,GAAG,WAAW;IAyGlG;;OAEG;IACH,OAAO,CAAC,cAAc;IAmBtB;;OAEG;IACH,OAAO,CAAC,WAAW;IA2CnB,oGAAoG;IACpG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAEjD;;;OAGG;IACH,OAAO,CAAC,YAAY;IA+CpB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAsD5B;;OAEG;IACH,OAAO,CAAC,UAAU;IAmElB,kGAAkG;IAClG,OAAO,CAAC,2BAA2B;IAoBnC;;OAEG;IACH,OAAO,CAAC,SAAS;IA+CjB,qEAAqE;IACrE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAK7C;IAEF,kGAAkG;IAClG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAGrC;IAEF;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAoB3B;;OAEG;IACH,OAAO,CAAC,aAAa;IAYrB;;OAEG;IACH,OAAO,CAAC,YAAY;IAYpB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAU1B;;OAEG;IACH,OAAO,CAAC,YAAY;IAepB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAwBzB;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAanC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA+C9B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA4D/B;;OAEG;IACH,OAAO,CAAC,SAAS;IA6CjB;;OAEG;IACH,OAAO,CAAC,YAAY;IA4BpB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAkB1B;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACH,OAAO,CAAC,YAAY;IAapB;;OAEG;IACH,OAAO,CAAC,UAAU;IAgBlB;;OAEG;IACH,OAAO,CAAC,KAAK;IAKb;;OAEG;IACH,OAAO,CAAC,MAAM;IAQd;;OAEG;IACH,OAAO,CAAC,OAAO;IAOf;;OAEG;IACH,OAAO,CAAC,IAAI;IAIZ;;OAEG;IACH,OAAO,CAAC,QAAQ;IAIhB;;OAEG;IACH,OAAO,CAAC,OAAO;CAGhB"}
|