%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%  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: September 30, 2012
%
%  Original Unicode file header comments follow

/*
# ScriptExtensions-6.2.0.txt
# Date: 2012-08-13, 20:52:17 GMT [MD]
#
# Unicode Character Database
# Copyright (c) 1991-2012 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see http://www.unicode.org/reports/tr44/
# The Script_Extensions property indicates which characters are commonly used
# with more than one script, but with a limited number of scripts.
# For each code point, there is one or more property values.  Each such value is a Script property value.
# For more information, see:
#   UAX #24: http://www.unicode.org/reports/tr24/ and
#   UAX #44: http://www.unicode.org/reports/tr44/
#
#  All code points not explicitly listed for Script_Extensions
#  have as their value the corresponding Script property value
#
# @missing: 0000..10FFFF; <script>
*/

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

% Property:	Script_Extensions

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

unicode_script_extension(CodePoint, Extension) :-
	(	var(CodePoint) ->
		% generate code point pairs
		unicode_script_extension(CodePointStart, CodePointEnd, Extension),
		between(CodePointStart, CodePointEnd, CodePoint)
	;	% try first-argument indexing first
		unicode_script_extension(CodePoint, _, Extension) ->
		true
	;	% look for a code point range that includes the given code point
		unicode_script_extension(CodePointStart, CodePointEnd, Extension),
		between(CodePointStart, CodePointEnd, CodePoint) ->
		true
	;	% missing code point; see original comment above
		unicode_script_extension(CodePoint, Script),
		Extension = [Script]
	).

% Script_Extensions=Arab Syrc

unicode_script_extension(0x064B, 0x0655, ['Arab', 'Syrc']).	% Mn  [11] ARABIC FATHATAN..ARABIC HAMZA BELOW
unicode_script_extension(0x0670, 0x0670, ['Arab', 'Syrc']).	% Mn       ARABIC LETTER SUPERSCRIPT ALEF

% Total code points: 12

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

% Script_Extensions=Arab Thaa

