X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=compiler2%2FAST.hh;h=e4aa031f42d0e5fea61c1498baa36171e4a845d0;hb=3f84031e48520efb2cbc931692210e5de7fa5919;hp=7de62e88eb68775a75d6b3e76b0177900d183f5e;hpb=3abe9331b564f65690bdf2ebe001271a7011b0e2;p=deliverable%2Ftitan.core.git diff --git a/compiler2/AST.hh b/compiler2/AST.hh index 7de62e8..e4aa031 100644 --- a/compiler2/AST.hh +++ b/compiler2/AST.hh @@ -77,6 +77,13 @@ namespace Common { /** Containers to store the modules. */ vector mods_v; map mods_m; + + /** Contains info needed for delayed type encoding checks */ + struct type_enc_t { + Type* t; + bool enc; + }; + static vector delayed_type_enc_v; /** Not implemented */ Modules(const Modules& p); @@ -125,6 +132,13 @@ namespace Common { * @param json_refs map of JSON documents containing the references and function * info related to each type */ void generate_json_schema(JSON_Tokenizer& json, map& json_refs); + + /** Called if a Type::chk_coding() call could not be resolved (because the + * needed custom coding function was not found yet, but it might be among + * the functions that have not been checked yet). + * This stores the info needed to call the function again after everything + * else has been checked. */ + static void delay_type_encode_check(Type* p_type, bool p_encode); }; /**