-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMain.java
More file actions
48 lines (39 loc) · 1.33 KB
/
Copy pathMain.java
File metadata and controls
48 lines (39 loc) · 1.33 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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import kcfa.KCFA;
import kcfa.State;
import syntaxtree.Program;
import java.util.Set;
import java.io.*;
import org.mozilla.javascript.ast.*;
import javascriptparser.ParserForJavaScript;
import javascriptparser.GenIJSVistor;
public class Main{
public static void main(String[] args){
try {
//Program prog = new IntermediateJavaScriptParser(System.in).Program();
File inFile = new File("/Users/yrbahn/Documents/workspace/test.js");
// Parsing a javascript file and then getting a AST for javascript
ParserForJavaScript parserForJavascript = new ParserForJavaScript();
AstRoot javascriptAST = parserForJavascript.parser(inFile);
// create a visitor which generates a AST for Intermediate Javascript.
GenIJSVistor generatorIJS = new GenIJSVistor();
javascriptAST.visit(generatorIJS);
// getting a AST for IJS
Program prog = generatorIJS.genIJSAST();
// Starting a kCFA analysis.
KCFA.setK(1);
State initialState = KCFA.makeInitalState(prog);
Set<State> setState = KCFA.explore(initialState);
if (setState == null){
System.err.println("Program aborts!");
} else {
System.out.println("=======Store summarize======");
System.out.println(KCFA.summarize(setState));
}
}
catch (ParseException e){
System.out.println(e);
} catch(Exception e){
e.printStackTrace();
}
}
}