|
6 | 6 | import static javafx.scene.paint.Color.RED;
|
7 | 7 |
|
8 | 8 | import java.io.IOException;
|
| 9 | +import java.io.PrintWriter; |
| 10 | +import java.io.StringWriter; |
9 | 11 | import java.net.URL;
|
10 | 12 | import java.util.ResourceBundle;
|
11 | 13 |
|
@@ -81,17 +83,26 @@ public void initialize(URL location, ResourceBundle resources) {
|
81 | 83 | result.setVisible(false);
|
82 | 84 | input.textProperty().addListener(
|
83 | 85 | (observable, oldValue, newValue)-> {
|
84 |
| - if (lrParser.accept(input.getText())) { |
85 |
| - result.setText("Accepted"); |
86 |
| - result.setTextFill(GREEN); |
87 |
| - result.setVisible(true); |
| 86 | + try { |
| 87 | + if (lrParser.accept(input.getText())) { |
| 88 | + result.setText("Accepted"); |
| 89 | + result.setTextFill(GREEN); |
| 90 | + result.setVisible(true); |
| 91 | + } |
| 92 | + else { |
| 93 | + result.setText("Rejected"); |
| 94 | + result.setTextFill(RED); |
| 95 | + result.setVisible(true); |
| 96 | + } |
| 97 | + output.setText("\n" + lrParser.getLog()); |
88 | 98 | }
|
89 |
| - else { |
90 |
| - result.setText("Rejected"); |
91 |
| - result.setTextFill(RED); |
92 |
| - result.setVisible(true); |
| 99 | + catch (Throwable t) { |
| 100 | + //output.setText("\n" + lrParser.getLog() + "\n" + t); |
| 101 | + var sw = new StringWriter(); |
| 102 | + t.printStackTrace(new PrintWriter(sw)); |
| 103 | + output.setText("\n" + lrParser.getLog() + "\n" + sw.toString()); |
| 104 | + throw t; |
93 | 105 | }
|
94 |
| - output.setText("\n" + lrParser.getLog()); |
95 | 106 | }
|
96 | 107 | );
|
97 | 108 | output.setText("\n" + lrParser.getGrammar());
|
|
0 commit comments