// Copyright 2017 The Wuffs Authors.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// https://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
//
// SPDX-License-Identifier: Apache-2.0 OR MIT

//go:generate go run gen.go

// Package builtin lists Wuffs' built-in concepts such as status codes.
package builtin

import (
	"fmt"
	"strings"

	"github.com/google/wuffs/lang/parse"

	a "github.com/google/wuffs/lang/ast"
	t "github.com/google/wuffs/lang/token"
)

var FourCCs = [...][2]string{
	{"ABXR", "Android Binary XML (for resources; see AndroidBinXmlParser.java)"},
	{"ABXS", "Android Binary XML (for system_server; see BinaryXmlSerializer.java)"},
	{"BGCL", "Background Color"},
	{"BMP ", "Bitmap"},
	{"BRTL", "Brotli"},
	{"BZ2 ", "Bzip2"},
	{"CBOR", "Concise Binary Object Representation"},
	{"CHRM", "Primary Chromaticities and White Point"},
	{"CSS ", "Cascading Style Sheets"},
	{"EPS ", "Encapsulated PostScript"},
	{"ETC2", "Ericsson Texture Compression 2 (iPACKMAN)"},
	{"EXIF", "Exchangeable Image File Format"},
	{"FLAC", "Free Lossless Audio Codec"},
	{"GAMA", "Gamma Correction"},
	{"GIF ", "Graphics Interchange Format"},
	{"GZ  ", "GNU Zip"},
	{"HEIF", "High Efficiency Image File"},
	{"HNSM", "Handsum"},
	{"HTML", "Hypertext Markup Language"},
	{"ICCP", "International Color Consortium Profile"},
	{"ICO ", "Icon"},
	{"ICVG", "Icon Vector Graphics"},
	{"INI ", "Initialization"},
	{"JPEG", "Joint Photographic Experts Group"},
	{"JS  ", "JavaScript"},
	{"JSON", "JavaScript Object Notation"},
	{"JWCC", "JSON With Commas and Comments"},
	{"KVP ", "Key-Value Pair"},
	{"KVPK", "Key-Value Pair (Key)"},
	{"KVPV", "Key-Value Pair (Value)"},
	{"LZ4 ", "Lempel–Ziv 4"},
	{"LZIP", "Lzip"},
	{"LZMA", "Lempel–Ziv Markov-chain Algorithm"},
	{"MD  ", "Markdown"},
	{"MTIM", "Modification Time"},
	{"MP3 ", "MPEG-1 Audio Layer III"},
	{"NIE ", "Naive Image"},
	{"NPBM", "Netpbm (Portable Anymap)"},
	{"OFS2", "Offset (2-Dimensional)"},
	{"OTF ", "Open Type Format"},
	{"PDF ", "Portable Document Format"},
	{"PHYD", "Physical Dimensions"},
	{"PNG ", "Portable Network Graphics"},
	{"PS  ", "PostScript"},
	{"QOI ", "Quite OK Image"},
	{"RAC ", "Random Access Compression"},
	{"RAW ", "Raw"},
	{"RIFF", "Resource Interchange File Format"},
	{"RIGL", "Riegeli Records"},
	{"SNPY", "Snappy"},
	{"SRGB", "Standard Red Green Blue (Rendering Intent)"},
	{"SVG ", "Scalable Vector Graphics"},
	{"TAR ", "Tape Archive"},
	{"TEXT", "Text"},
	{"TGA ", "Truevision Advanced Raster Graphics Adapter"},
	{"TH  ", "Thumbhash"},
	{"TIFF", "Tagged Image File Format"},
	{"TOML", "Tom's Obvious Minimal Language"},
	{"WAVE", "Waveform"},
	{"WBMP", "Wireless Bitmap"},
	{"WEBP", "Web Picture"},
	{"WOFF", "Web Open Font Format"},
	{"XML ", "Extensible Markup Language"},
	{"XMP ", "Extensible Metadata Platform"},
	{"XZ  ", "Xz"},
	{"ZIP ", "Zip"},
	{"ZLIB", "Zlib"},
	{"ZSTD", "Zstandard"},
}

