Store in GIT

This commit is contained in:
2026-06-17 15:50:05 +02:00
parent baee6ac9f5
commit e7feed529b
91 changed files with 3580 additions and 0 deletions
+108
View File
@@ -0,0 +1,108 @@
package com.imegumii;
import java.io.*;
import java.nio.Buffer;
/**
* Created by kenny on 8-6-2017.
*/
public class FileParser {
public static Importable read(String filename)
{
File f = new File("input/" + filename);
Importable imp = null;
try (BufferedReader br = new BufferedReader(new FileReader(f))) {
String type = br.readLine();
switch (type)
{
case "DFA":
imp = readDFA(br);
break;
case "NDFA":
imp = readNDFA(br);
break;
case "REGEX":
imp = readRegex(br);
break;
default:
break;
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return imp;
}
public static DFA<String> readDFA(BufferedReader br) throws IOException {
DFA<String> dfa = new DFA<String>();
String line;
while ((line = br.readLine()) != null) {
if(line.startsWith("B")) {
String[] states = line.substring(1,line.length()).split(",");
for(String s : states) { dfa.defineAsStartState(s); }
}
else if(line.startsWith("E")) {
String[] states = line.substring(1,line.length()).split(",");
for(String s : states) { dfa.defineAsEndState(s); }
}
else {
String[] trans = line.split(">");
dfa.addTransition(new Transition<String>(trans[0], trans[1].toCharArray()[0], trans[2]));
}
}
return dfa;
}
public static NDFA<String> readNDFA(BufferedReader br) throws IOException {
NDFA<String> ndfa = new NDFA<String>();
String line;
while ((line = br.readLine()) != null) {
if(line.startsWith("B")) {
String[] states = line.substring(1,line.length()).split(",");
for(String s : states) { ndfa.defineAsStartState(s); }
}
else if(line.startsWith("E")) {
String[] states = line.substring(1,line.length()).split(",");
for(String s : states) { ndfa.defineAsEndState(s); }
}
else {
String[] trans = line.split(">");
if(trans[1].equals("$")) {
ndfa.addTransition(new Transition<String>(trans[0], Transition.EPSILON, trans[2]));
}
else
ndfa.addTransition(new Transition<String>(trans[0], trans[1].toCharArray()[0], trans[2]));
}
}
return ndfa;
}
public static RegExp readRegex(BufferedReader br) throws IOException {
String line = "Error";
line = br.readLine();
RegExp regex = new RegExp();
regex = regex.naarRegExp(line);
return regex;
}
}