From c2c95644bddf3f501de665f58cba5a0e3a204f84 Mon Sep 17 00:00:00 2001 From: krasimir Date: Thu, 11 May 2017 13:35:56 +0000 Subject: an API for inspecting expressions in Java --- .../java/org/grammaticalframework/pgf/Expr.java | 6 ++++++ .../org/grammaticalframework/pgf/ExprApplication.java | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 src/runtime/java/org/grammaticalframework/pgf/ExprApplication.java (limited to 'src/runtime/java/org') 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; + } +} -- cgit v1.2.3