summaryrefslogtreecommitdiff
path: root/src/runtime/c/pgf/pgf.c
diff options
context:
space:
mode:
authorKrasimir Angelov <kr.angelov@gmail.com>2017-10-04 09:45:56 +0200
committerKrasimir Angelov <kr.angelov@gmail.com>2017-10-04 09:45:56 +0200
commite3aa392e63b0d0f314b286d207cd187be5837ad8 (patch)
tree65bbe804e9997669982550859178e69b64f27968 /src/runtime/c/pgf/pgf.c
parente426e87cf8a0eb722e4ffc2239d864d53f5e476f (diff)
further extend the API of the C runtime
Diffstat (limited to 'src/runtime/c/pgf/pgf.c')
-rw-r--r--src/runtime/c/pgf/pgf.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/runtime/c/pgf/pgf.c b/src/runtime/c/pgf/pgf.c
index 6d43eab3b..5317830fb 100644
--- a/src/runtime/c/pgf/pgf.c
+++ b/src/runtime/c/pgf/pgf.c
@@ -152,6 +152,17 @@ pgf_category_context(PgfPGF *gr, PgfCId catname)
return abscat->context;
}
+PGF_API prob_t
+pgf_category_prob(PgfPGF* pgf, PgfCId catname)
+{
+ PgfAbsCat* abscat =
+ gu_seq_binsearch(pgf->abstract.cats, pgf_abscat_order, PgfAbsCat, catname);
+ if (abscat == NULL)
+ return INFINITY;
+
+ return abscat->prob;
+}
+
PGF_API GuString
pgf_language_code(PgfConcr* concr)
{
@@ -221,7 +232,7 @@ pgf_function_is_constructor(PgfPGF* pgf, PgfCId funname)
return (absfun->defns == NULL);
}
-PGF_API double
+PGF_API prob_t
pgf_function_prob(PgfPGF* pgf, PgfCId funname)
{
PgfAbsFun* absfun =