Mercurial > core / lisp/lib/dat/html/entity.lisp
changeset 698: |
96958d3eb5b0 |
parent: |
a3b65a8138ac
|
author: |
Richard Westhaver <ellis@rwest.io> |
date: |
Fri, 04 Oct 2024 22:04:59 -0400 |
permissions: |
-rw-r--r-- |
description: |
fixes |
3 (defun convert-to-trie (char-list value) 7 (convert-to-trie (rest char-list) value)) 11 (defun insert-into-trie (char-list value trie) 12 (let ((sub-trie (assoc (car char-list) trie))) 14 (append (remove sub-trie trie) 15 (list (list* (car sub-trie) 17 (insert-into-trie (rest char-list) value (cddr sub-trie))))) 19 (list (convert-to-trie char-list value)))))) 21 (defun convert-entities-list (entities) 22 (loop for (name . values) in entities 23 collect (cons (coerce name 'list) 24 (map 'string #'code-char values)))) 26 (defun make-entities-trie (entities) 28 (dolist (entity (convert-entities-list entities)) 29 (destructuring-bind (char-list . value) entity 30 (setf trie (insert-into-trie char-list value trie)))) 33 (defparameter *entities* 52 ("ApplyFunction;" 8289) 78 ("CapitalDifferentialD;" 8517) 94 ("ClockwiseContourIntegral;" 8754) 95 ("CloseCurlyDoubleQuote;" 8221) 96 ("CloseCurlyQuote;" 8217) 101 ("ContourIntegral;" 8750) 104 ("CounterClockwiseContourIntegral;" 8755) 122 ("DiacriticalAcute;" 180) 123 ("DiacriticalDot;" 729) 124 ("DiacriticalDoubleAcute;" 733) 125 ("DiacriticalGrave;" 96) 126 ("DiacriticalTilde;" 732) 128 ("DifferentialD;" 8518) 133 ("DoubleContourIntegral;" 8751) 135 ("DoubleDownArrow;" 8659) 136 ("DoubleLeftArrow;" 8656) 137 ("DoubleLeftRightArrow;" 8660) 138 ("DoubleLeftTee;" 10980) 139 ("DoubleLongLeftArrow;" 10232) 140 ("DoubleLongLeftRightArrow;" 10234) 141 ("DoubleLongRightArrow;" 10233) 142 ("DoubleRightArrow;" 8658) 143 ("DoubleRightTee;" 8872) 144 ("DoubleUpArrow;" 8657) 145 ("DoubleUpDownArrow;" 8661) 146 ("DoubleVerticalBar;" 8741) 148 ("DownArrowBar;" 10515) 149 ("DownArrowUpArrow;" 8693) 151 ("DownLeftRightVector;" 10576) 152 ("DownLeftTeeVector;" 10590) 153 ("DownLeftVector;" 8637) 154 ("DownLeftVectorBar;" 10582) 155 ("DownRightTeeVector;" 10591) 156 ("DownRightVector;" 8641) 157 ("DownRightVectorBar;" 10583) 159 ("DownTeeArrow;" 8615) 178 ("EmptySmallSquare;" 9723) 179 ("EmptyVerySmallSquare;" 9643) 185 ("Equilibrium;" 8652) 192 ("ExponentialE;" 8519) 195 ("FilledSmallSquare;" 9724) 196 ("FilledVerySmallSquare;" 9642) 214 ("GreaterEqual;" 8805) 215 ("GreaterEqualLess;" 8923) 216 ("GreaterFullEqual;" 8807) 217 ("GreaterGreater;" 10914) 218 ("GreaterLess;" 8823) 219 ("GreaterSlantEqual;" 10878) 220 ("GreaterTilde;" 8819) 228 ("HilbertSpace;" 8459) 230 ("HorizontalLine;" 9472) 233 ("HumpDownHump;" 8782) 253 ("Intersection;" 8898) 254 ("InvisibleComma;" 8291) 255 ("InvisibleTimes;" 8290) 290 ("LeftAngleBracket;" 10216) 292 ("LeftArrowBar;" 8676) 293 ("LeftArrowRightArrow;" 8646) 294 ("LeftCeiling;" 8968) 295 ("LeftDoubleBracket;" 10214) 296 ("LeftDownTeeVector;" 10593) 297 ("LeftDownVector;" 8643) 298 ("LeftDownVectorBar;" 10585) 300 ("LeftRightArrow;" 8596) 301 ("LeftRightVector;" 10574) 303 ("LeftTeeArrow;" 8612) 304 ("LeftTeeVector;" 10586) 305 ("LeftTriangle;" 8882) 306 ("LeftTriangleBar;" 10703) 307 ("LeftTriangleEqual;" 8884) 308 ("LeftUpDownVector;" 10577) 309 ("LeftUpTeeVector;" 10592) 310 ("LeftUpVector;" 8639) 311 ("LeftUpVectorBar;" 10584) 313 ("LeftVectorBar;" 10578) 315 ("Leftrightarrow;" 8660) 316 ("LessEqualGreater;" 8922) 317 ("LessFullEqual;" 8806) 318 ("LessGreater;" 8822) 320 ("LessSlantEqual;" 10877) 326 ("LongLeftArrow;" 10229) 327 ("LongLeftRightArrow;" 10231) 328 ("LongRightArrow;" 10230) 329 ("Longleftarrow;" 10232) 330 ("Longleftrightarrow;" 10234) 331 ("Longrightarrow;" 10233) 333 ("LowerLeftArrow;" 8601) 334 ("LowerRightArrow;" 8600) 341 ("MediumSpace;" 8287) 353 ("NegativeMediumSpace;" 8203) 354 ("NegativeThickSpace;" 8203) 355 ("NegativeThinSpace;" 8203) 356 ("NegativeVeryThinSpace;" 8203) 357 ("NestedGreaterGreater;" 8811) 358 ("NestedLessLess;" 8810) 362 ("NonBreakingSpace;" 160) 365 ("NotCongruent;" 8802) 367 ("NotDoubleVerticalBar;" 8742) 370 ("NotEqualTilde;" 8770 824) 373 ("NotGreaterEqual;" 8817) 374 ("NotGreaterFullEqual;" 8807 824) 375 ("NotGreaterGreater;" 8811 824) 376 ("NotGreaterLess;" 8825) 377 ("NotGreaterSlantEqual;" 10878 824) 378 ("NotGreaterTilde;" 8821) 379 ("NotHumpDownHump;" 8782 824) 380 ("NotHumpEqual;" 8783 824) 381 ("NotLeftTriangle;" 8938) 382 ("NotLeftTriangleBar;" 10703 824) 383 ("NotLeftTriangleEqual;" 8940) 385 ("NotLessEqual;" 8816) 386 ("NotLessGreater;" 8824) 387 ("NotLessLess;" 8810 824) 388 ("NotLessSlantEqual;" 10877 824) 389 ("NotLessTilde;" 8820) 390 ("NotNestedGreaterGreater;" 10914 824) 391 ("NotNestedLessLess;" 10913 824) 392 ("NotPrecedes;" 8832) 393 ("NotPrecedesEqual;" 10927 824) 394 ("NotPrecedesSlantEqual;" 8928) 395 ("NotReverseElement;" 8716) 396 ("NotRightTriangle;" 8939) 397 ("NotRightTriangleBar;" 10704 824) 398 ("NotRightTriangleEqual;" 8941) 399 ("NotSquareSubset;" 8847 824) 400 ("NotSquareSubsetEqual;" 8930) 401 ("NotSquareSuperset;" 8848 824) 402 ("NotSquareSupersetEqual;" 8931) 403 ("NotSubset;" 8834 8402) 404 ("NotSubsetEqual;" 8840) 405 ("NotSucceeds;" 8833) 406 ("NotSucceedsEqual;" 10928 824) 407 ("NotSucceedsSlantEqual;" 8929) 408 ("NotSucceedsTilde;" 8831 824) 409 ("NotSuperset;" 8835 8402) 410 ("NotSupersetEqual;" 8841) 412 ("NotTildeEqual;" 8772) 413 ("NotTildeFullEqual;" 8775) 414 ("NotTildeTilde;" 8777) 415 ("NotVerticalBar;" 8740) 434 ("OpenCurlyDoubleQuote;" 8220) 435 ("OpenCurlyQuote;" 8216) 447 ("OverBracket;" 9140) 448 ("OverParenthesis;" 9180) 455 ("Poincareplane;" 8460) 459 ("PrecedesEqual;" 10927) 460 ("PrecedesSlantEqual;" 8828) 461 ("PrecedesTilde;" 8830) 465 ("Proportional;" 8733) 484 ("ReverseElement;" 8715) 485 ("ReverseEquilibrium;" 8651) 486 ("ReverseUpEquilibrium;" 10607) 489 ("RightAngleBracket;" 10217) 491 ("RightArrowBar;" 8677) 492 ("RightArrowLeftArrow;" 8644) 493 ("RightCeiling;" 8969) 494 ("RightDoubleBracket;" 10215) 495 ("RightDownTeeVector;" 10589) 496 ("RightDownVector;" 8642) 497 ("RightDownVectorBar;" 10581) 500 ("RightTeeArrow;" 8614) 501 ("RightTeeVector;" 10587) 502 ("RightTriangle;" 8883) 503 ("RightTriangleBar;" 10704) 504 ("RightTriangleEqual;" 8885) 505 ("RightUpDownVector;" 10575) 506 ("RightUpTeeVector;" 10588) 507 ("RightUpVector;" 8638) 508 ("RightUpVectorBar;" 10580) 509 ("RightVector;" 8640) 510 ("RightVectorBar;" 10579) 513 ("RoundImplies;" 10608) 514 ("Rrightarrow;" 8667) 517 ("RuleDelayed;" 10740) 528 ("ShortDownArrow;" 8595) 529 ("ShortLeftArrow;" 8592) 530 ("ShortRightArrow;" 8594) 531 ("ShortUpArrow;" 8593) 533 ("SmallCircle;" 8728) 537 ("SquareIntersection;" 8851) 538 ("SquareSubset;" 8847) 539 ("SquareSubsetEqual;" 8849) 540 ("SquareSuperset;" 8848) 541 ("SquareSupersetEqual;" 8850) 542 ("SquareUnion;" 8852) 547 ("SubsetEqual;" 8838) 549 ("SucceedsEqual;" 10928) 550 ("SucceedsSlantEqual;" 8829) 551 ("SucceedsTilde;" 8831) 556 ("SupersetEqual;" 8839) 571 ("ThickSpace;" 8287 8202) 575 ("TildeFullEqual;" 8773) 597 ("UnderBracket;" 9141) 598 ("UnderParenthesis;" 9181) 604 ("UpArrowBar;" 10514) 605 ("UpArrowDownArrow;" 8645) 606 ("UpDownArrow;" 8597) 607 ("UpEquilibrium;" 10606) 611 ("Updownarrow;" 8661) 612 ("UpperLeftArrow;" 8598) 613 ("UpperRightArrow;" 8599) 629 ("VerticalBar;" 8739) 630 ("VerticalLine;" 124) 631 ("VerticalSeparator;" 10072) 632 ("VerticalTilde;" 8768) 633 ("VeryThinSpace;" 8202) 663 ("ZeroWidthSpace;" 8203) 739 ("backepsilon;" 1014) 768 ("bigtriangledown;" 9661) 769 ("bigtriangleup;" 9651) 774 ("blacklozenge;" 10731) 775 ("blacksquare;" 9642) 776 ("blacktriangle;" 9652) 777 ("blacktriangledown;" 9662) 778 ("blacktriangleleft;" 9666) 779 ("blacktriangleright;" 9656) 786 ("bnequiv;" 8801 8421) 886 ("circlearrowleft;" 8634) 887 ("circlearrowright;" 8635) 891 ("circledcirc;" 8858) 892 ("circleddash;" 8861) 939 ("curlyeqprec;" 8926) 940 ("curlyeqsucc;" 8927) 945 ("curvearrowleft;" 8630) 946 ("curvearrowright;" 8631) 977 ("diamondsuit;" 9830) 985 ("divideontimes;" 8903) 998 ("doublebarwedge;" 8966) 1000 ("downdownarrows;" 8650) 1001 ("downharpoonleft;" 8643) 1002 ("downharpoonright;" 8642) 1063 ("eqslantgtr;" 10902) 1064 ("eqslantless;" 10901) 1083 ("expectation;" 8496) 1084 ("exponentiale;" 8519) 1085 ("fallingdotseq;" 8786) 1144 ("gesl;" 8923 65024) 1175 ("gtrapprox;" 10886) 1179 ("gtreqqless;" 10892) 1182 ("gvertneqq;" 8809 65024) 1183 ("gvnE;" 8809 65024) 1203 ("hookleftarrow;" 8617) 1204 ("hookrightarrow;" 8618) 1315 ("lates;" 10925 65024) 1336 ("leftarrowtail;" 8610) 1337 ("leftharpoondown;" 8637) 1338 ("leftharpoonup;" 8636) 1339 ("leftleftarrows;" 8647) 1340 ("leftrightarrow;" 8596) 1341 ("leftrightarrows;" 8646) 1342 ("leftrightharpoons;" 8651) 1343 ("leftrightsquigarrow;" 8621) 1344 ("leftthreetimes;" 8907) 1354 ("lesg;" 8922 65024) 1356 ("lessapprox;" 10885) 1359 ("lesseqqgtr;" 10891) 1379 ("lmoustache;" 9136) 1390 ("longleftarrow;" 10229) 1391 ("longleftrightarrow;" 10231) 1392 ("longmapsto;" 10236) 1393 ("longrightarrow;" 10230) 1394 ("looparrowleft;" 8619) 1395 ("looparrowright;" 8620) 1438 ("lvertneqq;" 8808 65024) 1439 ("lvnE;" 8808 65024) 1448 ("mapstodown;" 8615) 1449 ("mapstoleft;" 8612) 1455 ("measuredangle;" 8737) 1483 ("nLeftarrow;" 8653) 1484 ("nLeftrightarrow;" 8654) 1488 ("nRightarrow;" 8655) 1505 ("nbumpe;" 8783 824) 1510 ("ncongdot;" 10861 824) 1530 ("ngeqslant;" 10878 824) 1548 ("nleftarrow;" 8602) 1549 ("nleftrightarrow;" 8622) 1552 ("nleqslant;" 10877 824) 1564 ("notinE;" 8953 824) 1565 ("notindot;" 8949 824) 1575 ("nparsl;" 11005 8421) 1582 ("npreceq;" 10927 824) 1585 ("nrarrc;" 10547 824) 1586 ("nrarrw;" 8605 824) 1587 ("nrightarrow;" 8603) 1595 ("nshortparallel;" 8742) 1604 ("nsubE;" 10949 824) 1606 ("nsubset;" 8834 8402) 1608 ("nsubseteqq;" 10949 824) 1610 ("nsucceq;" 10928 824) 1612 ("nsupE;" 10950 824) 1614 ("nsupset;" 8835 8402) 1616 ("nsupseteqq;" 10950 824) 1621 ("ntriangleleft;" 8938) 1622 ("ntrianglelefteq;" 8940) 1623 ("ntriangleright;" 8939) 1624 ("ntrianglerighteq;" 8941) 1639 ("nvltrie;" 8884 8402) 1641 ("nvrtrie;" 8885 8402) 1642 ("nvsim;" 8764 8402) 1755 ("precapprox;" 10935) 1756 ("preccurlyeq;" 8828) 1758 ("precnapprox;" 10937) 1783 ("quaternions;" 8461) 1851 ("rightarrow;" 8594) 1852 ("rightarrowtail;" 8611) 1853 ("rightharpoondown;" 8641) 1854 ("rightharpoonup;" 8640) 1855 ("rightleftarrows;" 8644) 1856 ("rightleftharpoons;" 8652) 1857 ("rightrightarrows;" 8649) 1858 ("rightsquigarrow;" 8605) 1859 ("rightthreetimes;" 8908) 1861 ("risingdotseq;" 8787) 1866 ("rmoustache;" 9137) 1929 ("shortparallel;" 8741) 1947 ("smallsetminus;" 8726) 1954 ("smtes;" 10924 65024) 1964 ("sqcaps;" 8851 65024) 1966 ("sqcups;" 8852 65024) 1970 ("sqsubseteq;" 8849) 1974 ("sqsupseteq;" 8850) 1986 ("straightepsilon;" 1013) 1987 ("straightphi;" 981) 2001 ("subseteqq;" 10949) 2003 ("subsetneqq;" 10955) 2008 ("succapprox;" 10936) 2009 ("succcurlyeq;" 8829) 2011 ("succnapprox;" 10938) 2038 ("supseteqq;" 10950) 2040 ("supsetneqq;" 10956) 2065 ("thickapprox;" 8776) 2089 ("triangledown;" 9663) 2090 ("triangleleft;" 9667) 2091 ("trianglelefteq;" 8884) 2093 ("triangleright;" 9657) 2094 ("trianglerighteq;" 8885) 2107 ("twoheadleftarrow;" 8606) 2108 ("twoheadrightarrow;" 8608) 2139 ("updownarrow;" 8597) 2140 ("upharpoonleft;" 8639) 2141 ("upharpoonright;" 8638) 2146 ("upuparrows;" 8648) 2166 ("varepsilon;" 1013) 2168 ("varnothing;" 8709) 2175 ("varsubsetneq;" 8842 65024) 2176 ("varsubsetneqq;" 10955 65024) 2177 ("varsupsetneq;" 8843 65024) 2178 ("varsupsetneqq;" 10956 65024) 2180 ("vartriangleleft;" 8882) 2181 ("vartriangleright;" 8883) 2192 ("vnsub;" 8834 8402) 2193 ("vnsup;" 8835 8402) 2198 ("vsubnE;" 10955 65024) 2199 ("vsubne;" 8842 65024) 2200 ("vsupnE;" 10956 65024) 2201 ("vsupne;" 8843 65024) 2266 (defparameter *entities-tree* (make-entities-trie *entities*))