var Consts = [...]struct {
	Type  t.ID
	Value string
	Name  string
}{
	// ----

	{t.IDU8, "0", "ANIMATION_DISPOSAL__NONE"},
	{t.IDU8, "1", "ANIMATION_DISPOSAL__RESTORE_BACKGROUND"},
	{t.IDU8, "2", "ANIMATION_DISPOSAL__RESTORE_PREVIOUS"},

	// ----

	{t.IDU32, "1", "MORE_INFORMATION__FLAVOR__IO_REDIRECT"},
	{t.IDU32, "2", "MORE_INFORMATION__FLAVOR__IO_SEEK"},
	{t.IDU32, "3", "MORE_INFORMATION__FLAVOR__METADATA_RAW_PASSTHROUGH"},
	{t.IDU32, "4", "MORE_INFORMATION__FLAVOR__METADATA_RAW_TRANSFORM"},
	{t.IDU32, "5", "MORE_INFORMATION__FLAVOR__METADATA_PARSED"},

	// ----

	{t.IDU32, "0x02000008", "PIXEL_FORMAT__A"},

	{t.IDU32, "0x20000008", "PIXEL_FORMAT__Y"},
	{t.IDU32, "0x2000000B", "PIXEL_FORMAT__Y_16LE"},
	{t.IDU32, "0x2010000B", "PIXEL_FORMAT__Y_16BE"},
	{t.IDU32, "0x21000088", "PIXEL_FORMAT__YA_NONPREMUL"},
	{t.IDU32, "0x22000088", "PIXEL_FORMAT__YA_PREMUL"},
	{t.IDU32, "0x30008888", "PIXEL_FORMAT__YXXX"},

	{t.IDU32, "0x40020888", "PIXEL_FORMAT__YCBCR"},
	{t.IDU32, "0x41038888", "PIXEL_FORMAT__YCBCRA_NONPREMUL"},
	{t.IDU32, "0x50038888", "PIXEL_FORMAT__YCBCRK"},

	{t.IDU32, "0x60020888", "PIXEL_FORMAT__YCOCG"},
	{t.IDU32, "0x61038888", "PIXEL_FORMAT__YCOCGA_NONPREMUL"},
	{t.IDU32, "0x70038888", "PIXEL_FORMAT__YCOCGK"},

	{t.IDU32, "0x81040008", "PIXEL_FORMAT__INDEXED__BGRA_NONPREMUL"},
	{t.IDU32, "0x82040008", "PIXEL_FORMAT__INDEXED__BGRA_PREMUL"},
	{t.IDU32, "0x83040008", "PIXEL_FORMAT__INDEXED__BGRA_BINARY"},

	{t.IDU32, "0x80000565", "PIXEL_FORMAT__BGR_565"},
	{t.IDU32, "0x80000888", "PIXEL_FORMAT__BGR"},
	{t.IDU32, "0x81008888", "PIXEL_FORMAT__BGRA_NONPREMUL"},
	{t.IDU32, "0x8100BBBB", "PIXEL_FORMAT__BGRA_NONPREMUL_4X16LE"},
	{t.IDU32, "0x82008888", "PIXEL_FORMAT__BGRA_PREMUL"},
	{t.IDU32, "0x8200BBBB", "PIXEL_FORMAT__BGRA_PREMUL_4X16LE"},
	{t.IDU32, "0x83008888", "PIXEL_FORMAT__BGRA_BINARY"},
	{t.IDU32, "0x90008888", "PIXEL_FORMAT__BGRX"},

	{t.IDU32, "0xA0000888", "PIXEL_FORMAT__RGB"},
	{t.IDU32, "0xA1008888", "PIXEL_FORMAT__RGBA_NONPREMUL"},
	{t.IDU32, "0xA100BBBB", "PIXEL_FORMAT__RGBA_NONPREMUL_4X16LE"},
	{t.IDU32, "0xA2008888", "PIXEL_FORMAT__RGBA_PREMUL"},
	{t.IDU32, "0xA200BBBB", "PIXEL_FORMAT__RGBA_PREMUL_4X16LE"},
	{t.IDU32, "0xA3008888", "PIXEL_FORMAT__RGBA_BINARY"},
	{t.IDU32, "0xB0008888", "PIXEL_FORMAT__RGBX"},

	{t.IDU32, "0xC0020888", "PIXEL_FORMAT__CMY"},
	{t.IDU32, "0xD0038888", "PIXEL_FORMAT__CMYK"},

	// ----

	{t.IDU32, "1", "QUIRK_IGNORE_CHECKSUM"},
	{t.IDU32, "2", "QUIRK_QUALITY"},

	// ----

	{t.IDU32, "46", "TOKEN__VALUE_EXTENSION__NUM_BITS"},

	// ----

	{t.IDU32, "0", "TOKEN__VBC__FILLER"},
	{t.IDU32, "1", "TOKEN__VBC__STRUCTURE"},
	{t.IDU32, "2", "TOKEN__VBC__STRING"},
	{t.IDU32, "3", "TOKEN__VBC__UNICODE_CODE_POINT"},
	{t.IDU32, "4", "TOKEN__VBC__LITERAL"},
	{t.IDU32, "5", "TOKEN__VBC__NUMBER"},
	{t.IDU32, "6", "TOKEN__VBC__INLINE_INTEGER_SIGNED"},
	{t.IDU32, "7", "TOKEN__VBC__INLINE_INTEGER_UNSIGNED"},

	// ----

	{t.IDU32, "0x00001", "TOKEN__VBD__FILLER__PUNCTUATION"},
	{t.IDU32, "0x00002", "TOKEN__VBD__FILLER__COMMENT_BLOCK"},
	{t.IDU32, "0x00004", "TOKEN__VBD__FILLER__COMMENT_LINE"},
	{t.IDU32, "0x00006", "TOKEN__VBD__FILLER__COMMENT_ANY"},

	// ----

	{t.IDU32, "0x00001", "TOKEN__VBD__STRUCTURE__PUSH"},
	{t.IDU32, "0x00002", "TOKEN__VBD__STRUCTURE__POP"},
	{t.IDU32, "0x00010", "TOKEN__VBD__STRUCTURE__FROM_NONE"},
	{t.IDU32, "0x00020", "TOKEN__VBD__STRUCTURE__FROM_LIST"},
	{t.IDU32, "0x00040", "TOKEN__VBD__STRUCTURE__FROM_DICT"},
	{t.IDU32, "0x01000", "TOKEN__VBD__STRUCTURE__TO_NONE"},
	{t.IDU32, "0x02000", "TOKEN__VBD__STRUCTURE__TO_LIST"},
	{t.IDU32, "0x04000", "TOKEN__VBD__STRUCTURE__TO_DICT"},

	// ----

	{t.IDU32, "0x00001", "TOKEN__VBD__STRING__DEFINITELY_UTF_8"},
	{t.IDU32, "0x00002", "TOKEN__VBD__STRING__CHAIN_MUST_BE_UTF_8"},
	{t.IDU32, "0x00004", "TOKEN__VBD__STRING__CHAIN_SHOULD_BE_UTF_8"},
	{t.IDU32, "0x00010", "TOKEN__VBD__STRING__DEFINITELY_ASCII"},
	{t.IDU32, "0x00020", "TOKEN__VBD__STRING__CHAIN_MUST_BE_ASCII"},
	{t.IDU32, "0x00040", "TOKEN__VBD__STRING__CHAIN_SHOULD_BE_ASCII"},

	{t.IDU32, "0x00100", "TOKEN__VBD__STRING__CONVERT_0_DST_1_SRC_DROP"},
	{t.IDU32, "0x00200", "TOKEN__VBD__STRING__CONVERT_1_DST_1_SRC_COPY"},
	{t.IDU32, "0x00400", "TOKEN__VBD__STRING__CONVERT_1_DST_2_SRC_HEXADECIMAL"},
	{t.IDU32, "0x00800", "TOKEN__VBD__STRING__CONVERT_1_DST_4_SRC_BACKSLASH_X"},
	{t.IDU32, "0x01000", "TOKEN__VBD__STRING__CONVERT_3_DST_4_SRC_BASE_64_STD"},
	{t.IDU32, "0x02000", "TOKEN__VBD__STRING__CONVERT_3_DST_4_SRC_BASE_64_URL"},
	{t.IDU32, "0x04000", "TOKEN__VBD__STRING__CONVERT_4_DST_5_SRC_ASCII_85"},
	{t.IDU32, "0x08000", "TOKEN__VBD__STRING__CONVERT_5_DST_8_SRC_BASE_32_HEX"},
	{t.IDU32, "0x10000", "TOKEN__VBD__STRING__CONVERT_5_DST_8_SRC_BASE_32_STD"},

	// ----

	{t.IDU32, "0x00001", "TOKEN__VBD__LITERAL__UNDEFINED"},
	{t.IDU32, "0x00002", "TOKEN__VBD__LITERAL__NULL"},
	{t.IDU32, "0x00004", "TOKEN__VBD__LITERAL__FALSE"},
	{t.IDU32, "0x00008", "TOKEN__VBD__LITERAL__TRUE"},

	// ----

	{t.IDU32, "0x00001", "TOKEN__VBD__NUMBER__CONTENT_FLOATING_POINT"},
	{t.IDU32, "0x00002", "TOKEN__VBD__NUMBER__CONTENT_INTEGER_SIGNED"},
	{t.IDU32, "0x00004", "TOKEN__VBD__NUMBER__CONTENT_INTEGER_UNSIGNED"},

	{t.IDU32, "0x00010", "TOKEN__VBD__NUMBER__CONTENT_NEG_INF"},
	{t.IDU32, "0x00020", "TOKEN__VBD__NUMBER__CONTENT_POS_INF"},
	{t.IDU32, "0x00040", "TOKEN__VBD__NUMBER__CONTENT_NEG_NAN"},
	{t.IDU32, "0x00080", "TOKEN__VBD__NUMBER__CONTENT_POS_NAN"},

	{t.IDU32, "0x00100", "TOKEN__VBD__NUMBER__FORMAT_BINARY_BIG_ENDIAN"},
	{t.IDU32, "0x00200", "TOKEN__VBD__NUMBER__FORMAT_BINARY_LITTLE_ENDIAN"},
	{t.IDU32, "0x00400", "TOKEN__VBD__NUMBER__FORMAT_TEXT"},

	{t.IDU32, "0x01000", "TOKEN__VBD__NUMBER__FORMAT_IGNORE_FIRST_BYTE"},

	// ----

	{t.IDU32, "0xFFFD", "UNICODE__REPLACEMENT_CHARACTER"},
}

var Statuses = [...]string{
	// Notes.
	`"@I/O redirect"`,
	`"@end of data"`,
	`"@metadata reported"`,

	// Suspensions.
	`"$even more information"`,
	`"$mispositioned read"`,
	`"$mispositioned write"`,
	`"$short read"`,
	`"$short workbuf"`,
	`"$short write"`,

	// Errors.
	`"#bad I/O position"`,
	`"#bad argument (length too short)"`,
	`"#bad argument"`,
	`"#bad call sequence"`,
	`"#bad data"`,
	`"#bad receiver"`,
	`"#bad restart"`,
	`"#bad sizeof receiver"`,
	`"#bad vtable"`,
	`"#bad workbuf length"`,
	`"#bad wuffs version"`,
	`"#cannot return a suspension"`,
	`"#disabled by WUFFS_CONFIG__DST_PIXEL_FORMAT__ENABLE_ALLOWLIST"`,
	`"#disabled by previous error"`,
	`"#initialize falsely claimed already zeroed"`,
	`"#initialize not called"`,
	`"#insufficient history"`,
	`"#interleaved coroutine calls"`,
	`"#no more information"`,
	`"#not enough data"`,
	`"#out of bounds"`,
	`"#unsupported image dimension"`,
	`"#unsupported method"`,
	`"#unsupported option"`,
	`"#unsupported pixel swizzler option"`,
	`"#too much data"`,
}

