mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 19:42:50 -06:00
fix the NERC in C to work for PN as literal
This commit is contained in:
@@ -173,7 +173,8 @@ pgf_match_name_lit(PgfLiteralCallback* self,
|
|||||||
GuString sentence, size_t* poffset,
|
GuString sentence, size_t* poffset,
|
||||||
GuPool *out_pool)
|
GuPool *out_pool)
|
||||||
{
|
{
|
||||||
gu_assert(lin_idx == 0);
|
if (lin_idx != 0)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
GuPool* tmp_pool = gu_local_pool();
|
GuPool* tmp_pool = gu_local_pool();
|
||||||
GuStringBuf *sbuf = gu_string_buf(tmp_pool);
|
GuStringBuf *sbuf = gu_string_buf(tmp_pool);
|
||||||
@@ -211,21 +212,32 @@ pgf_match_name_lit(PgfLiteralCallback* self,
|
|||||||
ep = gu_new(PgfExprProb, out_pool);
|
ep = gu_new(PgfExprProb, out_pool);
|
||||||
ep->prob = 0;
|
ep->prob = 0;
|
||||||
|
|
||||||
PgfExprApp *expr_app =
|
PgfExprApp *expr_app1 =
|
||||||
gu_new_variant(PGF_EXPR_APP,
|
gu_new_variant(PGF_EXPR_APP,
|
||||||
PgfExprApp,
|
PgfExprApp,
|
||||||
&ep->expr, out_pool);
|
&ep->expr, out_pool);
|
||||||
GuString con = "MkSymb";
|
GuString con1 = "SymbPN";
|
||||||
PgfExprFun *expr_fun =
|
PgfExprFun *expr_fun1 =
|
||||||
gu_new_flex_variant(PGF_EXPR_FUN,
|
gu_new_flex_variant(PGF_EXPR_FUN,
|
||||||
PgfExprFun,
|
PgfExprFun,
|
||||||
fun, strlen(con)+1,
|
fun, strlen(con1)+1,
|
||||||
&expr_app->fun, out_pool);
|
&expr_app1->fun, out_pool);
|
||||||
strcpy(expr_fun->fun, con);
|
strcpy(expr_fun1->fun, con1);
|
||||||
|
PgfExprApp *expr_app2 =
|
||||||
|
gu_new_variant(PGF_EXPR_APP,
|
||||||
|
PgfExprApp,
|
||||||
|
&expr_app1->arg, out_pool);
|
||||||
|
GuString con2 = "MkSymb";
|
||||||
|
PgfExprFun *expr_fun2 =
|
||||||
|
gu_new_flex_variant(PGF_EXPR_FUN,
|
||||||
|
PgfExprFun,
|
||||||
|
fun, strlen(con2)+1,
|
||||||
|
&expr_app2->fun, out_pool);
|
||||||
|
strcpy(expr_fun2->fun, con2);
|
||||||
PgfExprLit *expr_lit =
|
PgfExprLit *expr_lit =
|
||||||
gu_new_variant(PGF_EXPR_LIT,
|
gu_new_variant(PGF_EXPR_LIT,
|
||||||
PgfExprLit,
|
PgfExprLit,
|
||||||
&expr_app->arg, out_pool);
|
&expr_app2->arg, out_pool);
|
||||||
GuString val = gu_string_buf_freeze(sbuf, tmp_pool);
|
GuString val = gu_string_buf_freeze(sbuf, tmp_pool);
|
||||||
PgfLiteralStr *lit_str =
|
PgfLiteralStr *lit_str =
|
||||||
gu_new_flex_variant(PGF_LITERAL_STR,
|
gu_new_flex_variant(PGF_LITERAL_STR,
|
||||||
|
|||||||
Reference in New Issue
Block a user