Skip to content

Commit 23f3ab3

Browse files
committed
Export typeCheck method from src index.js
1 parent 8f08da5 commit 23f3ab3

File tree

2 files changed

+11
-14
lines changed

2 files changed

+11
-14
lines changed

src/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
import * as JVM from './jvm'
2+
import { typeCheck } from './types'
23

3-
export { JVM }
4+
export { JVM, typeCheck }

src/types/index.ts

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,21 @@
11
import { check } from './checker'
2-
import { Node } from './ast/types'
32
import { parse } from './ast'
43
import { TypeCheckerError } from './errors'
54

6-
export type TypeCheckResult = { hasTypeErrors: boolean; errors: Error[] }
5+
type TypeCheckResult = { hasTypeErrors: boolean; errorMsgs: string[] }
76

8-
export const parseProgram = (program: string): Node => {
9-
return parse(program)
7+
const convertErrorsToReadableMsgs = (program: string, errors: Error[]): string[] => {
8+
return errors.map(error => {
9+
if (!(error instanceof TypeCheckerError)) return error.message
10+
return error.toReadableMessage(program)
11+
})
1012
}
1113

12-
export const typeCheck = (ast: Node): TypeCheckResult => {
14+
export const typeCheck = (program: string): TypeCheckResult => {
15+
const ast = parse(program)
1316
const result = check(ast)
1417
return {
1518
hasTypeErrors: result.errors.length > 0,
16-
errors: result.errors
19+
errorMsgs: convertErrorsToReadableMsgs(program, result.errors)
1720
}
1821
}
19-
20-
export const convertErrorsToReadableMsgs = (program: string, errors: Error[]): string[] => {
21-
return errors.map(error => {
22-
if (!(error instanceof TypeCheckerError)) return error.message
23-
return error.toReadableMessage(program)
24-
})
25-
}

0 commit comments

Comments
 (0)