// TODO: a collection of forbidden variable names like and, or, not, as, false,
// true, in, out, this, u8, u16, etc?

var Types = []string{
	// TODO: i8, i16, i32, i64.
	"u8",
	"u16",
	"u32",
	"u64",

	"bitvec256",

	"optional_u63",

	"empty_struct",
	"bool",
	"utility",

	"range_ii_u32",
	"range_ie_u32",
	"range_ii_u64",
	"range_ie_u64",
	"rect_ie_u32",
	"rect_ii_u32",

	"more_information",

	"status",

	"io_reader",
	"io_writer",
	"token_reader",
	"token_writer",

	"frame_config",
	"image_config",
	"pixel_blend",
	"pixel_buffer",
	"pixel_config",
	"pixel_format",
	"pixel_swizzler",

	"decode_frame_options",

	// ----

	"arm_crc32_utility",
	"arm_crc32_u32",

	"arm_neon_utility",
	"arm_neon_u8x8",
	"arm_neon_u16x4",
	"arm_neon_u32x2",
	"arm_neon_u64x1",
	"arm_neon_u8x16",
	"arm_neon_u16x8",
	"arm_neon_u32x4",
	"arm_neon_u64x2",

	"x86_sse42_utility",
	"x86_m128i",

	"x86_avx2_utility",
	"x86_m256i",
}

var Funcs = [][]string{
	funcsOther[:],   // Manually authored methods.
	funcsARMNeon[:], // Automatically generated methods (intrinsics).
}

