Skip to content

Commit 947c37c

Browse files
author
Guy Repta
committed
kernel/.../KRead.java: Added parsing method for KRun to use
1 parent 8751f3a commit 947c37c

1 file changed

Lines changed: 19 additions & 6 deletions

File tree

  • kernel/src/main/java/org/kframework/parser

kernel/src/main/java/org/kframework/parser/KRead.java

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,18 @@
2424
import org.kframework.main.Main;
2525
import org.kframework.parser.InputModes;
2626
import org.kframework.parser.ProductionReference;
27+
import org.kframework.parser.binary.BinaryParser;
2728
import org.kframework.parser.concrete2kore.ParseInModule;
2829
import org.kframework.parser.concrete2kore.generator.RuleGrammarGenerator;
29-
import org.kframework.parser.binary.BinaryParser;
3030
import org.kframework.parser.json.JsonParser;
3131
import org.kframework.parser.kore.KoreParser;
32+
import org.kframework.utils.StringUtil;
3233
import org.kframework.utils.errorsystem.KEMException;
3334
import org.kframework.utils.errorsystem.KException;
3435
import org.kframework.utils.errorsystem.KExceptionManager;
3536
import org.kframework.utils.errorsystem.ParseFailedException;
3637
import org.kframework.utils.file.FileUtil;
3738
import org.kframework.utils.file.TTYInfo;
38-
import org.kframework.utils.StringUtil;
3939
import scala.Tuple2;
4040

4141
import java.io.BufferedReader;
@@ -49,8 +49,8 @@
4949
import java.util.HashMap;
5050
import java.util.List;
5151
import java.util.Map;
52-
import java.util.function.Consumer;
5352
import java.util.Set;
53+
import java.util.function.Consumer;
5454
import java.util.stream.Collectors;
5555

5656
import scala.Option;
@@ -95,7 +95,20 @@ public static K deserialize(String stringToParse, InputModes inputMode) {
9595

9696
/* Parsing code from KRun: */
9797

98-
public K externalParse(String parser, String value, Sort startSymbol, Source source, CompiledDefinition compiledDef) {
98+
public K KRunParse(CompiledDefinition compiledDef, KRunOptions options, TTYInfo tty) {
99+
String pgmFileName = options.configurationCreation.pgm();
100+
K program;
101+
if (options.configurationCreation.term()) {
102+
program = externalParse(options.configurationCreation.parser(compiledDef.executionModule().name(), files),
103+
pgmFileName, compiledDef.programStartSymbol, Source.apply("<parameters>"), compiledDef);
104+
} else {
105+
program = parseConfigVars(options, compiledDef, tty);
106+
}
107+
108+
return program;
109+
}
110+
111+
private K externalParse(String parser, String value, Sort startSymbol, Source source, CompiledDefinition compiledDef) {
99112
List<String> tokens = new ArrayList<>(Arrays.asList(parser.split(" ")));
100113
tokens.add(value);
101114
Map<String, String> environment = new HashMap<>();
@@ -163,11 +176,11 @@ private void checkConfigVars(Set<KToken> inputConfigVars, CompiledDefinition com
163176
}
164177
}
165178

166-
public KApply plugConfigVars(CompiledDefinition compiledDef, Map<KToken, K> output) {
179+
private KApply plugConfigVars(CompiledDefinition compiledDef, Map<KToken, K> output) {
167180
return KApply(compiledDef.topCellInitializer, output.entrySet().stream().map(e -> KApply(KLabel("_|->_"), e.getKey(), e.getValue())).reduce(KApply(KLabel(".Map")), (a, b) -> KApply(KLabel("_Map_"), a, b)));
168181
}
169182

170-
public static String getStdinBuffer(boolean ttyStdin) {
183+
private static String getStdinBuffer(boolean ttyStdin) {
171184
String buffer = "";
172185

173186
try {

0 commit comments

Comments
 (0)