unicode_script_extension(0x0660, 0x0669, ['Arab', 'Thaa']).	% Nd  [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
unicode_script_extension(0xFDF2, 0xFDF2, ['Arab', 'Thaa']).	% Lo       ARABIC LIGATURE ALLAH ISOLATED FORM
unicode_script_extension(0xFDFD, 0xFDFD, ['Arab', 'Thaa']).	% So       ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM

% Total code points: 12

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

% Script_Extensions=Armn Geor

unicode_script_extension(0x0589, 0x0589, ['Armn', 'Geor']).	% Po       ARMENIAN FULL STOP

% Total code points: 1

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

% Script_Extensions=Bopo Hani

unicode_script_extension(0x302A, 0x302D, ['Bopo', 'Hani']).	% Mn   [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK

% Total code points: 4

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

% Script_Extensions=Cprt Linb

unicode_script_extension(0x10100, 0x10102, ['Cprt', 'Linb']).	% Po   [3] AEGEAN WORD SEPARATOR LINE..AEGEAN CHECK MARK
unicode_script_extension(0x10107, 0x10133, ['Cprt', 'Linb']).	% No  [45] AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND
unicode_script_extension(0x10137, 0x1013F, ['Cprt', 'Linb']).	% So   [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT

% Total code points: 57

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

% Script_Extensions=Hira Kana

unicode_script_extension(0x3031, 0x3035, ['Hira', 'Kana']).	% Lm   [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF
unicode_script_extension(0x3099, 0x309A, ['Hira', 'Kana']).	% Mn   [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
unicode_script_extension(0x309B, 0x309C, ['Hira', 'Kana']).	% Sk   [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
unicode_script_extension(0x30A0, 0x30A0, ['Hira', 'Kana']).	% Pd       KATAKANA-HIRAGANA DOUBLE HYPHEN
unicode_script_extension(0x30FC, 0x30FC, ['Hira', 'Kana']).	% Lm       KATAKANA-HIRAGANA PROLONGED SOUND MARK
unicode_script_extension(0xFF70, 0xFF70, ['Hira', 'Kana']).	% Lm       HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
unicode_script_extension(0xFF9E, 0xFF9F, ['Hira', 'Kana']).	% Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK

% Total code points: 14

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

% Script_Extensions=Mong Phag

unicode_script_extension(0x1802, 0x1803, ['Mong', 'Phag']).	% Po   [2] MONGOLIAN COMMA..MONGOLIAN FULL STOP
unicode_script_extension(0x1805, 0x1805, ['Mong', 'Phag']).	% Po       MONGOLIAN FOUR DOTS

% Total code points: 3

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

% Script_Extensions=Arab Mand Syrc

unicode_script_extension(0x0640, 0x0640, ['Arab', 'Mand', 'Syrc']).	% Lm       ARABIC TATWEEL

% Total code points: 1

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

% Script_Extensions=Arab Syrc Thaa

unicode_script_extension(0x060C, 0x060C, ['Arab', 'Syrc', 'Thaa']).	% Po       ARABIC COMMA
unicode_script_extension(0x061B, 0x061B, ['Arab', 'Syrc', 'Thaa']).	% Po       ARABIC SEMICOLON
unicode_script_extension(0x061F, 0x061F, ['Arab', 'Syrc', 'Thaa']).	% Po       ARABIC QUESTION MARK

% Total code points: 3

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

% Script_Extensions=Hani Hira Kana

unicode_script_extension(0x3006, 0x3006, ['Hani', 'Hira', 'Kana']).	% Lo       IDEOGRAPHIC CLOSING MARK
unicode_script_extension(0x303C, 0x303C, ['Hani', 'Hira', 'Kana']).	% Lo       MASU MARK
unicode_script_extension(0x303D, 0x303D, ['Hani', 'Hira', 'Kana']).	% Po       PART ALTERNATION MARK
unicode_script_extension(0x3190, 0x3191, ['Hani', 'Hira', 'Kana']).	% So   [2] IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK
unicode_script_extension(0x3192, 0x3195, ['Hani', 'Hira', 'Kana']).	% No   [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK
unicode_script_extension(0x3196, 0x319F, ['Hani', 'Hira', 'Kana']).	% So  [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK

% Total code points: 19

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

% Script_Extensions=Beng Deva Guru Orya Takr

unicode_script_extension(0x0964, 0x0965, ['Beng', 'Deva', 'Guru', 'Orya', 'Takr']).	% Po   [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA

% Total code points: 2

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

% Script_Extensions=Buhd Hano Tagb Tglg

unicode_script_extension(0x1735, 0x1736, ['Buhd', 'Hano', 'Tagb', 'Tglg']).	% Po   [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION

% Total code points: 2

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

% Script_Extensions=Bopo Hang Hani Hira Kana

unicode_script_extension(0x3003, 0x3003, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana']).	% Po       DITTO MARK
unicode_script_extension(0x3013, 0x3013, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana']).	% So       GETA MARK
unicode_script_extension(0x301C, 0x301C, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana']).	% Pd       WAVE DASH
unicode_script_extension(0x301D, 0x301D, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana']).	% Ps       REVERSED DOUBLE PRIME QUOTATION MARK
unicode_script_extension(0x301E, 0x301F, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana']).	% Pe   [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK
unicode_script_extension(0x3030, 0x3030, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana']).	% Pd       WAVY DASH
unicode_script_extension(0x3037, 0x3037, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana']).	% So       IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
unicode_script_extension(0x303E, 0x303F, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana']).	% So   [2] IDEOGRAPHIC VARIATION INDICATOR..IDEOGRAPHIC HALF FILL SPACE
unicode_script_extension(0x31C0, 0x31E3, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana']).	% So  [36] CJK STROKE T..CJK STROKE Q
unicode_script_extension(0x3220, 0x3229, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana']).	% No  [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN
unicode_script_extension(0x322A, 0x3243, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana']).	% So  [26] PARENTHESIZED IDEOGRAPH MOON..PARENTHESIZED IDEOGRAPH REACH
unicode_script_extension(0x3280, 0x3289, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana']).	% No  [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN
unicode_script_extension(0x328A, 0x32B0, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana']).	% So  [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT
unicode_script_extension(0x32C0, 0x32CB, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana']).	% So  [12] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
unicode_script_extension(0x3358, 0x3370, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana']).	% So  [25] IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO..IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
unicode_script_extension(0x337B, 0x337F, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana']).	% So   [5] SQUARE ERA NAME HEISEI..SQUARE CORPORATION
unicode_script_extension(0x33E0, 0x33FE, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana']).	% So  [31] IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE..IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
unicode_script_extension(0xFE45, 0xFE46, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana']).	% Po   [2] SESAME DOT..WHITE SESAME DOT

% Total code points: 206

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

% Script_Extensions=Deva Gujr Guru Kthi Takr

unicode_script_extension(0xA830, 0xA835, ['Deva', 'Gujr', 'Guru', 'Kthi', 'Takr']).	% No   [6] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC FRACTION THREE SIXTEENTHS
unicode_script_extension(0xA836, 0xA837, ['Deva', 'Gujr', 'Guru', 'Kthi', 'Takr']).	% So   [2] NORTH INDIC QUARTER MARK..NORTH INDIC PLACEHOLDER MARK
unicode_script_extension(0xA838, 0xA838, ['Deva', 'Gujr', 'Guru', 'Kthi', 'Takr']).	% Sc       NORTH INDIC RUPEE MARK
unicode_script_extension(0xA839, 0xA839, ['Deva', 'Gujr', 'Guru', 'Kthi', 'Takr']).	% So       NORTH INDIC QUANTITY MARK

% Total code points: 10

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

% Script_Extensions=Bopo Hang Hani Hira Kana Yiii

unicode_script_extension(0x3001, 0x3002, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana', 'Yiii']).	% Po   [2] IDEOGRAPHIC COMMA..IDEOGRAPHIC FULL STOP
unicode_script_extension(0x3008, 0x3008, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana', 'Yiii']).	% Ps       LEFT ANGLE BRACKET
unicode_script_extension(0x3009, 0x3009, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana', 'Yiii']).	% Pe       RIGHT ANGLE BRACKET
unicode_script_extension(0x300A, 0x300A, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana', 'Yiii']).	% Ps       LEFT DOUBLE ANGLE BRACKET
unicode_script_extension(0x300B, 0x300B, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana', 'Yiii']).	% Pe       RIGHT DOUBLE ANGLE BRACKET
unicode_script_extension(0x300C, 0x300C, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana', 'Yiii']).	% Ps       LEFT CORNER BRACKET
unicode_script_extension(0x300D, 0x300D, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana', 'Yiii']).	% Pe       RIGHT CORNER BRACKET
unicode_script_extension(0x300E, 0x300E, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana', 'Yiii']).	% Ps       LEFT WHITE CORNER BRACKET
unicode_script_extension(0x300F, 0x300F, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana', 'Yiii']).	% Pe       RIGHT WHITE CORNER BRACKET
unicode_script_extension(0x3010, 0x3010, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana', 'Yiii']).	% Ps       LEFT BLACK LENTICULAR BRACKET
unicode_script_extension(0x3011, 0x3011, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana', 'Yiii']).	% Pe       RIGHT BLACK LENTICULAR BRACKET
unicode_script_extension(0x3014, 0x3014, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana', 'Yiii']).	% Ps       LEFT TORTOISE SHELL BRACKET
unicode_script_extension(0x3015, 0x3015, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana', 'Yiii']).	% Pe       RIGHT TORTOISE SHELL BRACKET
unicode_script_extension(0x3016, 0x3016, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana', 'Yiii']).	% Ps       LEFT WHITE LENTICULAR BRACKET
unicode_script_extension(0x3017, 0x3017, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana', 'Yiii']).	% Pe       RIGHT WHITE LENTICULAR BRACKET
unicode_script_extension(0x3018, 0x3018, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana', 'Yiii']).	% Ps       LEFT WHITE TORTOISE SHELL BRACKET
unicode_script_extension(0x3019, 0x3019, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana', 'Yiii']).	% Pe       RIGHT WHITE TORTOISE SHELL BRACKET
unicode_script_extension(0x301A, 0x301A, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana', 'Yiii']).	% Ps       LEFT WHITE SQUARE BRACKET
unicode_script_extension(0x301B, 0x301B, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana', 'Yiii']).	% Pe       RIGHT WHITE SQUARE BRACKET
unicode_script_extension(0x30FB, 0x30FB, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana', 'Yiii']).	% Po       KATAKANA MIDDLE DOT
unicode_script_extension(0xFF61, 0xFF61, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana', 'Yiii']).	% Po       HALFWIDTH IDEOGRAPHIC FULL STOP
unicode_script_extension(0xFF62, 0xFF62, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana', 'Yiii']).	% Ps       HALFWIDTH LEFT CORNER BRACKET
unicode_script_extension(0xFF63, 0xFF63, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana', 'Yiii']).	% Pe       HALFWIDTH RIGHT CORNER BRACKET
unicode_script_extension(0xFF64, 0xFF65, ['Bopo', 'Hang', 'Hani', 'Hira', 'Kana', 'Yiii']).	% Po   [2] HALFWIDTH IDEOGRAPHIC COMMA..HALFWIDTH KATAKANA MIDDLE DOT

% Total code points: 26

% EOF