var funcsOther = [...]string{
	"u8.high_bits(n: u32[..= 7]) u8",
	"u8.low_bits(n: u32[..= 7]) u8",
	"u8.max(no_less_than: u8) u8",
	"u8.min(no_more_than: u8) u8",

	"u16.high_bits(n: u32[..= 15]) u16",
	"u16.low_bits(n: u32[..= 15]) u16",
	"u16.max(no_less_than: u16) u16",
	"u16.min(no_more_than: u16) u16",

	"u32.high_bits(n: u32[..= 31]) u32",
	"u32.low_bits(n: u32[..= 31]) u32",
	"u32.max(no_less_than: u32) u32",
	"u32.min(no_more_than: u32) u32",

	"u64.high_bits(n: u32[..= 63]) u64",
	"u64.low_bits(n: u32[..= 63]) u64",
	"u64.max(no_less_than: u64) u64",
	"u64.min(no_more_than: u64) u64",

	"bitvec256.get_u64(i: u32[..=3]) u64",

	// ---- utility

	"utility.cpu_arch_is_32_bit() bool",
	"utility.empty_io_reader() io_reader",
	"utility.empty_io_writer() io_writer",
	"utility.empty_range_ii_u32() range_ii_u32",
	"utility.empty_range_ie_u32() range_ie_u32",
	"utility.empty_range_ii_u64() range_ii_u64",
	"utility.empty_range_ie_u64() range_ie_u64",
	"utility.empty_rect_ii_u32() rect_ii_u32",
	"utility.empty_rect_ie_u32() rect_ie_u32",
	"utility.empty_slice_u8() slice u8",
	"utility.i64_divide(a: u64, b: u64[1 ..=]) u64",
	"utility.make_bitvec256(e00: u64, e01: u64, e02: u64, e03: u64) bitvec256",
	"utility.make_optional_u63(has_value: bool, value: u64[..= 0x7FFF_FFFF_FFFF_FFFF]) optional_u63",
	"utility.make_pixel_format(repr: u32) pixel_format",
	"utility.make_range_ii_u32(min_incl: u32, max_incl: u32) range_ii_u32",
	"utility.make_range_ie_u32(min_incl: u32, max_excl: u32) range_ie_u32",
	"utility.make_range_ii_u64(min_incl: u64, max_incl: u64) range_ii_u64",
	"utility.make_range_ie_u64(min_incl: u64, max_excl: u64) range_ie_u64",
	"utility.make_rect_ii_u32(" +
		"min_incl_x: u32, min_incl_y: u32, max_incl_x: u32, max_incl_y: u32) rect_ii_u32",
	"utility.make_rect_ie_u32(" +
		"min_incl_x: u32, min_incl_y: u32, max_excl_x: u32, max_excl_y: u32) rect_ie_u32",
	"utility.sign_extend_convert_u8_u32(a: u8) u32",
	"utility.sign_extend_convert_u8_u64(a: u8) u64",
	"utility.sign_extend_convert_u16_u32(a: u16) u32",
	"utility.sign_extend_convert_u16_u64(a: u16) u64",
	"utility.sign_extend_convert_u32_u64(a: u32) u64",
	"utility.sign_extend_rshift_u32(a: u32, n: u32[..= 31]) u32",
	"utility.sign_extend_rshift_u64(a: u64, n: u32[..= 63]) u64",

	// ---- ranges

	"range_ie_u32.get_min_incl() u32",
	"range_ie_u32.get_max_excl() u32",
	"range_ie_u32.intersect(r: range_ie_u32) range_ie_u32",
	"range_ie_u32.unite(r: range_ie_u32) range_ie_u32",

	"range_ii_u32.get_min_incl() u32",
	"range_ii_u32.get_max_incl() u32",
	"range_ii_u32.intersect(r: range_ii_u32) range_ii_u32",
	"range_ii_u32.unite(r: range_ii_u32) range_ii_u32",

	"range_ie_u64.get_min_incl() u64",
	"range_ie_u64.get_max_excl() u64",
	"range_ie_u64.intersect(r: range_ie_u64) range_ie_u64",
	"range_ie_u64.unite(r: range_ie_u64) range_ie_u64",

	"range_ii_u64.get_min_incl() u64",
	"range_ii_u64.get_max_incl() u64",
	"range_ii_u64.intersect(r: range_ii_u64) range_ii_u64",
	"range_ii_u64.unite(r: range_ii_u64) range_ii_u64",

	// ---- more_information

	"more_information.set!(flavor: u32, w: u32, x: u64, y: u64, z: u64)",

	// ---- status

	// TODO: should we add is_complete?
	"status.is_error() bool",
	"status.is_note() bool",
	"status.is_ok() bool",
	"status.is_suspension() bool",

	// ---- io_reader

	"io_reader.can_undo_byte() bool",
	"io_reader.peek_undo_byte() u8",
	"io_reader.undo_byte!()",

	"io_reader.read_u8?() u8",

	"io_reader.read_u8_as_u16?() u16[..= 0xFF]",
	"io_reader.read_u16be?() u16",
	"io_reader.read_u16le?() u16",

	"io_reader.read_u8_as_u32?() u32[..= 0xFF]",
	"io_reader.read_u16be_as_u32?() u32[..= 0xFFFF]",
	"io_reader.read_u16le_as_u32?() u32[..= 0xFFFF]",
	"io_reader.read_u24be_as_u32?() u32[..= 0xFF_FFFF]",
	"io_reader.read_u24le_as_u32?() u32[..= 0xFF_FFFF]",
	"io_reader.read_u32be?() u32",
	"io_reader.read_u32le?() u32",

	"io_reader.read_u8_as_u64?() u64[..= 0xFF]",
	"io_reader.read_u16be_as_u64?() u64[..= 0xFFFF]",
	"io_reader.read_u16le_as_u64?() u64[..= 0xFFFF]",
	"io_reader.read_u24be_as_u64?() u64[..= 0xFF_FFFF]",
	"io_reader.read_u24le_as_u64?() u64[..= 0xFF_FFFF]",
	"io_reader.read_u32be_as_u64?() u64[..= 0xFFFF_FFFF]",
	"io_reader.read_u32le_as_u64?() u64[..= 0xFFFF_FFFF]",
	"io_reader.read_u40be_as_u64?() u64[..= 0xFF_FFFF_FFFF]",
	"io_reader.read_u40le_as_u64?() u64[..= 0xFF_FFFF_FFFF]",
	"io_reader.read_u48be_as_u64?() u64[..= 0xFFFF_FFFF_FFFF]",
	"io_reader.read_u48le_as_u64?() u64[..= 0xFFFF_FFFF_FFFF]",
	"io_reader.read_u56be_as_u64?() u64[..= 0xFF_FFFF_FFFF_FFFF]",
	"io_reader.read_u56le_as_u64?() u64[..= 0xFF_FFFF_FFFF_FFFF]",
	"io_reader.read_u64be?() u64",
	"io_reader.read_u64le?() u64",

	// TODO: these should have an explicit pre-condition "length() >= N". For
	// now, that's implicitly checked (i.e. hard coded).
	//
	// io_reader has peek_etc methods and skip_u32_fast, not read_etc_fast,
	// because we sometimes advance the pointer by less than what's read. See
	// https://fgiesen.wordpress.com/2018/02/20/reading-bits-in-far-too-many-ways-part-2/

	"io_reader.peek_u8() u8",

	"io_reader.peek_u8_as_u16() u16[..= 0xFF]",
	"io_reader.peek_u16be() u16",
	"io_reader.peek_u16le() u16",

	"io_reader.peek_u8_as_u32() u32[..= 0xFF]",
	"io_reader.peek_u16be_as_u32() u32[..= 0xFFFF]",
	"io_reader.peek_u16le_as_u32() u32[..= 0xFFFF]",
	"io_reader.peek_u24be_as_u32() u32[..= 0xFF_FFFF]",
	"io_reader.peek_u24le_as_u32() u32[..= 0xFF_FFFF]",
	"io_reader.peek_u32be() u32",
	"io_reader.peek_u32le() u32",

	"io_reader.peek_u8_as_u64() u64[..= 0xFF]",
	"io_reader.peek_u16be_as_u64() u64[..= 0xFFFF]",
	"io_reader.peek_u16le_as_u64() u64[..= 0xFFFF]",
	"io_reader.peek_u24be_as_u64() u64[..= 0xFF_FFFF]",
	"io_reader.peek_u24le_as_u64() u64[..= 0xFF_FFFF]",
	"io_reader.peek_u32be_as_u64() u64[..= 0xFFFF_FFFF]",
	"io_reader.peek_u32le_as_u64() u64[..= 0xFFFF_FFFF]",
	"io_reader.peek_u40be_as_u64() u64[..= 0xFF_FFFF_FFFF]",
	"io_reader.peek_u40le_as_u64() u64[..= 0xFF_FFFF_FFFF]",
	"io_reader.peek_u48be_as_u64() u64[..= 0xFFFF_FFFF_FFFF]",
	"io_reader.peek_u48le_as_u64() u64[..= 0xFFFF_FFFF_FFFF]",
	"io_reader.peek_u56be_as_u64() u64[..= 0xFF_FFFF_FFFF_FFFF]",
	"io_reader.peek_u56le_as_u64() u64[..= 0xFF_FFFF_FFFF_FFFF]",
	"io_reader.peek_u64be() u64",
	"io_reader.peek_u64le() u64",

	// As an implementation restriction, we require that offset has a constant
	// value. The (0x1_0000 - sizeof(uxx)) limit is arbitrary, but high enough
	// in practice.
	"io_reader.peek_u8_at(offset: u32[..= 0xFFFF]) u8",
	"io_reader.peek_u64le_at(offset: u32[..= 0xFFF8]) u64",

	"io_reader.count_since(mark: u64) u64",
	"io_reader.is_closed() bool",
	"io_reader.length() u64",
	"io_reader.mark() u64",
	"io_reader.match7(a: u64) u32[..= 2]",
	"io_reader.position() u64",
	"io_reader.since(mark: u64) roslice u8",
	"io_reader.valid_utf_8_length(up_to: u64) u64",

	"io_reader.limited_copy_u32_to_slice!(up_to: u32, s: slice u8) u32",

	"io_reader.skip?(n: u64)",
	"io_reader.skip_u32?(n: u32)",

	// TODO: this should have explicit pre-conditions "actual <= worst_case"
	// and "worst_case <= length()". For now, that's all implicitly checked
	// (i.e. hard coded).
	"io_reader.skip_u32_fast!(actual: u32, worst_case: u32)",

	// ---- io_writer

	"io_writer.can_undo_byte() bool",
	"io_writer.peek_undo_byte() u8",
	"io_writer.undo_byte!()",

	"io_writer.write_u8?(a: u8)",
	"io_writer.write_u16be?(a: u16)",
	"io_writer.write_u16le?(a: u16)",
	"io_writer.write_u24be?(a: u32[..= 0xFF_FFFF])",
	"io_writer.write_u24le?(a: u32[..= 0xFF_FFFF])",
	"io_writer.write_u32be?(a: u32)",
	"io_writer.write_u32le?(a: u32)",
	"io_writer.write_u40be?(a: u64[..= 0xFF_FFFF_FFFF])",
	"io_writer.write_u40le?(a: u64[..= 0xFF_FFFF_FFFF])",
	"io_writer.write_u48be?(a: u64[..= 0xFFFF_FFFF_FFFF])",
	"io_writer.write_u48le?(a: u64[..= 0xFFFF_FFFF_FFFF])",
	"io_writer.write_u56be?(a: u64[..= 0xFF_FFFF_FFFF_FFFF])",
	"io_writer.write_u56le?(a: u64[..= 0xFF_FFFF_FFFF_FFFF])",
	"io_writer.write_u64be?(a: u64)",
	"io_writer.write_u64le?(a: u64)",

	// TODO: these should have an explicit pre-condition "length() >= N". For
	// now, that's implicitly checked (i.e. hard coded).
	//
	// io_writer has write_etc_fast methods, not poke_etc and skip_u32_fast,
	// because skip_u32_fast could leave uninitialized bytes in the io_buffer.
	"io_writer.write_u8_fast!(a: u8)",
	"io_writer.write_u16be_fast!(a: u16)",
	"io_writer.write_u16le_fast!(a: u16)",
	"io_writer.write_u24be_fast!(a: u32[..= 0xFF_FFFF])",
	"io_writer.write_u24le_fast!(a: u32[..= 0xFF_FFFF])",
	"io_writer.write_u32be_fast!(a: u32)",
	"io_writer.write_u32le_fast!(a: u32)",
	"io_writer.write_u40be_fast!(a: u64[..= 0xFF_FFFF_FFFF])",
	"io_writer.write_u40le_fast!(a: u64[..= 0xFF_FFFF_FFFF])",
	"io_writer.write_u48be_fast!(a: u64[..= 0xFFFF_FFFF_FFFF])",
	"io_writer.write_u48le_fast!(a: u64[..= 0xFFFF_FFFF_FFFF])",
	"io_writer.write_u56be_fast!(a: u64[..= 0xFF_FFFF_FFFF_FFFF])",
	"io_writer.write_u56le_fast!(a: u64[..= 0xFF_FFFF_FFFF_FFFF])",
	"io_writer.write_u64be_fast!(a: u64)",
	"io_writer.write_u64le_fast!(a: u64)",

	"io_writer.count_since(mark: u64) u64",
	"io_writer.history_length() u64",
	"io_writer.history_position() u64",
	"io_writer.length() u64",
	"io_writer.mark() u64",
	"io_writer.position() u64",
	"io_writer.since(mark: u64) slice u8",

	"io_writer.copy_from_slice!(s: roslice u8) u64",
	"io_writer.limited_copy_u32_from_history!(up_to: u32, distance: u32) u32",
	"io_writer.limited_copy_u32_from_reader!(up_to: u32, r: io_reader) u32",
	"io_writer.limited_copy_u32_from_slice!(up_to: u32, s: roslice u8) u32",

	// TODO: this should have explicit pre-conditions:
	//  - up_to >= 1
	//  - up_to <= this.length()
	//  - distance >= 1
	//  - distance <= this.history_length()
	// For now, that's all implicitly checked (i.e. hard coded).
	"io_writer.limited_copy_u32_from_history_fast!(up_to: u32, distance: u32) u32",

	// TODO: this should have explicit pre-conditions:
	//  - up_to >= 1
	//  - up_to <= this.length()
	//  - distance >= 1
	//  - distance <= this.history_length()
	// For now, that's all implicitly checked (i.e. hard coded).
	"io_writer.limited_copy_u32_from_history_fast_return_cusp!(up_to: u32, distance: u32) u32[..= 0xFFFF]",

	// TODO: this should have explicit pre-conditions:
	//  - up_to >= 1
	//  - (up_to + 8) <= this.length()
	//  - distance >= 8
	//  - distance <= this.history_length()
	// For now, that's all implicitly checked (i.e. hard coded).
	"io_writer.limited_copy_u32_from_history_8_byte_chunks_fast!(up_to: u32, distance: u32) u32",

	// TODO: this should have explicit pre-conditions:
	//  - up_to >= 1
	//  - (up_to + 8) <= this.length()
	//  - distance >= 8
	//  - distance <= this.history_length()
	// For now, that's all implicitly checked (i.e. hard coded).
	"io_writer.limited_copy_u32_from_history_8_byte_chunks_fast_return_cusp!(up_to: u32, distance: u32) u32[..= 0xFFFF]",

	// TODO: this should have explicit pre-conditions:
	//  - up_to >= 1
	//  - (up_to + 8) <= this.length()
	//  - distance == 1
	//  - distance <= this.history_length()
	// For now, that's all implicitly checked (i.e. hard coded).
	"io_writer.limited_copy_u32_from_history_8_byte_chunks_distance_1_fast!(up_to: u32, distance: u32) u32",

	// TODO: this should have explicit pre-conditions:
	//  - up_to >= 1
	//  - (up_to + 8) <= this.length()
	//  - distance == 1
	//  - distance <= this.history_length()
	// For now, that's all implicitly checked (i.e. hard coded).
	"io_writer.limited_copy_u32_from_history_8_byte_chunks_distance_1_fast_return_cusp!(up_to: u32, distance: u32) u32[..= 0xFFFF]",

	// ---- token_writer

	"token_writer.write_simple_token_fast!(" +
		"value_major: u32[..= 0x1F_FFFF], value_minor: u32[..= 0x1FF_FFFF]," +
		"continued: u32[..= 0x1], length: u32[..= 0xFFFF])",
	"token_writer.write_extended_token_fast!(" +
		"value_extension: u64[..= 0x3FFF_FFFF_FFFF]," +
		"continued: u32[..= 0x1], length: u32[..= 0xFFFF])",

	"token_writer.length() u64",

	// ---- frame_config

	"frame_config.blend() u8",
	"frame_config.disposal() u8",
	"frame_config.duration() u64[..= 0x7FFF_FFFF_FFFF_FFFF]",
	"frame_config.index() u64",
	"frame_config.io_position() u64",

	"frame_config.set!(bounds: rect_ie_u32, duration: u64[..= 0x7FFF_FFFF_FFFF_FFFF]," +
		"index: u64, io_position: u64, disposal: u8, opaque_within_bounds: bool," +
		"overwrite_instead_of_blend: bool, background_color: u32)",

	// ---- image_config

	"image_config.set!(pixfmt: u32, pixsub: u32, width: u32[..= 0xFF_FFFF], height: u32[..= 0xFF_FFFF]," +
		"first_frame_io_position: u64, first_frame_is_opaque: bool)",

	// ---- pixel_buffer

	"pixel_buffer.palette() slice u8",
	"pixel_buffer.palette_or_else(fallback: slice u8) slice u8",
	"pixel_buffer.pixel_format() pixel_format",
	"pixel_buffer.plane(p: u32[..= 3]) table u8",

	// ---- pixel_format

	"pixel_format.bits_per_pixel() u32[..= 256]",
	"pixel_format.default_background_color() u32",

	// ---- pixel_swizzler

	"pixel_swizzler.prepare!(" +
		"dst_pixfmt: pixel_format, dst_palette: slice u8," +
		"src_pixfmt: pixel_format, src_palette: roslice u8, blend: pixel_blend) status",

	"pixel_swizzler.limited_swizzle_u32_interleaved_from_reader!(" +
		"up_to_num_pixels: u32, dst: slice u8, dst_palette: slice u8, src: io_reader) u64",
	"pixel_swizzler.swizzle_interleaved_from_reader!(" +
		"dst: slice u8, dst_palette: slice u8, src: io_reader) u64",
	"pixel_swizzler.swizzle_interleaved_from_slice!(" +
		"dst: slice u8, dst_palette: slice u8, src: roslice u8) u64",
	"pixel_swizzler.swizzle_interleaved_transparent_black!(" +
		"dst: slice u8, dst_palette: slice u8, num_pixels: u64) u64",
	"pixel_swizzler.swizzle_ycck!(" +
		"dst: ptr pixel_buffer," +
		"dst_palette: slice u8," +
		"x_min_incl: u32[..= 0xFFFF]," +
		"x_max_excl: u32[..= 0xFFFF]," +
		"y_min_incl: u32[..= 0xFFFF]," +
		"y_max_excl: u32[..= 0xFFFF]," +
		"src0: slice u8," +
		"src1: slice u8," +
		"src2: slice u8," +
		"src3: slice u8," +
		"width0: u32[..= 0x4_0000]," +
		"width1: u32[..= 0x4_0000]," +
		"width2: u32[..= 0x4_0000]," +
		"width3: u32[..= 0x4_0000]," +
		"height0: u32[..= 0x4_0000]," +
		"height1: u32[..= 0x4_0000]," +
		"height2: u32[..= 0x4_0000]," +
		"height3: u32[..= 0x4_0000]," +
		"stride0: u32," +
		"stride1: u32," +
		"stride2: u32," +
		"stride3: u32," +
		"h0: u8[..= 4]," +
		"h1: u8[..= 4]," +
		"h2: u8[..= 4]," +
		"h3: u8[..= 4]," +
		"v0: u8[..= 4]," +
		"v1: u8[..= 4]," +
		"v2: u8[..= 4]," +
		"v3: u8[..= 4]," +
		"is_rgb_or_cmyk: bool," +
		"triangle_filter_for_2to1: bool," +
		"scratch_buffer_2k: slice u8) status",

	// ---- arm_crc32_utility

	"arm_crc32_utility.make_u32(a: u32) arm_crc32_u32",

	// ---- arm_crc32_u32

	"arm_crc32_u32.crc32b(b: u8) arm_crc32_u32",
	"arm_crc32_u32.crc32h(b: u16) arm_crc32_u32",
	"arm_crc32_u32.crc32w(b: u32) arm_crc32_u32",
	"arm_crc32_u32.crc32d(b: u64) arm_crc32_u32",
	"arm_crc32_u32.value() u32",

	// ---- arm_neon_utility

	"arm_neon_utility.make_u8x8_multiple(" +
		"a00: u8, a01: u8, a02: u8, a03: u8," +
		"a04: u8, a05: u8, a06: u8, a07: u8) arm_neon_u8x8",
	"arm_neon_utility.make_u16x4_multiple(" +
		"a00: u16, a01: u16, a02: u16, a03: u16) arm_neon_u16x4",
	"arm_neon_utility.make_u32x2_multiple(" +
		"a00: u32, a01: u32) arm_neon_u32x2",
	"arm_neon_utility.make_u64x1_multiple(" +
		"a00: u64) arm_neon_u64x1",

	"arm_neon_utility.make_u8x16_multiple(" +
		"a00: u8, a01: u8, a02: u8, a03: u8," +
		"a04: u8, a05: u8, a06: u8, a07: u8," +
		"a08: u8, a09: u8, a10: u8, a11: u8," +
		"a12: u8, a13: u8, a14: u8, a15: u8) arm_neon_u8x16",
	"arm_neon_utility.make_u16x8_multiple(" +
		"a00: u16, a01: u16, a02: u16, a03: u16," +
		"a04: u16, a05: u16, a06: u16, a07: u16) arm_neon_u16x8",
	"arm_neon_utility.make_u32x4_multiple(" +
		"a00: u32, a01: u32, a02: u32, a03: u32) arm_neon_u32x4",
	"arm_neon_utility.make_u64x2_multiple(" +
		"a00: u64, a01: u64) arm_neon_u64x2",

	"arm_neon_utility.make_u8x8_repeat(a: u8) arm_neon_u8x8",
	"arm_neon_utility.make_u16x4_repeat(a: u16) arm_neon_u16x4",
	"arm_neon_utility.make_u32x2_repeat(a: u32) arm_neon_u32x2",
	"arm_neon_utility.make_u64x1_repeat(a: u64) arm_neon_u64x1",

	"arm_neon_utility.make_u8x16_repeat(a: u8) arm_neon_u8x16",
	"arm_neon_utility.make_u16x8_repeat(a: u16) arm_neon_u16x8",
	"arm_neon_utility.make_u32x4_repeat(a: u32) arm_neon_u32x4",
	"arm_neon_utility.make_u64x2_repeat(a: u64) arm_neon_u64x2",

	"arm_neon_utility.make_u8x8_slice64(a: roslice base.u8) arm_neon_u8x8",
	"arm_neon_utility.make_u8x16_slice128(a: roslice base.u8) arm_neon_u8x16",

	// ---- arm_neon_uAxB.as_uCxD

	"arm_neon_u8x8.as_u16x4() arm_neon_u16x4",
	"arm_neon_u8x8.as_u32x2() arm_neon_u32x2",
	"arm_neon_u8x8.as_u64x1() arm_neon_u64x1",

	"arm_neon_u16x4.as_u8x8() arm_neon_u8x8",
	"arm_neon_u32x2.as_u8x8() arm_neon_u8x8",
	"arm_neon_u64x1.as_u8x8() arm_neon_u8x8",

	"arm_neon_u16x8.as_u16x8() arm_neon_u16x8",
	"arm_neon_u16x8.as_u32x4() arm_neon_u32x4",
	"arm_neon_u16x8.as_u64x2() arm_neon_u64x2",

	"arm_neon_u16x8.as_u8x16() arm_neon_u8x16",
	"arm_neon_u32x4.as_u8x16() arm_neon_u8x16",
	"arm_neon_u64x2.as_u8x16() arm_neon_u8x16",

	// ---- x86_sse42_utility

	"x86_sse42_utility.make_m128i_multiple_u8(" +
		"a00: u8, a01: u8, a02: u8, a03: u8," +
		"a04: u8, a05: u8, a06: u8, a07: u8," +
		"a08: u8, a09: u8, a10: u8, a11: u8," +
		"a12: u8, a13: u8, a14: u8, a15: u8) x86_m128i",
	"x86_sse42_utility.make_m128i_multiple_u16(" +
		"a00: u16, a01: u16, a02: u16, a03: u16," +
		"a04: u16, a05: u16, a06: u16, a07: u16) x86_m128i",
	"x86_sse42_utility.make_m128i_multiple_u32(" +
		"a00: u32, a01: u32, a02: u32, a03: u32) x86_m128i",
	"x86_sse42_utility.make_m128i_multiple_u64(" +
		"a00: u64, a01: u64) x86_m128i",

	"x86_sse42_utility.make_m128i_repeat_u8(a: u8) x86_m128i",
	"x86_sse42_utility.make_m128i_repeat_u16(a: u16) x86_m128i",
	"x86_sse42_utility.make_m128i_repeat_u32(a: u32) x86_m128i",
	"x86_sse42_utility.make_m128i_repeat_u64(a: u64) x86_m128i",

	"x86_sse42_utility.make_m128i_single_u32(a: u32) x86_m128i",
	"x86_sse42_utility.make_m128i_single_u64(a: u64) x86_m128i",

	"x86_sse42_utility.make_m128i_slice128(a: roslice base.u8) x86_m128i",
	"x86_sse42_utility.make_m128i_slice_u16lex8(a: roslice base.u16) x86_m128i",

	"x86_sse42_utility.make_m128i_zeroes() x86_m128i",

	"x86_sse42_utility.make_u64_slice_u16lex4(a: roslice base.u16) u64",

	// ---- x86_m128i

	"x86_m128i.store_slice64!(a: slice base.u8)",
	"x86_m128i.store_slice128!(a: slice base.u8)",

	"x86_m128i.truncate_u32() u32",
	"x86_m128i.truncate_u64() u64",

	// TODO: generate these methods automatically?

	"x86_m128i._mm_abs_epi16() x86_m128i",
	"x86_m128i._mm_add_epi16(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_add_epi32(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_add_epi64(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_add_epi8(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_and_si128(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_avg_epu16(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_avg_epu8(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_blend_epi16(b: x86_m128i, imm8: u32) x86_m128i",
	"x86_m128i._mm_blendv_epi8(b: x86_m128i, mask: x86_m128i) x86_m128i",
	"x86_m128i._mm_clmulepi64_si128(b: x86_m128i, imm8: u32) x86_m128i",
	"x86_m128i._mm_cmpeq_epi16(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_cmpeq_epi32(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_cmpeq_epi64(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_cmpeq_epi8(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_extract_epi16(imm8: u32) u16",
	"x86_m128i._mm_extract_epi32(imm8: u32) u32",
	"x86_m128i._mm_extract_epi64(imm8: u32) u64",
	"x86_m128i._mm_extract_epi8(imm8: u32) u8",
	"x86_m128i._mm_madd_epi16(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_maddubs_epi16(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_max_epi16(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_max_epi32(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_max_epi8(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_max_epu16(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_max_epu32(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_max_epu8(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_min_epi16(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_min_epi32(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_min_epi8(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_min_epu16(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_min_epu32(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_min_epu8(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_mullo_epi32(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_or_si128(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_packs_epi16(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_packus_epi16(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_sad_epu8(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_shuffle_epi32(imm8: u32) x86_m128i",
	"x86_m128i._mm_shuffle_epi8(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_slli_epi16(imm8: u32) x86_m128i",
	"x86_m128i._mm_slli_epi32(imm8: u32) x86_m128i",
	"x86_m128i._mm_slli_epi64(imm8: u32) x86_m128i",
	"x86_m128i._mm_slli_si128(imm8: u32) x86_m128i",
	"x86_m128i._mm_srli_epi16(imm8: u32) x86_m128i",
	"x86_m128i._mm_srli_epi32(imm8: u32) x86_m128i",
	"x86_m128i._mm_srli_epi64(imm8: u32) x86_m128i",
	"x86_m128i._mm_srli_si128(imm8: u32) x86_m128i",
	"x86_m128i._mm_sub_epi16(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_sub_epi32(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_sub_epi64(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_sub_epi8(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_unpackhi_epi16(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_unpackhi_epi32(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_unpackhi_epi64(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_unpackhi_epi8(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_unpacklo_epi16(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_unpacklo_epi32(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_unpacklo_epi64(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_unpacklo_epi8(b: x86_m128i) x86_m128i",
	"x86_m128i._mm_xor_si128(b: x86_m128i) x86_m128i",

	// ---- x86_avx2_utility

	"x86_avx2_utility.make_m256i_multiple_u8(" +
		"a00: u8, a01: u8, a02: u8, a03: u8," +
		"a04: u8, a05: u8, a06: u8, a07: u8," +
		"a08: u8, a09: u8, a10: u8, a11: u8," +
		"a12: u8, a13: u8, a14: u8, a15: u8," +
		"a16: u8, a17: u8, a18: u8, a19: u8," +
		"a20: u8, a21: u8, a22: u8, a23: u8," +
		"a24: u8, a25: u8, a26: u8, a27: u8," +
		"a28: u8, a29: u8, a30: u8, a31: u8) x86_m256i",
	"x86_avx2_utility.make_m256i_multiple_u16(" +
		"a00: u16, a01: u16, a02: u16, a03: u16," +
		"a04: u16, a05: u16, a06: u16, a07: u16," +
		"a08: u16, a09: u16, a10: u16, a11: u16," +
		"a12: u16, a13: u16, a14: u16, a15: u16) x86_m256i",
	"x86_avx2_utility.make_m256i_multiple_u32(" +
		"a00: u32, a01: u32, a02: u32, a03: u32," +
		"a04: u32, a05: u32, a06: u32, a07: u32) x86_m256i",
	"x86_avx2_utility.make_m256i_multiple_u64(" +
		"a00: u64, a01: u64, a02: u64, a03: u64) x86_m256i",

	"x86_avx2_utility.make_m256i_repeat_u8(a: u8) x86_m256i",
	"x86_avx2_utility.make_m256i_repeat_u16(a: u16) x86_m256i",
	"x86_avx2_utility.make_m256i_repeat_u32(a: u32) x86_m256i",
	"x86_avx2_utility.make_m256i_repeat_u64(a: u64) x86_m256i",

	"x86_avx2_utility.make_m256i_slice256(a: roslice base.u8) x86_m256i",
	"x86_avx2_utility.make_m256i_slice_u16lex16(a: roslice base.u16) x86_m256i",

	"x86_avx2_utility.make_m256i_zeroes() x86_m256i",

	"x86_avx2_utility.make_u64_slice_u16lex4(a: roslice base.u16) u64",

	// ---- x86_m256i

	"x86_m256i.store_slice64!(a: slice base.u8)",
	"x86_m256i.store_slice128!(a: slice base.u8)",
	"x86_m256i.store_slice256!(a: slice base.u8)",

	// TODO: generate these methods automatically?

	"x86_m256i._mm256_add_epi16(b: x86_m256i) x86_m256i",
	"x86_m256i._mm256_add_epi32(b: x86_m256i) x86_m256i",
	"x86_m256i._mm256_add_epi64(b: x86_m256i) x86_m256i",
	"x86_m256i._mm256_add_epi8(b: x86_m256i) x86_m256i",
	"x86_m256i._mm256_and_si256(b: x86_m256i) x86_m256i",
	"x86_m256i._mm256_castsi256_si128() x86_m128i",
	"x86_m256i._mm256_extract_epi64(index: u32) u64",
	"x86_m256i._mm256_extracti128_si256(imm8: u32) x86_m128i",
	"x86_m256i._mm256_inserti128_si256(b: x86_m128i, imm8: u32) x86_m256i",
	"x86_m256i._mm256_madd_epi16(b: x86_m256i) x86_m256i",
	"x86_m256i._mm256_maddubs_epi16(b: x86_m256i) x86_m256i",
	"x86_m256i._mm256_mullo_epi16(b: x86_m256i) x86_m256i",
	"x86_m256i._mm256_or_si256(b: x86_m256i) x86_m256i",
	"x86_m256i._mm256_packs_epi16(b: x86_m256i) x86_m256i",
	"x86_m256i._mm256_packs_epi32(b: x86_m256i) x86_m256i",
	"x86_m256i._mm256_permute2x128_si256(b: x86_m256i, imm8: u32) x86_m256i",
	"x86_m256i._mm256_permute4x64_epi64(imm8: u32) x86_m256i",
	"x86_m256i._mm256_sad_epu8(b: x86_m256i) x86_m256i",
	"x86_m256i._mm256_shuffle_epi32(imm8: u32) x86_m256i",
	"x86_m256i._mm256_sign_epi16(b: x86_m256i) x86_m256i",
	"x86_m256i._mm256_slli_epi16(imm8: u32) x86_m256i",
	"x86_m256i._mm256_slli_epi32(imm8: u32) x86_m256i",
	"x86_m256i._mm256_slli_epi64(imm8: u32) x86_m256i",
	"x86_m256i._mm256_slli_si256(imm8: u32) x86_m256i",
	"x86_m256i._mm256_srai_epi16(imm8: u32) x86_m256i",
	"x86_m256i._mm256_srai_epi32(imm8: u32) x86_m256i",
	"x86_m256i._mm256_srai_epi64(imm8: u32) x86_m256i",
	"x86_m256i._mm256_srai_si256(imm8: u32) x86_m256i",
	"x86_m256i._mm256_srli_epi16(imm8: u32) x86_m256i",
	"x86_m256i._mm256_srli_epi32(imm8: u32) x86_m256i",
	"x86_m256i._mm256_srli_epi64(imm8: u32) x86_m256i",
	"x86_m256i._mm256_srli_si256(imm8: u32) x86_m256i",
	"x86_m256i._mm256_sub_epi16(b: x86_m256i) x86_m256i",
	"x86_m256i._mm256_sub_epi32(b: x86_m256i) x86_m256i",
	"x86_m256i._mm256_sub_epi64(b: x86_m256i) x86_m256i",
	"x86_m256i._mm256_sub_epi8(b: x86_m256i) x86_m256i",
	"x86_m256i._mm256_testz_si256(b: x86_m256i) u32",
	"x86_m256i._mm256_unpackhi_epi16(b: x86_m256i) x86_m256i",
	"x86_m256i._mm256_unpackhi_epi32(b: x86_m256i) x86_m256i",
	"x86_m256i._mm256_unpackhi_epi64(b: x86_m256i) x86_m256i",
	"x86_m256i._mm256_unpackhi_epi8(b: x86_m256i) x86_m256i",
	"x86_m256i._mm256_unpacklo_epi16(b: x86_m256i) x86_m256i",
	"x86_m256i._mm256_unpacklo_epi32(b: x86_m256i) x86_m256i",
	"x86_m256i._mm256_unpacklo_epi64(b: x86_m256i) x86_m256i",
	"x86_m256i._mm256_unpacklo_epi8(b: x86_m256i) x86_m256i",
	"x86_m256i._mm256_xor_si256(b: x86_m256i) x86_m256i",
}

