summaryrefslogtreecommitdiff
path: root/src/runtime/c
diff options
context:
space:
mode:
authorkr.angelov <kr.angelov@gmail.com>2014-04-25 08:53:18 +0000
committerkr.angelov <kr.angelov@gmail.com>2014-04-25 08:53:18 +0000
commitd278965095723460985989f183b8fab4a7fde779 (patch)
tree4a69c2b6f7fa02b20ef00283004a836026e29f0d /src/runtime/c
parent3a0da12e3dae3180eadd60fb1b21410f1b92a859 (diff)
an initial Java/C API for predicting literals. Still not utilized
Diffstat (limited to 'src/runtime/c')
-rw-r--r--src/runtime/c/pgf/literals.c25
-rw-r--r--src/runtime/c/pgf/pgf.h4
2 files changed, 25 insertions, 4 deletions
diff --git a/src/runtime/c/pgf/literals.c b/src/runtime/c/pgf/literals.c
index 6b47aaf31..cf2003385 100644
--- a/src/runtime/c/pgf/literals.c
+++ b/src/runtime/c/pgf/literals.c
@@ -48,8 +48,25 @@ pgf_match_string_lit(PgfLiteralCallback* self,
}
}
+static void
+pgf_predict_empty_next(GuEnum* self, void* to, GuPool* pool)
+{
+ *((PgfTokenProb**) to) = NULL;
+}
+
+static GuEnum*
+pgf_predict_empty(PgfLiteralCallback* self,
+ size_t lin_idx,
+ GuString prefix,
+ GuPool *out_pool)
+{
+ GuEnum* en = gu_new(GuEnum, out_pool);
+ en->next = pgf_predict_empty_next;
+ return en;
+}
+
static PgfLiteralCallback pgf_string_literal_callback =
- { pgf_match_string_lit } ;
+ { pgf_match_string_lit, pgf_predict_empty } ;
@@ -101,7 +118,7 @@ pgf_match_int_lit(PgfLiteralCallback* self,
}
static PgfLiteralCallback pgf_int_literal_callback =
- { pgf_match_int_lit } ;
+ { pgf_match_int_lit, pgf_predict_empty } ;
@@ -153,7 +170,7 @@ pgf_match_float_lit(PgfLiteralCallback* self,
}
static PgfLiteralCallback pgf_float_literal_callback =
- { pgf_match_float_lit } ;
+ { pgf_match_float_lit, pgf_predict_empty } ;
@@ -231,7 +248,7 @@ pgf_match_name_lit(PgfLiteralCallback* self,
}
PgfLiteralCallback pgf_nerc_literal_callback =
- { pgf_match_name_lit } ;
+ { pgf_match_name_lit, pgf_predict_empty } ;
PgfCallbacksMap*
diff --git a/src/runtime/c/pgf/pgf.h b/src/runtime/c/pgf/pgf.h
index d8c364b56..d6de05e90 100644
--- a/src/runtime/c/pgf/pgf.h
+++ b/src/runtime/c/pgf/pgf.h
@@ -161,6 +161,10 @@ struct PgfLiteralCallback {
size_t lin_idx,
GuString sentence, size_t* poffset,
GuPool *out_pool);
+ GuEnum* (*predict)(PgfLiteralCallback* self,
+ size_t lin_idx,
+ GuString prefix,
+ GuPool *out_pool);
};
void