Skip to content

Commit

Permalink
CLEANUP: Use new XML character classification routines
Browse files Browse the repository at this point in the history
  • Loading branch information
Jan Wielemaker authored and Jan Wielemaker committed Oct 31, 2012
1 parent 8b37350 commit 0dabe6e
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 331 deletions.
330 changes: 3 additions & 327 deletions ods_table.pl
Expand Up @@ -573,16 +573,16 @@

function_name_code(C) -->
[C],
{ xml_base(C)
{ xml_basechar(C)
; xml_digit(C)
; C == 0'_
; C == 0'.
; xml_ideographic(C)
; xml_combining(C)
; xml_combining_char(C)
}, !.


letter_xml(C) --> [C], { xml_base(C) ;
letter_xml(C) --> [C], { xml_basechar(C) ;
xml_ideographic(C)
}, !.

Expand Down Expand Up @@ -1135,330 +1135,6 @@
ods_warning(no_cell(Sheet,X,Y)).


/*******************************
* XML CHARACTER CLASSES *
*******************************/

xml_base(C) :- between(0x0041, 0x005A, C).
xml_base(C) :- between(0x0061, 0x007A, C).
xml_base(C) :- between(0x00C0, 0x00D6, C).
xml_base(C) :- between(0x00D8, 0x00F6, C).
xml_base(C) :- between(0x00F8, 0x00FF, C).
xml_base(C) :- between(0x0100, 0x0131, C).
xml_base(C) :- between(0x0134, 0x013E, C).
xml_base(C) :- between(0x0141, 0x0148, C).
xml_base(C) :- between(0x014A, 0x017E, C).
xml_base(C) :- between(0x0180, 0x01C3, C).
xml_base(C) :- between(0x01CD, 0x01F0, C).
xml_base(C) :- between(0x01F4, 0x01F5, C).
xml_base(C) :- between(0x01FA, 0x0217, C).
xml_base(C) :- between(0x0250, 0x02A8, C).
xml_base(C) :- between(0x02BB, 0x02C1, C).
xml_base(0x0386).
xml_base(C) :- between(0x0388, 0x038A, C).
xml_base(0x038C).
xml_base(C) :- between(0x038E, 0x03A1, C).
xml_base(C) :- between(0x03A3, 0x03CE, C).
xml_base(C) :- between(0x03D0, 0x03D6, C).
xml_base(0x03DA).
xml_base(0x03DC).
xml_base(0x03DE).
xml_base(0x03E0).
xml_base(C) :- between(0x03E2, 0x03F3, C).
xml_base(C) :- between(0x0401, 0x040C, C).
xml_base(C) :- between(0x040E, 0x044F, C).
xml_base(C) :- between(0x0451, 0x045C, C).
xml_base(C) :- between(0x045E, 0x0481, C).
xml_base(C) :- between(0x0490, 0x04C4, C).
xml_base(C) :- between(0x04C7, 0x04C8, C).
xml_base(C) :- between(0x04CB, 0x04CC, C).
xml_base(C) :- between(0x04D0, 0x04EB, C).
xml_base(C) :- between(0x04EE, 0x04F5, C).
xml_base(C) :- between(0x04F8, 0x04F9, C).
xml_base(C) :- between(0x0531, 0x0556, C).
xml_base(0x0559).
xml_base(C) :- between(0x0561, 0x0586, C).
xml_base(C) :- between(0x05D0, 0x05EA, C).
xml_base(C) :- between(0x05F0, 0x05F2, C).
xml_base(C) :- between(0x0621, 0x063A, C).
xml_base(C) :- between(0x0641, 0x064A, C).
xml_base(C) :- between(0x0671, 0x06B7, C).
xml_base(C) :- between(0x06BA, 0x06BE, C).
xml_base(C) :- between(0x06C0, 0x06CE, C).
xml_base(C) :- between(0x06D0, 0x06D3, C).
xml_base(0x06D5).
xml_base(C) :- between(0x06E5, 0x06E6, C).
xml_base(C) :- between(0x0905, 0x0939, C).
xml_base(0x093D).
xml_base(C) :- between(0x0958, 0x0961, C).
xml_base(C) :- between(0x0985, 0x098C, C).
xml_base(C) :- between(0x098F, 0x0990, C).
xml_base(C) :- between(0x0993, 0x09A8, C).
xml_base(C) :- between(0x09AA, 0x09B0, C).
xml_base(0x09B2).
xml_base(C) :- between(0x09B6, 0x09B9, C).
xml_base(C) :- between(0x09DC, 0x09DD, C).
xml_base(C) :- between(0x09DF, 0x09E1, C).
xml_base(C) :- between(0x09F0, 0x09F1, C).
xml_base(C) :- between(0x0A05, 0x0A0A, C).
xml_base(C) :- between(0x0A0F, 0x0A10, C).
xml_base(C) :- between(0x0A13, 0x0A28, C).
xml_base(C) :- between(0x0A2A, 0x0A30, C).
xml_base(C) :- between(0x0A32, 0x0A33, C).
xml_base(C) :- between(0x0A35, 0x0A36, C).
xml_base(C) :- between(0x0A38, 0x0A39, C).
xml_base(C) :- between(0x0A59, 0x0A5C, C).
xml_base(0x0A5E).
xml_base(C) :- between(0x0A72, 0x0A74, C).
xml_base(C) :- between(0x0A85, 0x0A8B, C).
xml_base(0x0A8D).
xml_base(C) :- between(0x0A8F, 0x0A91, C).
xml_base(C) :- between(0x0A93, 0x0AA8, C).
xml_base(C) :- between(0x0AAA, 0x0AB0, C).
xml_base(C) :- between(0x0AB2, 0x0AB3, C).
xml_base(C) :- between(0x0AB5, 0x0AB9, C).
xml_base(0x0ABD).
xml_base(0x0AE0).
xml_base(C) :- between(0x0B05, 0x0B0C, C).
xml_base(C) :- between(0x0B0F, 0x0B10, C).
xml_base(C) :- between(0x0B13, 0x0B28, C).
xml_base(C) :- between(0x0B2A, 0x0B30, C).
xml_base(C) :- between(0x0B32, 0x0B33, C).
xml_base(C) :- between(0x0B36, 0x0B39, C).
xml_base(0x0B3D).
xml_base(C) :- between(0x0B5C, 0x0B5D, C).
xml_base(C) :- between(0x0B5F, 0x0B61, C).
xml_base(C) :- between(0x0B85, 0x0B8A, C).
xml_base(C) :- between(0x0B8E, 0x0B90, C).
xml_base(C) :- between(0x0B92, 0x0B95, C).
xml_base(C) :- between(0x0B99, 0x0B9A, C).
xml_base(0x0B9C).
xml_base(C) :- between(0x0B9E, 0x0B9F, C).
xml_base(C) :- between(0x0BA3, 0x0BA4, C).
xml_base(C) :- between(0x0BA8, 0x0BAA, C).
xml_base(C) :- between(0x0BAE, 0x0BB5, C).
xml_base(C) :- between(0x0BB7, 0x0BB9, C).
xml_base(C) :- between(0x0C05, 0x0C0C, C).
xml_base(C) :- between(0x0C0E, 0x0C10, C).
xml_base(C) :- between(0x0C12, 0x0C28, C).
xml_base(C) :- between(0x0C2A, 0x0C33, C).
xml_base(C) :- between(0x0C35, 0x0C39, C).
xml_base(C) :- between(0x0C60, 0x0C61, C).
xml_base(C) :- between(0x0C85, 0x0C8C, C).
xml_base(C) :- between(0x0C8E, 0x0C90, C).
xml_base(C) :- between(0x0C92, 0x0CA8, C).
xml_base(C) :- between(0x0CAA, 0x0CB3, C).
xml_base(C) :- between(0x0CB5, 0x0CB9, C).
xml_base(0x0CDE).
xml_base(C) :- between(0x0CE0, 0x0CE1, C).
xml_base(C) :- between(0x0D05, 0x0D0C, C).
xml_base(C) :- between(0x0D0E, 0x0D10, C).
xml_base(C) :- between(0x0D12, 0x0D28, C).
xml_base(C) :- between(0x0D2A, 0x0D39, C).
xml_base(C) :- between(0x0D60, 0x0D61, C).
xml_base(C) :- between(0x0E01, 0x0E2E, C).
xml_base(0x0E30).
xml_base(C) :- between(0x0E32, 0x0E33, C).
xml_base(C) :- between(0x0E40, 0x0E45, C).
xml_base(C) :- between(0x0E81, 0x0E82, C).
xml_base(0x0E84).
xml_base(C) :- between(0x0E87, 0x0E88, C).
xml_base(0x0E8A).
xml_base(0x0E8D).
xml_base(C) :- between(0x0E94, 0x0E97, C).
xml_base(C) :- between(0x0E99, 0x0E9F, C).
xml_base(C) :- between(0x0EA1, 0x0EA3, C).
xml_base(0x0EA5).
xml_base(0x0EA7).
xml_base(C) :- between(0x0EAA, 0x0EAB, C).
xml_base(C) :- between(0x0EAD, 0x0EAE, C).
xml_base(0x0EB0).
xml_base(C) :- between(0x0EB2, 0x0EB3, C).
xml_base(0x0EBD).
xml_base(C) :- between(0x0EC0, 0x0EC4, C).
xml_base(C) :- between(0x0F40, 0x0F47, C).
xml_base(C) :- between(0x0F49, 0x0F69, C).
xml_base(C) :- between(0x10A0, 0x10C5, C).
xml_base(C) :- between(0x10D0, 0x10F6, C).
xml_base(0x1100).
xml_base(C) :- between(0x1102, 0x1103, C).
xml_base(C) :- between(0x1105, 0x1107, C).
xml_base(0x1109).
xml_base(C) :- between(0x110B, 0x110C, C).
xml_base(C) :- between(0x110E, 0x1112, C).
xml_base(0x113C).
xml_base(0x113E).
xml_base(0x1140).
xml_base(0x114C).
xml_base(0x114E).
xml_base(0x1150).
xml_base(C) :- between(0x1154, 0x1155, C).
xml_base(0x1159).
xml_base(C) :- between(0x115F, 0x1161, C).
xml_base(0x1163).
xml_base(0x1165).
xml_base(0x1167).
xml_base(0x1169).
xml_base(C) :- between(0x116D, 0x116E, C).
xml_base(C) :- between(0x1172, 0x1173, C).
xml_base(0x1175).
xml_base(0x119E).
xml_base(0x11A8).
xml_base(0x11AB).
xml_base(C) :- between(0x11AE, 0x11AF, C).
xml_base(C) :- between(0x11B7, 0x11B8, C).
xml_base(0x11BA).
xml_base(C) :- between(0x11BC, 0x11C2, C).
xml_base(0x11EB).
xml_base(0x11F0).
xml_base(0x11F9).
xml_base(C) :- between(0x1E00, 0x1E9B, C).
xml_base(C) :- between(0x1EA0, 0x1EF9, C).
xml_base(C) :- between(0x1F00, 0x1F15, C).
xml_base(C) :- between(0x1F18, 0x1F1D, C).
xml_base(C) :- between(0x1F20, 0x1F45, C).
xml_base(C) :- between(0x1F48, 0x1F4D, C).
xml_base(C) :- between(0x1F50, 0x1F57, C).
xml_base(0x1F59).
xml_base(0x1F5B).
xml_base(0x1F5D).
xml_base(C) :- between(0x1F5F, 0x1F7D, C).
xml_base(C) :- between(0x1F80, 0x1FB4, C).
xml_base(C) :- between(0x1FB6, 0x1FBC, C).
xml_base(0x1FBE).
xml_base(C) :- between(0x1FC2, 0x1FC4, C).
xml_base(C) :- between(0x1FC6, 0x1FCC, C).
xml_base(C) :- between(0x1FD0, 0x1FD3, C).
xml_base(C) :- between(0x1FD6, 0x1FDB, C).
xml_base(C) :- between(0x1FE0, 0x1FEC, C).
xml_base(C) :- between(0x1FF2, 0x1FF4, C).
xml_base(C) :- between(0x1FF6, 0x1FFC, C).
xml_base(0x2126).
xml_base(C) :- between(0x212A, 0x212B, C).
xml_base(0x212E).
xml_base(C) :- between(0x2180, 0x2182, C).
xml_base(C) :- between(0x3041, 0x3094, C).
xml_base(C) :- between(0x30A1, 0x30FA, C).
xml_base(C) :- between(0x3105, 0x312C, C).
xml_base(C) :- between(0xAC00, 0xD7A3, C).

xml_ideographic(C) :- between(0x4E00, 0x9FA5, C).
xml_ideographic(0x3007).
xml_ideographic(C) :- between(0x3021, 0x3029, C).

xml_combining(C) :- between(0x0300, 0x0345, C).
xml_combining(C) :- between(0x0360, 0x0361, C).
xml_combining(C) :- between(0x0483, 0x0486, C).
xml_combining(C) :- between(0x0591, 0x05A1, C).
xml_combining(C) :- between(0x05A3, 0x05B9, C).
xml_combining(C) :- between(0x05BB, 0x05BD, C).
xml_combining(0x05BF).
xml_combining(C) :- between(0x05C1, 0x05C2, C).
xml_combining(0x05C4).
xml_combining(C) :- between(0x064B, 0x0652, C).
xml_combining(0x0670).
xml_combining(C) :- between(0x06D6, 0x06DC, C).
xml_combining(C) :- between(0x06DD, 0x06DF, C).
xml_combining(C) :- between(0x06E0, 0x06E4, C).
xml_combining(C) :- between(0x06E7, 0x06E8, C).
xml_combining(C) :- between(0x06EA, 0x06ED, C).
xml_combining(C) :- between(0x0901, 0x0903, C).
xml_combining(0x093C).
xml_combining(C) :- between(0x093E, 0x094C, C).
xml_combining(0x094D).
xml_combining(C) :- between(0x0951, 0x0954, C).
xml_combining(C) :- between(0x0962, 0x0963, C).
xml_combining(C) :- between(0x0981, 0x0983, C).
xml_combining(0x09BC).
xml_combining(0x09BE).
xml_combining(0x09BF).
xml_combining(C) :- between(0x09C0, 0x09C4, C).
xml_combining(C) :- between(0x09C7, 0x09C8, C).
xml_combining(C) :- between(0x09CB, 0x09CD, C).
xml_combining(0x09D7).
xml_combining(C) :- between(0x09E2, 0x09E3, C).
xml_combining(0x0A02).
xml_combining(0x0A3C).
xml_combining(0x0A3E).
xml_combining(0x0A3F).
xml_combining(C) :- between(0x0A40, 0x0A42, C).
xml_combining(C) :- between(0x0A47, 0x0A48, C).
xml_combining(C) :- between(0x0A4B, 0x0A4D, C).
xml_combining(C) :- between(0x0A70, 0x0A71, C).
xml_combining(C) :- between(0x0A81, 0x0A83, C).
xml_combining(0x0ABC).
xml_combining(C) :- between(0x0ABE, 0x0AC5, C).
xml_combining(C) :- between(0x0AC7, 0x0AC9, C).
xml_combining(C) :- between(0x0ACB, 0x0ACD, C).
xml_combining(C) :- between(0x0B01, 0x0B03, C).
xml_combining(0x0B3C).
xml_combining(C) :- between(0x0B3E, 0x0B43, C).
xml_combining(C) :- between(0x0B47, 0x0B48, C).
xml_combining(C) :- between(0x0B4B, 0x0B4D, C).
xml_combining(C) :- between(0x0B56, 0x0B57, C).
xml_combining(C) :- between(0x0B82, 0x0B83, C).
xml_combining(C) :- between(0x0BBE, 0x0BC2, C).
xml_combining(C) :- between(0x0BC6, 0x0BC8, C).
xml_combining(C) :- between(0x0BCA, 0x0BCD, C).
xml_combining(0x0BD7).
xml_combining(C) :- between(0x0C01, 0x0C03, C).
xml_combining(C) :- between(0x0C3E, 0x0C44, C).
xml_combining(C) :- between(0x0C46, 0x0C48, C).
xml_combining(C) :- between(0x0C4A, 0x0C4D, C).
xml_combining(C) :- between(0x0C55, 0x0C56, C).
xml_combining(C) :- between(0x0C82, 0x0C83, C).
xml_combining(C) :- between(0x0CBE, 0x0CC4, C).
xml_combining(C) :- between(0x0CC6, 0x0CC8, C).
xml_combining(C) :- between(0x0CCA, 0x0CCD, C).
xml_combining(C) :- between(0x0CD5, 0x0CD6, C).
xml_combining(C) :- between(0x0D02, 0x0D03, C).
xml_combining(C) :- between(0x0D3E, 0x0D43, C).
xml_combining(C) :- between(0x0D46, 0x0D48, C).
xml_combining(C) :- between(0x0D4A, 0x0D4D, C).
xml_combining(0x0D57).
xml_combining(0x0E31).
xml_combining(C) :- between(0x0E34, 0x0E3A, C).
xml_combining(C) :- between(0x0E47, 0x0E4E, C).
xml_combining(0x0EB1).
xml_combining(C) :- between(0x0EB4, 0x0EB9, C).
xml_combining(C) :- between(0x0EBB, 0x0EBC, C).
xml_combining(C) :- between(0x0EC8, 0x0ECD, C).
xml_combining(C) :- between(0x0F18, 0x0F19, C).
xml_combining(0x0F35).
xml_combining(0x0F37).
xml_combining(0x0F39).
xml_combining(0x0F3E).
xml_combining(0x0F3F).
xml_combining(C) :- between(0x0F71, 0x0F84, C).
xml_combining(C) :- between(0x0F86, 0x0F8B, C).
xml_combining(C) :- between(0x0F90, 0x0F95, C).
xml_combining(0x0F97).
xml_combining(C) :- between(0x0F99, 0x0FAD, C).
xml_combining(C) :- between(0x0FB1, 0x0FB7, C).
xml_combining(0x0FB9).
xml_combining(C) :- between(0x20D0, 0x20DC, C).
xml_combining(0x20E1).
xml_combining(C) :- between(0x302A, 0x302F, C).
xml_combining(0x3099).
xml_combining(0x309A).

xml_digit(C) :- between(0x0030, 0x0039, C).
xml_digit(C) :- between(0x0660, 0x0669, C).
xml_digit(C) :- between(0x06F0, 0x06F9, C).
xml_digit(C) :- between(0x0966, 0x096F, C).
xml_digit(C) :- between(0x09E6, 0x09EF, C).
xml_digit(C) :- between(0x0A66, 0x0A6F, C).
xml_digit(C) :- between(0x0AE6, 0x0AEF, C).
xml_digit(C) :- between(0x0B66, 0x0B6F, C).
xml_digit(C) :- between(0x0BE7, 0x0BEF, C).
xml_digit(C) :- between(0x0C66, 0x0C6F, C).
xml_digit(C) :- between(0x0CE6, 0x0CEF, C).
xml_digit(C) :- between(0x0D66, 0x0D6F, C).
xml_digit(C) :- between(0x0E50, 0x0E59, C).
xml_digit(C) :- between(0x0ED0, 0x0ED9, C).
xml_digit(C) :- between(0x0F20, 0x0F29, C).


/*******************************
* UTIL *
*******************************/
Expand Down
8 changes: 4 additions & 4 deletions test.pl
Expand Up @@ -106,12 +106,12 @@
; abs(X-Y) < 0.000000001
).

:- meta_predicate
p(:,+,+).


p(X,Y) :-
sheet(Sheet),
cell(Sheet, Id, Value, Type, Formula, Style, _Annotation),
p(M:Sheet, X,Y) :-
ods_table:cell_id(X, Y, Id),
M:cell(Sheet, Id, Value, Type, Formula, Style, _Annotation),
format('Value = ~q, Type = ~q, Formula = ~q, Style = ~q',
[ Value, Type, Formula, Style] ).

Expand Down

0 comments on commit 0dabe6e

Please sign in to comment.