var Interfaces = []string{
	"hasher_u32",
	"hasher_u64",
	"hasher_bitvec256",
	"image_decoder",
	"io_transformer",
	"token_decoder",
}

var InterfacesMap = map[string]bool{
	"hasher_u32":       true,
	"hasher_u64":       true,
	"hasher_bitvec256": true,
	"image_decoder":    true,
	"io_transformer":   true,
	"token_decoder":    true,
}

var InterfaceFuncs = []string{
	// ---- hasher_u32

	"hasher_u32.checksum_u32() u32",
	"hasher_u32.get_quirk(key: u32) u64",
	"hasher_u32.set_quirk!(key: u32, value: u64) status",
	"hasher_u32.update!(x: roslice u8)",
	"hasher_u32.update_u32!(x: roslice u8) u32",

	// ---- hasher_u64

	"hasher_u64.checksum_u64() u64",
	"hasher_u64.get_quirk(key: u32) u64",
	"hasher_u64.set_quirk!(key: u32, value: u64) status",
	"hasher_u64.update!(x: roslice u8)",
	"hasher_u64.update_u64!(x: roslice u8) u64",

	// ---- hasher_bitvec256

	"hasher_bitvec256.checksum_bitvec256() bitvec256",
	"hasher_bitvec256.get_quirk(key: u32) u64",
	"hasher_bitvec256.set_quirk!(key: u32, value: u64) status",
	"hasher_bitvec256.update!(x: roslice u8)",
	"hasher_bitvec256.update_bitvec256!(x: roslice u8) bitvec256",

	// ---- image_decoder

	"image_decoder.decode_frame?(" +
		"dst: ptr pixel_buffer, src: io_reader, blend: pixel_blend," +
		"workbuf: slice u8, opts: nptr decode_frame_options)",
	"image_decoder.decode_frame_config?(dst: nptr frame_config, src: io_reader)",
	"image_decoder.decode_image_config?(dst: nptr image_config, src: io_reader)",
	"image_decoder.frame_dirty_rect() rect_ie_u32",
	"image_decoder.get_quirk(key: u32) u64",
	"image_decoder.num_animation_loops() u32",
	"image_decoder.num_decoded_frame_configs() u64",
	"image_decoder.num_decoded_frames() u64",
	"image_decoder.restart_frame!(index: u64, io_position: u64) status",
	"image_decoder.set_quirk!(key: u32, value: u64) status",
	"image_decoder.set_report_metadata!(fourcc: u32, report: bool)",
	"image_decoder.tell_me_more?(dst: io_writer, minfo: nptr more_information, src: io_reader)",
	"image_decoder.workbuf_len() range_ii_u64",

	// ---- io_transformer

	// TODO: "io_transformer.add_history!(hist: slice u8)"? Should it take a workbuf arg?
	"io_transformer.dst_history_retain_length() optional_u63",
	"io_transformer.get_quirk(key: u32) u64",
	"io_transformer.set_quirk!(key: u32, value: u64) status",
	"io_transformer.transform_io?(dst: io_writer, src: io_reader, workbuf: slice u8)",
	"io_transformer.workbuf_len() range_ii_u64",

	// ---- token_decoder

	"token_decoder.decode_tokens?(dst: token_writer, src: io_reader, workbuf: slice u8)",
	"token_decoder.get_quirk(key: u32) u64",
	"token_decoder.set_quirk!(key: u32, value: u64) status",
	"token_decoder.workbuf_len() range_ii_u64",
}

