diff options
Diffstat (limited to 'src/runtime/java/org/grammaticalframework')
4 files changed, 44 insertions, 7 deletions
diff --git a/src/runtime/java/org/grammaticalframework/pgf/PGF.java b/src/runtime/java/org/grammaticalframework/pgf/PGF.java index 3d2368c9d..6d999f97b 100644 --- a/src/runtime/java/org/grammaticalframework/pgf/PGF.java +++ b/src/runtime/java/org/grammaticalframework/pgf/PGF.java @@ -58,6 +58,10 @@ public class PGF { */ public native Expr compute(Expr expr); + /** Takes an expression and returns a refined version + * of the expression together with its type */ + public native TypedExpr inferExpr(Expr expr) throws TypeError; + ////////////////////////////////////////////////////////////////// // private stuff private Pool pool; diff --git a/src/runtime/java/org/grammaticalframework/pgf/Type.java b/src/runtime/java/org/grammaticalframework/pgf/Type.java index d6e75b2d7..d7da65851 100644 --- a/src/runtime/java/org/grammaticalframework/pgf/Type.java +++ b/src/runtime/java/org/grammaticalframework/pgf/Type.java @@ -12,15 +12,17 @@ public class Type { * If the represented type is A1 -> A2 -> ... An -> B, then * the hypotheses represent the types in A1, A2 ... An. */ public native Hypo[] getHypos(); - + + public native String toString(); + ////////////////////////////////////////////////////////////////// // private stuff - - private PGF gr; + + private Object master; private long ref; - - private Type(PGF gr, long ref) { - this.gr = gr; - this.ref = ref; + + private Type(Object master, long ref) { + this.master = master; + this.ref = ref; } } diff --git a/src/runtime/java/org/grammaticalframework/pgf/TypeError.java b/src/runtime/java/org/grammaticalframework/pgf/TypeError.java new file mode 100644 index 000000000..d9aff47a6 --- /dev/null +++ b/src/runtime/java/org/grammaticalframework/pgf/TypeError.java @@ -0,0 +1,7 @@ +package org.grammaticalframework.pgf; + +public class TypeError extends Exception { + public TypeError(String message) { + super(message); + } +} diff --git a/src/runtime/java/org/grammaticalframework/pgf/TypedExpr.java b/src/runtime/java/org/grammaticalframework/pgf/TypedExpr.java new file mode 100644 index 000000000..8af342f66 --- /dev/null +++ b/src/runtime/java/org/grammaticalframework/pgf/TypedExpr.java @@ -0,0 +1,24 @@ +package org.grammaticalframework.pgf; + +/** This is just a pair of an expression and its type */ +public class TypedExpr { + private Expr expr; + private Type type; + + public TypedExpr(Expr expr, Type type) { + this.expr = expr; + this.type = type; + } + + public Expr getExpr() { + return expr; + } + + public Type getType() { + return type; + } + + public String toString() { + return "<"+expr.toString()+" : "+type.toString()+">"; + } +} |
