Fixed bug in accepteer

This commit is contained in:
Yorick Rommers
2017-06-12 19:14:40 +02:00
parent 9c4b7bc75a
commit c24a7d11b8
3 changed files with 23 additions and 6 deletions
+4
View File
@@ -22,6 +22,10 @@ public class DFA<T extends Comparable> extends Automata<T> {
for (int i = 0; i < s.length(); i++) {
if (!this.symbols.contains(s.charAt(i))) {
// reject, because we don't contain this symbol
return false;
}
for (Transition<T> t : this.transistions) {
// System.out.println("State is " + t.vanState);
// System.out.println("CurrentState is " + currentState);
+2 -2
View File
@@ -241,8 +241,8 @@ public class RegExp extends Importable{
break;
case PUNT:
resLinks = links == null ? leeg : links.getTaal(maxOperaties, maxLength).getSymbols();
resRechts = rechts == null ? leeg : rechts.getTaal(maxOperaties, maxLength).getSymbols();
resLinks = links == null ? leeg : links.getTaal(maxOperaties -1, maxLength).getSymbols();
resRechts = rechts == null ? leeg : rechts.getTaal(maxOperaties -1, maxLength).getSymbols();
for (String s1 : resLinks) {
for (String s2 : resRechts) {
resultaat.add(s1 + s2);
+17 -4
View File
@@ -4,6 +4,7 @@ import com.imegumii.*;
import javax.swing.*;
import javax.swing.border.Border;
import javax.swing.text.BadLocationException;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
@@ -37,13 +38,20 @@ public class PopupFrame extends JFrame {
generatePanel.setLayout(new BoxLayout(generatePanel, BoxLayout.LINE_AXIS));
generatePanel.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
JPanel textPanel = new JPanel();
textPanel.setLayout(new BoxLayout(textPanel, BoxLayout.Y_AXIS));
textPanel.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
JTextArea textArea = new JTextArea();
JScrollPane scrollPane = new JScrollPane(textArea);
JTextArea acceptArea = new JTextArea();
JScrollPane acceptScrollPane = new JScrollPane(acceptArea);
JTextField operaties = new JTextField();
JTextField lengte = new JTextField();
JButton generateButton = new JButton("Generate taal");
JButton generateButton = new JButton("Generate language");
// JButton cancelButton = new JButton("Cancel operation");
JTextField acceptString = new JTextField();
@@ -66,16 +74,21 @@ public class PopupFrame extends JFrame {
// });
acceptButton.addActionListener(e -> {
textArea.setText("");
BackgroundWorker.instance().addWorker(() -> {
textArea.append("Does the regex accept " + acceptString.getText() + " ? " + (minimizedDfa.accepteer(acceptString.getText()) ? "yes" : "no"));
try {
acceptArea.getDocument().insertString(0, "Does the regex accept " + acceptString.getText() + " ? " + (minimizedDfa.accepteer(acceptString.getText()) ? "yes" : "no") + "\n", null);
} catch (BadLocationException e1) {
e1.printStackTrace();
}
});
});
operaties.setText("4");
lengte.setText("100");
container.add(scrollPane, BorderLayout.CENTER);
textPanel.add(scrollPane);
textPanel.add(acceptScrollPane);
container.add(textPanel, BorderLayout.CENTER);
generatePanel.add(generateButton);
generatePanel.add(Box.createRigidArea(new Dimension(10,0)));