void wasm::writeSig(raw_ostream &OS, const WasmSignature &Sig) { writeU8(OS, WASM_TYPE_FUNC, "signature type"); writeUleb128(OS, Sig.Params.size(), "param Count"); for (ValType ParamType : Sig.Params) { writeValueType(OS, ParamType, "param type"); } writeUleb128(OS, Sig.Returns.size(), "result Count"); if (Sig.Returns.size()) { writeValueType(OS, Sig.Returns[0], "result type"); } }
virtual bool writeValueTypeTester( Value::ValueType type, size_t numItems, std::string &statement ) { return writeValueType( type, numItems, statement ); }
static void doWriteType(A2PWriter writer, A2PType type){ switch(type->id){ case PDB_VALUE_TYPE_HEADER: writeValueType(writer); break; case PDB_VOID_TYPE_HEADER: writeVoidType(writer); break; case PDB_BOOL_TYPE_HEADER: writeBoolType(writer); break; case PDB_INTEGER_TYPE_HEADER: writeIntegerType(writer); break; case PDB_DOUBLE_TYPE_HEADER: writeDoubleType(writer); break; case PDB_STRING_TYPE_HEADER: writeStringType(writer); break; case PDB_SOURCE_LOCATION_TYPE_HEADER: writeSourceLocationType(writer); break; case PDB_NODE_TYPE_HEADER: if(((A2PNodeType) type->theType)->declaredAnnotations == NULL){ writeNodeType(writer, type); }else{ writeAnnotatedNodeType(writer, type); } break; case PDB_TUPLE_TYPE_HEADER: writeTupleType(writer, type); break; case PDB_LIST_TYPE_HEADER: writeListType(writer, type); break; case PDB_SET_TYPE_HEADER: writeSetType(writer, type); break; case PDB_RELATION_TYPE_HEADER: writeRelationType(writer, type); break; case PDB_MAP_TYPE_HEADER: writeMapType(writer, type); break; case PDB_PARAMETER_TYPE_HEADER: writeParameterType(writer, type); break; case PDB_ADT_TYPE_HEADER: writeADTType(writer, type); break; case PDB_CONSTRUCTOR_TYPE_HEADER: if(((A2PConstructorType) type->theType)->declaredAnnotations == NULL){ writeConstructorType(writer, type); }else{ writeAnnotatedConstructorType(writer, type); } break; case PDB_ALIAS_TYPE_HEADER: writeAliasType(writer, type); break; default: fprintf(stderr, "Unknown type: %d\n.", type->id); exit(1); } }
void wasm::writeGlobalType(raw_ostream &OS, const WasmGlobalType &Type) { // TODO: Update WasmGlobalType to use ValType and remove this cast. writeValueType(OS, ValType(Type.Type), "global type"); writeU8(OS, Type.Mutable, "global mutable"); }