diff options
Diffstat (limited to 'src/runtime/java/org/grammaticalframework')
| -rw-r--r-- | src/runtime/java/org/grammaticalframework/pgf/Expr.java | 6 | ||||
| -rw-r--r-- | src/runtime/java/org/grammaticalframework/pgf/ExprApplication.java | 19 |
2 files changed, 25 insertions, 0 deletions
diff --git a/src/runtime/java/org/grammaticalframework/pgf/Expr.java b/src/runtime/java/org/grammaticalframework/pgf/Expr.java index 2c6882203..cdc62d1d1 100644 --- a/src/runtime/java/org/grammaticalframework/pgf/Expr.java +++ b/src/runtime/java/org/grammaticalframework/pgf/Expr.java @@ -83,6 +83,12 @@ public class Expr implements Serializable { return new Expr(pool, master, initApp(fun, args, pool.ref)); } + /** If the method is called on an expression which is + * a function application, then it is decomposed into + * a function name and a list of arguments. If this is not + * an application then the result is null. */ + public native ExprApplication unApply(); + /** Returns the expression as a string in the GF syntax */ public String toString() { return showExpr(ref); diff --git a/src/runtime/java/org/grammaticalframework/pgf/ExprApplication.java b/src/runtime/java/org/grammaticalframework/pgf/ExprApplication.java new file mode 100644 index 000000000..d33269448 --- /dev/null +++ b/src/runtime/java/org/grammaticalframework/pgf/ExprApplication.java @@ -0,0 +1,19 @@ +package org.grammaticalframework.pgf; + +public class ExprApplication { + private String fun; + private Expr[] arguments; + + public ExprApplication(String fun, Expr[] arguments) { + this.fun = fun; + this.arguments = arguments; + } + + public String getFunction() { + return fun; + } + + public Expr[] getArguments() { + return arguments; + } +} |
