PgfVector -> Vector

This commit is contained in:
krangelov
2021-11-09 02:10:17 +01:00
parent 6552bcf909
commit 2bed0b708c
9 changed files with 35 additions and 35 deletions

View File

@@ -15,7 +15,7 @@ void PgfAbsFun::release(ref<PgfAbsFun> absfun)
pgf_expr_free(eq->body);
for (size_t j = 0; j < eq->patts.len; j++) {
PgfPatt patt = *vector_elem(ref<PgfVector<PgfPatt>>::from_ptr(&eq->patts), j);
PgfPatt patt = *vector_elem(ref<Vector<PgfPatt>>::from_ptr(&eq->patts), j);
pgf_patt_free(patt);
}
}

View File

@@ -72,7 +72,7 @@ struct PGF_INTERNAL_DECL PgfFlag {
typedef struct {
PgfExpr body;
PgfVector<PgfPatt> patts;
Vector<PgfPatt> patts;
} PgfEquation;
struct PGF_INTERNAL_DECL PgfAbsFun {
@@ -80,7 +80,7 @@ struct PGF_INTERNAL_DECL PgfAbsFun {
ref<PgfDTyp> type;
int arity;
ref<PgfVector<ref<PgfEquation>>> defns;
ref<Vector<ref<PgfEquation>>> defns;
PgfExprProb ep;
PgfText name;
@@ -90,7 +90,7 @@ struct PGF_INTERNAL_DECL PgfAbsFun {
struct PGF_INTERNAL_DECL PgfAbsCat {
size_t ref_count;
ref<PgfVector<PgfHypo>> context;
ref<Vector<PgfHypo>> context;
prob_t prob;
PgfText name;
@@ -106,7 +106,7 @@ typedef struct {
struct PGF_INTERNAL_DECL PgfConcrLincat {
size_t ref_count;
ref<PgfVector<ref<PgfText>>> fields;
ref<Vector<ref<PgfText>>> fields;
PgfText name;
static void release(ref<PgfConcrLincat> lincat);
@@ -180,9 +180,9 @@ struct PGF_INTERNAL_DECL PgfSymbolALLCAPIT {
struct PGF_INTERNAL_DECL PgfConcrLin {
size_t ref_count;
ref<PgfVector<PgfPArg>> args;
ref<PgfVector<ref<PgfLParam>>> res;
ref<PgfVector<ref<PgfVector<PgfSymbol>>>> seqs;
ref<Vector<PgfPArg>> args;
ref<Vector<ref<PgfLParam>>> res;
ref<Vector<ref<Vector<PgfSymbol>>>> seqs;
PgfText name;

View File

@@ -1105,7 +1105,7 @@ void pgf_expr_free(PgfExpr expr)
}
PGF_INTERNAL
void pgf_context_free(ref<PgfVector<PgfHypo>> hypos)
void pgf_context_free(ref<Vector<PgfHypo>> hypos)
{
for (size_t i = 0; i < hypos->len; i++) {
PgfDB::free(vector_elem(hypos, i)->cid);
@@ -1136,7 +1136,7 @@ void pgf_patt_free(PgfPatt patt)
auto papp = ref<PgfPattApp>::untagged(patt);
PgfDB::free(papp->ctor);
for (size_t i = 0; i < papp->args.len; i++) {
PgfPatt patt = *vector_elem(ref<PgfVector<PgfPatt>>::from_ptr(&papp->args), i);
PgfPatt patt = *vector_elem(ref<Vector<PgfPatt>>::from_ptr(&papp->args), i);
pgf_patt_free(patt);
}
PgfDB::free(papp);

View File

@@ -30,8 +30,8 @@ struct PGF_INTERNAL_DECL PgfHypo {
};
struct PGF_INTERNAL_DECL PgfDTyp {
ref<PgfVector<PgfHypo>> hypos;
ref<PgfVector<PgfExpr>> exprs;
ref<Vector<PgfHypo>> hypos;
ref<Vector<PgfExpr>> exprs;
PgfText name;
};
@@ -95,7 +95,7 @@ struct PGF_INTERNAL_DECL PgfPattApp {
static const uint8_t tag = 0;
ref<PgfText> ctor;
PgfVector<PgfPatt> args;
Vector<PgfPatt> args;
};
struct PGF_INTERNAL_DECL PgfPattVar {
@@ -278,7 +278,7 @@ PGF_INTERNAL_DECL
void pgf_expr_free(PgfExpr expr);
PGF_INTERNAL_DECL
void pgf_context_free(ref<PgfVector<PgfHypo>> hypos);
void pgf_context_free(ref<Vector<PgfHypo>> hypos);
PGF_INTERNAL_DECL
void pgf_type_free(ref<PgfDTyp> dtyp);

View File

@@ -171,21 +171,21 @@ Namespace<V> PgfReader::read_namespace(ref<V> (PgfReader::*read_value)())
}
template <class C, class V>
ref<C> PgfReader::read_vector(PgfVector<V> C::* field, void (PgfReader::*read_value)(ref<V> val))
ref<C> PgfReader::read_vector(Vector<V> C::* field, void (PgfReader::*read_value)(ref<V> val))
{
size_t len = read_len();
ref<C> loc = vector_new<C,V>(field,len);
for (size_t i = 0; i < len; i++) {
(this->*read_value)(vector_elem(ref<PgfVector<V>>::from_ptr(&(loc->*field)),i));
(this->*read_value)(vector_elem(ref<Vector<V>>::from_ptr(&(loc->*field)),i));
}
return loc;
}
template <class V>
ref<PgfVector<V>> PgfReader::read_vector(void (PgfReader::*read_value)(ref<V> val))
ref<Vector<V>> PgfReader::read_vector(void (PgfReader::*read_value)(ref<V> val))
{
size_t len = read_len();
ref<PgfVector<V>> vec = vector_new<V>(len);
ref<Vector<V>> vec = vector_new<V>(len);
for (size_t i = 0; i < len; i++) {
(this->*read_value)(vector_elem(vec,i));
}
@@ -309,7 +309,7 @@ void PgfReader::read_hypo(ref<PgfHypo> hypo)
ref<PgfDTyp> PgfReader::read_type()
{
ref<PgfVector<PgfHypo>> hypos =
ref<Vector<PgfHypo>> hypos =
read_vector<PgfHypo>(&PgfReader::read_hypo);
ref<PgfDTyp> tp = read_name<PgfDTyp>(&PgfDTyp::name);
tp->hypos = hypos;

View File

@@ -45,10 +45,10 @@ public:
Namespace<V> read_namespace(ref<V> (PgfReader::*read_value)());
template <class C, class V>
ref<C> read_vector(PgfVector<V> C::* field, void (PgfReader::*read_value)(ref<V> val));
ref<C> read_vector(Vector<V> C::* field, void (PgfReader::*read_value)(ref<V> val));
template<class V>
ref<PgfVector<V>> read_vector(void (PgfReader::*read_value)(ref<V> val));
ref<Vector<V>> read_vector(void (PgfReader::*read_value)(ref<V> val));
PgfLiteral read_literal();
PgfExpr read_expr();
@@ -89,7 +89,7 @@ private:
void read_text2(ref<ref<PgfText>> r) { *r = read_text(); };
void read_lparam(ref<ref<PgfLParam>> r) { *r = read_lparam(); };
void read_symbol2(ref<PgfSymbol> r) { *r = read_symbol(); };
void read_seq2(ref<ref<PgfVector<PgfSymbol>>> r) { *r = read_vector(&PgfReader::read_symbol2); }
void read_seq2(ref<ref<Vector<PgfSymbol>>> r) { *r = read_vector(&PgfReader::read_symbol2); }
template<class I>
ref<I> read_symbol_idx();

View File

@@ -2,30 +2,30 @@
#define VECTOR_H
template <class A>
struct PgfVector {
struct Vector {
size_t len;
A data[];
};
template <class A> inline
ref<PgfVector<A>> vector_new(size_t len)
ref<Vector<A>> vector_new(size_t len)
{
ref<PgfVector<A>> res = PgfDB::malloc<PgfVector<A>>(len*sizeof(A));
ref<Vector<A>> res = PgfDB::malloc<Vector<A>>(len*sizeof(A));
res->len = len;
return res;
}
template <class C, class A> inline
ref<C> vector_new(PgfVector<A> C::* field, size_t len)
ref<C> vector_new(Vector<A> C::* field, size_t len)
{
ptrdiff_t offset = (ptrdiff_t) &(((C*) NULL)->*field);
ref<C> res = PgfDB::malloc<PgfVector<A>>(offset+len*sizeof(A)).as_object()-offset;
ref<C> res = PgfDB::malloc<Vector<A>>(offset+len*sizeof(A)).as_object()-offset;
(res->*field).len = len;
return res;
}
template <class A> inline
ref<A> vector_elem(ref<PgfVector<A>> v, size_t index)
ref<A> vector_elem(ref<Vector<A>> v, size_t index)
{
return ref<A>::from_ptr(&v->data[index]);
}

View File

@@ -151,7 +151,7 @@ void PgfWriter::write_namespace_helper(Namespace<V> nmsp, void (PgfWriter::*writ
}
template<class V>
void PgfWriter::write_vector(ref<PgfVector<V>> vec, void (PgfWriter::*write_value)(ref<V> val))
void PgfWriter::write_vector(ref<Vector<V>> vec, void (PgfWriter::*write_value)(ref<V> val))
{
write_len(vec->len);
for (size_t i = 0; i < vec->len; i++) {
@@ -262,7 +262,7 @@ void PgfWriter::write_patt(PgfPatt patt)
case PgfPattApp::tag: {
auto papp = ref<PgfPattApp>::untagged(patt);
write_name(papp->ctor);
write_vector(ref<PgfVector<PgfPatt>>::from_ptr(&papp->args), &PgfWriter::write_patt);
write_vector(ref<Vector<PgfPatt>>::from_ptr(&papp->args), &PgfWriter::write_patt);
break;
}
case PgfPattVar::tag: {
@@ -304,7 +304,7 @@ void PgfWriter::write_defn(ref<ref<PgfEquation>> r)
{
ref<PgfEquation> equ = *r;
write_vector(ref<PgfVector<PgfPatt>>::from_ptr(&equ->patts), &PgfWriter::write_patt);
write_vector(ref<Vector<PgfPatt>>::from_ptr(&equ->patts), &PgfWriter::write_patt);
write_expr(equ->body);
}
@@ -451,7 +451,7 @@ void PgfWriter::write_symbol(PgfSymbol sym)
}
}
void PgfWriter::write_seq(ref<PgfVector<PgfSymbol>> seq)
void PgfWriter::write_seq(ref<Vector<PgfSymbol>> seq)
{
write_vector(seq, &PgfWriter::write_symbol);
}

View File

@@ -23,7 +23,7 @@ public:
void write_namespace(Namespace<V> nmsp, void (PgfWriter::*write_value)(ref<V>));
template<class V>
void write_vector(ref<PgfVector<V>> vec, void (PgfWriter::*write_value)(ref<V> val));
void write_vector(ref<Vector<V>> vec, void (PgfWriter::*write_value)(ref<V> val));
void write_literal(PgfLiteral literal);
void write_expr(PgfExpr expr);
@@ -45,7 +45,7 @@ public:
void write_lparam(ref<PgfLParam> lparam);
void write_parg(ref<PgfPArg> linarg);
void write_symbol(PgfSymbol sym);
void write_seq(ref<PgfVector<PgfSymbol>> seq);
void write_seq(ref<Vector<PgfSymbol>> seq);
void write_lin(ref<PgfConcrLin> lin);
void write_printname(ref<PgfConcrPrintname> printname);
@@ -60,7 +60,7 @@ private:
void write_patt(ref<PgfPatt> r) { write_patt(*r); };
void write_text(ref<ref<PgfText>> r) { write_text(&(**r)); };
void write_lparam(ref<ref<PgfLParam>> r) { write_lparam(*r); };
void write_seq(ref<ref<PgfVector<PgfSymbol>>> r) { write_seq(*r); };
void write_seq(ref<ref<Vector<PgfSymbol>>> r) { write_seq(*r); };
void write_symbol(ref<PgfSymbol> r) { write_symbol(*r); };
FILE *out;