1
0
forked from GitHub/gf-core

detailed information for the type errors from PGFService

This commit is contained in:
krasimir
2010-07-13 15:33:54 +00:00
parent ef68e209c2
commit b57dda5d94
7 changed files with 55 additions and 13 deletions

View File

@@ -128,7 +128,9 @@ doTranslate pgf input mcat mfrom mto =
)] )]
| tree <- trees])] | tree <- trees])]
jsonParseOutput (PGF.ParseFailed _) = [] jsonParseOutput (PGF.ParseFailed _) = []
jsonParseOutput (PGF.TypeError errs) = [("typeErrors",showJSON [show (PGF.ppTcError err) | (fid,err) <- errs])] jsonParseOutput (PGF.TypeError errs) = [("typeErrors",showJSON [toJSObject [("fid", showJSON fid)
,("msg", showJSON (show (PGF.ppTcError err)))
] | (fid,err) <- errs])]
-- used in phrasebook -- used in phrasebook
doTranslateGroup :: PGF -> String -> Maybe PGF.Type -> Maybe PGF.Language -> Maybe PGF.Language -> JSValue doTranslateGroup :: PGF -> String -> Maybe PGF.Type -> Maybe PGF.Language -> Maybe PGF.Language -> JSValue
@@ -198,7 +200,9 @@ doParse pgf input mcat mfrom = showJSON $ map toJSObject
where where
jsonParseOutput (PGF.ParseOk trees) = [("trees",showJSON trees)] jsonParseOutput (PGF.ParseOk trees) = [("trees",showJSON trees)]
jsonParseOutput (PGF.ParseFailed _) = [] jsonParseOutput (PGF.ParseFailed _) = []
jsonParseOutput (PGF.TypeError errs) = [("typeErrors",showJSON [show (PGF.ppTcError err) | (fid,err) <- errs])] jsonParseOutput (PGF.TypeError errs) = [("typeErrors",showJSON [toJSObject [("fid", showJSON fid)
,("msg", showJSON (show (PGF.ppTcError err)))
] | (fid,err) <- errs])]
doComplete :: PGF -> String -> Maybe PGF.Type -> Maybe PGF.Language -> Maybe Int -> JSValue doComplete :: PGF -> String -> Maybe PGF.Type -> Maybe PGF.Language -> Maybe Int -> JSValue
doComplete pgf input mcat mfrom mlimit = showJSON $ map toJSObject $ limit doComplete pgf input mcat mfrom mlimit = showJSON $ map toJSObject $ limit
@@ -328,7 +332,13 @@ instance JSON PGF.Expr where
instance JSON PGF.BracketedString where instance JSON PGF.BracketedString where
readJSON x = return (PGF.Leaf "") readJSON x = return (PGF.Leaf "")
showJSON x = showJSON "" showJSON (PGF.Bracket cat fid index _ bs)
= showJSON $ toJSObject [("cat", showJSON cat)
,("fid", showJSON fid)
,("index", showJSON index)
,("children", showJSON bs)
]
showJSON (PGF.Leaf s) = showJSON $ toJSObject [("token", s)]
-- * PGF utilities -- * PGF utilities

View File

@@ -1,6 +1,8 @@
#!/bin/sh #!/bin/sh
APPDIR=`dirname $0`; APPDIR=`dirname $0`;
GWT_DIR="/home/angelov/gwt-2.0.4"
GWT_CLASSPATH="$GWT_DIR/gwt-user.jar:$GWT_DIR/gwt-dev.jar"
if [ -z "$GWT_CLASSPATH" ]; then if [ -z "$GWT_CLASSPATH" ]; then
echo 'ERROR: $GWT_CLASSPATH is not set' echo 'ERROR: $GWT_CLASSPATH is not set'

View File

@@ -2,6 +2,9 @@
APPDIR=`dirname $0`; APPDIR=`dirname $0`;
GWT_DIR="/home/angelov/gwt-2.0.4"
GWT_CLASSPATH="$GWT_DIR/gwt-user.jar:$GWT_DIR/gwt-dev.jar"
if [ -z "$GWT_CLASSPATH" ]; then if [ -z "$GWT_CLASSPATH" ]; then
echo 'ERROR: $GWT_CLASSPATH is not set' echo 'ERROR: $GWT_CLASSPATH is not set'
echo 'Set $GWT_CLASSPATH to point to the GWT JAR files. For example:' echo 'Set $GWT_CLASSPATH to point to the GWT JAR files. For example:'

