diff --git a/layout/mathml/content/src/nsMathMLOperatorList.h b/layout/mathml/content/src/nsMathMLOperatorList.h index db82d16cc68d..905c888e3633 100644 --- a/layout/mathml/content/src/nsMathMLOperatorList.h +++ b/layout/mathml/content/src/nsMathMLOperatorList.h @@ -1,25 +1,26 @@ /* - * The contents of this file are subject to the Mozilla Public - * License Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS - * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - * implied. See the License for the specific language governing - * rights and limitations under the License. - * - * The Original Code is Mozilla MathML Project. - * - * The Initial Developer of the Original Code is The University Of - * Queensland. Portions created by The University Of Queensland are - * Copyright (C) 1999 The University Of Queensland. All Rights Reserved. - * - * Contributor(s): - * Roger B. Sidje + * The contents of this file are subject to the Mozilla Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code is Mozilla MathML Project. + * + * The Initial Developer of the Original Code is The University of + * Queensland. Portions created by The University of Queensland are + * Copyright (C) 1999 The University of Queensland. All + * Rights Reserved. + * + * Contributor(s): + * Roger B. Sidje */ -/* MathML Operator Dictionary - Auto-generated by operator.pl. Do not edit! */ +/* MathML Operator Dictionary - Auto-generated. Do not edit! */ /* FORMAT MATHML_OPERATOR(_rank, @@ -30,354 +31,380 @@ MATHML_OPERATOR(_rank, */ #if defined(WANT_MATHML_OPERATOR_COUNT) - #define NS_MATHML_OPERATOR_COUNT 343 + #define NS_MATHML_OPERATOR_COUNT 349 #else #define _ , // dirty trick to make the macro handle a variable number of arguments -MATHML_OPERATOR( 0,0x0028,(2|(1<<2)|(1<<3)),0.0f,0.0f) // ( prefix -MATHML_OPERATOR( 1,0x0029,(3|(1<<2)|(1<<3)),0.0f,0.0f) // ) postfix -MATHML_OPERATOR( 2,0x005B,(2|(1<<2)|(1<<3)),0.0f,0.0f) // [ prefix -MATHML_OPERATOR( 3,0x005D,(3|(1<<2)|(1<<3)),0.0f,0.0f) // ] postfix -MATHML_OPERATOR( 4,0x007B,(2|(1<<2)|(1<<3)),0.0f,0.0f) // { prefix -MATHML_OPERATOR( 5,0x007D,(3|(1<<2)|(1<<3)),0.0f,0.0f) // } postfix -MATHML_OPERATOR( 6,0x201D,(3|(1<<3)),0.0f,0.0f) // ” postfix -MATHML_OPERATOR( 7,0x2019,(3|(1<<3)),0.0f,0.0f) // ’ postfix -MATHML_OPERATOR( 8,0x3008,(2|(1<<2)|(1<<3)),0.0f,0.0f) // ⟨ prefix -MATHML_OPERATOR( 9,0xF603,(2|(1<<2)|(1<<3)),0.0f,0.0f) // &LeftBracketingBar; prefix -MATHML_OPERATOR( 10,0x2308,(2|(1<<2)|(1<<3)),0.0f,0.0f) // ⌈ prefix -MATHML_OPERATOR( 11,0x301A,(2|(1<<2)|(1<<3)),0.0f,0.0f) // ⟦ prefix -MATHML_OPERATOR( 12,0xF605,(2|(1<<2)|(1<<3)),0.0f,0.0f) // &LeftDoubleBracketingBar; prefix -MATHML_OPERATOR( 13,0x230A,(2|(1<<2)|(1<<3)),0.0f,0.0f) // ⌊ prefix -MATHML_OPERATOR( 14,0x201C,(2|(1<<3)),0.0f,0.0f) // “ prefix -MATHML_OPERATOR( 15,0x2018,(2|(1<<3)),0.0f,0.0f) // ‘ prefix -MATHML_OPERATOR( 16,0x3009,(3|(1<<2)|(1<<3)),0.0f,0.0f) // ⟩ postfix -MATHML_OPERATOR( 17,0xF604,(3|(1<<2)|(1<<3)),0.0f,0.0f) // &RightBracketingBar; postfix -MATHML_OPERATOR( 18,0x2309,(3|(1<<2)|(1<<3)),0.0f,0.0f) // ⌉ postfix -MATHML_OPERATOR( 19,0x301B,(3|(1<<2)|(1<<3)),0.0f,0.0f) // ⟧ postfix -MATHML_OPERATOR( 20,0xF606,(3|(1<<2)|(1<<3)),0.0f,0.0f) // &RightDoubleBracketingBar; postfix -MATHML_OPERATOR( 21,0x230B,(3|(1<<2)|(1<<3)),0.0f,0.0f) // ⌋ postfix -MATHML_OPERATOR( 22,0xE850,(2|(1<<3)),0.0f,0.0f) // &LeftSkeleton; prefix -MATHML_OPERATOR( 23,0xE851,(3|(1<<3)),0.0f,0.0f) // &RightSkeleton; postfix -MATHML_OPERATOR( 24,0xE89C,(1|(1<<6)),0.0f,0.0f) // ⁣ infix -MATHML_OPERATOR( 25,0x002C,(1|(1<<6)),0.0f,.33333f) // , infix -MATHML_OPERATOR( 26,0xE859,(1|(1<<2)),0.0f,0.0f) // ─ infix -MATHML_OPERATOR( 27,0xE85A,(1|(1<<2)),0.0f,0.0f) // | infix -MATHML_OPERATOR( 28,0x003B,(1|(1<<6)),0.0f,.27777f) // ; infix -MATHML_OPERATOR( 29,0x003B,(3|(1<<6)),0.0f,0.0f) // ; postfix -MATHML_OPERATOR( 30,0x003A _ 0x003D,1,.27777f,.27777f) // := infix -MATHML_OPERATOR( 31,0xE85B,1,.27777f,.27777f) // ≔ infix -MATHML_OPERATOR( 32,0x2235,1,.27777f,.27777f) // ∵ infix -MATHML_OPERATOR( 33,0x2234,1,.27777f,.27777f) // ∴ infix -MATHML_OPERATOR( 34,0xE85C,(1|(1<<2)),.27777f,.27777f) // ❘ infix -MATHML_OPERATOR( 35,0x002F _ 0x002F,1,.27777f,.27777f) // // infix -MATHML_OPERATOR( 36,0x2237,1,.27777f,.27777f) // ∷ infix -MATHML_OPERATOR( 37,0x0026,2,0.0f,.27777f) // & prefix -MATHML_OPERATOR( 38,0x0026,3,.27777f,0.0f) // & postfix -MATHML_OPERATOR( 39,0x002A _ 0x003D,1,.27777f,.27777f) // *= infix -MATHML_OPERATOR( 40,0x002D _ 0x003D,1,.27777f,.27777f) // -= infix -MATHML_OPERATOR( 41,0x002B _ 0x003D,1,.27777f,.27777f) // += infix -MATHML_OPERATOR( 42,0x002F _ 0x003D,1,.27777f,.27777f) // /= infix -MATHML_OPERATOR( 43,0x002D _ 0x003E,1,.27777f,.27777f) // -> infix -MATHML_OPERATOR( 44,0x003A,1,.27777f,.27777f) // : infix -MATHML_OPERATOR( 45,0x002E _ 0x002E,3,.22222f,0.0f) // .. postfix -MATHML_OPERATOR( 46,0x002E _ 0x002E _ 0x002E,3,.22222f,0.0f) // ... postfix -MATHML_OPERATOR( 47,0x220B,1,.27777f,.27777f) // ∋ infix -MATHML_OPERATOR( 48,0xE30F,1,.27777f,.27777f) // ⫤ infix -MATHML_OPERATOR( 49,0x22A8,1,.27777f,.27777f) // ⊨ infix -MATHML_OPERATOR( 50,0x22A4,1,.27777f,.27777f) // ⊤ infix -MATHML_OPERATOR( 51,0x22A3,1,.27777f,.27777f) // ⊣ infix -MATHML_OPERATOR( 52,0x22A2,1,.27777f,.27777f) // ⊢ infix -MATHML_OPERATOR( 53,0x21D2,(1|(1<<2)),.27777f,.27777f) // ⇒ infix -MATHML_OPERATOR( 54,0xF524,1,.27777f,.27777f) // ⥰ infix -MATHML_OPERATOR( 55,0x007C,(1|(1<<2)),.27777f,.27777f) // | infix -MATHML_OPERATOR( 56,0x007C _ 0x007C,1,.22222f,.22222f) // || infix -MATHML_OPERATOR( 57,0xE375,(1|(1<<2)),.22222f,.22222f) // ⩔ infix -MATHML_OPERATOR( 58,0x0026 _ 0x0026,1,.27777f,.27777f) // && infix -MATHML_OPERATOR( 59,0xE374,(1|(1<<2)),.22222f,.22222f) // ⩓ infix -MATHML_OPERATOR( 60,0x0026,1,.27777f,.27777f) // & infix -MATHML_OPERATOR( 61,0x0021,2,0.0f,.27777f) // ! prefix -MATHML_OPERATOR( 62,0xE3AC,2,0.0f,.27777f) // ⫬ prefix -MATHML_OPERATOR( 63,0x2203,2,0.0f,.27777f) // ∃ prefix -MATHML_OPERATOR( 64,0x2200,2,0.0f,.27777f) // ∀ prefix -MATHML_OPERATOR( 65,0x2204,2,0.0f,.27777f) // ∄ prefix -MATHML_OPERATOR( 66,0x2208,1,.27777f,.27777f) // ∈ infix -MATHML_OPERATOR( 67,0x2209,1,.27777f,.27777f) // ∉ infix -MATHML_OPERATOR( 68,0x220C,1,.27777f,.27777f) // ∌ infix -MATHML_OPERATOR( 69,0xE604,1,.27777f,.27777f) // ⊏̸ infix -MATHML_OPERATOR( 70,0x22E2,1,.27777f,.27777f) // ⋢ infix -MATHML_OPERATOR( 71,0xE615,1,.27777f,.27777f) // ⊐̸ infix -MATHML_OPERATOR( 72,0x22E3,1,.27777f,.27777f) // ⋣ infix -MATHML_OPERATOR( 73,0x2284,1,.27777f,.27777f) // ⊂⃒ infix -MATHML_OPERATOR( 74,0x2288,1,.27777f,.27777f) // ⊈ infix -MATHML_OPERATOR( 75,0x2285,1,.27777f,.27777f) // ⊃⃒ infix -MATHML_OPERATOR( 76,0x2289,1,.27777f,.27777f) // ⊉ infix -MATHML_OPERATOR( 77,0x220B,1,.27777f,.27777f) // ∋ infix -MATHML_OPERATOR( 78,0x228F,1,.27777f,.27777f) // ⊏ infix -MATHML_OPERATOR( 79,0x2291,1,.27777f,.27777f) // ⊑ infix -MATHML_OPERATOR( 80,0x2290,1,.27777f,.27777f) // ⊐ infix -MATHML_OPERATOR( 81,0x2292,1,.27777f,.27777f) // ⊒ infix -MATHML_OPERATOR( 82,0x22D0,1,.27777f,.27777f) // ⋐ infix -MATHML_OPERATOR( 83,0x2286,1,.27777f,.27777f) // ⊆ infix -MATHML_OPERATOR( 84,0x2283,1,.27777f,.27777f) // ⊃ infix -MATHML_OPERATOR( 85,0x2287,1,.27777f,.27777f) // ⊇ infix -MATHML_OPERATOR( 86,0x21D0,(1|(1<<2)),.27777f,.27777f) // ⇐ infix -MATHML_OPERATOR( 87,0x21D4,(1|(1<<2)),.27777f,.27777f) // ⇔ infix -MATHML_OPERATOR( 88,0x21D2,(1|(1<<2)),.27777f,.27777f) // ⇒ infix -MATHML_OPERATOR( 89,0xF50B,(1|(1<<2)),.27777f,.27777f) // ⥐ infix -MATHML_OPERATOR( 90,0xF50E,(1|(1<<2)),.27777f,.27777f) // ⥞ infix -MATHML_OPERATOR( 91,0x21BD,(1|(1<<2)),.27777f,.27777f) // ↽ infix -MATHML_OPERATOR( 92,0xF50C,(1|(1<<2)),.27777f,.27777f) // ⥖ infix -MATHML_OPERATOR( 93,0xF50F,(1|(1<<2)),.27777f,.27777f) // ⥟ infix -MATHML_OPERATOR( 94,0x21C1,(1|(1<<2)),.27777f,.27777f) // ⇁ infix -MATHML_OPERATOR( 95,0xF50D,(1|(1<<2)),.27777f,.27777f) // ⥗ infix -MATHML_OPERATOR( 96,0x2190,(1|(1<<2)),.27777f,.27777f) // ← infix -MATHML_OPERATOR( 97,0x21E4,(1|(1<<2)),.27777f,.27777f) // ⇤ infix -MATHML_OPERATOR( 98,0x21C6,(1|(1<<2)),.27777f,.27777f) // ⇆ infix -MATHML_OPERATOR( 99,0x2194,(1|(1<<2)),.27777f,.27777f) // ↔ infix -MATHML_OPERATOR(100,0xF505,(1|(1<<2)),.27777f,.27777f) // ⥎ infix -MATHML_OPERATOR(101,0x21A4,(1|(1<<2)),.27777f,.27777f) // ↤ infix -MATHML_OPERATOR(102,0xF509,(1|(1<<2)),.27777f,.27777f) // ⥚ infix -MATHML_OPERATOR(103,0x21BC,(1|(1<<2)),.27777f,.27777f) // ↼ infix -MATHML_OPERATOR(104,0xF507,(1|(1<<2)),.27777f,.27777f) // ⥒ infix -MATHML_OPERATOR(105,0x2199,(1|(1<<2)),.27777f,.27777f) // ↙ infix -MATHML_OPERATOR(106,0x2198,(1|(1<<2)),.27777f,.27777f) // ↘ infix -MATHML_OPERATOR(107,0x2192,(1|(1<<2)),.27777f,.27777f) // → infix -MATHML_OPERATOR(108,0x21E5,(1|(1<<2)),.27777f,.27777f) // ⇥ infix -MATHML_OPERATOR(109,0x21C4,(1|(1<<2)),.27777f,.27777f) // ⇄ infix -MATHML_OPERATOR(110,0x21A6,(1|(1<<2)),.27777f,.27777f) // ↦ infix -MATHML_OPERATOR(111,0xF50A,(1|(1<<2)),.27777f,.27777f) // ⥛ infix -MATHML_OPERATOR(112,0x21C0,(1|(1<<2)),.27777f,.27777f) // ⇀ infix -MATHML_OPERATOR(113,0xF508,(1|(1<<2)),.27777f,.27777f) // ⥓ infix -MATHML_OPERATOR(114,0xE233,1,.27777f,.27777f) // ← infix -MATHML_OPERATOR(115,0xE232,1,.27777f,.27777f) // → infix -MATHML_OPERATOR(116,0x2196,(1|(1<<2)),.27777f,.27777f) // ↖ infix -MATHML_OPERATOR(117,0x2197,(1|(1<<2)),.27777f,.27777f) // ↗ infix -MATHML_OPERATOR(118,0x003D,1,.27777f,.27777f) // = infix -MATHML_OPERATOR(119,0x003C,1,.27777f,.27777f) // < infix -MATHML_OPERATOR(120,0x003E,1,.27777f,.27777f) // > infix -MATHML_OPERATOR(121,0x0021 _ 0x003D,1,.27777f,.27777f) // != infix -MATHML_OPERATOR(122,0x003D _ 0x003D,1,.27777f,.27777f) // == infix -MATHML_OPERATOR(123,0x003C _ 0x003D,1,.27777f,.27777f) // <= infix -MATHML_OPERATOR(124,0x003E _ 0x003D,1,.27777f,.27777f) // >= infix -MATHML_OPERATOR(125,0x2261,1,.27777f,.27777f) // ≡ infix -MATHML_OPERATOR(126,0x224D,1,.27777f,.27777f) // ≍ infix -MATHML_OPERATOR(127,0x2250,1,.27777f,.27777f) // ≐ infix -MATHML_OPERATOR(128,0x2225,1,.27777f,.27777f) // ∥ infix -MATHML_OPERATOR(129,0xF431,1,.27777f,.27777f) // ⩵ infix -MATHML_OPERATOR(130,0x2242,1,.27777f,.27777f) // ≂ infix -MATHML_OPERATOR(131,0x21CC,(1|(1<<2)),.27777f,.27777f) // ⇌ infix -MATHML_OPERATOR(132,0x2265,1,.27777f,.27777f) // ≥ infix -MATHML_OPERATOR(133,0x22DB,1,.27777f,.27777f) // ⋛ infix -MATHML_OPERATOR(134,0x2267,1,.27777f,.27777f) // ≧ infix -MATHML_OPERATOR(135,0xE2F7,1,.27777f,.27777f) // ⪢ infix -MATHML_OPERATOR(136,0x2277,1,.27777f,.27777f) // ≷ infix -MATHML_OPERATOR(137,0xE2F6,1,.27777f,.27777f) // ⩾ infix -MATHML_OPERATOR(138,0x2273,1,.27777f,.27777f) // ≳ infix -MATHML_OPERATOR(139,0x224E,1,.27777f,.27777f) // ≎ infix -MATHML_OPERATOR(140,0x224F,1,.27777f,.27777f) // ≏ infix -MATHML_OPERATOR(141,0x22B2,1,.27777f,.27777f) // ⊲ infix -MATHML_OPERATOR(142,0xF410,1,.27777f,.27777f) // ⧏ infix -MATHML_OPERATOR(143,0x22B4,1,.27777f,.27777f) // ⊴ infix -MATHML_OPERATOR(144,0x2264,1,.27777f,.27777f) // ≤ infix -MATHML_OPERATOR(145,0x22DA,1,.27777f,.27777f) // ⋚ infix -MATHML_OPERATOR(146,0x2266,1,.27777f,.27777f) // ≦ infix -MATHML_OPERATOR(147,0x2276,1,.27777f,.27777f) // ≶ infix -MATHML_OPERATOR(148,0xE2FB,1,.27777f,.27777f) // ⪡ infix -MATHML_OPERATOR(149,0xE2FA,1,.27777f,.27777f) // ⩽ infix -MATHML_OPERATOR(150,0x2272,1,.27777f,.27777f) // ≲ infix -MATHML_OPERATOR(151,0x226B,1,.27777f,.27777f) // ≫ infix -MATHML_OPERATOR(152,0x226A,1,.27777f,.27777f) // ≪ infix -MATHML_OPERATOR(153,0x2262,1,.27777f,.27777f) // ≢ infix -MATHML_OPERATOR(154,0x226D,1,.27777f,.27777f) // ≭ infix -MATHML_OPERATOR(155,0x2226,1,.27777f,.27777f) // ∦ infix -MATHML_OPERATOR(156,0x2260,1,.27777f,.27777f) // ≠ infix -MATHML_OPERATOR(157,0xE84E,1,.27777f,.27777f) // ≂̸ infix -MATHML_OPERATOR(158,0x226F,1,.27777f,.27777f) // ≯ infix -MATHML_OPERATOR(159,0xE2A6,1,.27777f,.27777f) // ≱ infix -MATHML_OPERATOR(160,0x2270,1,.27777f,.27777f) // ≧̸ infix -MATHML_OPERATOR(161,0xE2CC,1,.27777f,.27777f) // ≫̸ infix -MATHML_OPERATOR(162,0x2279,1,.27777f,.27777f) // ≹ infix -MATHML_OPERATOR(163,0x2271,1,.27777f,.27777f) // ⩾̸ infix -MATHML_OPERATOR(164,0x2275,1,.27777f,.27777f) // ≵ infix -MATHML_OPERATOR(165,0xE616,1,.27777f,.27777f) // ≎̸ infix -MATHML_OPERATOR(166,0xE84D,1,.27777f,.27777f) // ≏̸ infix -MATHML_OPERATOR(167,0x22EA,1,.27777f,.27777f) // ⋪ infix -MATHML_OPERATOR(168,0xF412,1,.27777f,.27777f) // ⧏̸ infix -MATHML_OPERATOR(169,0x22EC,1,.27777f,.27777f) // ⋬ infix -MATHML_OPERATOR(170,0x226E,1,.27777f,.27777f) // ≮ infix -MATHML_OPERATOR(171,0xE2A7,1,.27777f,.27777f) // ≰ infix -MATHML_OPERATOR(172,0x2278,1,.27777f,.27777f) // ≸ infix -MATHML_OPERATOR(173,0xE2CB,1,.27777f,.27777f) // ≪̸ infix -MATHML_OPERATOR(174,0x2270,1,.27777f,.27777f) // ⩽̸ infix -MATHML_OPERATOR(175,0x2274,1,.27777f,.27777f) // ≴ infix -MATHML_OPERATOR(176,0xF428,1,.27777f,.27777f) // ⪢̸ infix -MATHML_OPERATOR(177,0xF423,1,.27777f,.27777f) // ⪡̸ infix -MATHML_OPERATOR(178,0x2280,1,.27777f,.27777f) // ⊀ infix -MATHML_OPERATOR(179,0xE5DC,1,.27777f,.27777f) // ⪯̸ infix -MATHML_OPERATOR(180,0x22E0,1,.27777f,.27777f) // ⋠ infix -MATHML_OPERATOR(181,0x22EB,1,.27777f,.27777f) // ⋫ infix -MATHML_OPERATOR(182,0xF413,1,.27777f,.27777f) // ⧐̸ infix -MATHML_OPERATOR(183,0x22ED,1,.27777f,.27777f) // ⋭ infix -MATHML_OPERATOR(184,0x2281,1,.27777f,.27777f) // ⊁ infix -MATHML_OPERATOR(185,0xE5F1,1,.27777f,.27777f) // ⪰̸ infix -MATHML_OPERATOR(186,0x22E1,1,.27777f,.27777f) // ⋡ infix -MATHML_OPERATOR(187,0xE837,1,.27777f,.27777f) // ≿̸ infix -MATHML_OPERATOR(188,0x2241,1,.27777f,.27777f) // ≁ infix -MATHML_OPERATOR(189,0x2244,1,.27777f,.27777f) // ≄ infix -MATHML_OPERATOR(190,0x2247,1,.27777f,.27777f) // ≇ infix -MATHML_OPERATOR(191,0x2249,1,.27777f,.27777f) // ≉ infix -MATHML_OPERATOR(192,0x2224,1,.27777f,.27777f) // ∤ infix -MATHML_OPERATOR(193,0x227A,1,.27777f,.27777f) // ≺ infix -MATHML_OPERATOR(194,0xE2FE,1,.27777f,.27777f) // ⪯ infix -MATHML_OPERATOR(195,0x227C,1,.27777f,.27777f) // ≼ infix -MATHML_OPERATOR(196,0x227E,1,.27777f,.27777f) // ≾ infix -MATHML_OPERATOR(197,0x2237,1,.27777f,.27777f) // ∷ infix -MATHML_OPERATOR(198,0x221D,1,.27777f,.27777f) // ∝ infix -MATHML_OPERATOR(199,0x21CB,(1|(1<<2)),.27777f,.27777f) // ⇋ infix -MATHML_OPERATOR(200,0x22B3,1,.27777f,.27777f) // ⊳ infix -MATHML_OPERATOR(201,0xF411,1,.27777f,.27777f) // ⧐ infix -MATHML_OPERATOR(202,0x22B5,1,.27777f,.27777f) // ⊵ infix -MATHML_OPERATOR(203,0x227B,1,.27777f,.27777f) // ≻ infix -MATHML_OPERATOR(204,0x227D,1,.27777f,.27777f) // ⪰ infix -MATHML_OPERATOR(205,0x227D,1,.27777f,.27777f) // ≽ infix -MATHML_OPERATOR(206,0x227F,1,.27777f,.27777f) // ≿ infix -MATHML_OPERATOR(207,0x223C,1,.27777f,.27777f) // ∼ infix -MATHML_OPERATOR(208,0x2243,1,.27777f,.27777f) // ≃ infix -MATHML_OPERATOR(209,0x2245,1,.27777f,.27777f) // ≅ infix -MATHML_OPERATOR(210,0x2248,1,.27777f,.27777f) // ≈ infix -MATHML_OPERATOR(211,0x22A5,1,.27777f,.27777f) // ⊥ infix -MATHML_OPERATOR(212,0x2223,1,.27777f,.27777f) // ∣ infix -MATHML_OPERATOR(213,0x2294,(1|(1<<2)),.22222f,.22222f) // ⊔ infix -MATHML_OPERATOR(214,0x22C3,(1|(1<<2)),.22222f,.22222f) // ⋃ infix -MATHML_OPERATOR(215,0x228E,(1|(1<<2)),.22222f,.22222f) // ⊎ infix -MATHML_OPERATOR(216,0x002D,1,.22222f,.22222f) // - infix -MATHML_OPERATOR(217,0x002B,1,.22222f,.22222f) // + infix -MATHML_OPERATOR(218,0x22C2,(1|(1<<2)),.22222f,.22222f) // ⋂ infix -MATHML_OPERATOR(219,0x2213,1,.22222f,.22222f) // ∓ infix -MATHML_OPERATOR(220,0x00B1,1,.22222f,.22222f) // ± infix -MATHML_OPERATOR(221,0x2293,(1|(1<<2)),.22222f,.22222f) // ⊓ infix -MATHML_OPERATOR(222,0x22C1,(2|(1<<2)|(1<<5)),0.0f,.16666f) // ⋁ prefix -MATHML_OPERATOR(223,0x2296,(2|(1<<5)),0.0f,.16666f) // ⊖ prefix -MATHML_OPERATOR(224,0x2295,(2|(1<<5)),0.0f,.16666f) // ⊕ prefix -MATHML_OPERATOR(225,0x2211,(2|(1<<2)|(1<<5)),0.0f,.16666f) // ∑ prefix -MATHML_OPERATOR(226,0x22C3,(2|(1<<2)|(1<<5)),0.0f,.16666f) // ⋃ prefix -MATHML_OPERATOR(227,0x228E,(2|(1<<2)|(1<<5)),0.0f,.16666f) // ⊎ prefix -MATHML_OPERATOR(228,0x006C _ 0x0069 _ 0x006D,2,0.0f,.16666f) // lim prefix -MATHML_OPERATOR(229,0x006D _ 0x0061 _ 0x0078,2,0.0f,.16666f) // max prefix -MATHML_OPERATOR(230,0x006D _ 0x0069 _ 0x006E,2,0.0f,.16666f) // min prefix -MATHML_OPERATOR(231,0x2296,1,.16666f,.16666f) // ⊖ infix -MATHML_OPERATOR(232,0x2295,1,.16666f,.16666f) // ⊕ infix -MATHML_OPERATOR(233,0x2232,(2|(1<<2)|(1<<5)),0.0f,0.0f) // ∲ prefix -MATHML_OPERATOR(234,0x222E,(2|(1<<2)|(1<<5)),0.0f,0.0f) // ∮ prefix -MATHML_OPERATOR(235,0x2233,(2|(1<<2)|(1<<5)),0.0f,0.0f) // ∳ prefix -MATHML_OPERATOR(236,0x222F,(2|(1<<2)|(1<<5)),0.0f,0.0f) // ∯ prefix -MATHML_OPERATOR(237,0x222B,(2|(1<<2)|(1<<5)),0.0f,0.0f) // ∫ prefix -MATHML_OPERATOR(238,0x22D3,1,.16666f,.16666f) // ⋓ infix -MATHML_OPERATOR(239,0x22D2,1,.16666f,.16666f) // ⋒ infix -MATHML_OPERATOR(240,0x2240,1,.16666f,.16666f) // ≀ infix -MATHML_OPERATOR(241,0x22C0,(2|(1<<2)|(1<<5)),0.0f,.16666f) // ⋀ prefix -MATHML_OPERATOR(242,0x2297,(2|(1<<5)),0.0f,.16666f) // ⊗ prefix -MATHML_OPERATOR(243,0x2210,(2|(1<<2)|(1<<5)),0.0f,.16666f) // ∐ prefix -MATHML_OPERATOR(244,0x220F,(2|(1<<2)|(1<<5)),0.0f,.16666f) // ∏ prefix -MATHML_OPERATOR(245,0x22C2,(2|(1<<2)|(1<<5)),0.0f,.16666f) // ⋂ prefix -MATHML_OPERATOR(246,0x2210,1,.16666f,.16666f) // ∐ infix -MATHML_OPERATOR(247,0x22C6,1,.16666f,.16666f) // ⋆ infix -MATHML_OPERATOR(248,0x2299,(2|(1<<5)),0.0f,.16666f) // ⊙ prefix -MATHML_OPERATOR(249,0x002A,1,.16666f,.16666f) // * infix -MATHML_OPERATOR(250,0xE89E,1,0.0f,0.0f) // ⁢ infix -MATHML_OPERATOR(251,0x00B7,1,.16666f,.16666f) // · infix -MATHML_OPERATOR(252,0x2297,1,.16666f,.16666f) // ⊗ infix -MATHML_OPERATOR(253,0x22C1,1,.16666f,.16666f) // ⋁ infix -MATHML_OPERATOR(254,0x22C0,1,.16666f,.16666f) // ⋀ infix -MATHML_OPERATOR(255,0x22C4,1,.16666f,.16666f) // ⋄ infix -MATHML_OPERATOR(256,0x2216,(1|(1<<2)),.16666f,.16666f) // ∖ infix -MATHML_OPERATOR(257,0x002F,(1|(1<<2)),.16666f,.16666f) // / infix -MATHML_OPERATOR(258,0x002D,2,0.0f,.05555f) // - prefix -MATHML_OPERATOR(259,0x002B,2,0.0f,.05555f) // + prefix -MATHML_OPERATOR(260,0x2213,2,0.0f,.05555f) // ∓ prefix -MATHML_OPERATOR(261,0x00B1,2,0.0f,.05555f) // ± prefix -MATHML_OPERATOR(262,0x002E,1,0.0f,0.0f) // . infix -MATHML_OPERATOR(263,0xE619,1,.11111f,.11111f) // ⨯ infix -MATHML_OPERATOR(264,0x002A _ 0x002A,1,.11111f,.11111f) // ** infix -MATHML_OPERATOR(265,0x2299,1,.11111f,.11111f) // ⊙ infix -MATHML_OPERATOR(266,0x2218,1,.11111f,.11111f) // ∘ infix -MATHML_OPERATOR(267,0x25A1,2,0.0f,.11111f) // □ prefix -MATHML_OPERATOR(268,0x2207,2,0.0f,.11111f) // ∇ prefix -MATHML_OPERATOR(269,0x2202,2,0.0f,.11111f) // ∂ prefix -MATHML_OPERATOR(270,0xF74B,2,0.0f,.11111f) // ⅅ prefix -MATHML_OPERATOR(271,0xF74C,2,0.0f,.11111f) // ⅆ prefix -MATHML_OPERATOR(272,0x221A,(2|(1<<2)),0.0f,.11111f) // √ prefix -MATHML_OPERATOR(273,0x21D3,(1|(1<<2)),.11111f,.11111f) // ⇓ infix -MATHML_OPERATOR(274,0xE200,(1|(1<<2)),.11111f,.11111f) // ⟸ infix -MATHML_OPERATOR(275,0xE202,(1|(1<<2)),.11111f,.11111f) // ⟺ infix -MATHML_OPERATOR(276,0xE204,(1|(1<<2)),.11111f,.11111f) // ⟹ infix -MATHML_OPERATOR(277,0x21D1,(1|(1<<2)),.11111f,.11111f) // ⇑ infix -MATHML_OPERATOR(278,0x21D5,(1|(1<<2)),.11111f,.11111f) // ⇕ infix -MATHML_OPERATOR(279,0x2193,(1|(1<<2)),.11111f,.11111f) // ↓ infix -MATHML_OPERATOR(280,0xF504,(1|(1<<2)),.11111f,.11111f) // ⤓ infix -MATHML_OPERATOR(281,0xE216,(1|(1<<2)),.11111f,.11111f) // ⇵ infix -MATHML_OPERATOR(282,0x21A7,(1|(1<<2)),.11111f,.11111f) // ↧ infix -MATHML_OPERATOR(283,0xF519,(1|(1<<2)),.11111f,.11111f) // ⥡ infix -MATHML_OPERATOR(284,0x21C3,(1|(1<<2)),.11111f,.11111f) // ⇃ infix -MATHML_OPERATOR(285,0xF517,(1|(1<<2)),.11111f,.11111f) // ⥙ infix -MATHML_OPERATOR(286,0xF515,(1|(1<<2)),.11111f,.11111f) // ⥑ infix -MATHML_OPERATOR(287,0xF518,(1|(1<<2)),.11111f,.11111f) // ⥠ infix -MATHML_OPERATOR(288,0x21BF,(1|(1<<2)),.11111f,.11111f) // ↿ infix -MATHML_OPERATOR(289,0xF516,(1|(1<<2)),.11111f,.11111f) // ⥘ infix -MATHML_OPERATOR(290,0xE201,(1|(1<<2)),.11111f,.11111f) // ⟵ infix -MATHML_OPERATOR(291,0xE203,(1|(1<<2)),.11111f,.11111f) // ⟷ infix -MATHML_OPERATOR(292,0xE205,(1|(1<<2)),.11111f,.11111f) // ⟶ infix -MATHML_OPERATOR(293,0xE217,(1|(1<<2)),.11111f,.11111f) // ⥯ infix -MATHML_OPERATOR(294,0xF514,(1|(1<<2)),.11111f,.11111f) // ⥝ infix -MATHML_OPERATOR(295,0x21C2,(1|(1<<2)),.11111f,.11111f) // ⇂ infix -MATHML_OPERATOR(296,0xF512,(1|(1<<2)),.11111f,.11111f) // ⥕ infix -MATHML_OPERATOR(297,0xF510,(1|(1<<2)),.11111f,.11111f) // ⥏ infix -MATHML_OPERATOR(298,0xF513,(1|(1<<2)),.11111f,.11111f) // ⥜ infix -MATHML_OPERATOR(299,0x21BE,(1|(1<<2)),.11111f,.11111f) // ↾ infix -MATHML_OPERATOR(300,0xF511,(1|(1<<2)),.11111f,.11111f) // ⥔ infix -MATHML_OPERATOR(301,0xE87F,1,.11111f,.11111f) // ↓ infix -MATHML_OPERATOR(302,0xE880,1,.11111f,.11111f) // ↑ infix -MATHML_OPERATOR(303,0x2191,(1|(1<<2)),.11111f,.11111f) // ↑ infix -MATHML_OPERATOR(304,0xF503,(1|(1<<2)),.11111f,.11111f) // ⤒ infix -MATHML_OPERATOR(305,0x21C5,(1|(1<<2)),.11111f,.11111f) // ⇅ infix -MATHML_OPERATOR(306,0x2195,(1|(1<<2)),.11111f,.11111f) // ↕ infix -MATHML_OPERATOR(307,0xE218,(1|(1<<2)),.11111f,.11111f) // ⥮ infix -MATHML_OPERATOR(308,0x21A5,(1|(1<<2)),.11111f,.11111f) // ↥ infix -MATHML_OPERATOR(309,0x005E,1,.11111f,.11111f) // ^ infix -MATHML_OPERATOR(310,0x003C _ 0x003E,1,.11111f,.11111f) // <> infix -MATHML_OPERATOR(311,0x0027,3,.11111f,0.0f) // ' postfix -MATHML_OPERATOR(312,0x0021,3,.11111f,0.0f) // ! postfix -MATHML_OPERATOR(313,0x0021 _ 0x0021,3,.11111f,0.0f) // !! postfix -MATHML_OPERATOR(314,0x007E,1,.11111f,.11111f) // ~ infix -MATHML_OPERATOR(315,0x0040,1,.11111f,.11111f) // @ infix -MATHML_OPERATOR(316,0x002D _ 0x002D,3,.11111f,0.0f) // -- postfix -MATHML_OPERATOR(317,0x002D _ 0x002D,2,0.0f,.11111f) // -- prefix -MATHML_OPERATOR(318,0x002B _ 0x002B,3,.11111f,0.0f) // ++ postfix -MATHML_OPERATOR(319,0x002B _ 0x002B,2,0.0f,.11111f) // ++ prefix -MATHML_OPERATOR(320,0xE8A0,1,0.0f,0.0f) // ⁡ infix -MATHML_OPERATOR(321,0x003F,1,.11111f,.11111f) // ? infix -MATHML_OPERATOR(322,0x005F,1,.11111f,.11111f) // _ infix -MATHML_OPERATOR(323,0x02D8,(3|(1<<4)),0.0f,0.0f) // ˘ postfix -MATHML_OPERATOR(324,0x00B8,(3|(1<<4)),0.0f,0.0f) // ¸ postfix -MATHML_OPERATOR(325,0x0060,(3|(1<<4)),0.0f,0.0f) // ` postfix -MATHML_OPERATOR(326,0x02D9,(3|(1<<4)),0.0f,0.0f) // ˙ postfix -MATHML_OPERATOR(327,0x02DD,(3|(1<<4)),0.0f,0.0f) // ˝ postfix -MATHML_OPERATOR(328,0x00B4,(3|(1<<4)),0.0f,0.0f) // ´ postfix -MATHML_OPERATOR(329,0x02DC,(3|(1<<2)|(1<<4)),0.0f,0.0f) // ˜ postfix -MATHML_OPERATOR(330,0x00A8,(3|(1<<4)),0.0f,0.0f) // ¨ postfix -MATHML_OPERATOR(331,0x0311,(3|(1<<4)),0.0f,0.0f) // ̑ postfix -MATHML_OPERATOR(332,0x02C7,(3|(1<<2)|(1<<4)),0.0f,0.0f) // ˇ postfix -MATHML_OPERATOR(333,0x0302,(3|(1<<2)|(1<<4)),0.0f,0.0f) // ^ postfix -MATHML_OPERATOR(334,0x00AF,(3|(1<<2)|(1<<4)),0.0f,0.0f) // ‾ postfix -MATHML_OPERATOR(335,0xF612,(3|(1<<2)|(1<<4)),0.0f,0.0f) // ⏞ postfix -MATHML_OPERATOR(336,0xF614,(3|(1<<2)|(1<<4)),0.0f,0.0f) // ⎴ postfix -MATHML_OPERATOR(337,0xF610,(3|(1<<2)|(1<<4)),0.0f,0.0f) // ⏜ postfix -MATHML_OPERATOR(338,0x20DB,(3|(1<<4)),0.0f,0.0f) // ⃛ postfix -MATHML_OPERATOR(339,0x0332,(3|(1<<2)|(1<<4)),0.0f,0.0f) // _ postfix -MATHML_OPERATOR(340,0xF613,(3|(1<<2)|(1<<4)),0.0f,0.0f) // ⏟ postfix -MATHML_OPERATOR(341,0xF615,(3|(1<<2)|(1<<4)),0.0f,0.0f) // ⎵ postfix -MATHML_OPERATOR(342,0xF611,(3|(1<<2)|(1<<4)),0.0f,0.0f) // ⏝ postfix +// short names for a short while +#define INFIX NS_MATHML_OPERATOR_FORM_INFIX +#define PREFIX NS_MATHML_OPERATOR_FORM_PREFIX +#define POSTFIX NS_MATHML_OPERATOR_FORM_POSTFIX +#define STRETCHY NS_MATHML_OPERATOR_STRETCHY +#define FENCE NS_MATHML_OPERATOR_FENCE +#define ACCENT NS_MATHML_OPERATOR_ACCENT +#define LARGEOP NS_MATHML_OPERATOR_LARGEOP +#define SEPARATOR NS_MATHML_OPERATOR_SEPARATOR +#define MOVABLELIMITS NS_MATHML_OPERATOR_MOVABLELIMITS + +MATHML_OPERATOR( 0,0x0028,PREFIX|STRETCHY|FENCE,0.0f,0.0f) // ( +MATHML_OPERATOR( 1,0x0029,POSTFIX|STRETCHY|FENCE,0.0f,0.0f) // ) +MATHML_OPERATOR( 2,0x005B,PREFIX|STRETCHY|FENCE,0.0f,0.0f) // [ +MATHML_OPERATOR( 3,0x005D,POSTFIX|STRETCHY|FENCE,0.0f,0.0f) // ] +MATHML_OPERATOR( 4,0x007B,PREFIX|STRETCHY|FENCE,0.0f,0.0f) // { +MATHML_OPERATOR( 5,0x007D,POSTFIX|STRETCHY|FENCE,0.0f,0.0f) // } +MATHML_OPERATOR( 6,0x201D,POSTFIX|FENCE,0.0f,0.0f) // ” +MATHML_OPERATOR( 7,0x2019,POSTFIX|FENCE,0.0f,0.0f) // ’ +MATHML_OPERATOR( 8,0x3008,PREFIX|STRETCHY|FENCE,0.0f,0.0f) // ⟨ +MATHML_OPERATOR( 9,0xF603,PREFIX|STRETCHY|FENCE,0.0f,0.0f) // &LeftBracketingBar; +MATHML_OPERATOR( 10,0x2308,PREFIX|STRETCHY|FENCE,0.0f,0.0f) // ⌈ +MATHML_OPERATOR( 11,0x301A,PREFIX|STRETCHY|FENCE,0.0f,0.0f) // ⟦ +MATHML_OPERATOR( 12,0xF605,PREFIX|STRETCHY|FENCE,0.0f,0.0f) // &LeftDoubleBracketingBar; +MATHML_OPERATOR( 13,0x230A,PREFIX|STRETCHY|FENCE,0.0f,0.0f) // ⌊ +MATHML_OPERATOR( 14,0x201C,PREFIX|FENCE,0.0f,0.0f) // “ +MATHML_OPERATOR( 15,0x2018,PREFIX|FENCE,0.0f,0.0f) // ‘ +MATHML_OPERATOR( 16,0x3009,POSTFIX|STRETCHY|FENCE,0.0f,0.0f) // ⟩ +MATHML_OPERATOR( 17,0xF604,POSTFIX|STRETCHY|FENCE,0.0f,0.0f) // &RightBracketingBar; +MATHML_OPERATOR( 18,0x2309,POSTFIX|STRETCHY|FENCE,0.0f,0.0f) // ⌉ +MATHML_OPERATOR( 19,0x301B,POSTFIX|STRETCHY|FENCE,0.0f,0.0f) // ⟧ +MATHML_OPERATOR( 20,0xF606,POSTFIX|STRETCHY|FENCE,0.0f,0.0f) // &RightDoubleBracketingBar; +MATHML_OPERATOR( 21,0x230B,POSTFIX|STRETCHY|FENCE,0.0f,0.0f) // ⌋ +MATHML_OPERATOR( 22,0xE850,PREFIX|FENCE,0.0f,0.0f) // &LeftSkeleton; +MATHML_OPERATOR( 23,0xE851,POSTFIX|FENCE,0.0f,0.0f) // &RightSkeleton; +MATHML_OPERATOR( 24,0xE89C,INFIX|SEPARATOR,0.0f,0.0f) // ⁣ +MATHML_OPERATOR( 25,0x002C,INFIX|SEPARATOR,0.0f,.33333f) // , +MATHML_OPERATOR( 26,0xE859,INFIX|STRETCHY,0.0f,0.0f) // ─ +MATHML_OPERATOR( 27,0xE85A,INFIX|STRETCHY,0.0f,0.0f) // | +MATHML_OPERATOR( 28,0x003B,INFIX|SEPARATOR,0.0f,.27777f) // ; +MATHML_OPERATOR( 29,0x003B,POSTFIX|SEPARATOR,0.0f,0.0f) // ; +MATHML_OPERATOR( 30,0x003A _ 0x003D,INFIX,.27777f,.27777f) // := +MATHML_OPERATOR( 31,0xE85B,INFIX,.27777f,.27777f) // ≔ +MATHML_OPERATOR( 32,0x2235,INFIX,.27777f,.27777f) // ∵ +MATHML_OPERATOR( 33,0x2234,INFIX,.27777f,.27777f) // ∴ +MATHML_OPERATOR( 34,0xE85C,INFIX|STRETCHY,.27777f,.27777f) // ❘ +MATHML_OPERATOR( 35,0x002F _ 0x002F,INFIX,.27777f,.27777f) // // +MATHML_OPERATOR( 36,0x2237,INFIX,.27777f,.27777f) // ∷ ∷ +MATHML_OPERATOR( 37,0x0026,PREFIX,0.0f,.27777f) // & +MATHML_OPERATOR( 38,0x0026,POSTFIX,.27777f,0.0f) // & +MATHML_OPERATOR( 39,0x002A _ 0x003D,INFIX,.27777f,.27777f) // *= +MATHML_OPERATOR( 40,0x002D _ 0x003D,INFIX,.27777f,.27777f) // -= +MATHML_OPERATOR( 41,0x002B _ 0x003D,INFIX,.27777f,.27777f) // += +MATHML_OPERATOR( 42,0x002F _ 0x003D,INFIX,.27777f,.27777f) // /= +MATHML_OPERATOR( 43,0x002D _ 0x003E,INFIX,.27777f,.27777f) // -> +MATHML_OPERATOR( 44,0x003A,INFIX,.27777f,.27777f) // : +MATHML_OPERATOR( 45,0x002E _ 0x002E,POSTFIX,.22222f,0.0f) // .. +MATHML_OPERATOR( 46,0x002E _ 0x002E _ 0x002E,POSTFIX,.22222f,0.0f) // ... +MATHML_OPERATOR( 47,0x220B,INFIX,.27777f,.27777f) // ∋ ∋ +MATHML_OPERATOR( 48,0xE30F,INFIX,.27777f,.27777f) // ⫤ +MATHML_OPERATOR( 49,0x22A8,INFIX,.27777f,.27777f) // ⊨ +MATHML_OPERATOR( 50,0x22A4,INFIX,.27777f,.27777f) // ⊤ +MATHML_OPERATOR( 51,0x22A3,INFIX,.27777f,.27777f) // ⊣ +MATHML_OPERATOR( 52,0x22A2,INFIX,.27777f,.27777f) // ⊢ +MATHML_OPERATOR( 53,0x21D2,INFIX|STRETCHY,.27777f,.27777f) // ⇒ ⇒ +MATHML_OPERATOR( 54,0xF524,INFIX,.27777f,.27777f) // ⥰ +MATHML_OPERATOR( 55,0x007C,INFIX|STRETCHY,.27777f,.27777f) // | +MATHML_OPERATOR( 56,0x007C _ 0x007C,INFIX,.22222f,.22222f) // || +MATHML_OPERATOR( 57,0xE375,INFIX|STRETCHY,.22222f,.22222f) // ⩔ +MATHML_OPERATOR( 58,0x0026 _ 0x0026,INFIX,.27777f,.27777f) // && +MATHML_OPERATOR( 59,0xE374,INFIX|STRETCHY,.22222f,.22222f) // ⩓ +MATHML_OPERATOR( 60,0x0026,INFIX,.27777f,.27777f) // & +MATHML_OPERATOR( 61,0x0021,PREFIX,0.0f,.27777f) // ! +MATHML_OPERATOR( 62,0xE3AC,PREFIX,0.0f,.27777f) // ⫬ +MATHML_OPERATOR( 63,0x2203,PREFIX,0.0f,.27777f) // ∃ +MATHML_OPERATOR( 64,0x2200,PREFIX,0.0f,.27777f) // ∀ +MATHML_OPERATOR( 65,0x2204,PREFIX,0.0f,.27777f) // ∄ +MATHML_OPERATOR( 66,0x2208,INFIX,.27777f,.27777f) // ∈ +MATHML_OPERATOR( 67,0x2209,INFIX,.27777f,.27777f) // ∉ +MATHML_OPERATOR( 68,0x220C,INFIX,.27777f,.27777f) // ∌ +MATHML_OPERATOR( 69,0xE604,INFIX,.27777f,.27777f) // ⊏̸ +MATHML_OPERATOR( 70,0x22E2,INFIX,.27777f,.27777f) // ⋢ +MATHML_OPERATOR( 71,0xE615,INFIX,.27777f,.27777f) // ⊐̸ +MATHML_OPERATOR( 72,0x22E3,INFIX,.27777f,.27777f) // ⋣ +MATHML_OPERATOR( 73,0x2284,INFIX,.27777f,.27777f) // ⊂⃒ +MATHML_OPERATOR( 74,0x2288,INFIX,.27777f,.27777f) // ⊈ +MATHML_OPERATOR( 75,0x2285,INFIX,.27777f,.27777f) // ⊃⃒ +MATHML_OPERATOR( 76,0x2289,INFIX,.27777f,.27777f) // ⊉ +MATHML_OPERATOR( 77,0x228F,INFIX,.27777f,.27777f) // ⊏ +MATHML_OPERATOR( 78,0x2291,INFIX,.27777f,.27777f) // ⊑ +MATHML_OPERATOR( 79,0x2290,INFIX,.27777f,.27777f) // ⊐ +MATHML_OPERATOR( 80,0x2292,INFIX,.27777f,.27777f) // ⊒ +MATHML_OPERATOR( 81,0x22D0,INFIX,.27777f,.27777f) // ⋐ +MATHML_OPERATOR( 82,0x2286,INFIX,.27777f,.27777f) // ⊆ +MATHML_OPERATOR( 83,0x2283,INFIX,.27777f,.27777f) // ⊃ +MATHML_OPERATOR( 84,0x2287,INFIX,.27777f,.27777f) // ⊇ +MATHML_OPERATOR( 85,0x21D0,INFIX|STRETCHY,.27777f,.27777f) // ⇐ +MATHML_OPERATOR( 86,0x21D4,INFIX|STRETCHY,.27777f,.27777f) // ⇔ +MATHML_OPERATOR( 87,0xF50B,INFIX|STRETCHY,.27777f,.27777f) // ⥐ +MATHML_OPERATOR( 88,0xF50E,INFIX|STRETCHY,.27777f,.27777f) // ⥞ +MATHML_OPERATOR( 89,0x21BD,INFIX|STRETCHY,.27777f,.27777f) // ↽ +MATHML_OPERATOR( 90,0xF50C,INFIX|STRETCHY,.27777f,.27777f) // ⥖ +MATHML_OPERATOR( 91,0xF50F,INFIX|STRETCHY,.27777f,.27777f) // ⥟ +MATHML_OPERATOR( 92,0x21C1,INFIX|STRETCHY,.27777f,.27777f) // ⇁ +MATHML_OPERATOR( 93,0xF50D,INFIX|STRETCHY,.27777f,.27777f) // ⥗ +MATHML_OPERATOR( 94,0x2190,INFIX|STRETCHY,.27777f,.27777f) // ← +MATHML_OPERATOR( 95,0x21E4,INFIX|STRETCHY,.27777f,.27777f) // ⇤ +MATHML_OPERATOR( 96,0x21C6,INFIX|STRETCHY,.27777f,.27777f) // ⇆ +MATHML_OPERATOR( 97,0x2194,INFIX|STRETCHY,.27777f,.27777f) // ↔ +MATHML_OPERATOR( 98,0xF505,INFIX|STRETCHY,.27777f,.27777f) // ⥎ +MATHML_OPERATOR( 99,0x21A4,INFIX|STRETCHY,.27777f,.27777f) // ↤ +MATHML_OPERATOR(100,0xF509,INFIX|STRETCHY,.27777f,.27777f) // ⥚ +MATHML_OPERATOR(101,0x21BC,INFIX|STRETCHY,.27777f,.27777f) // ↼ +MATHML_OPERATOR(102,0xF507,INFIX|STRETCHY,.27777f,.27777f) // ⥒ +MATHML_OPERATOR(103,0x2199,INFIX|STRETCHY,.27777f,.27777f) // ↙ +MATHML_OPERATOR(104,0x2198,INFIX|STRETCHY,.27777f,.27777f) // ↘ +MATHML_OPERATOR(105,0x2192,INFIX|STRETCHY,.27777f,.27777f) // → +MATHML_OPERATOR(106,0x21E5,INFIX|STRETCHY,.27777f,.27777f) // ⇥ +MATHML_OPERATOR(107,0x21C4,INFIX|STRETCHY,.27777f,.27777f) // ⇄ +MATHML_OPERATOR(108,0x21A6,INFIX|STRETCHY,.27777f,.27777f) // ↦ +MATHML_OPERATOR(109,0xF50A,INFIX|STRETCHY,.27777f,.27777f) // ⥛ +MATHML_OPERATOR(110,0x21C0,INFIX|STRETCHY,.27777f,.27777f) // ⇀ +MATHML_OPERATOR(111,0xF508,INFIX|STRETCHY,.27777f,.27777f) // ⥓ +MATHML_OPERATOR(112,0xE233,INFIX,.27777f,.27777f) // ← +MATHML_OPERATOR(113,0xE232,INFIX,.27777f,.27777f) // → +MATHML_OPERATOR(114,0x2196,INFIX|STRETCHY,.27777f,.27777f) // ↖ +MATHML_OPERATOR(115,0x2197,INFIX|STRETCHY,.27777f,.27777f) // ↗ +MATHML_OPERATOR(116,0x003D,INFIX,.27777f,.27777f) // = +MATHML_OPERATOR(117,0x003C,INFIX,.27777f,.27777f) // < +MATHML_OPERATOR(118,0x003E,INFIX,.27777f,.27777f) // > +MATHML_OPERATOR(119,0x0021 _ 0x003D,INFIX,.27777f,.27777f) // != +MATHML_OPERATOR(120,0x003D _ 0x003D,INFIX,.27777f,.27777f) // == +MATHML_OPERATOR(121,0x003C _ 0x003D,INFIX,.27777f,.27777f) // <= +MATHML_OPERATOR(122,0x003E _ 0x003D,INFIX,.27777f,.27777f) // >= +MATHML_OPERATOR(123,0x2261,INFIX,.27777f,.27777f) // ≡ +MATHML_OPERATOR(124,0x224D,INFIX,.27777f,.27777f) // ≍ +MATHML_OPERATOR(125,0x2250,INFIX,.27777f,.27777f) // ≐ +MATHML_OPERATOR(126,0x2225,INFIX,.27777f,.27777f) // ∥ +MATHML_OPERATOR(127,0xF431,INFIX,.27777f,.27777f) // ⩵ +MATHML_OPERATOR(128,0x2242,INFIX,.27777f,.27777f) // ≂ +MATHML_OPERATOR(129,0x21CC,INFIX|STRETCHY,.27777f,.27777f) // ⇌ +MATHML_OPERATOR(130,0x2265,INFIX,.27777f,.27777f) // ≥ +MATHML_OPERATOR(131,0x22DB,INFIX,.27777f,.27777f) // ⋛ +MATHML_OPERATOR(132,0x2267,INFIX,.27777f,.27777f) // ≧ +MATHML_OPERATOR(133,0xE2F7,INFIX,.27777f,.27777f) // ⪢ +MATHML_OPERATOR(134,0x2277,INFIX,.27777f,.27777f) // ≷ +MATHML_OPERATOR(135,0xE2F6,INFIX,.27777f,.27777f) // ⩾ +MATHML_OPERATOR(136,0x2273,INFIX,.27777f,.27777f) // ≳ +MATHML_OPERATOR(137,0x224E,INFIX,.27777f,.27777f) // ≎ +MATHML_OPERATOR(138,0x224F,INFIX,.27777f,.27777f) // ≏ +MATHML_OPERATOR(139,0x22B2,INFIX,.27777f,.27777f) // ⊲ +MATHML_OPERATOR(140,0xF410,INFIX,.27777f,.27777f) // ⧏ +MATHML_OPERATOR(141,0x22B4,INFIX,.27777f,.27777f) // ⊴ +MATHML_OPERATOR(142,0x2264,INFIX,.27777f,.27777f) // ≤ +MATHML_OPERATOR(143,0x22DA,INFIX,.27777f,.27777f) // ⋚ +MATHML_OPERATOR(144,0x2266,INFIX,.27777f,.27777f) // ≦ +MATHML_OPERATOR(145,0x2276,INFIX,.27777f,.27777f) // ≶ +MATHML_OPERATOR(146,0xE2FB,INFIX,.27777f,.27777f) // ⪡ +MATHML_OPERATOR(147,0xE2FA,INFIX,.27777f,.27777f) // ⩽ +MATHML_OPERATOR(148,0x2272,INFIX,.27777f,.27777f) // ≲ +MATHML_OPERATOR(149,0x226B,INFIX,.27777f,.27777f) // ≫ +MATHML_OPERATOR(150,0x226A,INFIX,.27777f,.27777f) // ≪ +MATHML_OPERATOR(151,0x2262,INFIX,.27777f,.27777f) // ≢ +MATHML_OPERATOR(152,0x226D,INFIX,.27777f,.27777f) // ≭ +MATHML_OPERATOR(153,0x2226,INFIX,.27777f,.27777f) // ∦ +MATHML_OPERATOR(154,0x2260,INFIX,.27777f,.27777f) // ≠ +MATHML_OPERATOR(155,0xE84E,INFIX,.27777f,.27777f) // ≂̸ +MATHML_OPERATOR(156,0x226F,INFIX,.27777f,.27777f) // ≯ +MATHML_OPERATOR(157,0xE2A6,INFIX,.27777f,.27777f) // ≱ +MATHML_OPERATOR(158,0x2270,INFIX,.27777f,.27777f) // ≧̸ ⩽̸ +MATHML_OPERATOR(159,0xE2CC,INFIX,.27777f,.27777f) // ≫̸ +MATHML_OPERATOR(160,0x2279,INFIX,.27777f,.27777f) // ≹ +MATHML_OPERATOR(161,0x2271,INFIX,.27777f,.27777f) // ⩾̸ +MATHML_OPERATOR(162,0x2275,INFIX,.27777f,.27777f) // ≵ +MATHML_OPERATOR(163,0xE616,INFIX,.27777f,.27777f) // ≎̸ +MATHML_OPERATOR(164,0xE84D,INFIX,.27777f,.27777f) // ≏̸ +MATHML_OPERATOR(165,0x22EA,INFIX,.27777f,.27777f) // ⋪ +MATHML_OPERATOR(166,0xF412,INFIX,.27777f,.27777f) // ⧏̸ +MATHML_OPERATOR(167,0x22EC,INFIX,.27777f,.27777f) // ⋬ +MATHML_OPERATOR(168,0x226E,INFIX,.27777f,.27777f) // ≮ +MATHML_OPERATOR(169,0xE2A7,INFIX,.27777f,.27777f) // ≰ +MATHML_OPERATOR(170,0x2278,INFIX,.27777f,.27777f) // ≸ +MATHML_OPERATOR(171,0xE2CB,INFIX,.27777f,.27777f) // ≪̸ +MATHML_OPERATOR(172,0x2274,INFIX,.27777f,.27777f) // ≴ +MATHML_OPERATOR(173,0xF428,INFIX,.27777f,.27777f) // ⪢̸ +MATHML_OPERATOR(174,0xF423,INFIX,.27777f,.27777f) // ⪡̸ +MATHML_OPERATOR(175,0x2280,INFIX,.27777f,.27777f) // ⊀ +MATHML_OPERATOR(176,0xE5DC,INFIX,.27777f,.27777f) // ⪯̸ +MATHML_OPERATOR(177,0x22E0,INFIX,.27777f,.27777f) // ⋠ +MATHML_OPERATOR(178,0x22EB,INFIX,.27777f,.27777f) // ⋫ +MATHML_OPERATOR(179,0xF413,INFIX,.27777f,.27777f) // ⧐̸ +MATHML_OPERATOR(180,0x22ED,INFIX,.27777f,.27777f) // ⋭ +MATHML_OPERATOR(181,0x2281,INFIX,.27777f,.27777f) // ⊁ +MATHML_OPERATOR(182,0xE5F1,INFIX,.27777f,.27777f) // ⪰̸ +MATHML_OPERATOR(183,0x22E1,INFIX,.27777f,.27777f) // ⋡ +MATHML_OPERATOR(184,0xE837,INFIX,.27777f,.27777f) // ≿̸ +MATHML_OPERATOR(185,0x2241,INFIX,.27777f,.27777f) // ≁ +MATHML_OPERATOR(186,0x2244,INFIX,.27777f,.27777f) // ≄ +MATHML_OPERATOR(187,0x2247,INFIX,.27777f,.27777f) // ≇ +MATHML_OPERATOR(188,0x2249,INFIX,.27777f,.27777f) // ≉ +MATHML_OPERATOR(189,0x2224,INFIX,.27777f,.27777f) // ∤ +MATHML_OPERATOR(190,0x227A,INFIX,.27777f,.27777f) // ≺ +MATHML_OPERATOR(191,0xE2FE,INFIX,.27777f,.27777f) // ⪯ +MATHML_OPERATOR(192,0x227C,INFIX,.27777f,.27777f) // ≼ +MATHML_OPERATOR(193,0x227E,INFIX,.27777f,.27777f) // ≾ +MATHML_OPERATOR(194,0x221D,INFIX,.27777f,.27777f) // ∝ +MATHML_OPERATOR(195,0x21CB,INFIX|STRETCHY,.27777f,.27777f) // ⇋ +MATHML_OPERATOR(196,0x22B3,INFIX,.27777f,.27777f) // ⊳ +MATHML_OPERATOR(197,0xF411,INFIX,.27777f,.27777f) // ⧐ +MATHML_OPERATOR(198,0x22B5,INFIX,.27777f,.27777f) // ⊵ +MATHML_OPERATOR(199,0x227B,INFIX,.27777f,.27777f) // ≻ +MATHML_OPERATOR(200,0x227D,INFIX,.27777f,.27777f) // ⪰ ≽ +MATHML_OPERATOR(201,0x227F,INFIX,.27777f,.27777f) // ≿ +MATHML_OPERATOR(202,0x223C,INFIX,.27777f,.27777f) // ∼ +MATHML_OPERATOR(203,0x2243,INFIX,.27777f,.27777f) // ≃ +MATHML_OPERATOR(204,0x2245,INFIX,.27777f,.27777f) // ≅ +MATHML_OPERATOR(205,0x2248,INFIX,.27777f,.27777f) // ≈ +MATHML_OPERATOR(206,0x22A5,INFIX,.27777f,.27777f) // ⊥ +MATHML_OPERATOR(207,0x2223,INFIX,.27777f,.27777f) // ∣ +MATHML_OPERATOR(208,0x2294,INFIX|STRETCHY,.22222f,.22222f) // ⊔ +MATHML_OPERATOR(209,0x22C3,INFIX|STRETCHY,.22222f,.22222f) // ⋃ +MATHML_OPERATOR(210,0x228E,INFIX|STRETCHY,.22222f,.22222f) // ⊎ +MATHML_OPERATOR(211,0x002D,INFIX,.22222f,.22222f) // - +MATHML_OPERATOR(212,0x002B,INFIX,.22222f,.22222f) // + +MATHML_OPERATOR(213,0x22C2,INFIX|STRETCHY,.22222f,.22222f) // ⋂ +MATHML_OPERATOR(214,0x2213,INFIX,.22222f,.22222f) // ∓ +MATHML_OPERATOR(215,0x00B1,INFIX,.22222f,.22222f) // ± +MATHML_OPERATOR(216,0x2293,INFIX|STRETCHY,.22222f,.22222f) // ⊓ +MATHML_OPERATOR(217,0x22C1,PREFIX|STRETCHY|LARGEOP|MOVABLELIMITS,0.0f,.16666f) // ⋁ +MATHML_OPERATOR(218,0x2296,PREFIX|LARGEOP|MOVABLELIMITS,0.0f,.16666f) // ⊖ +MATHML_OPERATOR(219,0x2295,PREFIX|LARGEOP|MOVABLELIMITS,0.0f,.16666f) // ⊕ +MATHML_OPERATOR(220,0x2211,PREFIX|STRETCHY|LARGEOP|MOVABLELIMITS,0.0f,.16666f) // ∑ +MATHML_OPERATOR(221,0x22C3,PREFIX|STRETCHY|LARGEOP|MOVABLELIMITS,0.0f,.16666f) // ⋃ +MATHML_OPERATOR(222,0x228E,PREFIX|STRETCHY|LARGEOP|MOVABLELIMITS,0.0f,.16666f) // ⊎ +MATHML_OPERATOR(223,0x006C _ 0x0069 _ 0x006D,PREFIX|MOVABLELIMITS,0.0f,.16666f) // lim +MATHML_OPERATOR(224,0x006D _ 0x0061 _ 0x0078,PREFIX|MOVABLELIMITS,0.0f,.16666f) // max +MATHML_OPERATOR(225,0x006D _ 0x0069 _ 0x006E,PREFIX|MOVABLELIMITS,0.0f,.16666f) // min +MATHML_OPERATOR(226,0x2296,INFIX,.16666f,.16666f) // ⊖ +MATHML_OPERATOR(227,0x2295,INFIX,.16666f,.16666f) // ⊕ +MATHML_OPERATOR(228,0x2232,PREFIX|STRETCHY|LARGEOP,0.0f,0.0f) // ∲ +MATHML_OPERATOR(229,0x222E,PREFIX|STRETCHY|LARGEOP,0.0f,0.0f) // ∮ +MATHML_OPERATOR(230,0x2233,PREFIX|STRETCHY|LARGEOP,0.0f,0.0f) // ∳ +MATHML_OPERATOR(231,0x222F,PREFIX|STRETCHY|LARGEOP,0.0f,0.0f) // ∯ +MATHML_OPERATOR(232,0x222B,PREFIX|STRETCHY|LARGEOP,0.0f,0.0f) // ∫ +MATHML_OPERATOR(233,0x22D3,INFIX,.16666f,.16666f) // ⋓ +MATHML_OPERATOR(234,0x22D2,INFIX,.16666f,.16666f) // ⋒ +MATHML_OPERATOR(235,0x2240,INFIX,.16666f,.16666f) // ≀ +MATHML_OPERATOR(236,0x22C0,PREFIX|STRETCHY|LARGEOP|MOVABLELIMITS,0.0f,.16666f) // ⋀ +MATHML_OPERATOR(237,0x2297,PREFIX|LARGEOP|MOVABLELIMITS,0.0f,.16666f) // ⊗ +MATHML_OPERATOR(238,0x2210,PREFIX|STRETCHY|LARGEOP|MOVABLELIMITS,0.0f,.16666f) // ∐ +MATHML_OPERATOR(239,0x220F,PREFIX|STRETCHY|LARGEOP|MOVABLELIMITS,0.0f,.16666f) // ∏ +MATHML_OPERATOR(240,0x22C2,PREFIX|STRETCHY|LARGEOP|MOVABLELIMITS,0.0f,.16666f) // ⋂ +MATHML_OPERATOR(241,0x2210,INFIX,.16666f,.16666f) // ∐ +MATHML_OPERATOR(242,0x22C6,INFIX,.16666f,.16666f) // ⋆ +MATHML_OPERATOR(243,0x2299,PREFIX|LARGEOP|MOVABLELIMITS,0.0f,.16666f) // ⊙ +MATHML_OPERATOR(244,0x002A,INFIX,.16666f,.16666f) // * +MATHML_OPERATOR(245,0xE89E,INFIX,0.0f,0.0f) // ⁢ +MATHML_OPERATOR(246,0x00B7,INFIX,.16666f,.16666f) // · +MATHML_OPERATOR(247,0x2297,INFIX,.16666f,.16666f) // ⊗ +MATHML_OPERATOR(248,0x22C1,INFIX,.16666f,.16666f) // ⋁ +MATHML_OPERATOR(249,0x22C0,INFIX,.16666f,.16666f) // ⋀ +MATHML_OPERATOR(250,0x22C4,INFIX,.16666f,.16666f) // ⋄ +MATHML_OPERATOR(251,0x2216,INFIX|STRETCHY,.16666f,.16666f) // ∖ +MATHML_OPERATOR(252,0x002F,INFIX|STRETCHY,.16666f,.16666f) // / +MATHML_OPERATOR(253,0x002D,PREFIX,0.0f,.05555f) // - +MATHML_OPERATOR(254,0x002B,PREFIX,0.0f,.05555f) // + +MATHML_OPERATOR(255,0x2213,PREFIX,0.0f,.05555f) // ∓ +MATHML_OPERATOR(256,0x00B1,PREFIX,0.0f,.05555f) // ± +MATHML_OPERATOR(257,0x002E,INFIX,0.0f,0.0f) // . +MATHML_OPERATOR(258,0xE619,INFIX,.11111f,.11111f) // ⨯ +MATHML_OPERATOR(259,0x002A _ 0x002A,INFIX,.11111f,.11111f) // ** +MATHML_OPERATOR(260,0x2299,INFIX,.11111f,.11111f) // ⊙ +MATHML_OPERATOR(261,0x2218,INFIX,.11111f,.11111f) // ∘ +MATHML_OPERATOR(262,0x25A1,PREFIX,0.0f,.11111f) // □ +MATHML_OPERATOR(263,0x2207,PREFIX,0.0f,.11111f) // ∇ +MATHML_OPERATOR(264,0x2202,PREFIX,0.0f,.11111f) // ∂ +MATHML_OPERATOR(265,0xF74B,PREFIX,0.0f,.11111f) // ⅅ +MATHML_OPERATOR(266,0xF74C,PREFIX,0.0f,.11111f) // ⅆ +MATHML_OPERATOR(267,0x221A,PREFIX|STRETCHY,0.0f,.11111f) // √ +MATHML_OPERATOR(268,0x21D3,INFIX|STRETCHY,.11111f,.11111f) // ⇓ +MATHML_OPERATOR(269,0xE200,INFIX|STRETCHY,.11111f,.11111f) // ⟸ +MATHML_OPERATOR(270,0xE202,INFIX|STRETCHY,.11111f,.11111f) // ⟺ +MATHML_OPERATOR(271,0xE204,INFIX|STRETCHY,.11111f,.11111f) // ⟹ +MATHML_OPERATOR(272,0x21D1,INFIX|STRETCHY,.11111f,.11111f) // ⇑ +MATHML_OPERATOR(273,0x21D5,INFIX|STRETCHY,.11111f,.11111f) // ⇕ +MATHML_OPERATOR(274,0x2193,INFIX|STRETCHY,.11111f,.11111f) // ↓ +MATHML_OPERATOR(275,0xF504,INFIX|STRETCHY,.11111f,.11111f) // ⤓ +MATHML_OPERATOR(276,0xE216,INFIX|STRETCHY,.11111f,.11111f) // ⇵ +MATHML_OPERATOR(277,0x21A7,INFIX|STRETCHY,.11111f,.11111f) // ↧ +MATHML_OPERATOR(278,0xF519,INFIX|STRETCHY,.11111f,.11111f) // ⥡ +MATHML_OPERATOR(279,0x21C3,INFIX|STRETCHY,.11111f,.11111f) // ⇃ +MATHML_OPERATOR(280,0xF517,INFIX|STRETCHY,.11111f,.11111f) // ⥙ +MATHML_OPERATOR(281,0xF515,INFIX|STRETCHY,.11111f,.11111f) // ⥑ +MATHML_OPERATOR(282,0xF518,INFIX|STRETCHY,.11111f,.11111f) // ⥠ +MATHML_OPERATOR(283,0x21BF,INFIX|STRETCHY,.11111f,.11111f) // ↿ +MATHML_OPERATOR(284,0xF516,INFIX|STRETCHY,.11111f,.11111f) // ⥘ +MATHML_OPERATOR(285,0xE201,INFIX|STRETCHY,.11111f,.11111f) // ⟵ +MATHML_OPERATOR(286,0xE203,INFIX|STRETCHY,.11111f,.11111f) // ⟷ +MATHML_OPERATOR(287,0xE205,INFIX|STRETCHY,.11111f,.11111f) // ⟶ +MATHML_OPERATOR(288,0xE217,INFIX|STRETCHY,.11111f,.11111f) // ⥯ +MATHML_OPERATOR(289,0xF514,INFIX|STRETCHY,.11111f,.11111f) // ⥝ +MATHML_OPERATOR(290,0x21C2,INFIX|STRETCHY,.11111f,.11111f) // ⇂ +MATHML_OPERATOR(291,0xF512,INFIX|STRETCHY,.11111f,.11111f) // ⥕ +MATHML_OPERATOR(292,0xF510,INFIX|STRETCHY,.11111f,.11111f) // ⥏ +MATHML_OPERATOR(293,0xF513,INFIX|STRETCHY,.11111f,.11111f) // ⥜ +MATHML_OPERATOR(294,0x21BE,INFIX|STRETCHY,.11111f,.11111f) // ↾ +MATHML_OPERATOR(295,0xF511,INFIX|STRETCHY,.11111f,.11111f) // ⥔ +MATHML_OPERATOR(296,0xE87F,INFIX,.11111f,.11111f) // ↓ +MATHML_OPERATOR(297,0xE880,INFIX,.11111f,.11111f) // ↑ +MATHML_OPERATOR(298,0x2191,INFIX|STRETCHY,.11111f,.11111f) // ↑ +MATHML_OPERATOR(299,0xF503,INFIX|STRETCHY,.11111f,.11111f) // ⤒ +MATHML_OPERATOR(300,0x21C5,INFIX|STRETCHY,.11111f,.11111f) // ⇅ +MATHML_OPERATOR(301,0x2195,INFIX|STRETCHY,.11111f,.11111f) // ↕ +MATHML_OPERATOR(302,0xE218,INFIX|STRETCHY,.11111f,.11111f) // ⥮ +MATHML_OPERATOR(303,0x21A5,INFIX|STRETCHY,.11111f,.11111f) // ↥ +MATHML_OPERATOR(304,0x005E,INFIX,.11111f,.11111f) // ^ +MATHML_OPERATOR(305,0x003C _ 0x003E,INFIX,.11111f,.11111f) // <> +MATHML_OPERATOR(306,0x0027,POSTFIX,.11111f,0.0f) // ' +MATHML_OPERATOR(307,0x0021,POSTFIX,.11111f,0.0f) // ! +MATHML_OPERATOR(308,0x0021 _ 0x0021,POSTFIX,.11111f,0.0f) // !! +MATHML_OPERATOR(309,0x007E,INFIX,.11111f,.11111f) // ~ +MATHML_OPERATOR(310,0x0040,INFIX,.11111f,.11111f) // @ +MATHML_OPERATOR(311,0x002D _ 0x002D,POSTFIX,.11111f,0.0f) // -- +MATHML_OPERATOR(312,0x002D _ 0x002D,PREFIX,0.0f,.11111f) // -- +MATHML_OPERATOR(313,0x002B _ 0x002B,POSTFIX,.11111f,0.0f) // ++ +MATHML_OPERATOR(314,0x002B _ 0x002B,PREFIX,0.0f,.11111f) // ++ +MATHML_OPERATOR(315,0xE8A0,INFIX,0.0f,0.0f) // ⁡ +MATHML_OPERATOR(316,0x003F,INFIX,.11111f,.11111f) // ? +MATHML_OPERATOR(317,0x005F,INFIX,.11111f,.11111f) // _ +MATHML_OPERATOR(318,0x02D8,POSTFIX|ACCENT,0.0f,0.0f) // ˘ +MATHML_OPERATOR(319,0x00B8,POSTFIX|ACCENT,0.0f,0.0f) // ¸ +MATHML_OPERATOR(320,0x0060,POSTFIX|ACCENT,0.0f,0.0f) // ` +MATHML_OPERATOR(321,0x02D9,POSTFIX|ACCENT,0.0f,0.0f) // ˙ +MATHML_OPERATOR(322,0x02DD,POSTFIX|ACCENT,0.0f,0.0f) // ˝ +MATHML_OPERATOR(323,0x00B4,POSTFIX|ACCENT,0.0f,0.0f) // ´ +MATHML_OPERATOR(324,0x02DC,POSTFIX|STRETCHY|ACCENT,0.0f,0.0f) // ˜ +MATHML_OPERATOR(325,0x00A8,POSTFIX|ACCENT,0.0f,0.0f) // ¨ +MATHML_OPERATOR(326,0x0311,POSTFIX|ACCENT,0.0f,0.0f) // ̑ +MATHML_OPERATOR(327,0x02C7,POSTFIX|STRETCHY|ACCENT,0.0f,0.0f) // ˇ +MATHML_OPERATOR(328,0x0302,POSTFIX|STRETCHY|ACCENT,0.0f,0.0f) // ^ +MATHML_OPERATOR(329,0x00AF,POSTFIX|STRETCHY|ACCENT,0.0f,0.0f) // ‾ +MATHML_OPERATOR(330,0xF612,POSTFIX|STRETCHY|ACCENT,0.0f,0.0f) // ⏞ +MATHML_OPERATOR(331,0xF614,POSTFIX|STRETCHY|ACCENT,0.0f,0.0f) // ⎴ +MATHML_OPERATOR(332,0xF610,POSTFIX|STRETCHY|ACCENT,0.0f,0.0f) // ⏜ +MATHML_OPERATOR(333,0x20DB,POSTFIX|ACCENT,0.0f,0.0f) // ⃛ +MATHML_OPERATOR(334,0x0332,POSTFIX|STRETCHY|ACCENT,0.0f,0.0f) // _ +MATHML_OPERATOR(335,0xF613,POSTFIX|STRETCHY|ACCENT,0.0f,0.0f) // ⏟ +MATHML_OPERATOR(336,0xF615,POSTFIX|STRETCHY|ACCENT,0.0f,0.0f) // ⎵ +MATHML_OPERATOR(337,0xF611,POSTFIX|STRETCHY|ACCENT,0.0f,0.0f) // ⏝ +MATHML_OPERATOR(338,0x2225,PREFIX|STRETCHY|FENCE,.0f,.0f) // ∥ +MATHML_OPERATOR(339,0x2225,POSTFIX|STRETCHY|FENCE,.0f,.0f) // ∥ +MATHML_OPERATOR(340,0x2223,PREFIX|STRETCHY|FENCE,.0f,.0f) // ∣ +MATHML_OPERATOR(341,0x2223,POSTFIX|STRETCHY|FENCE,.0f,.0f) // ∣ +MATHML_OPERATOR(342,0x007C,PREFIX|STRETCHY|FENCE,.0f,.0f) // | +MATHML_OPERATOR(343,0x007C,POSTFIX|STRETCHY|FENCE,.0f,.0f) // | +MATHML_OPERATOR(344,0x20D7,POSTFIX|STRETCHY|ACCENT,0.0f,0.0f) // ⃗ +MATHML_OPERATOR(345,0x20D6,POSTFIX|STRETCHY|ACCENT,0.0f,0.0f) // ⃖ +MATHML_OPERATOR(346,0x20E1,POSTFIX|STRETCHY|ACCENT,0.0f,0.0f) // ⃡ +MATHML_OPERATOR(347,0x20D1,POSTFIX|STRETCHY|ACCENT,0.0f,0.0f) // ⃑ +MATHML_OPERATOR(348,0x20D0,POSTFIX|STRETCHY|ACCENT,0.0f,0.0f) // ⃐ + +#undef INFIX +#undef PREFIX +#undef POSTFIX +#undef STRETCHY +#undef FENCE +#undef ACCENT +#undef LARGEOP +#undef SEPARATOR +#undef MOVABLELIMITS #undef _ #endif - diff --git a/layout/mathml/content/src/nsMathMLOperators.cpp b/layout/mathml/content/src/nsMathMLOperators.cpp index 4ed96fe20212..0e0a7907442c 100644 --- a/layout/mathml/content/src/nsMathMLOperators.cpp +++ b/layout/mathml/content/src/nsMathMLOperators.cpp @@ -117,26 +117,6 @@ public: } }; -// an operator matches with another if its string is the same as the -// other's string and its flags constitute a subset of the other's flags. -class OperatorMatch: public nsAVLNodeFunctor { -public: - OperatorMatch(const nsString& aString, const nsOperatorFlags aFlags) - : mStr(aString), - mFlags(aFlags) - { - } - virtual void* operator()(void* aItem) - { - OperatorNode* node = (OperatorNode*)aItem; - return ((node->mStr.Compare(mStr, PR_FALSE) == 0) && - (node->mFlags & mFlags) == mFlags) ? - aItem : nsnull; - } -protected: - nsString mStr; - nsOperatorFlags mFlags; -}; static PRInt32 gTableRefCount = 0; @@ -222,9 +202,10 @@ nsMathMLOperators::LookupOperator(const nsString& aOperator, if (found) { NS_ASSERTION(found->mStr.Equals(aOperator), "bad tree"); - *aFlags = found->mFlags; *aLeftSpace = found->mLeftSpace; *aRightSpace = found->mRightSpace; + *aFlags &= 0xFFFFFFFC; // (= ~0x3) clear the form bits + *aFlags |= found->mFlags; // just add bits without overwriting return PR_TRUE; } } @@ -232,27 +213,49 @@ nsMathMLOperators::LookupOperator(const nsString& aOperator, } PRBool -nsMathMLOperators::LookupOperator(const nsCString& aOperator, - const nsOperatorFlags aForm, - nsOperatorFlags* aFlags, - float* aLeftSpace, - float* aRightSpace) -{ - return LookupOperator(aOperator,aForm,aFlags,aLeftSpace,aRightSpace); -} - -PRBool -nsMathMLOperators::MatchOperator(const nsString& aOperator, - const nsOperatorFlags aFlags) +nsMathMLOperators::IsMutableOperator(const nsString& aOperator) { NS_ASSERTION(gOperatorTree, "no lookup table, needs addref"); if (gOperatorTree) { - OperatorMatch functor(aOperator, aFlags); - return PRBool(gOperatorTree->FirstThat(functor)); + + gOperatorFound[NS_MATHML_OPERATOR_FORM_INFIX] = nsnull; + gOperatorFound[NS_MATHML_OPERATOR_FORM_POSTFIX] = nsnull; + gOperatorFound[NS_MATHML_OPERATOR_FORM_PREFIX] = nsnull; + + OperatorNode node(aOperator, 0); + OperatorNode* found = (OperatorNode*)gOperatorTree->FindItem(&node); + + // if the operator was found, gOperatorFound contains all the variants + // of the operator. check if there is one that meets the criteria + + found = gOperatorFound[NS_MATHML_OPERATOR_FORM_INFIX]; + if (found && + (NS_MATHML_OPERATOR_IS_STRETCHY(found->mFlags) || + NS_MATHML_OPERATOR_IS_LARGEOP(found->mFlags))) + { + return PR_TRUE; + } + + found = gOperatorFound[NS_MATHML_OPERATOR_FORM_POSTFIX]; + if (found && + (NS_MATHML_OPERATOR_IS_STRETCHY(found->mFlags) || + NS_MATHML_OPERATOR_IS_LARGEOP(found->mFlags))) + { + return PR_TRUE; + } + + found = gOperatorFound[NS_MATHML_OPERATOR_FORM_PREFIX]; + if (found && + (NS_MATHML_OPERATOR_IS_STRETCHY(found->mFlags) || + NS_MATHML_OPERATOR_IS_LARGEOP(found->mFlags))) + { + return PR_TRUE; + } } return PR_FALSE; } + #if 0 // DEBUG // BEGIN TEST CODE: diff --git a/layout/mathml/content/src/nsMathMLOperators.h b/layout/mathml/content/src/nsMathMLOperators.h index 7bdca5afcbeb..33be707f1354 100644 --- a/layout/mathml/content/src/nsMathMLOperators.h +++ b/layout/mathml/content/src/nsMathMLOperators.h @@ -53,7 +53,41 @@ typedef PRUint32 nsOperatorFlags; #define NS_MATHML_OPERATOR_MINSIZE_EXPLICIT (1<<9) #define NS_MATHML_OPERATOR_MAXSIZE_EXPLICIT (1<<10) -// Macros that retrieve those bits + +// Enumerator callback function. Return PR_FALSE to stop +typedef PRBool (*nsOperatorEnumFunc)(const nsString& aOperator, + const nsOperatorFlags aFlags, + void* aData); + +class nsMathMLOperators { +public: + static void AddRefTable(void); + static void ReleaseTable(void); + + // LookupOperator: + // Given the string value of an operator and its form (last two bits of flags), + // this method returns true if the operator is found in the Operator Dictionary. + // Attributes of the operator are returned in the output parameters. + // If the operator is not found under the supplied form but is found under a + // different form, the method returns true as well. The caller can test the + // output parameter aFlags to know exactly under which form the operator was + // found in the Operator Dictionary. + static PRBool + LookupOperator(const nsString& aOperator, + const nsOperatorFlags aForm, + nsOperatorFlags* aFlags, + float* aLeftSpace, + float* aRightSpace); + + // IsMutableOperator: + // Return true if the operator exists and is stretchy or largeop + static PRBool + IsMutableOperator(const nsString& aOperator); +}; + + +//////////////////////////////////////////////////////////////////////////// +// Macros that retrieve the bits used to handle operators #define NS_MATHML_OPERATOR_IS_MUTABLE(_flags) \ (NS_MATHML_OPERATOR_MUTABLE == ((_flags) & NS_MATHML_OPERATOR_MUTABLE)) @@ -100,42 +134,4 @@ typedef PRUint32 nsOperatorFlags; #define NS_MATHML_OPERATOR_MAXSIZE_IS_EXPLICIT(_flags) \ (NS_MATHML_OPERATOR_MAXSIZE_EXPLICIT == ((_flags) & NS_MATHML_OPERATOR_MAXSIZE_EXPLICIT)) -class nsMathMLOperators { -public: - static void AddRefTable(void); - static void ReleaseTable(void); - - // LookupOperator: - // Given the string value of an operator and its form (last two bits of flags), - // this method returns true if the operator is found in the Operator Dictionary. - // Attributes of the operator are returned in the output parameters. - // If the operator is not found under the supplied form but is found under a - // different form, the method returns true as well. The caller can test the - // output parameter aFlags to know exactly under which form the operator was - // found in the Operator Dictionary. - static PRBool - LookupOperator(const nsString& aOperator, - const nsOperatorFlags aForm, - nsOperatorFlags* aFlags, - float* aLeftSpace, - float* aRightSpace); - static PRBool - LookupOperator(const nsCString& aOperator, - const nsOperatorFlags aForm, - nsOperatorFlags* aFlags, - float* aLeftSpace, - float* aRightSpace); - - // MatchOperator: - // Given the string value of an operator and *some* bits of its flags, - // this function will return true if this operator matches with another - // in the Operator Dictionary, i.e., if its string is the same as the - // other's string and its flags constitute a subset of the other's flags. - // For example, to see if a string is a stretchy fence, the call will be: - // MatchOperator(aString, NS_MATHML_OPERATOR_FENCE | NS_MATHML_OPERATOR_STRETCHY). - static PRBool - MatchOperator(const nsString& aOperator, - const nsOperatorFlags aFlags); -}; - #endif /* nsMathMLOperators_h___ */