-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathSource.ts
More file actions
34 lines (33 loc) · 1.14 KB
/
Source.ts
File metadata and controls
34 lines (33 loc) · 1.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import { mendly } from "mendly"
export class Source extends mendly.Reader.Buffered implements mendly.Error.Handler {
constructor(reader: mendly.Reader, private errorHandler: mendly.Error.Handler) {
super(reader)
}
raise(message: mendly.Error): void
raise(message: string, level?: mendly.Error.Level, type?: string, region?: mendly.Error.Region): void
raise(
message: string | mendly.Error,
level?: mendly.Error.Level,
type = "lexical",
region?: mendly.Error.Region
): void {
if (!(message instanceof mendly.Error)) {
if (!level)
level = "critical"
if (!region)
region = this.region
message = new mendly.Error(message as string, level, type, region)
}
this.errorHandler.raise(message as mendly.Error)
}
requirePrefix(prefix: string | string[]): Source {
return new Source(new mendly.Reader.Prefix(this, prefix), this.errorHandler)
}
till(endMark: string | string[]): Source {
return new Source(mendly.Reader.Till.create(this, endMark), this.errorHandler)
}
until(endMark: string | string[]): Source {
return new Source(mendly.Reader.Until.create(this, endMark), this.errorHandler)
}
}
export namespace Source {}