Show expected input in UI

This commit is contained in:
Arne Keller 2021-07-05 09:41:37 +02:00
parent f6d0777fd0
commit 93ec136970
3 changed files with 14 additions and 2 deletions

View File

@ -10,6 +10,7 @@ import com.vaadin.flow.component.html.Pre;
import com.vaadin.flow.component.orderedlayout.VerticalLayout; import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.i18n.LocaleChangeEvent; import com.vaadin.flow.i18n.LocaleChangeEvent;
import com.vaadin.flow.i18n.LocaleChangeObserver; import com.vaadin.flow.i18n.LocaleChangeObserver;
import edu.kit.typicalc.model.parser.ExpectedInput;
import edu.kit.typicalc.model.parser.ParseError; import edu.kit.typicalc.model.parser.ParseError;
import edu.kit.typicalc.model.parser.Token; import edu.kit.typicalc.model.parser.Token;
import edu.kit.typicalc.view.main.InfoContent; import edu.kit.typicalc.view.main.InfoContent;
@ -82,6 +83,15 @@ public class ErrorView extends VerticalLayout implements LocaleChangeObserver {
throw new IllegalStateException(); // delete when updating to Java 12+ throw new IllegalStateException(); // delete when updating to Java 12+
} }
// state expected input, if available
Optional<ExpectedInput> expectedInput = error.getExpectedInput();
if (expectedInput.isPresent()) {
ExpectedInput e = expectedInput.get();
additionalInformation.add(new Span(new Pre(
getTranslation("error.expectedToken",
getTranslation("expectedinput." + e)))));
}
// add expected tokens, if available // add expected tokens, if available
Optional<Collection<Token.TokenType>> expected = error.getExpected(); Optional<Collection<Token.TokenType>> expected = error.getExpected();
if (expected.isPresent()) { if (expected.isPresent()) {

View File

@ -92,7 +92,7 @@ root.helpInferenceViewFeatures=Wurde ein Term erfolgreich typisiert, werden der
abgebrochen. Mit \u03C3 wird am Ende der allgemeinste Unifikator angegeben, mit \u03C3(\u03B1\u2081) der \ abgebrochen. Mit \u03C3 wird am Ende der allgemeinste Unifikator angegeben, mit \u03C3(\u03B1\u2081) der \
finale Typ des Terms. finale Typ des Terms.
help.typicalcInfo=\ help.typicalcInfo=\
<a href="https://git.scc.kit.edu/pse-typinferenz/typicalc">Typicalc</a> wurde als PSE-Projekt am KIT im WS20/21 \ <a href="https://git.scc.kit.edu/pse-typinferenz/typicalc">Typicalc</a> wurde als PSE-Projekt am KIT im WS 20/21 \
entwickelt von<br>\ entwickelt von<br>\
Robin Böhne<br>\ Robin Böhne<br>\
Moritz Dieing<br>\ Moritz Dieing<br>\
@ -123,6 +123,7 @@ tokentype.DOT=.
tokentype.EQUALS== tokentype.EQUALS==
tokentype.ARROW=-> tokentype.ARROW=->
tokentype.EOF=Ende der Eingabe tokentype.EOF=Ende der Eingabe
expectedinput.TERM=beliebiger Term
root.or=oder root.or=oder
root.slideExp=Typicalc ist eine Anwendung zur Visualisierung von Typinferenz. In der folgenden Slideshow wird ein \ root.slideExp=Typicalc ist eine Anwendung zur Visualisierung von Typinferenz. In der folgenden Slideshow wird ein \
Beispielszenario mit den wichtigsten Funktionen der Website vorgeführt. Das relevante Bedienelement ist jeweils mit \ Beispielszenario mit den wichtigsten Funktionen der Website vorgeführt. Das relevante Bedienelement ist jeweils mit \

View File

@ -86,7 +86,7 @@ root.helpInferenceViewFeatures=When a term is successfully type inferred, the in
cancelled. At the end, the most general unifier is displayed as \u03C3 and the final type as \u03C3(\u03B1\u2081). cancelled. At the end, the most general unifier is displayed as \u03C3 and the final type as \u03C3(\u03B1\u2081).
help.typicalcInfo=\ help.typicalcInfo=\
<a href="https://git.scc.kit.edu/pse-typinferenz/typicalc">Typicalc</a> was developed as a PSE project at\ <a href="https://git.scc.kit.edu/pse-typinferenz/typicalc">Typicalc</a> was developed as a PSE project at\
the KIT in WS20/21 by<br>\ the KIT in WS 20/21 by<br>\
Robin Böhne<br>\ Robin Böhne<br>\
Moritz Dieing<br>\ Moritz Dieing<br>\
Thomas Heinen<br>\ Thomas Heinen<br>\
@ -116,6 +116,7 @@ tokentype.DOT=.
tokentype.EQUALS== tokentype.EQUALS==
tokentype.ARROW=-> tokentype.ARROW=->
tokentype.EOF=End of input tokentype.EOF=End of input
expectedinput.TERM=any lambda term
root.or=or root.or=or
root.slideExp=Typicalc is an application for the visualisation of type inference. The slideshow below the text \ root.slideExp=Typicalc is an application for the visualisation of type inference. The slideshow below the text \
demonstrates the most important features of the website. In each slide the relevant operating element is surrounded \ demonstrates the most important features of the website. In each slide the relevant operating element is surrounded \