// The "T1" and "T2" types here are placeholders for generic "slice T" or
// "table T" types. After tokenizing (but before parsing) these XxxFunc strings
// (e.g. in the lang/check package), replace "T1" and "T2" with "†" or "‡"
// daggers, to avoid collision with a user-defined "T1" or "T2" type.
//
// Ditto for "R1" / "ρ", for a read-only flavor of "T1" / "†".

const (
	genericOldName1   = t.IDT1
	genericOldName2   = t.IDT2
	genericOldNameRo1 = t.IDR1
	genericNewName1   = t.IDDagger1
	genericNewName2   = t.IDDagger2
	genericNewNameRo1 = t.IDRho1
)

var SliceFuncs = []string{
	"GENERIC T1.copy_from_slice!(s: R1) u64",
	"GENERIC T1.length() u64",
	"GENERIC T1.prefix(up_to: u64) T1",
	"GENERIC T1.uintptr_low_12_bits() u32[..= 4095]",
	"GENERIC T1.suffix(up_to: u64) T1",

	// The bulk_etc methods are further restricted to those T1 slices whose
	// elements are bulk-numeric types: numerics (e.g. base.u32), arrays of
	// numerics, arrays of arrays of numerics, etc.
	"GENERIC T1.bulk_load_host_endian!(src: slice u8)",
	"GENERIC T1.bulk_memset!(byte_value: u8)",
	"GENERIC T1.bulk_save_host_endian!(dst: slice u8)",
}

