mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-22 03:09:33 -06:00
added mkApp to the Haskell binding
This commit is contained in:
@@ -73,6 +73,29 @@ pgf_expr_unapply(PgfExpr expr, GuPool* pool)
|
||||
return appl;
|
||||
}
|
||||
|
||||
PgfExpr
|
||||
pgf_expr_apply(PgfApplication* app, GuPool* pool)
|
||||
{
|
||||
PgfExpr expr;
|
||||
|
||||
size_t len = strlen(app->fun);
|
||||
PgfExprFun *efun =
|
||||
gu_new_flex_variant(PGF_EXPR_FUN,
|
||||
PgfExprFun,
|
||||
fun, len+1,
|
||||
&expr, pool);
|
||||
strcpy(efun->fun, app->fun);
|
||||
|
||||
for (int i = 0; i < app->n_args; i++) {
|
||||
expr = gu_new_variant_i(pool,
|
||||
PGF_EXPR_APP, PgfExprApp,
|
||||
.fun = expr,
|
||||
.arg = app->args[i]);
|
||||
}
|
||||
|
||||
return expr;
|
||||
}
|
||||
|
||||
typedef struct PgfExprParser PgfExprParser;
|
||||
|
||||
typedef enum {
|
||||
|
||||
@@ -143,6 +143,8 @@ struct PgfApplication {
|
||||
PgfApplication*
|
||||
pgf_expr_unapply(PgfExpr expr, GuPool* pool);
|
||||
|
||||
PgfExpr
|
||||
pgf_expr_apply(PgfApplication*, GuPool* pool);
|
||||
|
||||
PgfExpr
|
||||
pgf_read_expr(GuIn* in, GuPool* pool, GuExn* err);
|
||||
|
||||
Reference in New Issue
Block a user