Skip to content

Commit 4588449

Browse files
author
jialan
committed
fix: get lexer token name from symbolicNames
1 parent 9b2183f commit 4588449

File tree

1 file changed

+6
-9
lines changed

1 file changed

+6
-9
lines changed

src/baseSQLWorker.ts

+6-9
Original file line numberDiff line numberDiff line change
@@ -64,24 +64,21 @@ export abstract class BaseSQLWorker {
6464
const parser = this.parser.createParser(code);
6565
const parseTree = parser.program();
6666
const ruleNames = parser.ruleNames;
67-
const tokenTypeMap = parser.getTokenTypeMap();
68-
const tokenNameMap = new Map();
69-
70-
for (const [name, tokenType] of tokenTypeMap.entries()) {
71-
tokenNameMap.set(tokenType, name);
72-
}
67+
const symbolicNames: string[] = (parser as any).symbolicNames || [];
7368

7469
// 只保留必要信息, 避免worker通信传输失败
7570
function serializeNode(node: any): SerializedTreeNode | null {
7671
if (!node) return null;
7772

7873
const isRuleNode = !node.symbol;
74+
const text = isRuleNode
75+
? ''
76+
: (symbolicNames[node.symbol?.type] ? symbolicNames[node.symbol.type] + ': ' : '') +
77+
node.symbol?.text;
7978

8079
const serializedNode: SerializedTreeNode = {
8180
ruleName: isRuleNode ? ruleNames[node.ruleIndex] : node.constructor.name,
82-
text: isRuleNode
83-
? ''
84-
: tokenNameMap.get(node.symbol.tokenSource?.type) + ': ' + node.symbol.text,
81+
text,
8582
children: []
8683
};
8784

0 commit comments

Comments
 (0)