Skip to content

Commit 08d0a84

Browse files
committed
small improvement
1 parent 25b2fba commit 08d0a84

2 files changed

Lines changed: 13 additions & 15 deletions

File tree

src/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ import slangPrint from './slangPrinter.js';
1111
import { isBlockComment, isComment } from './slang-utils/is-comment.js';
1212
import { locEnd, locStart } from './slang-utils/loc.js';
1313
import {
14-
slangParserId,
15-
slangYulParserId,
14+
antlrAstId,
1615
antlrParserId,
1716
slangAstId,
18-
antlrAstId
17+
slangParserId,
18+
slangYulParserId
1919
} from './constants.js';
2020

2121
import type {

src/slang-utils/create-parser.ts

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,24 +10,22 @@ import type { AstNode } from '../slang-nodes/types.d.ts';
1010

1111
const supportedVersions = LanguageFacts.allVersions();
1212
const supportedLength = supportedVersions.length;
13+
const rootKindMap = new Map<ParserOptions<AstNode>['parser'], NonterminalKind>([
14+
[slangParserId, NonterminalKind.SourceUnit],
15+
[slangYulParserId, NonterminalKind.YulBlock]
16+
]);
1317

1418
function parserAndOutput(
1519
text: string,
1620
version: string,
1721
{ parser: optionsParser }: ParserOptions<AstNode>
1822
): { parser: Parser; parseOutput: ParseOutput } {
19-
let rootKind;
20-
switch (optionsParser) {
21-
case slangParserId:
22-
rootKind = NonterminalKind.SourceUnit;
23-
break;
24-
case slangYulParserId:
25-
rootKind = NonterminalKind.YulBlock;
26-
break;
27-
default:
28-
throw new Error(
29-
`Parser '${optionsParser as string}' is not supported for Language Inference.`
30-
);
23+
const rootKind = rootKindMap.get(optionsParser);
24+
25+
if (rootKind === undefined) {
26+
throw new Error(
27+
`Parser '${optionsParser as string}' is not supported for Language Inference.`
28+
);
3129
}
3230

3331
const parser = Parser.create(version);

0 commit comments

Comments
 (0)