%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%  This file is part of VivoMind Prolog Unicode Resources
%  SPDX-License-Identifier: CC0-1.0
%
%  VivoMind Prolog Unicode Resources is free software distributed using the
%  Creative Commons CC0 1.0 Universal (CC0 1.0) - Public Domain Dedication
%  license
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%  Last modified: March 15, 2012
%
%  Original Unicode file header comments follow

/*
# DerivedDecompositionType-6.1.0.txt
# Date: 2011-07-25, 00:54:13 GMT [MD]
#
# Unicode Character Database
# Copyright (c) 1991-2011 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see http://www.unicode.org/reports/tr44/

# ================================================

# Decomposition_Type (from UnicodeData.txt, field 5: see UAX #44: http://www.unicode.org/reports/tr44/)

#  All code points not explicitly listed for Decomposition_Type
#  have the value None.

# @missing: 0000..10FFFF; None
*/

unicode_wide(CodePoint) :-
	(	var(CodePoint) ->
		% generate code point pairs
		unicode_wide(CodePointStart, CodePointEnd),
		between(CodePointStart, CodePointEnd, CodePoint)
	;	% try first-argument indexing first
		unicode_wide(CodePoint, _) ->
		true
	;	% look for a code point range that includes the given code point
		unicode_wide(CodePointStart, CodePointEnd),
		between(CodePointStart, CodePointEnd, CodePoint) ->
		true
	).

% ================================================

unicode_wide(0x3000, 0x3000).	% Wide Zs       IDEOGRAPHIC SPACE
unicode_wide(0xFF01, 0xFF03).	% Wide Po   [3] FULLWIDTH EXCLAMATION MARK..FULLWIDTH NUMBER SIGN
unicode_wide(0xFF04, 0xFF04).	% Wide Sc       FULLWIDTH DOLLAR SIGN
unicode_wide(0xFF05, 0xFF07).	% Wide Po   [3] FULLWIDTH PERCENT SIGN..FULLWIDTH APOSTROPHE
unicode_wide(0xFF08, 0xFF08).	% Wide Ps       FULLWIDTH LEFT PARENTHESIS
unicode_wide(0xFF09, 0xFF09).	% Wide Pe       FULLWIDTH RIGHT PARENTHESIS
unicode_wide(0xFF0A, 0xFF0A).	% Wide Po       FULLWIDTH ASTERISK
unicode_wide(0xFF0B, 0xFF0B).	% Wide Sm       FULLWIDTH PLUS SIGN
unicode_wide(0xFF0C, 0xFF0C).	% Wide Po       FULLWIDTH COMMA
unicode_wide(0xFF0D, 0xFF0D).	% Wide Pd       FULLWIDTH HYPHEN-MINUS
unicode_wide(0xFF0E, 0xFF0F).	% Wide Po   [2] FULLWIDTH FULL STOP..FULLWIDTH SOLIDUS
unicode_wide(0xFF10, 0xFF19).	% Wide Nd  [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
unicode_wide(0xFF1A, 0xFF1B).	% Wide Po   [2] FULLWIDTH COLON..FULLWIDTH SEMICOLON
unicode_wide(0xFF1C, 0xFF1E).	% Wide Sm   [3] FULLWIDTH LESS-THAN SIGN..FULLWIDTH GREATER-THAN SIGN
unicode_wide(0xFF1F, 0xFF20).	% Wide Po   [2] FULLWIDTH QUESTION MARK..FULLWIDTH COMMERCIAL AT
unicode_wide(0xFF21, 0xFF3A).	% Wide L&  [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
unicode_wide(0xFF3B, 0xFF3B).	% Wide Ps       FULLWIDTH LEFT SQUARE BRACKET
unicode_wide(0xFF3C, 0xFF3C).	% Wide Po       FULLWIDTH REVERSE SOLIDUS
unicode_wide(0xFF3D, 0xFF3D).	% Wide Pe       FULLWIDTH RIGHT SQUARE BRACKET
unicode_wide(0xFF3E, 0xFF3E).	% Wide Sk       FULLWIDTH CIRCUMFLEX ACCENT
unicode_wide(0xFF3F, 0xFF3F).	% Wide Pc       FULLWIDTH LOW LINE
unicode_wide(0xFF40, 0xFF40).	% Wide Sk       FULLWIDTH GRAVE ACCENT
unicode_wide(0xFF41, 0xFF5A).	% Wide L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
unicode_wide(0xFF5B, 0xFF5B).	% Wide Ps       FULLWIDTH LEFT CURLY BRACKET
unicode_wide(0xFF5C, 0xFF5C).	% Wide Sm       FULLWIDTH VERTICAL LINE
unicode_wide(0xFF5D, 0xFF5D).	% Wide Pe       FULLWIDTH RIGHT CURLY BRACKET
unicode_wide(0xFF5E, 0xFF5E).	% Wide Sm       FULLWIDTH TILDE
unicode_wide(0xFF5F, 0xFF5F).	% Wide Ps       FULLWIDTH LEFT WHITE PARENTHESIS
unicode_wide(0xFF60, 0xFF60).	% Wide Pe       FULLWIDTH RIGHT WHITE PARENTHESIS
unicode_wide(0xFFE0, 0xFFE1).	% Wide Sc   [2] FULLWIDTH CENT SIGN..FULLWIDTH POUND SIGN
unicode_wide(0xFFE2, 0xFFE2).	% Wide Sm       FULLWIDTH NOT SIGN
unicode_wide(0xFFE3, 0xFFE3).	% Wide Sk       FULLWIDTH MACRON
unicode_wide(0xFFE4, 0xFFE4).	% Wide So       FULLWIDTH BROKEN BAR
unicode_wide(0xFFE5, 0xFFE6).	% Wide Sc   [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN

% Total code points: 104
