diff options
| author | krasimir <krasimir@chalmers.se> | 2017-05-11 13:35:56 +0000 |
|---|---|---|
| committer | krasimir <krasimir@chalmers.se> | 2017-05-11 13:35:56 +0000 |
| commit | c2c95644bddf3f501de665f58cba5a0e3a204f84 (patch) | |
| tree | 1f3e6a28eccd68246b88e9a60b7b017007471fc6 /src/runtime/java/org | |
| parent | a839bdc687b19a35b238192d1e5d3fde5302af42 (diff) | |
an API for inspecting expressions in Java
Diffstat (limited to 'src/runtime/java/org')
| -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; + } +} |
