-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathcompiler.fls
More file actions
34 lines (27 loc) · 910 Bytes
/
compiler.fls
File metadata and controls
34 lines (27 loc) · 910 Bytes
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
include 'errors.fls' as errors
include 'parse/build.fls' as parse
include 'resolve/scope.fls' as scope
fs: require('fs')
func readStdin(callback)
r: []
process.stdin.on('data', (chunk): r.push(chunk))
process.stdin.on('end', (): callback(null, r.join('')))
process.stdin.on('error', (e): callback(e))
func printErrorsExit()
errors.printErrors()
process.exit(1)
func read(file, includePos, %%)
try
return readStdin(%%) if file = null else fs.readFile(file, %%)
catch e
errors.ExternalError(includePos, e.message)
printErrorsExit()
export func parseFile(file, includePos, %%)
r: parse.build(read(file, includePos, %%).toString(), file)
if errors.hasError()
printErrorsExit()
return r
export class Scope: scope.GlobalScope
ctor() super()
func parseFile(path, includePos, %%)
return parseFile(path, includePos, %%)