var SliceU8Funcs = []string{
	"GENERIC T1.peek_u8() u8",
	"GENERIC T1.peek_u16be() u16",
	"GENERIC T1.peek_u16le() u16",
	"GENERIC T1.peek_u24be_as_u32() u32",
	"GENERIC T1.peek_u24le_as_u32() u32",
	"GENERIC T1.peek_u32be() u32",
	"GENERIC T1.peek_u32le() u32",
	"GENERIC T1.peek_u40be_as_u64() u64",
	"GENERIC T1.peek_u40le_as_u64() u64",
	"GENERIC T1.peek_u48be_as_u64() u64",
	"GENERIC T1.peek_u48le_as_u64() u64",
	"GENERIC T1.peek_u56be_as_u64() u64",
	"GENERIC T1.peek_u56le_as_u64() u64",
	"GENERIC T1.peek_u64be() u64",
	"GENERIC T1.peek_u64le() u64",

	"GENERIC T1.poke_u8!(a: u8)",
	"GENERIC T1.poke_u16be!(a: u16)",
	"GENERIC T1.poke_u16le!(a: u16)",
	"GENERIC T1.poke_u24be!(a: u32)",
	"GENERIC T1.poke_u24le!(a: u32)",
	"GENERIC T1.poke_u32be!(a: u32)",
	"GENERIC T1.poke_u32le!(a: u32)",
	"GENERIC T1.poke_u40be!(a: u64)",
	"GENERIC T1.poke_u40le!(a: u64)",
	"GENERIC T1.poke_u48be!(a: u64)",
	"GENERIC T1.poke_u48le!(a: u64)",
	"GENERIC T1.poke_u56be!(a: u64)",
	"GENERIC T1.poke_u56le!(a: u64)",
	"GENERIC T1.poke_u64be!(a: u64)",
	"GENERIC T1.poke_u64le!(a: u64)",
}

