Fixed bug in accepteer
This commit is contained in:
@@ -22,6 +22,10 @@ public class DFA<T extends Comparable> extends Automata<T> {
|
|||||||
|
|
||||||
|
|
||||||
for (int i = 0; i < s.length(); i++) {
|
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) {
|
for (Transition<T> t : this.transistions) {
|
||||||
// System.out.println("State is " + t.vanState);
|
// System.out.println("State is " + t.vanState);
|
||||||
// System.out.println("CurrentState is " + currentState);
|
// System.out.println("CurrentState is " + currentState);
|
||||||
|
|||||||
@@ -241,8 +241,8 @@ public class RegExp extends Importable{
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case PUNT:
|
case PUNT:
|
||||||
resLinks = links == null ? leeg : links.getTaal(maxOperaties, maxLength).getSymbols();
|
resLinks = links == null ? leeg : links.getTaal(maxOperaties -1, maxLength).getSymbols();
|
||||||
resRechts = rechts == null ? leeg : rechts.getTaal(maxOperaties, maxLength).getSymbols();
|
resRechts = rechts == null ? leeg : rechts.getTaal(maxOperaties -1, maxLength).getSymbols();
|
||||||
for (String s1 : resLinks) {
|
for (String s1 : resLinks) {
|
||||||
for (String s2 : resRechts) {
|
for (String s2 : resRechts) {
|
||||||
resultaat.add(s1 + s2);
|
resultaat.add(s1 + s2);
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import com.imegumii.*;
|
|||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import javax.swing.border.Border;
|
import javax.swing.border.Border;
|
||||||
|
import javax.swing.text.BadLocationException;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
import java.awt.event.ActionListener;
|
import java.awt.event.ActionListener;
|
||||||
@@ -37,13 +38,20 @@ public class PopupFrame extends JFrame {
|
|||||||
generatePanel.setLayout(new BoxLayout(generatePanel, BoxLayout.LINE_AXIS));
|
generatePanel.setLayout(new BoxLayout(generatePanel, BoxLayout.LINE_AXIS));
|
||||||
generatePanel.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
|
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();
|
JTextArea textArea = new JTextArea();
|
||||||
JScrollPane scrollPane = new JScrollPane(textArea);
|
JScrollPane scrollPane = new JScrollPane(textArea);
|
||||||
|
|
||||||
|
JTextArea acceptArea = new JTextArea();
|
||||||
|
JScrollPane acceptScrollPane = new JScrollPane(acceptArea);
|
||||||
|
|
||||||
JTextField operaties = new JTextField();
|
JTextField operaties = new JTextField();
|
||||||
JTextField lengte = new JTextField();
|
JTextField lengte = new JTextField();
|
||||||
|
|
||||||
JButton generateButton = new JButton("Generate taal");
|
JButton generateButton = new JButton("Generate language");
|
||||||
// JButton cancelButton = new JButton("Cancel operation");
|
// JButton cancelButton = new JButton("Cancel operation");
|
||||||
|
|
||||||
JTextField acceptString = new JTextField();
|
JTextField acceptString = new JTextField();
|
||||||
@@ -66,16 +74,21 @@ public class PopupFrame extends JFrame {
|
|||||||
// });
|
// });
|
||||||
|
|
||||||
acceptButton.addActionListener(e -> {
|
acceptButton.addActionListener(e -> {
|
||||||
textArea.setText("");
|
|
||||||
BackgroundWorker.instance().addWorker(() -> {
|
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");
|
operaties.setText("4");
|
||||||
lengte.setText("100");
|
lengte.setText("100");
|
||||||
|
|
||||||
container.add(scrollPane, BorderLayout.CENTER);
|
textPanel.add(scrollPane);
|
||||||
|
textPanel.add(acceptScrollPane);
|
||||||
|
container.add(textPanel, BorderLayout.CENTER);
|
||||||
|
|
||||||
generatePanel.add(generateButton);
|
generatePanel.add(generateButton);
|
||||||
generatePanel.add(Box.createRigidArea(new Dimension(10,0)));
|
generatePanel.add(Box.createRigidArea(new Dimension(10,0)));
|
||||||
|
|||||||
Reference in New Issue
Block a user