mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-06-12 03:20:12 -06:00
finished reading the abstract syntax
This commit is contained in:
@@ -18,18 +18,53 @@ public:
|
||||
double read_double();
|
||||
uint64_t read_uint();
|
||||
int64_t read_int() { return (int64_t) read_uint(); };
|
||||
uint8_t read_tag() { return read_uint8(); }
|
||||
size_t read_len() { return (size_t) read_uint(); };
|
||||
|
||||
uint8_t read_tag() { return read_uint8(); }
|
||||
|
||||
template<class V>
|
||||
ref<V> read_name() { return read_name(offsetof(V,name)); };
|
||||
ref<V> read_name(PgfText V::* field) {
|
||||
return read_name_internal((size_t) &(((V*) NULL)->*field));
|
||||
};
|
||||
|
||||
ref<PgfText> read_name() {
|
||||
return read_name_internal(0);
|
||||
};
|
||||
|
||||
template<class V>
|
||||
ref<V> read_text(PgfText V::* field) {
|
||||
return read_text_internal((size_t) &(((V*) NULL)->*field));
|
||||
};
|
||||
|
||||
ref<PgfText> read_text() {
|
||||
return read_text_internal(0);
|
||||
};
|
||||
|
||||
template<class V>
|
||||
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));
|
||||
|
||||
template<class V>
|
||||
ref<PgfVector<V>> read_vector(void (PgfReader::*read_value)(ref<V> val));
|
||||
|
||||
PgfLiteral read_literal();
|
||||
PgfExpr read_expr();
|
||||
void read_expr(ref<PgfExpr> r) { *r = read_expr(); };
|
||||
|
||||
void read_hypo(ref<PgfHypo> hypo);
|
||||
ref<PgfType> read_type();
|
||||
|
||||
ref<PgfFlag> read_flag();
|
||||
|
||||
PgfPatt read_patt();
|
||||
void read_patt2(ref<PgfPatt> r) { *r = read_patt(); };
|
||||
|
||||
void read_defn(ref<ref<PgfEquation>> defn);
|
||||
|
||||
ref<PgfAbsFun> read_absfun();
|
||||
ref<PgfAbsCat> read_abscat();
|
||||
void read_abstract(PgfAbstr* abstract);
|
||||
|
||||
void read_pgf(PgfPGFRoot* pgf);
|
||||
@@ -37,7 +72,8 @@ public:
|
||||
private:
|
||||
std::istream *in;
|
||||
|
||||
moffset read_name(size_t size);
|
||||
moffset read_name_internal(size_t struct_size);
|
||||
moffset read_text_internal(size_t struct_size);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user