View File

@@ -54,10 +54,10 @@ public class FridgeApp implements EntryPoint {
} }
if (tr.getTypeErrors() != null) if (tr.getTypeErrors() != null)
for (String error : tr.getTypeErrors()) { for (PGF.TcError error : tr.getTypeErrors()) {
SimplePanel panel = new SimplePanel(); SimplePanel panel = new SimplePanel();
panel.addStyleName("my-typeError"); panel.addStyleName("my-typeError");
panel.add(new HTML("<pre>"+error+"</pre>")); panel.add(new HTML("<pre>"+error.getMsg()+"</pre>"));
outputPanel.add(panel); outputPanel.add(panel);
} }
} }

View File

@@ -63,9 +63,9 @@ public class PGF {
protected TranslationResult() { } protected TranslationResult() { }
public final native String getFrom() /*-{ return this.from; }-*/; public final native String getFrom() /*-{ return this.from; }-*/;
public final native String getBracketedString() /*-{ return this.brackets; }-*/; public final native BracketedString getBracketedString() /*-{ return this.brackets; }-*/;
public final native IterableJsArray<Translation> getTranslations() /*-{ return this.translations; }-*/; public final native IterableJsArray<Translation> getTranslations() /*-{ return this.translations; }-*/;
public final native String[] getTypeErrors() /*-{ return this.typeErrors; }-*/; public final native TcError[] getTypeErrors() /*-{ return this.typeErrors; }-*/;
} }
public static class Translation extends JavaScriptObject { public static class Translation extends JavaScriptObject {
@@ -137,9 +137,27 @@ public class PGF {
protected ParseResult() { } protected ParseResult() { }
public final native String getFrom() /*-{ return this.from; }-*/; public final native String getFrom() /*-{ return this.from; }-*/;
public final native String getBracketedString() /*-{ return this.brackets; }-*/; public final native BracketedString getBracketedString() /*-{ return this.brackets; }-*/;
public final native String[] getTrees() /*-{ return this.trees; }-*/; public final native String[] getTrees() /*-{ return this.trees; }-*/;
public final native String[] getTypeErrors() /*-{ return this.typeErrors; }-*/; public final native TcError[] getTypeErrors() /*-{ return this.typeErrors; }-*/;
}
public static class BracketedString extends JavaScriptObject {
protected BracketedString() { }
public final native String getToken() /*-{ return this.token; }-*/;
public final native String getCat() /*-{ return this.cat; }-*/;
public final native int getFId() /*-{ return this.fid; }-*/;
public final native int getIndex() /*-{ return this.index; }-*/;
public final native BracketedString[] getChildren() /*-{ return this.children; }-*/;
}
public static class TcError extends JavaScriptObject {
protected TcError() { }
public final native int getFId() /*-{ return this.fid; }-*/;
public final native String getMsg() /*-{ return this.msg; }-*/;
} }
public String graphvizAbstractTree(String pgfURL, String abstractTree) { public String graphvizAbstractTree(String pgfURL, String abstractTree) {

View File

@@ -66,13 +66,18 @@ public class TranslateApp implements EntryPoint {
} }
} }
if (tr.getTypeErrors() != null) if (tr.getTypeErrors() != null && tr.getTypeErrors().length > 0) {
for (String error : tr.getTypeErrors()) { for (PGF.TcError error : tr.getTypeErrors()) {
SimplePanel panel = new SimplePanel(); VerticalPanel panel = new VerticalPanel();
panel.addStyleName("my-typeError"); panel.addStyleName("my-typeError");
panel.add(new HTML("<pre>"+error+"</pre>")); Label errLabel = new Label("Type Error");
errLabel.addStyleName("my-error-title");
HTML msgHTML = new HTML("<pre>"+error.getMsg()+"</pre>");
panel.add(errLabel);
panel.add(msgHTML);
outputPanel.add(panel); outputPanel.add(panel);
} }
}
} }
} }
public void onError (Throwable e) { public void onError (Throwable e) {

View File

@@ -84,6 +84,10 @@
cursor:pointer; cursor:pointer;
} }
.my-error-title {
background: #DDDDDD;
}
.my-treeimage { .my-treeimage {
width: 650px; width: 650px;
height: 520px; height: 520px;