-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathparse.js
More file actions
35 lines (25 loc) · 716 Bytes
/
parse.js
File metadata and controls
35 lines (25 loc) · 716 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
35
const nearley = require('nearley')
const grammar = require('./dscript')
const fs = require('fs')
const parser = new nearley.Parser(nearley.Grammar.fromCompiled(grammar));
const fileName = process.argv[2]
const astFileName = fileName.replace('.ds', '.ast')
const code = fs.readFileSync(fileName).toString()
if(fileName){
parser.feed(code)
// console.log(parser.results[0]);
const res = parser.results[0]
const ast = JSON.stringify(res,null," ")
fs.writeFile(astFileName,ast, (e) => {
if(e){
console.log("Unable To Write File");
}
else{
console.log("ex1.ast written");
}
})
}
else{
throw new Error("Please Provide A .ds file")
}
//`