var TableFuncs = []string{
	"GENERIC T2.height() u64",
	"GENERIC T2.stride() u64",
	"GENERIC T2.width() u64",

	"GENERIC T2.row_u32(y: u32) T1",
	"GENERIC T2.subtable(" +
		"min_incl_x: u64, min_incl_y: u64, max_incl_x: u64, max_incl_y: u64) T2",
}

func ParseFuncs(tm *t.Map, ss []string, callback func(*a.Func) error) error {
	if len(ss) == 0 {
		return nil
	}
	const GENERIC = "GENERIC "
	generic := strings.HasPrefix(ss[0], GENERIC)

	buf := []byte(nil)
	for _, s := range ss {
		if generic && (len(s) >= len(GENERIC)) {
			s = s[len(GENERIC):]
		}
		buf = append(buf, "pub func "...)
		buf = append(buf, s...)
		buf = append(buf, "{}\n"...)
	}

	const filename = "builtin.wuffs"
	tokens, _, err := t.Tokenize(tm, filename, buf)
	if err != nil {
		return fmt.Errorf("could not tokenize built-in funcs: %v", err)
	}

	if generic {
		for i := range tokens {
			tok := &tokens[i]
			if id := tok.ID; id == genericOldName1 {
				tok.ID = genericNewName1
			} else if id == genericOldName2 {
				tok.ID = genericNewName2
			} else if id == genericOldNameRo1 {
				tok.ID = genericNewNameRo1
			}
		}
	}

	file, err := parse.Parse(tm, filename, tokens, &parse.Options{
		AllowBuiltInNames: true,
	})
	if err != nil {
		return fmt.Errorf("could not parse built-in funcs: %v", err)
	}

	for _, tld := range file.TopLevelDecls() {
		if tld.Kind() != a.KFunc {
			continue
		}
		f := tld.AsFunc()
		f.AsNode().AsRaw().SetPackage(tm, t.IDBase)
		if callback != nil {
			if err := callback(f); err != nil {
				return err
			}
		}
	}
	return nil
}
