mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-08 18:52:50 -06:00
partial implementation for fullFormLexicon
This commit is contained in:
@@ -1003,6 +1003,31 @@ PgfText *pgf_print_sequence_internal(size_t seq_id, object o)
|
||||
return printer.get_text();
|
||||
}
|
||||
|
||||
PGF_API
|
||||
PgfText *pgf_sequence_get_text_internal(object o)
|
||||
{
|
||||
ref<PgfSequence> seq = o;
|
||||
|
||||
PgfPrinter printer(NULL,0,NULL);
|
||||
for (size_t i = 0; i < seq->syms.len; i++) {
|
||||
if (i > 0)
|
||||
printer.puts(" ");
|
||||
|
||||
PgfSymbol sym = *vector_elem(&seq->syms, i);
|
||||
switch (ref<PgfSymbol>::get_tag(sym)) {
|
||||
case PgfSymbolKS::tag: {
|
||||
auto sym_ks = ref<PgfSymbolKS>::untagged(sym);
|
||||
printer.puts(&sym_ks->token);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
return printer.get_text();
|
||||
}
|
||||
|
||||
PGF_API_DECL
|
||||
void pgf_release_phrasetable_ids(PgfPhrasetableIds *seq_ids)
|
||||
{
|
||||
|
||||
@@ -428,6 +428,9 @@ PgfText *pgf_print_lin_internal(PgfPhrasetableIds *seq_ids, object o, size_t i);
|
||||
PGF_API_DECL
|
||||
PgfText *pgf_print_sequence_internal(size_t seq_id, object o);
|
||||
|
||||
PGF_API_DECL
|
||||
PgfText *pgf_sequence_get_text_internal(object o);
|
||||
|
||||
PGF_API_DECL
|
||||
void pgf_release_phrasetable_ids(PgfPhrasetableIds *seq_ids);
|
||||
|
||||
|
||||
@@ -33,6 +33,8 @@ public:
|
||||
PgfPrinter(PgfPrintContext *context, int priority,
|
||||
PgfMarshaller *marshaller);
|
||||
|
||||
PgfPrinter() { free(res); }
|
||||
|
||||
// Push a new variable in the printing context. If the name
|
||||
// collides with an existing variable, the variable is renamed
|
||||
// by adding a number.
|
||||
|
||||
Reference in New Issue
Block a user