forked from GitHub/gf-core
a major refactoring in the C runtime. GuList is now removed and replaced with GuSeq. The GuSeq/GuBuf API is simplified
This commit is contained in:
@@ -286,7 +286,7 @@ pgf_read_type_(PgfReader* rdr)
|
||||
{
|
||||
size_t n_hypos = pgf_read_len(rdr);
|
||||
gu_return_on_exn(rdr->err, NULL);
|
||||
GuSeq hypos = gu_new_seq(PgfHypo, n_hypos, rdr->opool);
|
||||
GuSeq* hypos = gu_new_seq(PgfHypo, n_hypos, rdr->opool);
|
||||
for (size_t i = 0; i < n_hypos; i++) {
|
||||
PgfHypo* hypo = gu_seq_index(hypos, PgfHypo, i);
|
||||
pgf_read_hypo(rdr, hypo);
|
||||
@@ -415,7 +415,7 @@ pgf_read_absfun(PgfReader* rdr)
|
||||
gu_return_on_exn(rdr->err, NULL);
|
||||
switch (tag) {
|
||||
case 0:
|
||||
absfun->defns = gu_null_seq;
|
||||
absfun->defns = NULL;
|
||||
break;
|
||||
case 1: {
|
||||
GuLength length = pgf_read_len(rdr);
|
||||
@@ -586,16 +586,16 @@ pgf_read_printnames(PgfReader* rdr)
|
||||
return printnames;
|
||||
}
|
||||
|
||||
static PgfTokens
|
||||
static PgfTokens*
|
||||
pgf_read_tokens(PgfReader* rdr)
|
||||
{
|
||||
size_t len = pgf_read_len(rdr);
|
||||
gu_return_on_exn(rdr->err, gu_null_seq);
|
||||
gu_return_on_exn(rdr->err, NULL);
|
||||
|
||||
PgfTokens tokens = gu_new_seq(PgfToken, len, rdr->opool);
|
||||
PgfTokens* tokens = gu_new_seq(PgfToken, len, rdr->opool);
|
||||
for (size_t i = 0; i < len; i++) {
|
||||
PgfToken token = pgf_read_string(rdr);
|
||||
gu_return_on_exn(rdr->err, gu_null_seq);
|
||||
gu_return_on_exn(rdr->err, NULL);
|
||||
|
||||
gu_seq_set(tokens, PgfToken, i, token);
|
||||
}
|
||||
@@ -612,12 +612,12 @@ pgf_read_alternative(PgfReader* rdr, PgfAlternative* alt)
|
||||
size_t n_prefixes = pgf_read_len(rdr);
|
||||
gu_return_on_exn(rdr->err,);
|
||||
|
||||
alt->prefixes = gu_new_list(GuStringL, rdr->opool, n_prefixes);
|
||||
alt->prefixes = gu_new_seq(GuString, n_prefixes, rdr->opool);
|
||||
for (size_t i = 0; i < n_prefixes; i++) {
|
||||
GuString prefix = pgf_read_string(rdr);
|
||||
gu_return_on_exn(rdr->err,);
|
||||
|
||||
gu_list_index(alt->prefixes, i) = prefix;
|
||||
gu_seq_set(alt->prefixes, GuString, i, prefix);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -677,7 +677,7 @@ pgf_read_symbol(PgfReader* rdr)
|
||||
break;
|
||||
}
|
||||
case PGF_SYMBOL_KP: {
|
||||
PgfTokens default_form = pgf_read_tokens(rdr);
|
||||
PgfTokens* default_form = pgf_read_tokens(rdr);
|
||||
gu_return_on_exn(rdr->err, gu_null_variant);
|
||||
|
||||
size_t n_forms = pgf_read_len(rdr);
|
||||
@@ -710,17 +710,17 @@ pgf_read_symbol(PgfReader* rdr)
|
||||
return sym;
|
||||
}
|
||||
|
||||
static PgfSequence
|
||||
static PgfSequence*
|
||||
pgf_read_sequence(PgfReader* rdr)
|
||||
{
|
||||
size_t len = pgf_read_len(rdr);
|
||||
gu_return_on_exn(rdr->err, gu_null_seq);
|
||||
gu_return_on_exn(rdr->err, NULL);
|
||||
|
||||
PgfSequence seq = gu_new_seq(PgfSymbol, len, rdr->opool);
|
||||
PgfSequence* seq = gu_new_seq(PgfSymbol, len, rdr->opool);
|
||||
|
||||
for (size_t i = 0; i < len; i++) {
|
||||
PgfSymbol sym = pgf_read_symbol(rdr);
|
||||
gu_return_on_exn(rdr->err, gu_null_seq);
|
||||
gu_return_on_exn(rdr->err, NULL);
|
||||
gu_seq_set(seq, PgfSymbol, i, sym);
|
||||
}
|
||||
|
||||
@@ -733,12 +733,12 @@ pgf_read_sequences(PgfReader* rdr)
|
||||
size_t len = pgf_read_len(rdr);
|
||||
gu_return_on_exn(rdr->err, NULL);
|
||||
|
||||
PgfSequences* seqs = gu_new_list(PgfSequences, rdr->opool, len);
|
||||
PgfSequences* seqs = gu_new_seq(PgfSequence*, len, rdr->opool);
|
||||
|
||||
for (size_t i = 0; i < len; i++) {
|
||||
PgfSequence seq = pgf_read_sequence(rdr);
|
||||
PgfSequence* seq = pgf_read_sequence(rdr);
|
||||
gu_return_on_exn(rdr->err, NULL);
|
||||
gu_list_index(seqs, i) = seq;
|
||||
gu_seq_set(seqs, PgfSequence*, i, seq);
|
||||
}
|
||||
|
||||
return seqs;
|
||||
@@ -763,15 +763,15 @@ pgf_read_cncfun(PgfReader* rdr, PgfAbstr* abstr, PgfConcr* concr, int funid)
|
||||
cncfun->n_lins = len;
|
||||
|
||||
for (size_t i = 0; i < len; i++) {
|
||||
int seqid = pgf_read_int(rdr);
|
||||
size_t seqid = pgf_read_int(rdr);
|
||||
gu_return_on_exn(rdr->err, NULL);
|
||||
|
||||
if (seqid < 0 || seqid >= gu_list_length(concr->sequences)) {
|
||||
if (seqid >= gu_seq_length(concr->sequences)) {
|
||||
gu_raise(rdr->err, PgfReadExn);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
cncfun->lins[i] = gu_list_elems(concr->sequences)[seqid];
|
||||
cncfun->lins[i] = gu_seq_get(concr->sequences, PgfSequence*, seqid);
|
||||
}
|
||||
|
||||
return cncfun;
|
||||
@@ -783,13 +783,13 @@ pgf_read_cncfuns(PgfReader* rdr, PgfAbstr* abstr, PgfConcr* concr)
|
||||
size_t len = pgf_read_len(rdr);
|
||||
gu_return_on_exn(rdr->err, NULL);
|
||||
|
||||
PgfCncFuns* cncfuns = gu_new_list(PgfCncFuns, rdr->opool, len);
|
||||
PgfCncFuns* cncfuns = gu_new_seq(PgfCncFun*, len, rdr->opool);
|
||||
|
||||
for (size_t funid = 0; funid < len; funid++) {
|
||||
PgfCncFun* cncfun = pgf_read_cncfun(rdr, abstr, concr, funid);
|
||||
gu_return_on_exn(rdr->err, NULL);
|
||||
|
||||
gu_list_index(cncfuns, funid) = cncfun;
|
||||
gu_seq_set(cncfuns, PgfCncFun*, funid, cncfun);
|
||||
}
|
||||
|
||||
return cncfuns;
|
||||
@@ -807,7 +807,7 @@ pgf_read_fid(PgfReader* rdr, PgfConcr* concr)
|
||||
ccat->cnccat = NULL;
|
||||
ccat->lindefs = NULL;
|
||||
ccat->n_synprods = 0;
|
||||
ccat->prods = gu_null_seq;
|
||||
ccat->prods = NULL;
|
||||
ccat->viterbi_prob = 0;
|
||||
ccat->fid = fid;
|
||||
ccat->conts = NULL;
|
||||
@@ -822,15 +822,15 @@ pgf_read_fid(PgfReader* rdr, PgfConcr* concr)
|
||||
static PgfCncFun*
|
||||
pgf_read_funid(PgfReader* rdr, PgfConcr* concr)
|
||||
{
|
||||
int32_t funid = pgf_read_int(rdr);
|
||||
size_t funid = pgf_read_int(rdr);
|
||||
gu_return_on_exn(rdr->err, NULL);
|
||||
|
||||
if (funid < 0 || funid >= gu_list_length(concr->cncfuns)) {
|
||||
if (funid >= gu_seq_length(concr->cncfuns)) {
|
||||
gu_raise(rdr->err, PgfReadExn);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return gu_list_elems(concr->cncfuns)[funid];
|
||||
return gu_seq_get(concr->cncfuns, PgfCncFun*, funid);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -845,10 +845,10 @@ pgf_read_lindefs(PgfReader* rdr, PgfConcr* concr)
|
||||
size_t n_funs = pgf_read_len(rdr);
|
||||
gu_return_on_exn(rdr->err, );
|
||||
|
||||
ccat->lindefs = gu_new_list(PgfCncFuns, rdr->opool, n_funs);
|
||||
ccat->lindefs = gu_new_seq(PgfCncFun*, n_funs, rdr->opool);
|
||||
for (size_t j = 0; j < n_funs; j++) {
|
||||
PgfCncFun* fun = pgf_read_funid(rdr, concr);
|
||||
gu_list_index(ccat->lindefs, j) = fun;
|
||||
gu_seq_set(ccat->lindefs, PgfCncFun*, j, fun);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -859,9 +859,9 @@ pgf_read_parg(PgfReader* rdr, PgfConcr* concr, PgfPArg* parg)
|
||||
size_t n_hoas = pgf_read_len(rdr);
|
||||
gu_return_on_exn(rdr->err, );
|
||||
|
||||
parg->hypos = gu_new_list(PgfCCats, rdr->opool, n_hoas);
|
||||
parg->hypos = gu_new_seq(PgfCCat*, n_hoas, rdr->opool);
|
||||
for (size_t i = 0; i < n_hoas; i++) {
|
||||
gu_list_index(parg->hypos, i) = pgf_read_fid(rdr, concr);
|
||||
gu_seq_set(parg->hypos, PgfCCat*, i, pgf_read_fid(rdr, concr));
|
||||
gu_return_on_exn(rdr->err, );
|
||||
}
|
||||
|
||||
@@ -869,13 +869,13 @@ pgf_read_parg(PgfReader* rdr, PgfConcr* concr, PgfPArg* parg)
|
||||
gu_return_on_exn(rdr->err, );
|
||||
}
|
||||
|
||||
static PgfPArgs
|
||||
static PgfPArgs*
|
||||
pgf_read_pargs(PgfReader* rdr, PgfConcr* concr)
|
||||
{
|
||||
size_t len = pgf_read_len(rdr);
|
||||
gu_return_on_exn(rdr->err, gu_null_seq);
|
||||
gu_return_on_exn(rdr->err, NULL);
|
||||
|
||||
PgfPArgs pargs = gu_new_seq(PgfPArg, len, rdr->opool);
|
||||
PgfPArgs* pargs = gu_new_seq(PgfPArg, len, rdr->opool);
|
||||
for (size_t i = 0; i < len; i++) {
|
||||
PgfPArg* parg = gu_seq_index(pargs, PgfPArg, i);
|
||||
pgf_read_parg(rdr, concr, parg);
|
||||
@@ -967,7 +967,7 @@ pgf_read_cnccat(PgfReader* rdr, PgfAbstr* abstr, PgfConcr* concr, PgfCId name)
|
||||
gu_assert(cnccat->abscat != NULL);
|
||||
|
||||
int len = last + 1 - first;
|
||||
cnccat->cats = gu_new_list(PgfCCats, rdr->opool, len);
|
||||
cnccat->cats = gu_new_seq(PgfCCat*, len, rdr->opool);
|
||||
|
||||
for (int i = 0; i < len; i++) {
|
||||
int fid = first + i;
|
||||
@@ -977,7 +977,7 @@ pgf_read_cnccat(PgfReader* rdr, PgfAbstr* abstr, PgfConcr* concr, PgfCId name)
|
||||
ccat->cnccat = NULL;
|
||||
ccat->lindefs = NULL;
|
||||
ccat->n_synprods = 0;
|
||||
ccat->prods = gu_null_seq;
|
||||
ccat->prods = NULL;
|
||||
ccat->viterbi_prob = 0;
|
||||
ccat->fid = fid;
|
||||
ccat->conts = NULL;
|
||||
@@ -985,7 +985,7 @@ pgf_read_cnccat(PgfReader* rdr, PgfAbstr* abstr, PgfConcr* concr, PgfCId name)
|
||||
|
||||
gu_map_put(concr->ccats, &fid, PgfCCat*, ccat);
|
||||
}
|
||||
gu_list_index(cnccat->cats, i) = ccat;
|
||||
gu_seq_set(cnccat->cats, PgfCCat*, i, ccat);
|
||||
|
||||
ccat->cnccat = cnccat;
|
||||
}
|
||||
@@ -1079,7 +1079,7 @@ pgf_read_ccat_cb(GuMapItor* fn, const void* key, void* value, GuExn* err)
|
||||
PgfConcr *concr = clo->concr;
|
||||
GuPool *pool = clo->pool;
|
||||
|
||||
if (gu_seq_is_null(ccat->prods))
|
||||
if (ccat->prods == NULL)
|
||||
return;
|
||||
|
||||
size_t n_prods = gu_seq_length(ccat->prods);
|
||||
|
||||
Reference in New Issue
Block a user