diff options
| author | krasimir <krasimir@chalmers.se> | 2017-05-11 07:44:10 +0000 |
|---|---|---|
| committer | krasimir <krasimir@chalmers.se> | 2017-05-11 07:44:10 +0000 |
| commit | 2cf98147e6e7ba077cd002ba97a5834a88fa3a00 (patch) | |
| tree | 14c03322411e0419b09457acd27139a772e95086 /src/runtime/java/jpgf.c | |
| parent | a77ae5da300473b315f47202319505ca7c804e62 (diff) | |
construction of Int and Float literals in the Java binding
Diffstat (limited to 'src/runtime/java/jpgf.c')
| -rw-r--r-- | src/runtime/java/jpgf.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/runtime/java/jpgf.c b/src/runtime/java/jpgf.c index 026bd9a48..84b2ebb4e 100644 --- a/src/runtime/java/jpgf.c +++ b/src/runtime/java/jpgf.c @@ -1226,6 +1226,46 @@ Java_org_grammaticalframework_pgf_Expr_initStringLit(JNIEnv* env, jclass clazz, return expr; } +JNIEXPORT jlong JNICALL +Java_org_grammaticalframework_pgf_Expr_initIntLit(JNIEnv* env, jclass clazz, jint jd, jlong jpool) +{ + GuPool* pool = l2p(jpool); + PgfExpr expr; + + PgfExprLit* e = + gu_new_variant(PGF_EXPR_LIT, + PgfExprLit, + &expr, pool); + + PgfLiteralInt* nlit = + gu_new_variant(PGF_LITERAL_INT, + PgfLiteralInt, + &e->lit, pool); + nlit->val = jd; + + return expr; +} + +JNIEXPORT jlong JNICALL +Java_org_grammaticalframework_pgf_Expr_initFloatLit(JNIEnv* env, jclass clazz, jdouble jf, jlong jpool) +{ + GuPool* pool = l2p(jpool); + PgfExpr expr; + + PgfExprLit* e = + gu_new_variant(PGF_EXPR_LIT, + PgfExprLit, + &expr, pool); + + PgfLiteralFlt* flit = + gu_new_variant(PGF_LITERAL_FLT, + PgfLiteralFlt, + &e->lit, pool); + flit->val = jf; + + return expr; +} + JNIEXPORT jlong JNICALL Java_org_grammaticalframework_pgf_Expr_initApp__Lorg_grammaticalframework_pgf_Expr_2_3Lorg_grammaticalframework_pgf_Expr_2J (JNIEnv* env, jclass clazz, jobject jfun, jobjectArray args, jlong jpool) |
