Skip to content

Commit e08fd70

Browse files
committed
Fixing ant script and make external tool work.
1 parent ca1e433 commit e08fd70

File tree

4 files changed

+60
-4
lines changed

4 files changed

+60
-4
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
/.metadata/
1+
/.metadata/
2+
/.recommenders/

JavaFront/build.xml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@
8585
<delete file="../JavaFrontParser/trans/JavaFrontParserMain.rtree" />
8686
<delete file="../JavaFrontParser/trans/JavaFrontParserMain.dep" />
8787
<delete dir="../JavaFrontParser/trans/JavaFrontParserMain" />
88-
<java failonerror="true" dir="../JavaFrontParser/trans/" jar="../JavaFrontParser/utils/strategoxt.jar" fork="true">
88+
<java failonerror="true" dir="../JavaFrontParser/trans/" jar="./lib/strategoxt.jar" fork="true">
8989
<arg line="-i starter.str -o JavaFrontParserMain -la stratego-sglr --lib -I .. -p org.kframework.main.lib --clean" />
9090
</java>
9191
<delete dir="src/org/kframework/main/lib" />
@@ -135,6 +135,8 @@
135135
strategoxt.jar" />
136136
</manifest>
137137
<fileset dir="./bin" />
138+
<zipgroupfileset dir="./lib" includes="strategoxt.jar" />
139+
<zipgroupfileset dir="./lib" includes="aterm-java.jar" />
138140
</jar>
139141
</target>
140142

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package org.kframework.main;
2+
3+
import org.kframework.main.lib.JavaFrontParserMain;
4+
import org.kframework.main.lib.safecallcmd1_0_0;
5+
import org.spoofax.interpreter.terms.IStrategoString;
6+
import org.spoofax.interpreter.terms.IStrategoTerm;
7+
import org.strategoxt.lang.Context;
8+
import org.strategoxt.lang.StrategoExit;
9+
10+
public class KParser {
11+
private static Context context = null;
12+
13+
private static void init() {
14+
synchronized (KParser.class) {
15+
if (context == null) {
16+
context = JavaFrontParserMain.init();
17+
}
18+
}
19+
}
20+
21+
public static String ParseKString(String kDefinition) {
22+
init();
23+
String rez = "";
24+
context.setStandAlone(true);
25+
IStrategoTerm result = null;
26+
try {
27+
try {
28+
result = context.invokeStrategyCLI(safecallcmd1_0_0.instance,
29+
"a.exe", kDefinition);
30+
31+
} finally {
32+
context.getIOAgent().closeAllFiles();
33+
}
34+
if (result == null) {
35+
System.err.println("rewriting failed, trace:");
36+
context.printStackTrace();
37+
context.setStandAlone(false);
38+
System.exit(1);
39+
} else {
40+
context.setStandAlone(false);
41+
}
42+
} catch (StrategoExit exit) {
43+
context.setStandAlone(false);
44+
System.exit(exit.getValue());
45+
}
46+
47+
if (result.getTermType() == IStrategoTerm.STRING) {
48+
rez = (((IStrategoString) result).stringValue());
49+
} else {
50+
rez = result.toString();
51+
}
52+
return rez;
53+
}
54+
}

JavaFront/src/org/kframework/main/Main.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
public class Main {
44

55
public static void main(String[] args) {
6-
// TODO Auto-generated method stub
7-
6+
System.out.println(KParser.ParseKString(args[0]));
87
}
98

109
}

0 commit comments

Comments
 (0)