Skip to content

Commit 3ae0621

Browse files
committed
basic KORE-based execution in krun
Former-commit-id: da030162bbe3352bf6ea88a4c23330d15649c495 [formerly 4a8074937337b1655b2db7b88788681257a04d33] Former-commit-id: d555ec8f4dc3ab67fbfd9be14838059fe3ad324f
1 parent 1aab6ae commit 3ae0621

3 files changed

Lines changed: 37 additions & 13 deletions

File tree

k-distribution/pom.xml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,6 @@
3737
<version>${project.version}</version>
3838
<scope>runtime</scope>
3939
</dependency>
40-
<dependency>
41-
<groupId>org.kframework.k</groupId>
42-
<artifactId>tiny</artifactId>
43-
<version>${project.version}</version>
44-
<scope>runtime</scope>
45-
</dependency>
4640
<dependency>
4741
<groupId>org.kframework.k</groupId>
4842
<artifactId>coq-backend</artifactId>

kernel/pom.xml

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
22
<!-- Copyright (c) 2014-2015 K Team. All Rights Reserved. -->
3-
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
45

56
<modelVersion>4.0.0</modelVersion>
67
<parent>
@@ -18,7 +19,12 @@
1819
<groupId>org.kframework.k</groupId>
1920
<artifactId>kore</artifactId>
2021
<version>${project.version}</version>
21-
</dependency>
22+
</dependency>
23+
<dependency>
24+
<groupId>org.kframework.k</groupId>
25+
<artifactId>tiny</artifactId>
26+
<version>${project.version}</version>
27+
</dependency>
2228
<dependency>
2329
<groupId>com.google.guava</groupId>
2430
<artifactId>guava</artifactId>
@@ -163,7 +169,6 @@
163169
<classifier>windows</classifier>
164170
<type>exe</type>
165171
</dependency>
166-
167172
<dependency>
168173
<groupId>org.kframework.dependencies</groupId>
169174
<artifactId>sdf2table</artifactId>
@@ -249,7 +254,7 @@
249254
<plugin>
250255
<artifactId>maven-surefire-plugin</artifactId>
251256
<version>2.17</version>
252-
<configuration>
257+
<configuration>
253258
<systemPropertyVariables>
254259
<java.awt.headless>true</java.awt.headless>
255260
</systemPropertyVariables>

kernel/src/main/java/org/kframework/krun/KRun.java

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,22 @@
11
// Copyright (c) 2015 K Team. All Rights Reserved.
22
package org.kframework.krun;
33

4+
import com.google.common.io.Files;
5+
import org.kframework.attributes.Source;
46
import org.kframework.kil.Attributes;
57
import org.kframework.kompile.CompiledDefinition;
8+
import org.kframework.kore.K;
9+
import org.kframework.tiny.Rewriter;
610
import org.kframework.transformation.Transformation;
711
import org.kframework.utils.errorsystem.KExceptionManager;
812
import org.kframework.utils.file.FileUtil;
913

14+
import java.io.File;
15+
import java.io.IOException;
16+
import java.nio.charset.Charset;
17+
1018
/**
11-
* Created by dwightguth on 4/30/15.
19+
* The KORE-based KRun
1220
*/
1321
public class KRun implements Transformation<Void, Void> {
1422

@@ -21,8 +29,25 @@ public KRun(KExceptionManager kem, FileUtil files) {
2129
}
2230

2331
public int run(CompiledDefinition compiledDef, KRunOptions options) {
24-
System.err.println("TODO(cos): krun");
25-
return 0;
32+
try {
33+
String pgmFileName = options.configurationCreation.pgm();
34+
if (!options.configurationCreation.term()) {
35+
KExceptionManager.criticalError("Unsupported options: term=false");
36+
}
37+
38+
String pgm = Files.toString(new File(pgmFileName), Charset.defaultCharset());
39+
K program = compiledDef.getProgramParser().apply(pgm, Source.apply(pgm));
40+
41+
Rewriter rewriter = new Rewriter(compiledDef.executionModule());
42+
43+
K result = rewriter.execute(program);
44+
45+
System.err.println("result:" + result);
46+
return 0;
47+
} catch (Exception e) {
48+
KExceptionManager.criticalError(e.getMessage(), e);
49+
return 1;
50+
}
2651
}
2752

2853
@Override

0 commit comments

Comments
 (0)