mathematical 1.6.17 → 1.6.18

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1183) hide show
  1. checksums.yaml +4 -4
  2. data/ext/mathematical/lasem/COPYING +502 -0
  3. data/ext/mathematical/lasem/NEWS.md +146 -0
  4. data/ext/mathematical/lasem/README.md +65 -0
  5. data/ext/mathematical/lasem/TODO +50 -0
  6. data/ext/mathematical/lasem/docs/lasem-render-0.6.1 +106 -0
  7. data/ext/mathematical/lasem/docs/meson.build +3 -0
  8. data/ext/mathematical/lasem/docs/reference/lasem/building.md +32 -0
  9. data/ext/mathematical/lasem/docs/reference/lasem/lasem.toml.in +47 -0
  10. data/ext/mathematical/lasem/docs/reference/lasem/meson.build +44 -0
  11. data/ext/mathematical/lasem/docs/reference/lasem/overview.md +24 -0
  12. data/ext/mathematical/lasem/docs/reference/lasem/urlmap.js +5 -0
  13. data/ext/mathematical/lasem/itex2mml/COPYING.itex2MML +3 -0
  14. data/ext/mathematical/lasem/itex2mml/README.itex2MML +16 -0
  15. data/ext/mathematical/lasem/itex2mml/itex2MML.h +63 -0
  16. data/ext/mathematical/lasem/itex2mml/itex2MML.l +1183 -0
  17. data/ext/mathematical/lasem/itex2mml/itex2MML.y +2108 -0
  18. data/ext/mathematical/lasem/itex2mml/meson.build +17 -0
  19. data/ext/mathematical/lasem/lasem.doap +21 -0
  20. data/ext/mathematical/lasem/meson.build +46 -0
  21. data/ext/mathematical/lasem/meson_options.txt +5 -0
  22. data/ext/mathematical/lasem/org.lasem.Viewer.json +41 -0
  23. data/ext/mathematical/lasem/po/LINGUAS +31 -0
  24. data/ext/mathematical/lasem/po/POTFILES.in +195 -0
  25. data/ext/mathematical/lasem/po/POTFILES.skip +1 -0
  26. data/ext/mathematical/lasem/po/bs.po +65 -0
  27. data/ext/mathematical/lasem/po/cs.po +102 -0
  28. data/ext/mathematical/lasem/po/da.po +99 -0
  29. data/ext/mathematical/lasem/po/de.po +104 -0
  30. data/ext/mathematical/lasem/po/el.po +73 -0
  31. data/ext/mathematical/lasem/po/es.po +107 -0
  32. data/ext/mathematical/lasem/po/eu.po +66 -0
  33. data/ext/mathematical/lasem/po/fr.po +65 -0
  34. data/ext/mathematical/lasem/po/fur.po +101 -0
  35. data/ext/mathematical/lasem/po/gl.po +64 -0
  36. data/ext/mathematical/lasem/po/hu.po +105 -0
  37. data/ext/mathematical/lasem/po/id.po +102 -0
  38. data/ext/mathematical/lasem/po/it.po +104 -0
  39. data/ext/mathematical/lasem/po/lt.po +106 -0
  40. data/ext/mathematical/lasem/po/lv.po +109 -0
  41. data/ext/mathematical/lasem/po/meson.build +4 -0
  42. data/ext/mathematical/lasem/po/nb.po +62 -0
  43. data/ext/mathematical/lasem/po/nl.po +102 -0
  44. data/ext/mathematical/lasem/po/oc.po +65 -0
  45. data/ext/mathematical/lasem/po/pl.po +102 -0
  46. data/ext/mathematical/lasem/po/pt.po +77 -0
  47. data/ext/mathematical/lasem/po/pt_BR.po +105 -0
  48. data/ext/mathematical/lasem/po/ru.po +66 -0
  49. data/ext/mathematical/lasem/po/sl.po +117 -0
  50. data/ext/mathematical/lasem/po/sr.po +105 -0
  51. data/ext/mathematical/lasem/po/sr@latin.po +105 -0
  52. data/ext/mathematical/lasem/po/sv.po +105 -0
  53. data/ext/mathematical/lasem/po/tg.po +64 -0
  54. data/ext/mathematical/lasem/po/tr.po +105 -0
  55. data/ext/mathematical/lasem/po/zh_CN.po +100 -0
  56. data/ext/mathematical/lasem/src/lasemrender.c +357 -0
  57. data/ext/mathematical/lasem/src/lsm.c +33 -0
  58. data/ext/mathematical/lasem/src/lsm.h +39 -0
  59. data/ext/mathematical/lasem/src/lsmattributes.c +276 -0
  60. data/ext/mathematical/lasem/src/lsmattributes.h +75 -0
  61. data/ext/mathematical/lasem/src/lsmcairo.c +598 -0
  62. data/ext/mathematical/lasem/src/lsmcairo.h +51 -0
  63. data/ext/mathematical/lasem/src/lsmdebug.c +185 -0
  64. data/ext/mathematical/lasem/src/lsmdebug.h +73 -0
  65. data/ext/mathematical/lasem/src/lsmdom.h +43 -0
  66. data/ext/mathematical/lasem/src/lsmdomcharacterdata.c +131 -0
  67. data/ext/mathematical/lasem/src/lsmdomcharacterdata.h +59 -0
  68. data/ext/mathematical/lasem/src/lsmdomdocument.c +272 -0
  69. data/ext/mathematical/lasem/src/lsmdomdocument.h +75 -0
  70. data/ext/mathematical/lasem/src/lsmdomdocumentfragment.c +81 -0
  71. data/ext/mathematical/lasem/src/lsmdomdocumentfragment.h +55 -0
  72. data/ext/mathematical/lasem/src/lsmdomelement.c +148 -0
  73. data/ext/mathematical/lasem/src/lsmdomelement.h +62 -0
  74. data/ext/mathematical/lasem/src/lsmdomentities.c +2166 -0
  75. data/ext/mathematical/lasem/src/lsmdomentities.h +35 -0
  76. data/ext/mathematical/lasem/src/lsmdomimplementation.c +82 -0
  77. data/ext/mathematical/lasem/src/lsmdomimplementation.h +41 -0
  78. data/ext/mathematical/lasem/src/lsmdomnamednodemap.c +118 -0
  79. data/ext/mathematical/lasem/src/lsmdomnamednodemap.h +64 -0
  80. data/ext/mathematical/lasem/src/lsmdomnode.c +737 -0
  81. data/ext/mathematical/lasem/src/lsmdomnode.h +122 -0
  82. data/ext/mathematical/lasem/src/lsmdomnodelist.c +70 -0
  83. data/ext/mathematical/lasem/src/lsmdomnodelist.h +58 -0
  84. data/ext/mathematical/lasem/src/lsmdomparser.c +523 -0
  85. data/ext/mathematical/lasem/src/lsmdomparser.h +54 -0
  86. data/ext/mathematical/lasem/src/lsmdomtext.c +82 -0
  87. data/ext/mathematical/lasem/src/lsmdomtext.h +55 -0
  88. data/ext/mathematical/lasem/src/lsmdomtypes.h +44 -0
  89. data/ext/mathematical/lasem/src/lsmdomview.c +423 -0
  90. data/ext/mathematical/lasem/src/lsmdomview.h +94 -0
  91. data/ext/mathematical/lasem/src/lsmitex.c +79 -0
  92. data/ext/mathematical/lasem/src/lsmitex.h +36 -0
  93. data/ext/mathematical/lasem/src/lsmmathml.h +66 -0
  94. data/ext/mathematical/lasem/src/lsmmathmlactionelement.c +93 -0
  95. data/ext/mathematical/lasem/src/lsmmathmlactionelement.h +57 -0
  96. data/ext/mathematical/lasem/src/lsmmathmlaligngroupelement.c +102 -0
  97. data/ext/mathematical/lasem/src/lsmmathmlaligngroupelement.h +56 -0
  98. data/ext/mathematical/lasem/src/lsmmathmlalignmarkelement.c +102 -0
  99. data/ext/mathematical/lasem/src/lsmmathmlalignmarkelement.h +56 -0
  100. data/ext/mathematical/lasem/src/lsmmathmlattributes.c +219 -0
  101. data/ext/mathematical/lasem/src/lsmmathmlattributes.h +126 -0
  102. data/ext/mathematical/lasem/src/lsmmathmldocument.c +307 -0
  103. data/ext/mathematical/lasem/src/lsmmathmldocument.h +61 -0
  104. data/ext/mathematical/lasem/src/lsmmathmlelement.c +491 -0
  105. data/ext/mathematical/lasem/src/lsmmathmlelement.h +107 -0
  106. data/ext/mathematical/lasem/src/lsmmathmlencloseelement.c +142 -0
  107. data/ext/mathematical/lasem/src/lsmmathmlencloseelement.h +64 -0
  108. data/ext/mathematical/lasem/src/lsmmathmlenums.c +500 -0
  109. data/ext/mathematical/lasem/src/lsmmathmlenums.h +224 -0
  110. data/ext/mathematical/lasem/src/lsmmathmlerrorelement.c +58 -0
  111. data/ext/mathematical/lasem/src/lsmmathmlerrorelement.h +56 -0
  112. data/ext/mathematical/lasem/src/lsmmathmlfencedelement.c +180 -0
  113. data/ext/mathematical/lasem/src/lsmmathmlfencedelement.h +65 -0
  114. data/ext/mathematical/lasem/src/lsmmathmlfractionelement.c +253 -0
  115. data/ext/mathematical/lasem/src/lsmmathmlfractionelement.h +62 -0
  116. data/ext/mathematical/lasem/src/lsmmathmlglyphtableams.c +661 -0
  117. data/ext/mathematical/lasem/src/lsmmathmlglyphtableams.h +45 -0
  118. data/ext/mathematical/lasem/src/lsmmathmlitexelement.c +189 -0
  119. data/ext/mathematical/lasem/src/lsmmathmlitexelement.h +60 -0
  120. data/ext/mathematical/lasem/src/lsmmathmllayoututils.c +191 -0
  121. data/ext/mathematical/lasem/src/lsmmathmllayoututils.h +58 -0
  122. data/ext/mathematical/lasem/src/lsmmathmlmathelement.c +212 -0
  123. data/ext/mathematical/lasem/src/lsmmathmlmathelement.h +81 -0
  124. data/ext/mathematical/lasem/src/lsmmathmloperatordictionary.c +3342 -0
  125. data/ext/mathematical/lasem/src/lsmmathmloperatordictionary.h +55 -0
  126. data/ext/mathematical/lasem/src/lsmmathmloperatorelement.c +314 -0
  127. data/ext/mathematical/lasem/src/lsmmathmloperatorelement.h +73 -0
  128. data/ext/mathematical/lasem/src/lsmmathmlpaddedelement.c +137 -0
  129. data/ext/mathematical/lasem/src/lsmmathmlpaddedelement.h +61 -0
  130. data/ext/mathematical/lasem/src/lsmmathmlphantomelement.c +71 -0
  131. data/ext/mathematical/lasem/src/lsmmathmlphantomelement.h +56 -0
  132. data/ext/mathematical/lasem/src/lsmmathmlpresentationcontainer.c +43 -0
  133. data/ext/mathematical/lasem/src/lsmmathmlpresentationcontainer.h +54 -0
  134. data/ext/mathematical/lasem/src/lsmmathmlpresentationtoken.c +303 -0
  135. data/ext/mathematical/lasem/src/lsmmathmlpresentationtoken.h +83 -0
  136. data/ext/mathematical/lasem/src/lsmmathmlradicalelement.c +266 -0
  137. data/ext/mathematical/lasem/src/lsmmathmlradicalelement.h +71 -0
  138. data/ext/mathematical/lasem/src/lsmmathmlrowelement.c +58 -0
  139. data/ext/mathematical/lasem/src/lsmmathmlrowelement.h +56 -0
  140. data/ext/mathematical/lasem/src/lsmmathmlscriptelement.c +282 -0
  141. data/ext/mathematical/lasem/src/lsmmathmlscriptelement.h +78 -0
  142. data/ext/mathematical/lasem/src/lsmmathmlsemanticselement.c +84 -0
  143. data/ext/mathematical/lasem/src/lsmmathmlsemanticselement.h +56 -0
  144. data/ext/mathematical/lasem/src/lsmmathmlspaceelement.c +156 -0
  145. data/ext/mathematical/lasem/src/lsmmathmlspaceelement.h +60 -0
  146. data/ext/mathematical/lasem/src/lsmmathmlstringelement.c +123 -0
  147. data/ext/mathematical/lasem/src/lsmmathmlstringelement.h +58 -0
  148. data/ext/mathematical/lasem/src/lsmmathmlstyle.c +130 -0
  149. data/ext/mathematical/lasem/src/lsmmathmlstyle.h +89 -0
  150. data/ext/mathematical/lasem/src/lsmmathmlstyleelement.c +391 -0
  151. data/ext/mathematical/lasem/src/lsmmathmlstyleelement.h +94 -0
  152. data/ext/mathematical/lasem/src/lsmmathmltablecellelement.c +122 -0
  153. data/ext/mathematical/lasem/src/lsmmathmltablecellelement.h +62 -0
  154. data/ext/mathematical/lasem/src/lsmmathmltableelement.c +572 -0
  155. data/ext/mathematical/lasem/src/lsmmathmltableelement.h +78 -0
  156. data/ext/mathematical/lasem/src/lsmmathmltablerowelement.c +120 -0
  157. data/ext/mathematical/lasem/src/lsmmathmltablerowelement.h +64 -0
  158. data/ext/mathematical/lasem/src/lsmmathmltraits.c +867 -0
  159. data/ext/mathematical/lasem/src/lsmmathmltraits.h +129 -0
  160. data/ext/mathematical/lasem/src/lsmmathmltypes.h +67 -0
  161. data/ext/mathematical/lasem/src/lsmmathmlunderoverelement.c +485 -0
  162. data/ext/mathematical/lasem/src/lsmmathmlunderoverelement.h +82 -0
  163. data/ext/mathematical/lasem/src/lsmmathmlutils.c +170 -0
  164. data/ext/mathematical/lasem/src/lsmmathmlutils.h +57 -0
  165. data/ext/mathematical/lasem/src/lsmmathmlview.c +1343 -0
  166. data/ext/mathematical/lasem/src/lsmmathmlview.h +179 -0
  167. data/ext/mathematical/lasem/src/lsmmisc.c +15 -0
  168. data/ext/mathematical/lasem/src/lsmmisc.h +32 -0
  169. data/ext/mathematical/lasem/src/lsmproperties.c +415 -0
  170. data/ext/mathematical/lasem/src/lsmproperties.h +85 -0
  171. data/ext/mathematical/lasem/src/lsmstr.c +231 -0
  172. data/ext/mathematical/lasem/src/lsmstr.h +114 -0
  173. data/ext/mathematical/lasem/src/lsmsvg.h +67 -0
  174. data/ext/mathematical/lasem/src/lsmsvgaelement.c +73 -0
  175. data/ext/mathematical/lasem/src/lsmsvgaelement.h +55 -0
  176. data/ext/mathematical/lasem/src/lsmsvgattributes.h +168 -0
  177. data/ext/mathematical/lasem/src/lsmsvgcircleelement.c +153 -0
  178. data/ext/mathematical/lasem/src/lsmsvgcircleelement.h +59 -0
  179. data/ext/mathematical/lasem/src/lsmsvgclippathelement.c +134 -0
  180. data/ext/mathematical/lasem/src/lsmsvgclippathelement.h +59 -0
  181. data/ext/mathematical/lasem/src/lsmsvgcolors.c +212 -0
  182. data/ext/mathematical/lasem/src/lsmsvgcolors.h +39 -0
  183. data/ext/mathematical/lasem/src/lsmsvgdefselement.c +74 -0
  184. data/ext/mathematical/lasem/src/lsmsvgdefselement.h +55 -0
  185. data/ext/mathematical/lasem/src/lsmsvgdocument.c +306 -0
  186. data/ext/mathematical/lasem/src/lsmsvgdocument.h +64 -0
  187. data/ext/mathematical/lasem/src/lsmsvgelement.c +371 -0
  188. data/ext/mathematical/lasem/src/lsmsvgelement.h +80 -0
  189. data/ext/mathematical/lasem/src/lsmsvgellipseelement.c +158 -0
  190. data/ext/mathematical/lasem/src/lsmsvgellipseelement.h +60 -0
  191. data/ext/mathematical/lasem/src/lsmsvgenums.c +674 -0
  192. data/ext/mathematical/lasem/src/lsmsvgenums.h +416 -0
  193. data/ext/mathematical/lasem/src/lsmsvgfilterblend.c +105 -0
  194. data/ext/mathematical/lasem/src/lsmsvgfilterblend.h +58 -0
  195. data/ext/mathematical/lasem/src/lsmsvgfiltercolormatrix.c +115 -0
  196. data/ext/mathematical/lasem/src/lsmsvgfiltercolormatrix.h +58 -0
  197. data/ext/mathematical/lasem/src/lsmsvgfiltercomposite.c +109 -0
  198. data/ext/mathematical/lasem/src/lsmsvgfiltercomposite.h +58 -0
  199. data/ext/mathematical/lasem/src/lsmsvgfilterconvolvematrix.c +206 -0
  200. data/ext/mathematical/lasem/src/lsmsvgfilterconvolvematrix.h +64 -0
  201. data/ext/mathematical/lasem/src/lsmsvgfilterdisplacementmap.c +124 -0
  202. data/ext/mathematical/lasem/src/lsmsvgfilterdisplacementmap.h +60 -0
  203. data/ext/mathematical/lasem/src/lsmsvgfilterelement.c +266 -0
  204. data/ext/mathematical/lasem/src/lsmsvgfilterelement.h +66 -0
  205. data/ext/mathematical/lasem/src/lsmsvgfilterflood.c +86 -0
  206. data/ext/mathematical/lasem/src/lsmsvgfilterflood.h +55 -0
  207. data/ext/mathematical/lasem/src/lsmsvgfiltergaussianblur.c +114 -0
  208. data/ext/mathematical/lasem/src/lsmsvgfiltergaussianblur.h +57 -0
  209. data/ext/mathematical/lasem/src/lsmsvgfilterimage.c +169 -0
  210. data/ext/mathematical/lasem/src/lsmsvgfilterimage.h +61 -0
  211. data/ext/mathematical/lasem/src/lsmsvgfiltermerge.c +98 -0
  212. data/ext/mathematical/lasem/src/lsmsvgfiltermerge.h +55 -0
  213. data/ext/mathematical/lasem/src/lsmsvgfiltermergenode.c +87 -0
  214. data/ext/mathematical/lasem/src/lsmsvgfiltermergenode.h +57 -0
  215. data/ext/mathematical/lasem/src/lsmsvgfiltermorphology.c +116 -0
  216. data/ext/mathematical/lasem/src/lsmsvgfiltermorphology.h +58 -0
  217. data/ext/mathematical/lasem/src/lsmsvgfilteroffset.c +112 -0
  218. data/ext/mathematical/lasem/src/lsmsvgfilteroffset.h +58 -0
  219. data/ext/mathematical/lasem/src/lsmsvgfilterprimitive.c +168 -0
  220. data/ext/mathematical/lasem/src/lsmsvgfilterprimitive.h +66 -0
  221. data/ext/mathematical/lasem/src/lsmsvgfilterspecularlighting.c +134 -0
  222. data/ext/mathematical/lasem/src/lsmsvgfilterspecularlighting.h +60 -0
  223. data/ext/mathematical/lasem/src/lsmsvgfiltersurface.c +1540 -0
  224. data/ext/mathematical/lasem/src/lsmsvgfiltersurface.h +92 -0
  225. data/ext/mathematical/lasem/src/lsmsvgfiltertile.c +102 -0
  226. data/ext/mathematical/lasem/src/lsmsvgfiltertile.h +57 -0
  227. data/ext/mathematical/lasem/src/lsmsvgfilterturbulence.c +142 -0
  228. data/ext/mathematical/lasem/src/lsmsvgfilterturbulence.h +61 -0
  229. data/ext/mathematical/lasem/src/lsmsvggelement.c +73 -0
  230. data/ext/mathematical/lasem/src/lsmsvggelement.h +55 -0
  231. data/ext/mathematical/lasem/src/lsmsvggradientelement.c +151 -0
  232. data/ext/mathematical/lasem/src/lsmsvggradientelement.h +68 -0
  233. data/ext/mathematical/lasem/src/lsmsvgimageelement.c +261 -0
  234. data/ext/mathematical/lasem/src/lsmsvgimageelement.h +67 -0
  235. data/ext/mathematical/lasem/src/lsmsvglength.c +152 -0
  236. data/ext/mathematical/lasem/src/lsmsvglength.h +65 -0
  237. data/ext/mathematical/lasem/src/lsmsvglineargradientelement.c +271 -0
  238. data/ext/mathematical/lasem/src/lsmsvglineargradientelement.h +60 -0
  239. data/ext/mathematical/lasem/src/lsmsvglineelement.c +153 -0
  240. data/ext/mathematical/lasem/src/lsmsvglineelement.h +60 -0
  241. data/ext/mathematical/lasem/src/lsmsvgmarkerelement.c +266 -0
  242. data/ext/mathematical/lasem/src/lsmsvgmarkerelement.h +74 -0
  243. data/ext/mathematical/lasem/src/lsmsvgmaskelement.c +232 -0
  244. data/ext/mathematical/lasem/src/lsmsvgmaskelement.h +64 -0
  245. data/ext/mathematical/lasem/src/lsmsvgmatrix.c +221 -0
  246. data/ext/mathematical/lasem/src/lsmsvgmatrix.h +60 -0
  247. data/ext/mathematical/lasem/src/lsmsvgpathelement.c +115 -0
  248. data/ext/mathematical/lasem/src/lsmsvgpathelement.h +59 -0
  249. data/ext/mathematical/lasem/src/lsmsvgpatternelement.c +398 -0
  250. data/ext/mathematical/lasem/src/lsmsvgpatternelement.h +69 -0
  251. data/ext/mathematical/lasem/src/lsmsvgpolygonelement.c +106 -0
  252. data/ext/mathematical/lasem/src/lsmsvgpolygonelement.h +57 -0
  253. data/ext/mathematical/lasem/src/lsmsvgpolylineelement.c +106 -0
  254. data/ext/mathematical/lasem/src/lsmsvgpolylineelement.h +57 -0
  255. data/ext/mathematical/lasem/src/lsmsvgradialgradientelement.c +323 -0
  256. data/ext/mathematical/lasem/src/lsmsvgradialgradientelement.h +61 -0
  257. data/ext/mathematical/lasem/src/lsmsvgrectelement.c +184 -0
  258. data/ext/mathematical/lasem/src/lsmsvgrectelement.h +62 -0
  259. data/ext/mathematical/lasem/src/lsmsvgstopelement.c +106 -0
  260. data/ext/mathematical/lasem/src/lsmsvgstopelement.h +57 -0
  261. data/ext/mathematical/lasem/src/lsmsvgstyle.c +546 -0
  262. data/ext/mathematical/lasem/src/lsmsvgstyle.h +217 -0
  263. data/ext/mathematical/lasem/src/lsmsvgsvgelement.c +266 -0
  264. data/ext/mathematical/lasem/src/lsmsvgsvgelement.h +71 -0
  265. data/ext/mathematical/lasem/src/lsmsvgswitchelement.c +103 -0
  266. data/ext/mathematical/lasem/src/lsmsvgswitchelement.h +55 -0
  267. data/ext/mathematical/lasem/src/lsmsvgsymbolelement.c +148 -0
  268. data/ext/mathematical/lasem/src/lsmsvgsymbolelement.h +58 -0
  269. data/ext/mathematical/lasem/src/lsmsvgtextelement.c +203 -0
  270. data/ext/mathematical/lasem/src/lsmsvgtextelement.h +60 -0
  271. data/ext/mathematical/lasem/src/lsmsvgtraits.c +1490 -0
  272. data/ext/mathematical/lasem/src/lsmsvgtraits.h +122 -0
  273. data/ext/mathematical/lasem/src/lsmsvgtransformable.c +106 -0
  274. data/ext/mathematical/lasem/src/lsmsvgtransformable.h +54 -0
  275. data/ext/mathematical/lasem/src/lsmsvgtspanelement.c +174 -0
  276. data/ext/mathematical/lasem/src/lsmsvgtspanelement.h +60 -0
  277. data/ext/mathematical/lasem/src/lsmsvgtypes.h +83 -0
  278. data/ext/mathematical/lasem/src/lsmsvguseelement.c +238 -0
  279. data/ext/mathematical/lasem/src/lsmsvguseelement.h +69 -0
  280. data/ext/mathematical/lasem/src/lsmsvgview.c +2797 -0
  281. data/ext/mathematical/lasem/src/lsmsvgview.h +203 -0
  282. data/ext/mathematical/lasem/src/lsmtraits.c +171 -0
  283. data/ext/mathematical/lasem/src/lsmtraits.h +51 -0
  284. data/ext/mathematical/lasem/src/lsmtypes.h +36 -0
  285. data/ext/mathematical/lasem/src/lsmutils.c +54 -0
  286. data/ext/mathematical/lasem/src/lsmutils.h +56 -0
  287. data/ext/mathematical/lasem/src/meson.build +321 -0
  288. data/ext/mathematical/lasem/subprojects/gi-docgen.wrap +6 -0
  289. data/ext/mathematical/lasem/tests/data/mathml/gtkmathview/README +5 -0
  290. data/ext/mathematical/lasem/tests/data/mathml/tex/fractions/fraction-02.tex +1 -0
  291. data/ext/mathematical/lasem/tests/data/mathml/tex/fractions/fraction-03-inline.tex +1 -0
  292. data/ext/mathematical/lasem/tests/data/mathml/tex/fractions/fraction-03.tex +1 -0
  293. data/ext/mathematical/lasem/tests/data/mathml/tex/fractions/fraction.tex +1 -0
  294. data/ext/mathematical/lasem/tests/data/mathml/tex/integrals/closed.tex +1 -0
  295. data/ext/mathematical/lasem/tests/data/mathml/tex/integrals/multiples.tex +1 -0
  296. data/ext/mathematical/lasem/tests/data/mathml/tex/integrals/standard.tex +1 -0
  297. data/ext/mathematical/lasem/tests/data/mathml/tex/matrices/matrix-01.tex +5 -0
  298. data/ext/mathematical/lasem/tests/data/mathml/tex/misc/array.tex +3 -0
  299. data/ext/mathematical/lasem/tests/data/mathml/tex/misc/cases-cr.tex +7 -0
  300. data/ext/mathematical/lasem/tests/data/mathml/tex/misc/cases-space.tex +7 -0
  301. data/ext/mathematical/lasem/tests/data/mathml/tex/misc/cases.tex +7 -0
  302. data/ext/mathematical/lasem/tests/data/mathml/tex/misc/color.tex +1 -0
  303. data/ext/mathematical/lasem/tests/data/mathml/tex/misc/complex-2.tex +1 -0
  304. data/ext/mathematical/lasem/tests/data/mathml/tex/misc/complex-inline.tex +7 -0
  305. data/ext/mathematical/lasem/tests/data/mathml/tex/misc/complex.tex +7 -0
  306. data/ext/mathematical/lasem/tests/data/mathml/tex/misc/quadratic-inline.tex +1 -0
  307. data/ext/mathematical/lasem/tests/data/mathml/tex/misc/quadratic.tex +1 -0
  308. data/ext/mathematical/lasem/tests/data/mathml/tex/radicals/radical-01.tex +1 -0
  309. data/ext/mathematical/lasem/tests/data/mathml/tex/radicals/radical-02.tex +1 -0
  310. data/ext/mathematical/lasem/tests/data/mathml/tex/scripts/accents.tex +1 -0
  311. data/ext/mathematical/lasem/tests/data/mathml/tex/scripts/script.tex +1 -0
  312. data/ext/mathematical/lasem/tests/data/mathml/tex/scripts/stack.tex +1 -0
  313. data/ext/mathematical/lasem/tests/data/mathml/tex/scripts/subscript.tex +1 -0
  314. data/ext/mathematical/lasem/tests/data/mathml/tex/scripts/sums-inline.tex +1 -0
  315. data/ext/mathematical/lasem/tests/data/mathml/tex/scripts/sums.tex +1 -0
  316. data/ext/mathematical/lasem/tests/data/mathml/tex/scripts/superscript-inline.tex +1 -0
  317. data/ext/mathematical/lasem/tests/data/mathml/tex/scripts/superscript.tex +1 -0
  318. data/ext/mathematical/lasem/tests/data/svg/batik/resources/images/bmpCursor.bmp +0 -0
  319. data/ext/mathematical/lasem/tests/data/svg/batik/resources/images/brushedMetal.jpg +0 -0
  320. data/ext/mathematical/lasem/tests/data/svg/batik/resources/images/jpeg.jpg +0 -0
  321. data/ext/mathematical/lasem/tests/data/svg/batik/resources/images/jpegCursor.jpg +0 -0
  322. data/ext/mathematical/lasem/tests/data/svg/batik/resources/images/operaBridge.jpg +0 -0
  323. data/ext/mathematical/lasem/tests/data/svg/batik/resources/images/operaSteps.jpg +0 -0
  324. data/ext/mathematical/lasem/tests/data/svg/batik/resources/images/operaWalk.jpg +0 -0
  325. data/ext/mathematical/lasem/tests/data/svg/batik/resources/images/sm_colors.tif +0 -0
  326. data/ext/mathematical/lasem/tests/data/svg/batik/resources/images/sm_colors_pb.tif +0 -0
  327. data/ext/mathematical/lasem/tests/data/svg/batik/resources/images/sm_colors_pb_tile.tif +0 -0
  328. data/ext/mathematical/lasem/tests/data/svg/batik/resources/images/sm_colors_tile.tif +0 -0
  329. data/ext/mathematical/lasem/tests/data/svg/batik/resources/images/tde.jpg +0 -0
  330. data/ext/mathematical/lasem/tests/data/svg/batik/resources/images/tiffCursor.tif +0 -0
  331. data/ext/mathematical/lasem/tests/data/svg/svg1.1/images/image1.jpg +0 -0
  332. data/ext/mathematical/lasem/tests/data/svg/svg1.1/images/struct-image-01.jpg +0 -0
  333. data/ext/mathematical/lasem/tests/data/svg/svg1.1/images/struct-image-02.jpg +0 -0
  334. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/CNN.3gp +0 -0
  335. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/SVG-1.1-monolithic-fixed.dtd +1622 -0
  336. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/TraitAccess.common.es +672 -0
  337. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/advice.wav +0 -0
  338. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/beep.wav +0 -0
  339. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/boing_x.wav +0 -0
  340. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/clock.mp4 +0 -0
  341. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/cloud-ps411q4app.jpg +0 -0
  342. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/cloud411q25s.jpg +0 -0
  343. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/cloud411q65float.jpg +0 -0
  344. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/cloud411q75o.jpg +0 -0
  345. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/cloud411q75p.jpg +0 -0
  346. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/cloud411q75s.jpg +0 -0
  347. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/cloud444q65o.jpg +0 -0
  348. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/cloudgsq75s.jpg +0 -0
  349. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/cloudoddq65o.jpg +0 -0
  350. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/cloudqllo.jpg +0 -0
  351. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/copyright-documents-19990405.html +89 -0
  352. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/disco.jpg +0 -0
  353. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/dogandball.3gp +0 -0
  354. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/dogandball.jpg +0 -0
  355. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/dogandball.mov +0 -0
  356. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/duckfeeding.3gp +0 -0
  357. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/duckfeeding.mov +0 -0
  358. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/excuse_me.wav +0 -0
  359. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/externalscript.js +1 -0
  360. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/greentopbutton.jpg +0 -0
  361. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/greentopbutton1.jpg +0 -0
  362. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/greentopbutton2.jpg +0 -0
  363. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/greentopbutton3.jpg +0 -0
  364. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/greentopbutton4.jpg +0 -0
  365. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/heroesLanding.3gp +0 -0
  366. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/image1.jpg +0 -0
  367. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/image2_b.jpg +0 -0
  368. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/myimage.jpg +0 -0
  369. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/pacman.wav +0 -0
  370. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/plant.jpg +0 -0
  371. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/pref_image0.jpg +0 -0
  372. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/pref_image1.jpg +0 -0
  373. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/pref_image2.jpg +0 -0
  374. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/pref_image3.jpg +0 -0
  375. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/pref_image4.jpg +0 -0
  376. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/pref_image5.jpg +0 -0
  377. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/pref_image6.jpg +0 -0
  378. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/pref_image7.jpg +0 -0
  379. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/pref_image8.jpg +0 -0
  380. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/pref_image9.jpg +0 -0
  381. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/script1.js +1 -0
  382. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/script10.js +1 -0
  383. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/script2.js +1 -0
  384. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/script3.js +1 -0
  385. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/script4.js +1 -0
  386. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/script5.js +1 -0
  387. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/script6.js +1 -0
  388. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/script7.js +1 -0
  389. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/script8.js +1 -0
  390. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/script9.js +1 -0
  391. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/skier.3gp +0 -0
  392. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/skier.jpg +0 -0
  393. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/struct-image-01.jpg +0 -0
  394. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/struct-image-02.jpg +0 -0
  395. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/svgRef4.css +4 -0
  396. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/welcome.wav +0 -0
  397. data/ext/mathematical/lasem/tests/data/svg/svg1.2/images/xmltree.xml +4 -0
  398. data/ext/mathematical/lasem/tests/dom.c +266 -0
  399. data/ext/mathematical/lasem/tests/filter.c +153 -0
  400. data/ext/mathematical/lasem/tests/fuzztest.sh +12 -0
  401. data/ext/mathematical/lasem/tests/lasem.supp +185 -0
  402. data/ext/mathematical/lasem/tests/lsmtest.c +592 -0
  403. data/ext/mathematical/lasem/tests/meson.build +39 -0
  404. data/ext/mathematical/lasem/tests/str.c +44 -0
  405. data/ext/mathematical/lasem/tests/suite.c +140 -0
  406. data/ext/mathematical/lasem/tests/suite.ini +27 -0
  407. data/ext/mathematical/lasem/tools/change-license +3 -0
  408. data/ext/mathematical/lasem/tools/charlist.dtd +73 -0
  409. data/ext/mathematical/lasem/tools/entities-to-c.xsl +1067 -0
  410. data/ext/mathematical/lasem/tools/fuzzxml +243 -0
  411. data/ext/mathematical/lasem/tools/generate-entity-array.c +2136 -0
  412. data/ext/mathematical/lasem/tools/unicode.xml +44303 -0
  413. data/ext/mathematical/lasem/viewer/meson.build +17 -0
  414. data/ext/mathematical/lasem/viewer/viewer.c +248 -0
  415. data/ext/mathematical/mtex2MML/CMakeLists.txt +255 -0
  416. data/ext/mathematical/mtex2MML/CONTRIBUTING.md +22 -0
  417. data/ext/mathematical/mtex2MML/README.md +143 -0
  418. data/ext/mathematical/mtex2MML/SUPPORTED.md +1216 -0
  419. data/ext/mathematical/mtex2MML/appveyor.yml +35 -0
  420. data/ext/mathematical/mtex2MML/cmake/Modules/astyle.cmake +12 -0
  421. data/ext/mathematical/mtex2MML/deps/uthash/package.json +27 -0
  422. data/ext/mathematical/mtex2MML/deps/uthash/utarray.h +239 -0
  423. data/ext/mathematical/mtex2MML/deps/uthash/uthash.h +1074 -0
  424. data/ext/mathematical/mtex2MML/deps/uthash/utlist.h +895 -0
  425. data/ext/mathematical/mtex2MML/deps/uthash/utringbuffer.h +108 -0
  426. data/ext/mathematical/mtex2MML/deps/uthash/utstring.h +398 -0
  427. data/ext/mathematical/mtex2MML/script/bootstrap +39 -0
  428. data/ext/mathematical/mtex2MML/script/cibuild +58 -0
  429. data/ext/mathematical/mtex2MML/script/tag +28 -0
  430. data/ext/mathematical/mtex2MML/src/colors.c +44 -0
  431. data/ext/mathematical/mtex2MML/src/colors.h +23 -0
  432. data/ext/mathematical/mtex2MML/src/em.c +99 -0
  433. data/ext/mathematical/mtex2MML/src/em.h +31 -0
  434. data/ext/mathematical/mtex2MML/src/environment.c +515 -0
  435. data/ext/mathematical/mtex2MML/src/environment.h +85 -0
  436. data/ext/mathematical/mtex2MML/src/lexer.l +1594 -0
  437. data/ext/mathematical/mtex2MML/src/libmtex2MML.pc.in +10 -0
  438. data/ext/mathematical/mtex2MML/src/main.c +187 -0
  439. data/ext/mathematical/mtex2MML/src/mtex2MML.h +89 -0
  440. data/ext/mathematical/mtex2MML/src/parser.y +3817 -0
  441. data/ext/mathematical/mtex2MML/src/string_dup.c +23 -0
  442. data/ext/mathematical/mtex2MML/src/string_dup.h +23 -0
  443. data/ext/mathematical/mtex2MML/src/string_extras.c +47 -0
  444. data/ext/mathematical/mtex2MML/src/string_extras.h +30 -0
  445. data/ext/mathematical/mtex2MML/src/win32-shims/unistd.h +51 -0
  446. data/ext/mathematical/mtex2MML/tests/array.c +127 -0
  447. data/ext/mathematical/mtex2MML/tests/basic.c +96 -0
  448. data/ext/mathematical/mtex2MML/tests/clar/fixtures.h +38 -0
  449. data/ext/mathematical/mtex2MML/tests/clar/fs.h +335 -0
  450. data/ext/mathematical/mtex2MML/tests/clar/print.h +66 -0
  451. data/ext/mathematical/mtex2MML/tests/clar/sandbox.h +141 -0
  452. data/ext/mathematical/mtex2MML/tests/clar.c +644 -0
  453. data/ext/mathematical/mtex2MML/tests/clar.h +163 -0
  454. data/ext/mathematical/mtex2MML/tests/clar_test.h +20 -0
  455. data/ext/mathematical/mtex2MML/tests/cornercases.c +46 -0
  456. data/ext/mathematical/mtex2MML/tests/debug/mtex2MML_debug.cc +21 -0
  457. data/ext/mathematical/mtex2MML/tests/delimiters.c +242 -0
  458. data/ext/mathematical/mtex2MML/tests/deps/file2str/file2str.c +62 -0
  459. data/ext/mathematical/mtex2MML/tests/deps/file2str/file2str.h +12 -0
  460. data/ext/mathematical/mtex2MML/tests/deps/file2str/package.json +9 -0
  461. data/ext/mathematical/mtex2MML/tests/deps/mkdtemp/mkdtemp.c +151 -0
  462. data/ext/mathematical/mtex2MML/tests/deps/mkdtemp/mkdtemp.h +10 -0
  463. data/ext/mathematical/mtex2MML/tests/deps/trim/package.json +7 -0
  464. data/ext/mathematical/mtex2MML/tests/deps/trim/trim.c +27 -0
  465. data/ext/mathematical/mtex2MML/tests/deps/trim/trim.h +7 -0
  466. data/ext/mathematical/mtex2MML/tests/env.c +334 -0
  467. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/AMScd/amscd-1.html +86 -0
  468. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/AMScd/amscd-2.html +148 -0
  469. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/AMScd/amscd-3.html +188 -0
  470. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/AMScd/arrows-2.html +156 -0
  471. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/AMScd/min-1.html +45 -0
  472. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/AMScd/min-2.html +35 -0
  473. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/accents-1.html +16 -0
  474. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/accents-2.html +3 -0
  475. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/accents-3.html +5 -0
  476. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/buildrel-1.html +3 -0
  477. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/issue490.html +0 -0
  478. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/issue877.html +3 -0
  479. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/issue937.html +3 -0
  480. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/overbrace-1.html +3 -0
  481. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/overbracket-1.html +3 -0
  482. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/overset-1.html +3 -0
  483. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/sideset-1.html +5 -0
  484. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/stackrel-1.html +3 -0
  485. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/subarray-1.html +1 -0
  486. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/substack-1.html +3 -0
  487. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/underbrace-1.html +3 -0
  488. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/underbracket-1.html +3 -0
  489. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/above-below/underset-1.html +3 -0
  490. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/action/mathtip-1.html +6 -0
  491. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/action/texttip-1.html +6 -0
  492. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/action/toggle-1.html +7 -0
  493. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/arrows/Newextarrow-1.html +10 -0
  494. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/arrows/arrows-1.html +34 -0
  495. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/arrows/arrows-2.html +30 -0
  496. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/arrows/arrows-3.html +9 -0
  497. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/arrows/arrows-4.html +13 -0
  498. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/arrows/arrows-5.html +7 -0
  499. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/atoms/mathbin-1.html +7 -0
  500. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/atoms/mathinner-1.html +3 -0
  501. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/atoms/mathop-1a.html +3 -0
  502. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/atoms/mathop-1b.html +5 -0
  503. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/atoms/mathop-2.html +5 -0
  504. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/atoms/mathopenclose-1.html +3 -0
  505. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/atoms/mathord-1.html +3 -0
  506. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/atoms/mathpunct-1.html +3 -0
  507. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/atoms/mathrel-1.html +3 -0
  508. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/basic-operators/backslashed-1.html +16 -0
  509. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/basic-operators/basic-operators-1.html +3 -0
  510. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/basic-operators/basic-operators-2.html +25 -0
  511. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/basic-operators/remap-1.html +5 -0
  512. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/colors/color-1.html +3 -0
  513. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/colors/colorbox-1.html +3 -0
  514. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/colors/definecolor-1.html +37 -0
  515. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/colors/definecolor-2.html +79 -0
  516. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/colors/fcolorbox-1.html +7 -0
  517. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/colors/issue446.html +5 -0
  518. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/colors/namedcolors-1.html +70 -0
  519. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/delimiters/big-1.html +3 -0
  520. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/delimiters/big-2.html +3 -0
  521. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/delimiters/big-3.html +3 -0
  522. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/delimiters/delimiters-1.html +3 -0
  523. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/delimiters/delimiters-2.html +4 -0
  524. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/delimiters/issue775.html +3 -0
  525. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/delimiters/issue776-1a.html +6 -0
  526. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/delimiters/issue776-1b.html +6 -0
  527. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/delimiters/issue776-2.html +6 -0
  528. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/delimiters/issue776-3.html +6 -0
  529. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/delimiters/issue776-4.html +6 -0
  530. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/delimiters/issue776-5.html +6 -0
  531. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/delimiters/left-right-1.html +3 -0
  532. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/align-1a.html +7 -0
  533. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/align-1b.html +7 -0
  534. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/alignat-1a.html +6 -0
  535. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/alignat-1b.html +6 -0
  536. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/aligned-1.html +9 -0
  537. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/aligned-2.html +14 -0
  538. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/alignedat-1.html +8 -0
  539. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/eqalign-1.html +8 -0
  540. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/eqalignno-1.html +8 -0
  541. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/eqnarray-1a.html +7 -0
  542. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/eqnarray-1b.html +7 -0
  543. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/eqnarray-2.html +64 -0
  544. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/equation-1.html +5 -0
  545. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/equation-2.html +5 -0
  546. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/gather-1a.html +7 -0
  547. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/gather-1b.html +7 -0
  548. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/gathered-1.html +7 -0
  549. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/gathered-2.html +12 -0
  550. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/issue982-1a.html +5 -0
  551. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/issue982-1b.html +5 -0
  552. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/issue982-2a.html +5 -0
  553. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/issue982-2b.html +5 -0
  554. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/issue982-3a.html +5 -0
  555. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/issue982-3b.html +5 -0
  556. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/leqalignno-1.html +11 -0
  557. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/multline-1a.html +7 -0
  558. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/multline-1b.html +7 -0
  559. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/environments/split-1.html +9 -0
  560. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/errors/noErrors-1.html +5 -0
  561. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/errors/noUndefined-1.html +3 -0
  562. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/above-1.html +3 -0
  563. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/abovewithdelims-1.html +3 -0
  564. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/atop-1.html +3 -0
  565. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/atopwithdelims-1.html +3 -0
  566. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/binom-1.html +3 -0
  567. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/brace-1.html +3 -0
  568. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/brack-1.html +3 -0
  569. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/cfrac-1.html +3 -0
  570. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/choose-1.html +3 -0
  571. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/dbinom-1.html +3 -0
  572. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/dfrac-1.html +3 -0
  573. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/frac-1a.html +3 -0
  574. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/frac-1b.html +3 -0
  575. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/genfrac-1.html +3 -0
  576. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/issue969.html +3 -0
  577. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/overwithdelims-1.html +3 -0
  578. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/tbinom-1.html +3 -0
  579. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/frac/tfrac-1.html +3 -0
  580. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/issues/issue1152-1.html +1 -0
  581. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/issues/issue1152-2.html +4 -0
  582. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/issues/issue375.html +3 -0
  583. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/issues/issue856.html +3 -0
  584. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/issues/issue901-1a.html +5 -0
  585. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/issues/issue901-1b.html +5 -0
  586. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/issues/issue901-1c.html +5 -0
  587. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/issues/issue901-1d.html +5 -0
  588. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/boxes-1.html +5 -0
  589. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/kern-1a.html +3 -0
  590. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/kern-1b.html +3 -0
  591. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/llap-1.html +3 -0
  592. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/lower-1.html +4 -0
  593. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/mathstrut-1.html +3 -0
  594. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/moveleft-1.html +3 -0
  595. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/moveright-1.html +3 -0
  596. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/newline-1.html +3 -0
  597. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/phantom-1.html +4 -0
  598. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/raise-1.html +3 -0
  599. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/rlap-1.html +3 -0
  600. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/shove-1.html +19 -0
  601. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/skip-1a.html +3 -0
  602. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/skip-1b.html +3 -0
  603. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/smash-1.html +3 -0
  604. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/spaces-1.html +18 -0
  605. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/strut-1.html +3 -0
  606. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/layout/vcenter-1.html +3 -0
  607. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/letters/greek-1.html +32 -0
  608. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/letters/greek-2.html +13 -0
  609. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/letters/greek-3.html +6 -0
  610. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/letters/greek-4.html +13 -0
  611. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/letters/hebrew-1.html +6 -0
  612. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/macro/begingroup-1.html +15 -0
  613. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/macro/def-1.html +5 -0
  614. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/macro/let-1.html +14 -0
  615. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/macro/macro-1.html +7 -0
  616. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/macro/macro-2.html +25 -0
  617. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/macro/macro-3.html +50 -0
  618. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/macro/macro-5.html +5 -0
  619. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/macro/macro-6.html +7 -0
  620. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/macro/macro-7.html +7 -0
  621. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/Bbb-1.html +3 -0
  622. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/bf-1.html +3 -0
  623. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/boldsymbol-1.html +9 -0
  624. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/cal-1.html +3 -0
  625. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/frak-1.html +3 -0
  626. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/it-1.html +3 -0
  627. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/mathbb-1.html +3 -0
  628. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/mathbf-1a.html +3 -0
  629. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/mathbf-1b.html +3 -0
  630. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/mathbf-2.html +3 -0
  631. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/mathcal-1.html +3 -0
  632. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/mathfrak-1.html +3 -0
  633. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/mathit-1.html +3 -0
  634. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/mathrm-1.html +3 -0
  635. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/mathscr-1.html +3 -0
  636. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/mathsf-1.html +3 -0
  637. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/mathtt-1.html +3 -0
  638. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/mit-1.html +3 -0
  639. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/pmb-1.html +3 -0
  640. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/rm-1.html +3 -0
  641. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/scr-1.html +3 -0
  642. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/sf-1.html +3 -0
  643. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/text-1.html +3 -0
  644. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/textbf-1.html +3 -0
  645. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/textit-1.html +3 -0
  646. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/textrm-1.html +3 -0
  647. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/textsf-1.html +3 -0
  648. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/texttt-1.html +3 -0
  649. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mathvariant/tt-1.html +3 -0
  650. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/matrices/array-1a.html +7 -0
  651. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/matrices/array-1b.html +7 -0
  652. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/matrices/array-2.html +3 -0
  653. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/matrices/array-3.html +3 -0
  654. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/matrices/bmatrix-1.html +7 -0
  655. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/matrices/bmatrix-2.html +7 -0
  656. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/matrices/matrix-1.html +7 -0
  657. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/matrices/matrix-2.html +7 -0
  658. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/matrices/pmatrix-1.html +7 -0
  659. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/matrices/pmatrix-2.html +8 -0
  660. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/matrices/smallmatrix-1.html +3 -0
  661. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/matrices/vmatrix-1.html +7 -0
  662. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/matrices/vmatrix-2.html +7 -0
  663. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mhchem/advanced-1.html +120 -0
  664. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mhchem/advanced-2.html +35 -0
  665. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mhchem/advanced-3.html +138 -0
  666. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mhchem/amounts-1.html +46 -0
  667. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mhchem/arrows-1.html +235 -0
  668. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mhchem/arrows-2.html +159 -0
  669. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mhchem/basics-1.html +139 -0
  670. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mhchem/bonds-1.html +256 -0
  671. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mhchem/environments-1.html +81 -0
  672. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mhchem/isotopes-1.html +30 -0
  673. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mhchem/math-1.html +101 -0
  674. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/mhchem/special_symbols-1.html +176 -0
  675. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/non-standard/Rule-1.html +5 -0
  676. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/non-standard/Tiny-1.html +3 -0
  677. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/non-standard/class-1.html +3 -0
  678. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/non-standard/cssId-1.html +3 -0
  679. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/non-standard/href-1.html +3 -0
  680. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/non-standard/href-2.html +3 -0
  681. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/non-standard/require-1.html +3 -0
  682. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/non-standard/style-1.html +3 -0
  683. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/non-standard/unicode-1.html +8 -0
  684. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/LaTeX-1.html +4 -0
  685. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/bbox-1.html +6 -0
  686. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/boxed-1.html +3 -0
  687. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/cancel-1.html +6 -0
  688. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/cases-1.html +3 -0
  689. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/displaylines-1.html +7 -0
  690. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/enclose-1.html +8 -0
  691. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/functions-1.html +34 -0
  692. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/limits-1.html +5 -0
  693. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/limits-2.html +8 -0
  694. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/limits-3.html +3 -0
  695. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/mathsize-1.html +11 -0
  696. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/mod-1.html +5 -0
  697. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/not-1.html +5 -0
  698. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/pod-1.html +3 -0
  699. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/primes-1.html +8 -0
  700. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/primes-2.html +4 -0
  701. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/primes-3.html +3 -0
  702. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/style-1.html +7 -0
  703. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/style-2.html +0 -0
  704. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/verb-1.html +3 -0
  705. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/other/verb-2.html +3 -0
  706. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/references/eqref-1.html +5 -0
  707. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/references/label-1.html +7 -0
  708. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/references/label-2.html +1 -0
  709. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/references/notag-1.html +5 -0
  710. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/references/ref-1.html +5 -0
  711. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/references/ref-2.html +5 -0
  712. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/references/ref-3.html +5 -0
  713. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/roots/root-1.html +3 -0
  714. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/roots/root-2.html +3 -0
  715. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/roots/root-3.html +3 -0
  716. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/roots/sqrt-1.html +3 -0
  717. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/roots/sqrt-2.html +3 -0
  718. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/symbols/binaryops-1.html +32 -0
  719. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/symbols/dots-1.html +26 -0
  720. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/symbols/largeops-1.html +4 -0
  721. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/symbols/largeops-2.html +3 -0
  722. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/symbols/relations-1.html +39 -0
  723. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/symbols/symbols-1.html +25 -0
  724. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/symbols/symbols-2.html +31 -0
  725. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/symbols/symbols-3.html +40 -0
  726. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/symbols/symbols-4.html +39 -0
  727. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/symbols/symbols-5.html +56 -0
  728. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-out/symbols/symbols-6.html +49 -0
  729. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/AMScd/amscd-1.no_tex +8 -0
  730. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/AMScd/amscd-2.no_tex +13 -0
  731. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/AMScd/amscd-3.no_tex +23 -0
  732. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/AMScd/arrows-1.no_tex +23 -0
  733. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/AMScd/arrows-2.no_tex +26 -0
  734. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/AMScd/min-1.no_tex +14 -0
  735. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/AMScd/min-2.no_tex +14 -0
  736. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/accents-1.txt +16 -0
  737. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/accents-2.txt +3 -0
  738. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/accents-3.txt +5 -0
  739. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/buildrel-1.txt +3 -0
  740. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/issue490.no_tex +3 -0
  741. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/issue877.txt +3 -0
  742. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/issue937.txt +3 -0
  743. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/overbrace-1.txt +3 -0
  744. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/overbracket-1.txt +3 -0
  745. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/overset-1.txt +3 -0
  746. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/sideset-1.txt +6 -0
  747. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/stackrel-1.txt +3 -0
  748. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/subarray-1.txt +1 -0
  749. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/substack-1.txt +3 -0
  750. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/underbrace-1.txt +3 -0
  751. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/underbracket-1.txt +3 -0
  752. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/above-below/underset-1.txt +3 -0
  753. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/action/mathtip-1.no_tex +2 -0
  754. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/action/texttip-1.no_tex +2 -0
  755. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/action/toggle-1.no_tex +3 -0
  756. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/arrows/Newextarrow-1.xtex +4 -0
  757. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/arrows/arrows-1.txt +34 -0
  758. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/arrows/arrows-2.txt +30 -0
  759. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/arrows/arrows-3.txt +9 -0
  760. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/arrows/arrows-4.txt +13 -0
  761. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/arrows/arrows-5.txt +7 -0
  762. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/atoms/mathbin-1.no_tex +3 -0
  763. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/atoms/mathinner-1.txt +3 -0
  764. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/atoms/mathop-1a.txt +3 -0
  765. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/atoms/mathop-1b.txt +5 -0
  766. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/atoms/mathop-2.xtex +3 -0
  767. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/atoms/mathopenclose-1.txt +3 -0
  768. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/atoms/mathord-1.txt +3 -0
  769. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/atoms/mathpunct-1.txt +3 -0
  770. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/atoms/mathrel-1.txt +3 -0
  771. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/basic-operators/backslashed-1.txt +16 -0
  772. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/basic-operators/basic-operators-1.txt +3 -0
  773. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/basic-operators/basic-operators-2.xtex +5 -0
  774. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/basic-operators/remap-1.txt +5 -0
  775. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/colors/color-1.txt +3 -0
  776. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/colors/colorbox-1.txt +3 -0
  777. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/colors/definecolor-1a.xtex +7 -0
  778. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/colors/definecolor-1b.xtex +7 -0
  779. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/colors/definecolor-1c.xtex +7 -0
  780. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/colors/definecolor-2.xtex +13 -0
  781. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/colors/fcolorbox-1.xtex +3 -0
  782. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/colors/issue446.xtex +5 -0
  783. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/colors/namedcolors-1.txt +70 -0
  784. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/delimiters/big-1.txt +3 -0
  785. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/delimiters/big-2.txt +3 -0
  786. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/delimiters/big-3.txt +3 -0
  787. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/delimiters/delimiters-1.txt +3 -0
  788. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/delimiters/delimiters-2.txt +4 -0
  789. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/delimiters/issue775.txt +3 -0
  790. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/delimiters/issue776-1a.txt +6 -0
  791. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/delimiters/issue776-1b.txt +6 -0
  792. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/delimiters/issue776-2.txt +6 -0
  793. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/delimiters/issue776-3.txt +6 -0
  794. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/delimiters/issue776-4.txt +6 -0
  795. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/delimiters/issue776-5.txt +6 -0
  796. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/delimiters/left-right-1.txt +3 -0
  797. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/align-1a.txt +7 -0
  798. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/align-1b.txt +7 -0
  799. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/alignat-1a.txt +6 -0
  800. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/alignat-1b.txt +6 -0
  801. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/aligned-1.txt +9 -0
  802. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/aligned-2.txt +14 -0
  803. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/alignedat-1.txt +8 -0
  804. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/eqalign-1.txt +8 -0
  805. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/eqalignno-1.txt +8 -0
  806. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/eqnarray-1a.txt +7 -0
  807. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/eqnarray-1b.txt +7 -0
  808. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/eqnarray-1c.no_tex +7 -0
  809. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/eqnarray-2a.no_tex +8 -0
  810. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/equation-1.txt +5 -0
  811. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/equation-2.txt +5 -0
  812. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/gather-1a.txt +7 -0
  813. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/gather-1b.txt +7 -0
  814. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/gathered-1.txt +7 -0
  815. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/gathered-2.txt +12 -0
  816. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/issue982-1a.txt +5 -0
  817. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/issue982-1b.txt +5 -0
  818. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/issue982-2a.txt +5 -0
  819. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/issue982-2b.txt +5 -0
  820. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/issue982-3a.txt +5 -0
  821. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/issue982-3b.txt +5 -0
  822. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/leqalignno-1.xtex +8 -0
  823. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/multline-1a.txt +7 -0
  824. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/multline-1b.txt +7 -0
  825. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/environments/split-1.txt +9 -0
  826. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/errors/noErrors-1.no_tex +3 -0
  827. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/errors/noUndefined-1.no_tex +2 -0
  828. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/above-1.txt +3 -0
  829. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/abovewithdelims-1.txt +3 -0
  830. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/atop-1.txt +3 -0
  831. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/atopwithdelims-1.txt +3 -0
  832. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/binom-1.txt +3 -0
  833. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/brace-1.txt +3 -0
  834. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/brack-1.txt +3 -0
  835. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/cfrac-1.txt +3 -0
  836. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/choose-1.txt +3 -0
  837. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/dbinom-1.txt +3 -0
  838. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/dfrac-1.txt +3 -0
  839. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/frac-1a.txt +3 -0
  840. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/frac-1b.txt +3 -0
  841. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/genfrac-1.txt +3 -0
  842. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/issue969.txt +3 -0
  843. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/overwithdelims-1.txt +3 -0
  844. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/tbinom-1.txt +3 -0
  845. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/frac/tfrac-1.txt +3 -0
  846. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/issues/issue1151.no_tex +3 -0
  847. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/issues/issue1152-1.xtex +1 -0
  848. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/issues/issue1152-2.txt +4 -0
  849. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/issues/issue375.txt +3 -0
  850. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/issues/issue856.txt +3 -0
  851. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/issues/issue901-1a.txt +5 -0
  852. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/issues/issue901-1b.txt +5 -0
  853. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/issues/issue901-1c.txt +5 -0
  854. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/issues/issue901-1d.txt +5 -0
  855. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/issues/issue903-1.xtex +6 -0
  856. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/issues/issue903-2.xtex +16 -0
  857. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/boxes-1.txt +5 -0
  858. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/kern-1a.txt +3 -0
  859. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/kern-1b.txt +3 -0
  860. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/llap-1.txt +3 -0
  861. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/lower-1.txt +4 -0
  862. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/mathstrut-1.txt +3 -0
  863. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/moveleft-1.txt +3 -0
  864. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/moveright-1.txt +3 -0
  865. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/newline-1.txt +3 -0
  866. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/phantom-1.txt +4 -0
  867. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/raise-1.txt +3 -0
  868. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/rlap-1.txt +3 -0
  869. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/shove-1.xtex +7 -0
  870. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/skip-1a.txt +3 -0
  871. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/skip-1b.txt +3 -0
  872. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/smash-1.txt +3 -0
  873. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/spaces-1.txt +18 -0
  874. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/strut-1.txt +3 -0
  875. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/layout/vcenter-1.txt +3 -0
  876. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/letters/greek-1.txt +32 -0
  877. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/letters/greek-2.txt +13 -0
  878. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/letters/greek-3.txt +6 -0
  879. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/letters/greek-4.txt +13 -0
  880. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/letters/hebrew-1.txt +6 -0
  881. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/macro/begingroup-1.no_tex +8 -0
  882. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/macro/def-1.no_tex +4 -0
  883. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/macro/let-1.no_tex +5 -0
  884. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/macro/macro-1a.no_tex +3 -0
  885. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/macro/macro-1b.no_tex +3 -0
  886. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/macro/macro-2.no_tex +3 -0
  887. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/macro/macro-3.no_tex +5 -0
  888. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/macro/macro-5.no_tex +3 -0
  889. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/macro/macro-6.no_tex +5 -0
  890. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/macro/macro-7.no_tex +11 -0
  891. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/Bbb-1.txt +3 -0
  892. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/bf-1.txt +3 -0
  893. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/boldsymbol-1.txt +9 -0
  894. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/cal-1.txt +3 -0
  895. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/frak-1.txt +3 -0
  896. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/it-1.txt +3 -0
  897. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/mathbb-1.txt +3 -0
  898. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/mathbf-1a.txt +3 -0
  899. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/mathbf-1b.txt +3 -0
  900. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/mathbf-2.txt +3 -0
  901. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/mathcal-1.txt +3 -0
  902. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/mathfrak-1.txt +3 -0
  903. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/mathit-1.txt +3 -0
  904. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/mathrm-1.txt +3 -0
  905. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/mathscr-1.txt +3 -0
  906. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/mathsf-1.txt +3 -0
  907. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/mathtt-1.txt +3 -0
  908. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/mit-1.txt +3 -0
  909. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/pmb-1.txt +3 -0
  910. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/rm-1.txt +3 -0
  911. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/scr-1.txt +3 -0
  912. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/sf-1.txt +3 -0
  913. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/text-1.txt +3 -0
  914. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/textbf-1.txt +3 -0
  915. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/textit-1.txt +3 -0
  916. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/textrm-1.txt +3 -0
  917. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/textsf-1.txt +3 -0
  918. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/texttt-1.txt +3 -0
  919. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mathvariant/tt-1.txt +3 -0
  920. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/matrices/array-1a.txt +7 -0
  921. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/matrices/array-1b.txt +7 -0
  922. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/matrices/array-2.txt +3 -0
  923. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/matrices/array-3.txt +3 -0
  924. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/matrices/bmatrix-1.txt +7 -0
  925. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/matrices/bmatrix-2.txt +7 -0
  926. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/matrices/matrix-1.txt +7 -0
  927. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/matrices/matrix-2.txt +7 -0
  928. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/matrices/pmatrix-1.txt +7 -0
  929. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/matrices/pmatrix-2.txt +8 -0
  930. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/matrices/smallmatrix-1.txt +3 -0
  931. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/matrices/vmatrix-1.txt +7 -0
  932. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/matrices/vmatrix-2.txt +7 -0
  933. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mhchem/advanced-1.no_tex +8 -0
  934. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mhchem/advanced-2.no_tex +3 -0
  935. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mhchem/advanced-3.no_tex +7 -0
  936. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mhchem/amounts-1.no_tex +4 -0
  937. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mhchem/arrows-1.no_tex +10 -0
  938. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mhchem/arrows-2.no_tex +9 -0
  939. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mhchem/basics-1.no_tex +13 -0
  940. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mhchem/bonds-1.no_tex +11 -0
  941. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mhchem/environments-1.no_tex +6 -0
  942. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mhchem/isotopes-1.no_tex +3 -0
  943. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mhchem/math-1.no_tex +4 -0
  944. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/mhchem/special_symbols-1.no_tex +7 -0
  945. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/non-standard/Rule-1.no_tex +3 -0
  946. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/non-standard/Tiny-1.txt +3 -0
  947. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/non-standard/class-1.no_tex +3 -0
  948. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/non-standard/cssId-1.no_tex +3 -0
  949. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/non-standard/href-1.no_tex +3 -0
  950. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/non-standard/href-2.no_tex +3 -0
  951. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/non-standard/require-1.no_tex +5 -0
  952. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/non-standard/style-1.no_tex +3 -0
  953. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/non-standard/unicode-1.no_tex +3 -0
  954. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/LaTeX-1.txt +4 -0
  955. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/bbox-1.txt +6 -0
  956. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/boxed-1.txt +3 -0
  957. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/cancel-1.txt +6 -0
  958. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/cases-1.txt +3 -0
  959. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/displaylines-1.xtex +8 -0
  960. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/enclose-1.txt +8 -0
  961. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/functions-1.txt +34 -0
  962. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/limits-1.txt +7 -0
  963. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/limits-2.txt +8 -0
  964. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/limits-3.txt +3 -0
  965. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/mathsize-1.txt +11 -0
  966. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/mod-1.txt +5 -0
  967. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/not-1.txt +5 -0
  968. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/pod-1.txt +3 -0
  969. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/primes-1.txt +8 -0
  970. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/primes-2.txt +4 -0
  971. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/primes-3.txt +3 -0
  972. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/style-1.txt +7 -0
  973. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/style-2.no_tex +10 -0
  974. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/verb-1.txt +3 -0
  975. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/other/verb-2.txt +3 -0
  976. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/references/eqref-1.no_tex +7 -0
  977. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/references/label-1.no_tex +3 -0
  978. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/references/label-2.no_tex +2 -0
  979. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/references/notag-1.txt +5 -0
  980. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/references/ref-1a.no_tex +2 -0
  981. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/references/ref-1b.no_tex +2 -0
  982. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/references/ref-2.no_tex +2 -0
  983. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/references/ref-3.no_tex +2 -0
  984. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/references/tag-1.no_tex +1 -0
  985. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/references/tag-2.no_tex +1 -0
  986. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/references/tag-3.no_tex +3 -0
  987. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/references/tag-4.no_tex +3 -0
  988. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/roots/root-1.txt +3 -0
  989. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/roots/root-2.txt +3 -0
  990. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/roots/root-3.txt +3 -0
  991. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/roots/sqrt-1.txt +3 -0
  992. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/roots/sqrt-2.txt +3 -0
  993. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/symbols/binaryops-1.txt +32 -0
  994. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/symbols/dots-1.txt +26 -0
  995. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/symbols/largeops-1.txt +4 -0
  996. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/symbols/largeops-2.txt +3 -0
  997. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/symbols/relations-1.txt +39 -0
  998. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/symbols/symbols-1.txt +25 -0
  999. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/symbols/symbols-2.txt +31 -0
  1000. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/symbols/symbols-3.txt +40 -0
  1001. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/symbols/symbols-4.txt +39 -0
  1002. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/symbols/symbols-5.txt +56 -0
  1003. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/LaTeXToMathML-tex/symbols/symbols-6.txt +49 -0
  1004. data/ext/mathematical/mtex2MML/tests/fixtures/MathJax/TODO.md +3 -0
  1005. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_nesting.html +32 -0
  1006. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_nesting.txt +32 -0
  1007. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_pos_alignment.html +8 -0
  1008. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_pos_alignment.txt +8 -0
  1009. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_pos_alignment_with_hline.html +12 -0
  1010. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_pos_alignment_with_hline.txt +12 -0
  1011. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_vertical_column.html +5 -0
  1012. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_vertical_column.txt +5 -0
  1013. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_vertical_column_with_align.html +5 -0
  1014. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_vertical_column_with_align.txt +5 -0
  1015. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_with_hline.html +9 -0
  1016. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_with_hline.txt +9 -0
  1017. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_with_hline_and_hdashline.html +10 -0
  1018. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_with_hline_and_hdashline.txt +10 -0
  1019. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_with_vertical_and_horizontal_dashes.html +10 -0
  1020. data/ext/mathematical/mtex2MML/tests/fixtures/array/array_with_vertical_and_horizontal_dashes.txt +10 -0
  1021. data/ext/mathematical/mtex2MML/tests/fixtures/array/augmented_matrix.html +6 -0
  1022. data/ext/mathematical/mtex2MML/tests/fixtures/array/augmented_matrix.txt +6 -0
  1023. data/ext/mathematical/mtex2MML/tests/fixtures/array/basic_array.html +5 -0
  1024. data/ext/mathematical/mtex2MML/tests/fixtures/array/basic_array.txt +5 -0
  1025. data/ext/mathematical/mtex2MML/tests/fixtures/array/strip_excess_whitespace_in_array_attributes.html +7 -0
  1026. data/ext/mathematical/mtex2MML/tests/fixtures/array/strip_excess_whitespace_in_array_attributes.txt +8 -0
  1027. data/ext/mathematical/mtex2MML/tests/fixtures/basic/block.html +1 -0
  1028. data/ext/mathematical/mtex2MML/tests/fixtures/basic/block.txt +1 -0
  1029. data/ext/mathematical/mtex2MML/tests/fixtures/basic/comments.html +6 -0
  1030. data/ext/mathematical/mtex2MML/tests/fixtures/basic/comments.txt +6 -0
  1031. data/ext/mathematical/mtex2MML/tests/fixtures/basic/filter.html +1 -0
  1032. data/ext/mathematical/mtex2MML/tests/fixtures/basic/filter.txt +3 -0
  1033. data/ext/mathematical/mtex2MML/tests/fixtures/basic/inline.html +1 -0
  1034. data/ext/mathematical/mtex2MML/tests/fixtures/basic/inline.txt +1 -0
  1035. data/ext/mathematical/mtex2MML/tests/fixtures/basic/strict_filter.html +3 -0
  1036. data/ext/mathematical/mtex2MML/tests/fixtures/basic/strict_filter.txt +3 -0
  1037. data/ext/mathematical/mtex2MML/tests/fixtures/basic/text_filter.html +3 -0
  1038. data/ext/mathematical/mtex2MML/tests/fixtures/basic/text_filter.txt +3 -0
  1039. data/ext/mathematical/mtex2MML/tests/fixtures/basic/text_rendering.html +23 -0
  1040. data/ext/mathematical/mtex2MML/tests/fixtures/basic/text_rendering.txt +23 -0
  1041. data/ext/mathematical/mtex2MML/tests/fixtures/cornercases/broken_up_inline_env.html +3 -0
  1042. data/ext/mathematical/mtex2MML/tests/fixtures/cornercases/broken_up_inline_env.txt +3 -0
  1043. data/ext/mathematical/mtex2MML/tests/fixtures/cornercases/some_crazy_alignment.html +24 -0
  1044. data/ext/mathematical/mtex2MML/tests/fixtures/cornercases/some_crazy_alignment.txt +24 -0
  1045. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/align.html +1 -0
  1046. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/align.txt +3 -0
  1047. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/alignat-1a.html +1 -0
  1048. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/alignat-1a.txt +4 -0
  1049. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/aligned_ex_spacing.html +1 -0
  1050. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/aligned_ex_spacing.txt +4 -0
  1051. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/basic_array.html +1 -0
  1052. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/basic_array.txt +3 -0
  1053. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/brackets.html +1 -0
  1054. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/dollar_spacings_filter.html +2 -0
  1055. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/dollar_spacings_filter.txt +27 -0
  1056. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/dollar_spacings_text_filter.html +27 -0
  1057. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/dollar_spacings_text_filter.txt +27 -0
  1058. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/double_dollar.html +1 -0
  1059. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/escaping.txt +35 -0
  1060. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/escaping_with_brackets.html +35 -0
  1061. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/escaping_with_dollars.html +35 -0
  1062. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/escaping_with_parens.html +35 -0
  1063. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/mixed.html +1 -0
  1064. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/mixed_env.html +8 -0
  1065. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/mixed_env.txt +11 -0
  1066. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/parens.html +1 -0
  1067. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/single_dollar.html +1 -0
  1068. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/single_equation.html +1 -0
  1069. data/ext/mathematical/mtex2MML/tests/fixtures/delimiters/single_equation.txt +3 -0
  1070. data/ext/mathematical/mtex2MML/tests/fixtures/env/aligned_ex_spacing.html +6 -0
  1071. data/ext/mathematical/mtex2MML/tests/fixtures/env/aligned_ex_spacing.txt +6 -0
  1072. data/ext/mathematical/mtex2MML/tests/fixtures/env/aligned_no_ex_spacing.html +6 -0
  1073. data/ext/mathematical/mtex2MML/tests/fixtures/env/aligned_no_ex_spacing.txt +6 -0
  1074. data/ext/mathematical/mtex2MML/tests/fixtures/env/aligned_no_lines.html +5 -0
  1075. data/ext/mathematical/mtex2MML/tests/fixtures/env/aligned_no_lines.txt +5 -0
  1076. data/ext/mathematical/mtex2MML/tests/fixtures/env/bbmatrix_ex_spacing.html +5 -0
  1077. data/ext/mathematical/mtex2MML/tests/fixtures/env/bbmatrix_ex_spacing.txt +5 -0
  1078. data/ext/mathematical/mtex2MML/tests/fixtures/env/bbmatrix_no_ex_spacing.html +5 -0
  1079. data/ext/mathematical/mtex2MML/tests/fixtures/env/bbmatrix_no_ex_spacing.txt +5 -0
  1080. data/ext/mathematical/mtex2MML/tests/fixtures/env/bbmatrix_no_lines.html +4 -0
  1081. data/ext/mathematical/mtex2MML/tests/fixtures/env/bbmatrix_no_lines.txt +4 -0
  1082. data/ext/mathematical/mtex2MML/tests/fixtures/env/bmatrix_ex_spacing.html +5 -0
  1083. data/ext/mathematical/mtex2MML/tests/fixtures/env/bmatrix_ex_spacing.txt +5 -0
  1084. data/ext/mathematical/mtex2MML/tests/fixtures/env/bmatrix_no_ex_spacing.html +5 -0
  1085. data/ext/mathematical/mtex2MML/tests/fixtures/env/bmatrix_no_ex_spacing.txt +5 -0
  1086. data/ext/mathematical/mtex2MML/tests/fixtures/env/bmatrix_no_lines.html +4 -0
  1087. data/ext/mathematical/mtex2MML/tests/fixtures/env/bmatrix_no_lines.txt +4 -0
  1088. data/ext/mathematical/mtex2MML/tests/fixtures/env/cases_ex_spacing.html +7 -0
  1089. data/ext/mathematical/mtex2MML/tests/fixtures/env/cases_ex_spacing.txt +7 -0
  1090. data/ext/mathematical/mtex2MML/tests/fixtures/env/cases_no_ex_spacing.html +7 -0
  1091. data/ext/mathematical/mtex2MML/tests/fixtures/env/cases_no_ex_spacing.txt +7 -0
  1092. data/ext/mathematical/mtex2MML/tests/fixtures/env/cases_no_lines.html +6 -0
  1093. data/ext/mathematical/mtex2MML/tests/fixtures/env/cases_no_lines.txt +6 -0
  1094. data/ext/mathematical/mtex2MML/tests/fixtures/env/gathered_ex_spacing.html +6 -0
  1095. data/ext/mathematical/mtex2MML/tests/fixtures/env/gathered_ex_spacing.txt +6 -0
  1096. data/ext/mathematical/mtex2MML/tests/fixtures/env/gathered_no_ex_spacing.html +6 -0
  1097. data/ext/mathematical/mtex2MML/tests/fixtures/env/gathered_no_ex_spacing.txt +6 -0
  1098. data/ext/mathematical/mtex2MML/tests/fixtures/env/gathered_no_lines.html +5 -0
  1099. data/ext/mathematical/mtex2MML/tests/fixtures/env/gathered_no_lines.txt +5 -0
  1100. data/ext/mathematical/mtex2MML/tests/fixtures/env/matrix_ex_spacing.html +7 -0
  1101. data/ext/mathematical/mtex2MML/tests/fixtures/env/matrix_ex_spacing.txt +7 -0
  1102. data/ext/mathematical/mtex2MML/tests/fixtures/env/matrix_no_ex_spacing.html +7 -0
  1103. data/ext/mathematical/mtex2MML/tests/fixtures/env/matrix_no_ex_spacing.txt +7 -0
  1104. data/ext/mathematical/mtex2MML/tests/fixtures/env/matrix_no_lines.html +6 -0
  1105. data/ext/mathematical/mtex2MML/tests/fixtures/env/matrix_no_lines.txt +6 -0
  1106. data/ext/mathematical/mtex2MML/tests/fixtures/env/pmatrix_ex_spacing.html +5 -0
  1107. data/ext/mathematical/mtex2MML/tests/fixtures/env/pmatrix_ex_spacing.txt +5 -0
  1108. data/ext/mathematical/mtex2MML/tests/fixtures/env/pmatrix_no_ex_spacing.html +5 -0
  1109. data/ext/mathematical/mtex2MML/tests/fixtures/env/pmatrix_no_ex_spacing.txt +5 -0
  1110. data/ext/mathematical/mtex2MML/tests/fixtures/env/pmatrix_no_lines.html +4 -0
  1111. data/ext/mathematical/mtex2MML/tests/fixtures/env/pmatrix_no_lines.txt +4 -0
  1112. data/ext/mathematical/mtex2MML/tests/fixtures/env/smallmatrix_ex_spacing.html +8 -0
  1113. data/ext/mathematical/mtex2MML/tests/fixtures/env/smallmatrix_ex_spacing.txt +8 -0
  1114. data/ext/mathematical/mtex2MML/tests/fixtures/env/smallmatrix_no_ex_spacing.html +7 -0
  1115. data/ext/mathematical/mtex2MML/tests/fixtures/env/smallmatrix_no_ex_spacing.txt +7 -0
  1116. data/ext/mathematical/mtex2MML/tests/fixtures/env/smallmatrix_no_lines.html +5 -0
  1117. data/ext/mathematical/mtex2MML/tests/fixtures/env/smallmatrix_no_lines.txt +5 -0
  1118. data/ext/mathematical/mtex2MML/tests/fixtures/env/spaces_after_rowsep.html +7 -0
  1119. data/ext/mathematical/mtex2MML/tests/fixtures/env/spaces_after_rowsep.txt +7 -0
  1120. data/ext/mathematical/mtex2MML/tests/fixtures/env/split_ex_spacing.html +6 -0
  1121. data/ext/mathematical/mtex2MML/tests/fixtures/env/split_ex_spacing.txt +6 -0
  1122. data/ext/mathematical/mtex2MML/tests/fixtures/env/split_no_ex_spacing.html +6 -0
  1123. data/ext/mathematical/mtex2MML/tests/fixtures/env/split_no_ex_spacing.txt +6 -0
  1124. data/ext/mathematical/mtex2MML/tests/fixtures/env/split_no_lines.html +5 -0
  1125. data/ext/mathematical/mtex2MML/tests/fixtures/env/split_no_lines.txt +5 -0
  1126. data/ext/mathematical/mtex2MML/tests/fixtures/env/vmatrix_ex_spacing.html +5 -0
  1127. data/ext/mathematical/mtex2MML/tests/fixtures/env/vmatrix_ex_spacing.txt +5 -0
  1128. data/ext/mathematical/mtex2MML/tests/fixtures/env/vmatrix_no_ex_spacing.html +5 -0
  1129. data/ext/mathematical/mtex2MML/tests/fixtures/env/vmatrix_no_ex_spacing.txt +5 -0
  1130. data/ext/mathematical/mtex2MML/tests/fixtures/env/vmatrix_no_lines.html +4 -0
  1131. data/ext/mathematical/mtex2MML/tests/fixtures/env/vmatrix_no_lines.txt +4 -0
  1132. data/ext/mathematical/mtex2MML/tests/fixtures/env/vvmatrix_ex_spacing.html +6 -0
  1133. data/ext/mathematical/mtex2MML/tests/fixtures/env/vvmatrix_ex_spacing.txt +6 -0
  1134. data/ext/mathematical/mtex2MML/tests/fixtures/env/vvmatrix_no_ex_spacing.html +6 -0
  1135. data/ext/mathematical/mtex2MML/tests/fixtures/env/vvmatrix_no_ex_spacing.txt +6 -0
  1136. data/ext/mathematical/mtex2MML/tests/fixtures/env/vvmatrix_no_lines.html +5 -0
  1137. data/ext/mathematical/mtex2MML/tests/fixtures/env/vvmatrix_no_lines.txt +5 -0
  1138. data/ext/mathematical/mtex2MML/tests/fixtures/functions/max_limits.html +1 -0
  1139. data/ext/mathematical/mtex2MML/tests/fixtures/functions/max_limits.txt +1 -0
  1140. data/ext/mathematical/mtex2MML/tests/fixtures/functions/min_limits.html +1 -0
  1141. data/ext/mathematical/mtex2MML/tests/fixtures/functions/min_limits.txt +1 -0
  1142. data/ext/mathematical/mtex2MML/tests/fixtures/functions/prod_limits.html +1 -0
  1143. data/ext/mathematical/mtex2MML/tests/fixtures/functions/prod_limits.txt +1 -0
  1144. data/ext/mathematical/mtex2MML/tests/fixtures/maliciousness/excess_parsing.txt +1 -0
  1145. data/ext/mathematical/mtex2MML/tests/fixtures/maliciousness/just_enough_parsing.html +1 -0
  1146. data/ext/mathematical/mtex2MML/tests/fixtures/maliciousness/just_enough_parsing.txt +1 -0
  1147. data/ext/mathematical/mtex2MML/tests/fixtures/numbered_equations/multiple_equations.html +11 -0
  1148. data/ext/mathematical/mtex2MML/tests/fixtures/numbered_equations/multiple_equations.txt +13 -0
  1149. data/ext/mathematical/mtex2MML/tests/fixtures/numbered_equations/multiple_notag_nonumber.html +7 -0
  1150. data/ext/mathematical/mtex2MML/tests/fixtures/numbered_equations/multiple_notag_nonumber.txt +7 -0
  1151. data/ext/mathematical/mtex2MML/tests/fixtures/numbered_equations/single_equation.html +5 -0
  1152. data/ext/mathematical/mtex2MML/tests/fixtures/numbered_equations/single_equation.txt +5 -0
  1153. data/ext/mathematical/mtex2MML/tests/fixtures/numbered_equations/single_nonumber.html +6 -0
  1154. data/ext/mathematical/mtex2MML/tests/fixtures/numbered_equations/single_nonumber.txt +6 -0
  1155. data/ext/mathematical/mtex2MML/tests/fixtures/numbered_equations/single_notag.html +6 -0
  1156. data/ext/mathematical/mtex2MML/tests/fixtures/numbered_equations/single_notag.txt +6 -0
  1157. data/ext/mathematical/mtex2MML/tests/fixtures/numbered_equations/skip_label.html +3 -0
  1158. data/ext/mathematical/mtex2MML/tests/fixtures/numbered_equations/skip_label.txt +3 -0
  1159. data/ext/mathematical/mtex2MML/tests/fixtures/numbered_equations/skip_tag.html +3 -0
  1160. data/ext/mathematical/mtex2MML/tests/fixtures/numbered_equations/skip_tag.txt +3 -0
  1161. data/ext/mathematical/mtex2MML/tests/fixtures/performance/big_file.html +12 -0
  1162. data/ext/mathematical/mtex2MML/tests/fixtures/performance/big_file.txt +1755 -0
  1163. data/ext/mathematical/mtex2MML/tests/fixtures/symbols/gt.html +1 -0
  1164. data/ext/mathematical/mtex2MML/tests/fixtures/symbols/gt.txt +1 -0
  1165. data/ext/mathematical/mtex2MML/tests/fixtures/symbols/lt.html +1 -0
  1166. data/ext/mathematical/mtex2MML/tests/fixtures/symbols/lt.txt +1 -0
  1167. data/ext/mathematical/mtex2MML/tests/fixtures/symbols/textgreater.html +1 -0
  1168. data/ext/mathematical/mtex2MML/tests/fixtures/symbols/textgreater.txt +1 -0
  1169. data/ext/mathematical/mtex2MML/tests/fixtures/symbols/textless.html +1 -0
  1170. data/ext/mathematical/mtex2MML/tests/fixtures/symbols/textless.txt +1 -0
  1171. data/ext/mathematical/mtex2MML/tests/functions.c +55 -0
  1172. data/ext/mathematical/mtex2MML/tests/generate.py +244 -0
  1173. data/ext/mathematical/mtex2MML/tests/helpers.c +29 -0
  1174. data/ext/mathematical/mtex2MML/tests/helpers.h +8 -0
  1175. data/ext/mathematical/mtex2MML/tests/main.c +35 -0
  1176. data/ext/mathematical/mtex2MML/tests/maliciousness.c +107 -0
  1177. data/ext/mathematical/mtex2MML/tests/mathjax.c +2040 -0
  1178. data/ext/mathematical/mtex2MML/tests/mathjax_generate.py +72 -0
  1179. data/ext/mathematical/mtex2MML/tests/numbered_equations.c +92 -0
  1180. data/ext/mathematical/mtex2MML/tests/performance.c +39 -0
  1181. data/ext/mathematical/mtex2MML/tests/symbols.c +69 -0
  1182. data/lib/mathematical/version.rb +1 -1
  1183. metadata +1181 -1
@@ -0,0 +1,2108 @@
1
+ /* itex2MML 1.6.0
2
+ * itex2MML.y last modified 03/23/2019
3
+ */
4
+
5
+ %parse-param {char **ret_str}
6
+
7
+ %{
8
+ #include <stdio.h>
9
+ #include <string.h>
10
+ #include <stdlib.h>
11
+
12
+ #include "itex2MML.h"
13
+
14
+ #define YYSTYPE char *
15
+ #define YYPARSE_PARAM_TYPE char **
16
+ #define YYPARSE_PARAM ret_str
17
+
18
+ #define yytext itex2MML_yytext
19
+
20
+ extern int yylex ();
21
+ int itex2MML_do_html_filter (const char * buffer, size_t length, const int forbid_markup);
22
+
23
+ extern char * yytext;
24
+
25
+ static void itex2MML_default_error (const char * msg)
26
+ {
27
+ if (msg)
28
+ fprintf(stderr, "Line: %d Error: %s\n", itex2MML_lineno, msg);
29
+ }
30
+
31
+ void (*itex2MML_error) (const char * msg) = itex2MML_default_error;
32
+
33
+ static void yyerror (char **ret_str, char * s)
34
+ {
35
+ char * msg = itex2MML_copy3 (s, " at token ", yytext);
36
+ if (itex2MML_error)
37
+ (*itex2MML_error) (msg);
38
+ itex2MML_free_string (msg);
39
+ }
40
+
41
+ /* Note: If length is 0, then buffer is treated like a string; otherwise only length bytes are written.
42
+ */
43
+ static void itex2MML_default_write (const char * buffer, size_t length)
44
+ {
45
+ if (buffer)
46
+ {
47
+ if (length)
48
+ fwrite (buffer, 1, length, stdout);
49
+ else
50
+ fputs (buffer, stdout);
51
+ }
52
+ }
53
+
54
+ static void itex2MML_default_write_mathml (const char * mathml)
55
+ {
56
+ if (itex2MML_write)
57
+ (*itex2MML_write) (mathml, 0);
58
+ }
59
+
60
+ #ifdef itex2MML_CAPTURE
61
+ static char * itex2MML_output_string = "" ;
62
+
63
+ const char * itex2MML_output ()
64
+ {
65
+ char * copy = (char *) malloc((itex2MML_output_string ? strlen(itex2MML_output_string) : 0) + 1);
66
+ if (copy)
67
+ {
68
+ if (itex2MML_output_string)
69
+ {
70
+ strcpy(copy, itex2MML_output_string);
71
+ if (*itex2MML_output_string != '\0')
72
+ free(itex2MML_output_string);
73
+ }
74
+ else
75
+ copy[0] = 0;
76
+ itex2MML_output_string = "";
77
+ }
78
+ return copy;
79
+ }
80
+
81
+ static void itex2MML_capture (const char * buffer, size_t length)
82
+ {
83
+ if (buffer)
84
+ {
85
+ if (length)
86
+ {
87
+ size_t first_length = itex2MML_output_string ? strlen(itex2MML_output_string) : 0;
88
+ char * copy = (char *) malloc(first_length + length + 1);
89
+ if (copy)
90
+ {
91
+ if (itex2MML_output_string)
92
+ {
93
+ strcpy(copy, itex2MML_output_string);
94
+ if (*itex2MML_output_string != '\0')
95
+ free(itex2MML_output_string);
96
+ }
97
+ else
98
+ copy[0] = 0;
99
+ strncat(copy, buffer, length);
100
+ itex2MML_output_string = copy;
101
+ }
102
+ }
103
+ else
104
+ {
105
+ char * copy = itex2MML_copy2(itex2MML_output_string, buffer);
106
+ if (*itex2MML_output_string != '\0')
107
+ free(itex2MML_output_string);
108
+ itex2MML_output_string = copy;
109
+ }
110
+ }
111
+ }
112
+
113
+ static void itex2MML_capture_mathml (const char * buffer)
114
+ {
115
+ char * temp = itex2MML_copy2(itex2MML_output_string, buffer);
116
+ if (*itex2MML_output_string != '\0')
117
+ free(itex2MML_output_string);
118
+ itex2MML_output_string = temp;
119
+ }
120
+ void (*itex2MML_write) (const char * buffer, size_t length) = itex2MML_capture;
121
+ void (*itex2MML_write_mathml) (const char * mathml) = itex2MML_capture_mathml;
122
+ #else
123
+ void (*itex2MML_write) (const char * buffer, size_t length) = itex2MML_default_write;
124
+ void (*itex2MML_write_mathml) (const char * mathml) = itex2MML_default_write_mathml;
125
+ #endif
126
+
127
+ char * itex2MML_empty_string = "";
128
+
129
+ /* Create a copy of a string, adding space for extra chars
130
+ */
131
+ char * itex2MML_copy_string_extra (const char * str, unsigned extra)
132
+ {
133
+ char * copy = (char *) malloc(extra + (str ? strlen (str) : 0) + 1);
134
+ if (copy)
135
+ {
136
+ if (str)
137
+ strcpy(copy, str);
138
+ else
139
+ copy[0] = 0;
140
+ }
141
+ return copy ? copy : itex2MML_empty_string;
142
+ }
143
+
144
+ /* Create a copy of a string, appending two strings
145
+ */
146
+ char * itex2MML_copy3 (const char * first, const char * second, const char * third)
147
+ {
148
+ size_t first_length = first ? strlen( first) : 0;
149
+ size_t second_length = second ? strlen(second) : 0;
150
+ size_t third_length = third ? strlen( third) : 0;
151
+
152
+ char * copy = (char *) malloc(first_length + second_length + third_length + 1);
153
+
154
+ if (copy)
155
+ {
156
+ if (first)
157
+ strcpy(copy, first);
158
+ else
159
+ copy[0] = 0;
160
+
161
+ if (second) strcat(copy, second);
162
+ if ( third) strcat(copy, third);
163
+ }
164
+ return copy ? copy : itex2MML_empty_string;
165
+ }
166
+
167
+ /* Create a copy of a string, appending a second string
168
+ */
169
+ char * itex2MML_copy2 (const char * first, const char * second)
170
+ {
171
+ return itex2MML_copy3(first, second, 0);
172
+ }
173
+
174
+ /* Create a copy of a string
175
+ */
176
+ char * itex2MML_copy_string (const char * str)
177
+ {
178
+ return itex2MML_copy3(str, 0, 0);
179
+ }
180
+
181
+ /* Create a copy of a string, escaping unsafe characters for XML
182
+ */
183
+ char * itex2MML_copy_escaped (const char * str)
184
+ {
185
+ size_t length = 0;
186
+
187
+ const char * ptr1 = str;
188
+
189
+ char * ptr2 = 0;
190
+ char * copy = 0;
191
+
192
+ if ( str == 0) return itex2MML_empty_string;
193
+ if (*str == 0) return itex2MML_empty_string;
194
+
195
+ while (*ptr1)
196
+ {
197
+ switch (*ptr1)
198
+ {
199
+ case '<': /* &lt; */
200
+ case '>': /* &gt; */
201
+ length += 4;
202
+ break;
203
+ case '&': /* &amp; */
204
+ length += 5;
205
+ break;
206
+ case '\'': /* &apos; */
207
+ case '"': /* &quot; */
208
+ case '-': /* &#x2d; */
209
+ length += 6;
210
+ break;
211
+ default:
212
+ length += 1;
213
+ break;
214
+ }
215
+ ++ptr1;
216
+ }
217
+
218
+ copy = (char *) malloc (length + 1);
219
+
220
+ if (copy)
221
+ {
222
+ ptr1 = str;
223
+ ptr2 = copy;
224
+
225
+ while (*ptr1)
226
+ {
227
+ switch (*ptr1)
228
+ {
229
+ case '<':
230
+ strcpy (ptr2, "&lt;");
231
+ ptr2 += 4;
232
+ break;
233
+ case '>':
234
+ strcpy (ptr2, "&gt;");
235
+ ptr2 += 4;
236
+ break;
237
+ case '&': /* &amp; */
238
+ strcpy (ptr2, "&amp;");
239
+ ptr2 += 5;
240
+ break;
241
+ case '\'': /* &apos; */
242
+ strcpy (ptr2, "&apos;");
243
+ ptr2 += 6;
244
+ break;
245
+ case '"': /* &quot; */
246
+ strcpy (ptr2, "&quot;");
247
+ ptr2 += 6;
248
+ break;
249
+ case '-': /* &#x2d; */
250
+ strcpy (ptr2, "&#x2d;");
251
+ ptr2 += 6;
252
+ break;
253
+ default:
254
+ *ptr2++ = *ptr1;
255
+ break;
256
+ }
257
+ ++ptr1;
258
+ }
259
+ *ptr2 = 0;
260
+ }
261
+ return copy ? copy : itex2MML_empty_string;
262
+ }
263
+
264
+ /* Create a hex character reference string corresponding to code
265
+ */
266
+ char * itex2MML_character_reference (unsigned long int code)
267
+ {
268
+ #define ENTITY_LENGTH 10
269
+ char * entity = (char *) malloc(ENTITY_LENGTH);
270
+ sprintf(entity, "&#x%05lx;", code);
271
+ return entity;
272
+ }
273
+
274
+ void itex2MML_free_string (char * str)
275
+ {
276
+ if (str && str != itex2MML_empty_string)
277
+ free(str);
278
+ }
279
+
280
+ %}
281
+
282
+ %left TEXOVER TEXATOP
283
+ %token CHAR STARTMATH STARTDMATH ENDMATH MI MIB MN MO SUP SUB MROWOPEN MROWCLOSE LEFT RIGHT BIG BBIG BIGG BBIGG BIGL BBIGL BIGGL BBIGGL FRAC TFRAC OPERATORNAME MATHOP MATHBIN MATHREL MOP MOL MOLL MOF MOR PERIODDELIM OTHERDELIM LEFTDELIM RIGHTDELIM MOS MOB SQRT ROOT BINOM TBINOM UNDER OVER OVERBRACE UNDERLINE UNDERBRACE UNDEROVER TENSOR MULTI ARRAYALIGN COLUMNALIGN ARRAY COLSEP ROWSEP ARRAYOPTS COLLAYOUT COLALIGN ROWALIGN ALIGN EQROWS EQCOLS ROWLINES COLLINES FRAME PADDING ATTRLIST ITALICS SANS TT BOLD BOXED SLASHED RM BB ST END BBLOWERCHAR BBUPPERCHAR BBDIGIT CALCHAR FRAKCHAR CAL SCR FRAK CLAP LLAP RLAP ROWOPTS TEXTSIZE SCSIZE SCSCSIZE DISPLAY TEXTSTY TEXTBOX TEXTSTRING XMLSTRING CELLOPTS ROWSPAN COLSPAN THINSPACE MEDSPACE THICKSPACE QUAD QQUAD NEGSPACE NEGMEDSPACE NEGTHICKSPACE PHANTOM HREF UNKNOWNCHAR EMPTYMROW STATLINE TOOLTIP TOGGLE TOGGLESTART TOGGLEEND FGHIGHLIGHT BGHIGHLIGHT SPACE INTONE INTTWO INTTHREE BAR WIDEBAR VEC WIDEVEC WIDELVEC WIDELRVEC WIDEUVEC WIDEULVEC WIDEULRVEC HAT WIDEHAT CHECK WIDECHECK TILDE WIDETILDE DOT DDOT DDDOT DDDDOT UNARYMINUS UNARYPLUS BEGINENV ENDENV MATRIX PMATRIX BMATRIX BBMATRIX VMATRIX VVMATRIX SVG ENDSVG SMALLMATRIX CASES ALIGNED GATHERED SUBSTACK PMOD RMCHAR COLOR BGCOLOR XARROW OPTARGOPEN OPTARGCLOSE ITEXNUM RAISEBOX NEG
284
+
285
+ %%
286
+
287
+ doc: xmlmmlTermList {/* all processing done in body*/};
288
+
289
+ xmlmmlTermList:
290
+ {/* nothing - do nothing*/}
291
+ | char {/* proc done in body*/}
292
+ | expression {/* all proc. in body*/}
293
+ | xmlmmlTermList char {/* all proc. in body*/}
294
+ | xmlmmlTermList expression {/* all proc. in body*/};
295
+
296
+ char: CHAR {};
297
+
298
+ expression: STARTMATH ENDMATH {/* empty math group - ignore*/}
299
+ | STARTDMATH ENDMATH {/* ditto */}
300
+ | STARTMATH compoundTermList ENDMATH {
301
+ char ** r = (char **) ret_str;
302
+ char * p = itex2MML_copy3("<math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><semantics><mrow>", $2, "</mrow><annotation encoding='application/x-tex'>");
303
+ char * s = itex2MML_copy3(p, $3, "</annotation></semantics></math>");
304
+ itex2MML_free_string(p);
305
+ itex2MML_free_string($2);
306
+ itex2MML_free_string($3);
307
+ if (r) {
308
+ (*r) = (s == itex2MML_empty_string) ? 0 : s;
309
+ }
310
+ else {
311
+ if (itex2MML_write_mathml)
312
+ (*itex2MML_write_mathml) (s);
313
+ itex2MML_free_string(s);
314
+ }
315
+ }
316
+ | STARTDMATH compoundTermList ENDMATH {
317
+ char ** r = (char **) ret_str;
318
+ char * p = itex2MML_copy3("<math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><semantics><mrow>", $2, "</mrow><annotation encoding='application/x-tex'>");
319
+ char * s = itex2MML_copy3(p, $3, "</annotation></semantics></math>");
320
+ itex2MML_free_string(p);
321
+ itex2MML_free_string($2);
322
+ itex2MML_free_string($3);
323
+ if (r) {
324
+ (*r) = (s == itex2MML_empty_string) ? 0 : s;
325
+ }
326
+ else {
327
+ if (itex2MML_write_mathml)
328
+ (*itex2MML_write_mathml) (s);
329
+ itex2MML_free_string(s);
330
+ }
331
+ };
332
+
333
+ compoundTermList: compoundTerm {
334
+ $$ = itex2MML_copy_string($1);
335
+ itex2MML_free_string($1);
336
+ }
337
+ | compoundTermList compoundTerm {
338
+ $$ = itex2MML_copy2($1, $2);
339
+ itex2MML_free_string($1);
340
+ itex2MML_free_string($2);
341
+ };
342
+
343
+ compoundTerm: mob SUB closedTerm SUP closedTerm {
344
+ if (itex2MML_displaymode == 1) {
345
+ char * s1 = itex2MML_copy3("<munderover>", $1, " ");
346
+ char * s2 = itex2MML_copy3($3, " ", $5);
347
+ $$ = itex2MML_copy3(s1, s2, "</munderover>");
348
+ itex2MML_free_string(s1);
349
+ itex2MML_free_string(s2);
350
+ }
351
+ else {
352
+ char * s1 = itex2MML_copy3("<msubsup>", $1, " ");
353
+ char * s2 = itex2MML_copy3($3, " ", $5);
354
+ $$ = itex2MML_copy3(s1, s2, "</msubsup>");
355
+ itex2MML_free_string(s1);
356
+ itex2MML_free_string(s2);
357
+ }
358
+ itex2MML_free_string($1);
359
+ itex2MML_free_string($3);
360
+ itex2MML_free_string($5);
361
+ }
362
+ | mob SUB closedTerm {
363
+ if (itex2MML_displaymode == 1) {
364
+ char * s1 = itex2MML_copy3("<munder>", $1, " ");
365
+ $$ = itex2MML_copy3(s1, $3, "</munder>");
366
+ itex2MML_free_string(s1);
367
+ }
368
+ else {
369
+ char * s1 = itex2MML_copy3("<msub>", $1, " ");
370
+ $$ = itex2MML_copy3(s1, $3, "</msub>");
371
+ itex2MML_free_string(s1);
372
+ }
373
+ itex2MML_free_string($1);
374
+ itex2MML_free_string($3);
375
+ }
376
+ | mob SUP closedTerm SUB closedTerm {
377
+ if (itex2MML_displaymode == 1) {
378
+ char * s1 = itex2MML_copy3("<munderover>", $1, " ");
379
+ char * s2 = itex2MML_copy3($5, " ", $3);
380
+ $$ = itex2MML_copy3(s1, s2, "</munderover>");
381
+ itex2MML_free_string(s1);
382
+ itex2MML_free_string(s2);
383
+ }
384
+ else {
385
+ char * s1 = itex2MML_copy3("<msubsup>", $1, " ");
386
+ char * s2 = itex2MML_copy3($5, " ", $3);
387
+ $$ = itex2MML_copy3(s1, s2, "</msubsup>");
388
+ itex2MML_free_string(s1);
389
+ itex2MML_free_string(s2);
390
+ }
391
+ itex2MML_free_string($1);
392
+ itex2MML_free_string($3);
393
+ itex2MML_free_string($5);
394
+ }
395
+ | mob SUP closedTerm {
396
+ if (itex2MML_displaymode == 1) {
397
+ char * s1 = itex2MML_copy3("<mover>", $1, " ");
398
+ $$ = itex2MML_copy3(s1, $3, "</mover>");
399
+ itex2MML_free_string(s1);
400
+ }
401
+ else {
402
+ char * s1 = itex2MML_copy3("<msup>", $1, " ");
403
+ $$ = itex2MML_copy3(s1, $3, "</msup>");
404
+ itex2MML_free_string(s1);
405
+ }
406
+ itex2MML_free_string($1);
407
+ itex2MML_free_string($3);
408
+ }
409
+ |mib SUB closedTerm SUP closedTerm {
410
+ if (itex2MML_displaymode == 1) {
411
+ char * s1 = itex2MML_copy3("<munderover>", $1, " ");
412
+ char * s2 = itex2MML_copy3($3, " ", $5);
413
+ $$ = itex2MML_copy3(s1, s2, "</munderover>");
414
+ itex2MML_free_string(s1);
415
+ itex2MML_free_string(s2);
416
+ }
417
+ else {
418
+ char * s1 = itex2MML_copy3("<msubsup>", $1, " ");
419
+ char * s2 = itex2MML_copy3($3, " ", $5);
420
+ $$ = itex2MML_copy3(s1, s2, "</msubsup>");
421
+ itex2MML_free_string(s1);
422
+ itex2MML_free_string(s2);
423
+ }
424
+ itex2MML_free_string($1);
425
+ itex2MML_free_string($3);
426
+ itex2MML_free_string($5);
427
+ }
428
+ | mib SUB closedTerm {
429
+ if (itex2MML_displaymode == 1) {
430
+ char * s1 = itex2MML_copy3("<munder>", $1, " ");
431
+ $$ = itex2MML_copy3(s1, $3, "</munder>");
432
+ itex2MML_free_string(s1);
433
+ }
434
+ else {
435
+ char * s1 = itex2MML_copy3("<msub>", $1, " ");
436
+ $$ = itex2MML_copy3(s1, $3, "</msub>");
437
+ itex2MML_free_string(s1);
438
+ }
439
+ itex2MML_free_string($1);
440
+ itex2MML_free_string($3);
441
+ }
442
+ | mib SUP closedTerm SUB closedTerm {
443
+ if (itex2MML_displaymode == 1) {
444
+ char * s1 = itex2MML_copy3("<munderover>", $1, " ");
445
+ char * s2 = itex2MML_copy3($5, " ", $3);
446
+ $$ = itex2MML_copy3(s1, s2, "</munderover>");
447
+ itex2MML_free_string(s1);
448
+ itex2MML_free_string(s2);
449
+ }
450
+ else {
451
+ char * s1 = itex2MML_copy3("<msubsup>", $1, " ");
452
+ char * s2 = itex2MML_copy3($5, " ", $3);
453
+ $$ = itex2MML_copy3(s1, s2, "</msubsup>");
454
+ itex2MML_free_string(s1);
455
+ itex2MML_free_string(s2);
456
+ }
457
+ itex2MML_free_string($1);
458
+ itex2MML_free_string($3);
459
+ itex2MML_free_string($5);
460
+ }
461
+ | mib SUP closedTerm {
462
+ if (itex2MML_displaymode == 1) {
463
+ char * s1 = itex2MML_copy3("<mover>", $1, " ");
464
+ $$ = itex2MML_copy3(s1, $3, "</mover>");
465
+ itex2MML_free_string(s1);
466
+ }
467
+ else {
468
+ char * s1 = itex2MML_copy3("<msup>", $1, " ");
469
+ $$ = itex2MML_copy3(s1, $3, "</msup>");
470
+ itex2MML_free_string(s1);
471
+ }
472
+ itex2MML_free_string($1);
473
+ itex2MML_free_string($3);
474
+ }
475
+ | closedTerm SUB closedTerm SUP closedTerm {
476
+ char * s1 = itex2MML_copy3("<msubsup>", $1, " ");
477
+ char * s2 = itex2MML_copy3($3, " ", $5);
478
+ $$ = itex2MML_copy3(s1, s2, "</msubsup>");
479
+ itex2MML_free_string(s1);
480
+ itex2MML_free_string(s2);
481
+ itex2MML_free_string($1);
482
+ itex2MML_free_string($3);
483
+ itex2MML_free_string($5);
484
+ }
485
+ | closedTerm SUP closedTerm SUB closedTerm {
486
+ char * s1 = itex2MML_copy3("<msubsup>", $1, " ");
487
+ char * s2 = itex2MML_copy3($5, " ", $3);
488
+ $$ = itex2MML_copy3(s1, s2, "</msubsup>");
489
+ itex2MML_free_string(s1);
490
+ itex2MML_free_string(s2);
491
+ itex2MML_free_string($1);
492
+ itex2MML_free_string($3);
493
+ itex2MML_free_string($5);
494
+ }
495
+ | closedTerm SUB closedTerm {
496
+ char * s1 = itex2MML_copy3("<msub>", $1, " ");
497
+ $$ = itex2MML_copy3(s1, $3, "</msub>");
498
+ itex2MML_free_string(s1);
499
+ itex2MML_free_string($1);
500
+ itex2MML_free_string($3);
501
+ }
502
+ | closedTerm SUP closedTerm {
503
+ char * s1 = itex2MML_copy3("<msup>", $1, " ");
504
+ $$ = itex2MML_copy3(s1, $3, "</msup>");
505
+ itex2MML_free_string(s1);
506
+ itex2MML_free_string($1);
507
+ itex2MML_free_string($3);
508
+ }
509
+ | SUB closedTerm {
510
+ $$ = itex2MML_copy3("<msub><mo/>", $2, "</msub>");
511
+ itex2MML_free_string($2);
512
+ }
513
+ | SUP closedTerm {
514
+ $$ = itex2MML_copy3("<msup><mo/>", $2, "</msup>");
515
+ itex2MML_free_string($2);
516
+ }
517
+ | closedTerm {
518
+ $$ = itex2MML_copy_string($1);
519
+ itex2MML_free_string($1);
520
+ };
521
+
522
+ closedTerm: array
523
+ | unaryminus
524
+ | unaryplus
525
+ | mib
526
+ | mi {
527
+ $$ = itex2MML_copy3("<mi>", $1, "</mi>");
528
+ itex2MML_free_string($1);
529
+ }
530
+ | mn {
531
+ $$ = itex2MML_copy3("<mn>", $1, "</mn>");
532
+ itex2MML_free_string($1);
533
+ }
534
+ | mo
535
+ | tensor
536
+ | multi
537
+ | mfrac
538
+ | binom
539
+ | msqrt
540
+ | mroot
541
+ | raisebox
542
+ | munder
543
+ | mover
544
+ | bar
545
+ | vec
546
+ | lvec
547
+ | lrvec
548
+ | uvec
549
+ | ulvec
550
+ | ulrvec
551
+ | hat
552
+ | dot
553
+ | ddot
554
+ | dddot
555
+ | ddddot
556
+ | check
557
+ | tilde
558
+ | moverbrace
559
+ | munderbrace
560
+ | munderline
561
+ | munderover
562
+ | emptymrow
563
+ | mathclap
564
+ | mathllap
565
+ | mathrlap
566
+ | displaystyle
567
+ | textstyle
568
+ | textsize
569
+ | scriptsize
570
+ | scriptscriptsize
571
+ | italics
572
+ | sans
573
+ | mono
574
+ | bold
575
+ | roman
576
+ | rmchars
577
+ | bbold
578
+ | frak
579
+ | slashed
580
+ | boxed
581
+ | cal
582
+ | scr
583
+ | space
584
+ | textstring
585
+ | thinspace
586
+ | medspace
587
+ | thickspace
588
+ | quad
589
+ | qquad
590
+ | negspace
591
+ | negmedspace
592
+ | negthickspace
593
+ | phantom
594
+ | href
595
+ | statusline
596
+ | tooltip
597
+ | toggle
598
+ | fghighlight
599
+ | bghighlight
600
+ | color
601
+ | texover
602
+ | texatop
603
+ | MROWOPEN closedTerm MROWCLOSE {
604
+ $$ = itex2MML_copy_string($2);
605
+ itex2MML_free_string($2);
606
+ }
607
+ | MROWOPEN compoundTermList MROWCLOSE {
608
+ $$ = itex2MML_copy3("<mrow>", $2, "</mrow>");
609
+ itex2MML_free_string($2);
610
+ }
611
+ | left compoundTermList right {
612
+ char * s1 = itex2MML_copy3("<mrow>", $1, $2);
613
+ $$ = itex2MML_copy3(s1, $3, "</mrow>");
614
+ itex2MML_free_string(s1);
615
+ itex2MML_free_string($1);
616
+ itex2MML_free_string($2);
617
+ itex2MML_free_string($3);
618
+ }
619
+ | mathenv
620
+ | substack
621
+ | pmod
622
+ | unrecognized;
623
+
624
+ left: LEFT LEFTDELIM {
625
+ itex2MML_rowposn = 2;
626
+ $$ = itex2MML_copy3("<mo>", $2, "</mo>");
627
+ itex2MML_free_string($2);
628
+ }
629
+ | LEFT OTHERDELIM {
630
+ itex2MML_rowposn = 2;
631
+ $$ = itex2MML_copy3("<mo>", $2, "</mo>");
632
+ itex2MML_free_string($2);
633
+ }
634
+ | LEFT PERIODDELIM {
635
+ itex2MML_rowposn = 2;
636
+ $$ = itex2MML_copy_string("");
637
+ itex2MML_free_string($2);
638
+ };
639
+
640
+ right: RIGHT RIGHTDELIM {
641
+ $$ = itex2MML_copy3("<mo>", $2, "</mo>");
642
+ itex2MML_free_string($2);
643
+ }
644
+ | RIGHT OTHERDELIM {
645
+ $$ = itex2MML_copy3("<mo>", $2, "</mo>");
646
+ itex2MML_free_string($2);
647
+ }
648
+ | RIGHT PERIODDELIM {
649
+ $$ = itex2MML_copy_string("");
650
+ itex2MML_free_string($2);
651
+ };
652
+
653
+ bigdelim: BIG LEFTDELIM {
654
+ itex2MML_rowposn = 2;
655
+ $$ = itex2MML_copy3("<mo maxsize=\"1.2em\" minsize=\"1.2em\">", $2, "</mo>");
656
+ itex2MML_free_string($2);
657
+ }
658
+ | BIG RIGHTDELIM {
659
+ $$ = itex2MML_copy3("<mo maxsize=\"1.2em\" minsize=\"1.2em\">", $2, "</mo>");
660
+ itex2MML_free_string($2);
661
+ }
662
+ | BIG OTHERDELIM {
663
+ $$ = itex2MML_copy3("<mo maxsize=\"1.2em\" minsize=\"1.2em\">", $2, "</mo>");
664
+ itex2MML_free_string($2);
665
+ }
666
+ | BBIG LEFTDELIM {
667
+ itex2MML_rowposn = 2;
668
+ $$ = itex2MML_copy3("<mo maxsize=\"1.8em\" minsize=\"1.8em\">", $2, "</mo>");
669
+ itex2MML_free_string($2);
670
+ }
671
+ | BBIG RIGHTDELIM {
672
+ $$ = itex2MML_copy3("<mo maxsize=\"1.8em\" minsize=\"1.8em\">", $2, "</mo>");
673
+ itex2MML_free_string($2);
674
+ }
675
+ | BBIG OTHERDELIM {
676
+ $$ = itex2MML_copy3("<mo maxsize=\"1.8em\" minsize=\"1.8em\">", $2, "</mo>");
677
+ itex2MML_free_string($2);
678
+ }
679
+ | BIGG LEFTDELIM {
680
+ itex2MML_rowposn = 2;
681
+ $$ = itex2MML_copy3("<mo maxsize=\"2.4em\" minsize=\"2.4em\">", $2, "</mo>");
682
+ itex2MML_free_string($2);
683
+ }
684
+ | BIGG RIGHTDELIM {
685
+ $$ = itex2MML_copy3("<mo maxsize=\"2.4em\" minsize=\"2.4em\">", $2, "</mo>");
686
+ itex2MML_free_string($2);
687
+ }
688
+ | BIGG OTHERDELIM {
689
+ $$ = itex2MML_copy3("<mo maxsize=\"2.4em\" minsize=\"2.4em\">", $2, "</mo>");
690
+ itex2MML_free_string($2);
691
+ }
692
+ | BBIGG LEFTDELIM {
693
+ itex2MML_rowposn = 2;
694
+ $$ = itex2MML_copy3("<mo maxsize=\"3em\" minsize=\"3em\">", $2, "</mo>");
695
+ itex2MML_free_string($2);
696
+ }
697
+ | BBIGG RIGHTDELIM {
698
+ $$ = itex2MML_copy3("<mo maxsize=\"3em\" minsize=\"3em\">", $2, "</mo>");
699
+ itex2MML_free_string($2);
700
+ }
701
+ | BBIGG OTHERDELIM {
702
+ $$ = itex2MML_copy3("<mo maxsize=\"3em\" minsize=\"3em\">", $2, "</mo>");
703
+ itex2MML_free_string($2);
704
+ }
705
+ |BIGL LEFTDELIM {
706
+ itex2MML_rowposn = 2;
707
+ $$ = itex2MML_copy3("<mo maxsize=\"1.2em\" minsize=\"1.2em\">", $2, "</mo>");
708
+ itex2MML_free_string($2);
709
+ }
710
+ | BIGL OTHERDELIM {
711
+ itex2MML_rowposn = 2;
712
+ $$ = itex2MML_copy3("<mo maxsize=\"1.2em\" minsize=\"1.2em\">", $2, "</mo>");
713
+ itex2MML_free_string($2);
714
+ }
715
+ | BBIGL LEFTDELIM {
716
+ itex2MML_rowposn = 2;
717
+ $$ = itex2MML_copy3("<mo maxsize=\"1.8em\" minsize=\"1.8em\">", $2, "</mo>");
718
+ itex2MML_free_string($2);
719
+ }
720
+ | BBIGL OTHERDELIM {
721
+ itex2MML_rowposn = 2;
722
+ $$ = itex2MML_copy3("<mo maxsize=\"1.8em\" minsize=\"1.8em\">", $2, "</mo>");
723
+ itex2MML_free_string($2);
724
+ }
725
+ | BIGGL LEFTDELIM {
726
+ itex2MML_rowposn = 2;
727
+ $$ = itex2MML_copy3("<mo maxsize=\"2.4em\" minsize=\"2.4em\">", $2, "</mo>");
728
+ itex2MML_free_string($2);
729
+ }
730
+ | BIGGL OTHERDELIM {
731
+ itex2MML_rowposn = 2;
732
+ $$ = itex2MML_copy3("<mo maxsize=\"2.4em\" minsize=\"2.4em\">", $2, "</mo>");
733
+ itex2MML_free_string($2);
734
+ }
735
+ | BBIGGL LEFTDELIM {
736
+ itex2MML_rowposn = 2;
737
+ $$ = itex2MML_copy3("<mo maxsize=\"3em\" minsize=\"3em\">", $2, "</mo>");
738
+ itex2MML_free_string($2);
739
+ }
740
+ | BBIGGL OTHERDELIM {
741
+ itex2MML_rowposn = 2;
742
+ $$ = itex2MML_copy3("<mo maxsize=\"3em\" minsize=\"3em\">", $2, "</mo>");
743
+ itex2MML_free_string($2);
744
+ };
745
+
746
+ unrecognized: UNKNOWNCHAR {
747
+ $$ = itex2MML_copy_string("<merror><mtext>Unknown character</mtext></merror>");
748
+ };
749
+
750
+ unaryminus: UNARYMINUS {
751
+ $$ = itex2MML_copy_string("<mo lspace=\"0.11111em\" rspace=\"0em\">&minus;</mo>");
752
+ };
753
+
754
+ unaryplus: UNARYPLUS {
755
+ $$ = itex2MML_copy_string("<mo lspace=\"0.11111em\" rspace=\"0em\">+</mo>");
756
+ };
757
+
758
+ mi: MI;
759
+
760
+ mib: MIB {
761
+ itex2MML_rowposn=2;
762
+ $$ = itex2MML_copy3("<mi>", $1, "</mi>");
763
+ itex2MML_free_string($1);
764
+ };
765
+
766
+ mn: MN
767
+ | ITEXNUM TEXTSTRING {
768
+ itex2MML_rowposn = 2;
769
+ $$ = itex2MML_copy_string($2);
770
+ itex2MML_free_string($2);
771
+ };
772
+
773
+ mob: MOB {
774
+ itex2MML_rowposn = 2;
775
+ $$ = itex2MML_copy3("<mo lspace=\"0.16667em\" rspace=\"0.16667em\">", $1, "</mo>");
776
+ itex2MML_free_string($1);
777
+ };
778
+
779
+ mo: mob
780
+ | bigdelim
781
+ | MO {
782
+ itex2MML_rowposn = 2;
783
+ $$ = itex2MML_copy3("<mo>", $1, "</mo>");
784
+ itex2MML_free_string($1);
785
+ }
786
+ | MOL {
787
+ itex2MML_rowposn = 2;
788
+ $$ = itex2MML_copy3("<mo>", $1, "</mo>");
789
+ itex2MML_free_string($1);
790
+ }
791
+ | MOLL {
792
+ itex2MML_rowposn = 2;
793
+ $$ = itex2MML_copy3("<mstyle scriptlevel=\"0\"><mo>", $1, "</mo></mstyle>");
794
+ itex2MML_free_string($1);
795
+ }
796
+ | RIGHTDELIM {
797
+ $$ = itex2MML_copy3("<mo stretchy=\"false\">", $1, "</mo>");
798
+ itex2MML_free_string($1);
799
+ }
800
+ | LEFTDELIM {
801
+ itex2MML_rowposn = 2;
802
+ $$ = itex2MML_copy3("<mo stretchy=\"false\">", $1, "</mo>");
803
+ itex2MML_free_string($1);
804
+ }
805
+ | OTHERDELIM {
806
+ $$ = itex2MML_copy3("<mo stretchy=\"false\">", $1, "</mo>");
807
+ itex2MML_free_string($1);
808
+ }
809
+ | MOF {
810
+ $$ = itex2MML_copy3("<mo stretchy=\"false\">", $1, "</mo>");
811
+ itex2MML_free_string($1);
812
+ }
813
+ | PERIODDELIM {
814
+ $$ = itex2MML_copy3("<mo>", $1, "</mo>");
815
+ itex2MML_free_string($1);
816
+ }
817
+ | MOS {
818
+ itex2MML_rowposn=2;
819
+ $$ = itex2MML_copy3("<mo lspace=\"0.22222em\" rspace=\"0.22222em\">", $1, "</mo>");
820
+ itex2MML_free_string($1);
821
+ }
822
+ | MOP {
823
+ itex2MML_rowposn = 2;
824
+ $$ = itex2MML_copy3("<mo lspace=\"0em\" rspace=\"0.16667em\">", $1, "</mo>");
825
+ itex2MML_free_string($1);
826
+ }
827
+ | MOR {
828
+ itex2MML_rowposn = 2;
829
+ $$ = itex2MML_copy3("<mo lspace=\"0.11111em\">", $1, "</mo>");
830
+ itex2MML_free_string($1);
831
+ }
832
+ | OPERATORNAME TEXTSTRING {
833
+ itex2MML_rowposn = 2;
834
+ $$ = itex2MML_copy3("<mo lspace=\"0em\" rspace=\"0.16667em\">", $2, "</mo>");
835
+ itex2MML_free_string($2);
836
+ }
837
+ | MATHOP TEXTSTRING {
838
+ itex2MML_rowposn = 2;
839
+ $$ = itex2MML_copy3("<mo lspace=\"0.16667em\" rspace=\"0.16667em\">", $2, "</mo>");
840
+ itex2MML_free_string($2);
841
+ }
842
+ | MATHBIN TEXTSTRING {
843
+ itex2MML_rowposn = 2;
844
+ $$ = itex2MML_copy3("<mo lspace=\"0.22222em\" rspace=\"0.22222em\">", $2, "</mo>");
845
+ itex2MML_free_string($2);
846
+ }
847
+ | MATHREL TEXTSTRING {
848
+ itex2MML_rowposn = 2;
849
+ $$ = itex2MML_copy3("<mo lspace=\"0.27778em\" rspace=\"0.27778em\">", $2, "</mo>");
850
+ itex2MML_free_string($2);
851
+ };
852
+
853
+ space: SPACE ST INTONE END ST INTTWO END ST INTTHREE END {
854
+ char * s1 = itex2MML_copy3("<mspace height=\"", $3, "ex\" depth=\"");
855
+ char * s2 = itex2MML_copy3($6, "ex\" width=\"", $9);
856
+ $$ = itex2MML_copy3(s1, s2, "em\"/>");
857
+ itex2MML_free_string(s1);
858
+ itex2MML_free_string(s2);
859
+ itex2MML_free_string($3);
860
+ itex2MML_free_string($6);
861
+ itex2MML_free_string($9);
862
+ };
863
+
864
+ statusline: STATLINE TEXTSTRING closedTerm {
865
+ char * s1 = itex2MML_copy3("<maction actiontype=\"statusline\">", $3, "<mtext>");
866
+ $$ = itex2MML_copy3(s1, $2, "</mtext></maction>");
867
+ itex2MML_free_string(s1);
868
+ itex2MML_free_string($2);
869
+ itex2MML_free_string($3);
870
+ };
871
+
872
+ tooltip: TOOLTIP TEXTSTRING closedTerm {
873
+ char * s1 = itex2MML_copy3("<maction actiontype=\"tooltip\">", $3, "<mtext>");
874
+ $$ = itex2MML_copy3(s1, $2, "</mtext></maction>");
875
+ itex2MML_free_string(s1);
876
+ itex2MML_free_string($2);
877
+ itex2MML_free_string($3);
878
+ };
879
+
880
+ toggle: TOGGLE closedTerm closedTerm {
881
+ char * s1 = itex2MML_copy3("<maction actiontype=\"toggle\" selection=\"2\">", $2, " ");
882
+ $$ = itex2MML_copy3(s1, $3, "</maction>");
883
+ itex2MML_free_string(s1);
884
+ itex2MML_free_string($2);
885
+ itex2MML_free_string($3);
886
+ }
887
+ | TOGGLESTART compoundTermList TOGGLEEND {
888
+ $$ = itex2MML_copy3("<maction actiontype=\"toggle\">", $2, "</maction>");
889
+ itex2MML_free_string($2);
890
+ };
891
+
892
+ fghighlight: FGHIGHLIGHT ATTRLIST closedTerm {
893
+ char * s1 = itex2MML_copy3("<maction actiontype=\"highlight\" other='color=", $2, "'>");
894
+ $$ = itex2MML_copy3(s1, $3, "</maction>");
895
+ itex2MML_free_string(s1);
896
+ itex2MML_free_string($2);
897
+ itex2MML_free_string($3);
898
+ };
899
+
900
+ bghighlight: BGHIGHLIGHT ATTRLIST closedTerm {
901
+ char * s1 = itex2MML_copy3("<maction actiontype=\"highlight\" other='background=", $2, "'>");
902
+ $$ = itex2MML_copy3(s1, $3, "</maction>");
903
+ itex2MML_free_string(s1);
904
+ itex2MML_free_string($2);
905
+ itex2MML_free_string($3);
906
+ };
907
+
908
+ color: COLOR ATTRLIST compoundTermList {
909
+ char * s1 = itex2MML_copy3("<mstyle mathcolor=", $2, ">");
910
+ $$ = itex2MML_copy3(s1, $3, "</mstyle>");
911
+ itex2MML_free_string(s1);
912
+ itex2MML_free_string($2);
913
+ itex2MML_free_string($3);
914
+ }
915
+ | BGCOLOR ATTRLIST compoundTermList {
916
+ char * s1 = itex2MML_copy3("<mstyle mathbackground=", $2, ">");
917
+ $$ = itex2MML_copy3(s1, $3, "</mstyle>");
918
+ itex2MML_free_string(s1);
919
+ itex2MML_free_string($2);
920
+ itex2MML_free_string($3);
921
+ };
922
+
923
+ mathrlap: RLAP closedTerm {
924
+ $$ = itex2MML_copy3("<mpadded width=\"0px\">", $2, "</mpadded>");
925
+ itex2MML_free_string($2);
926
+ };
927
+
928
+ mathllap: LLAP closedTerm {
929
+ $$ = itex2MML_copy3("<mpadded width=\"0px\" lspace=\"-100%width\">", $2, "</mpadded>");
930
+ itex2MML_free_string($2);
931
+ };
932
+
933
+ mathclap: CLAP closedTerm {
934
+ $$ = itex2MML_copy3("<mpadded width=\"0px\" lspace=\"-50%width\">", $2, "</mpadded>");
935
+ itex2MML_free_string($2);
936
+ };
937
+
938
+ textstring: TEXTBOX TEXTSTRING {
939
+ $$ = itex2MML_copy3("<mtext>", $2, "</mtext>");
940
+ itex2MML_free_string($2);
941
+ };
942
+
943
+ displaystyle: DISPLAY compoundTermList {
944
+ $$ = itex2MML_copy3("<mstyle displaystyle=\"true\">", $2, "</mstyle>");
945
+ itex2MML_free_string($2);
946
+ };
947
+
948
+ textstyle: TEXTSTY compoundTermList {
949
+ $$ = itex2MML_copy3("<mstyle displaystyle=\"false\">", $2, "</mstyle>");
950
+ itex2MML_free_string($2);
951
+ };
952
+
953
+ textsize: TEXTSIZE compoundTermList {
954
+ $$ = itex2MML_copy3("<mstyle scriptlevel=\"0\">", $2, "</mstyle>");
955
+ itex2MML_free_string($2);
956
+ };
957
+
958
+ scriptsize: SCSIZE compoundTermList {
959
+ $$ = itex2MML_copy3("<mstyle scriptlevel=\"1\">", $2, "</mstyle>");
960
+ itex2MML_free_string($2);
961
+ };
962
+
963
+ scriptscriptsize: SCSCSIZE compoundTermList {
964
+ $$ = itex2MML_copy3("<mstyle scriptlevel=\"2\">", $2, "</mstyle>");
965
+ itex2MML_free_string($2);
966
+ };
967
+
968
+ italics: ITALICS closedTerm {
969
+ $$ = itex2MML_copy3("<mstyle mathvariant=\"italic\">", $2, "</mstyle>");
970
+ itex2MML_free_string($2);
971
+ };
972
+
973
+ sans: SANS closedTerm {
974
+ $$ = itex2MML_copy3("<mstyle mathvariant=\"sans-serif\">", $2, "</mstyle>");
975
+ itex2MML_free_string($2);
976
+ };
977
+
978
+ mono: TT closedTerm {
979
+ $$ = itex2MML_copy3("<mstyle mathvariant=\"monospace\">", $2, "</mstyle>");
980
+ itex2MML_free_string($2);
981
+ };
982
+
983
+ slashed: SLASHED closedTerm {
984
+ $$ = itex2MML_copy3("<menclose notation=\"updiagonalstrike\">", $2, "</menclose>");
985
+ itex2MML_free_string($2);
986
+ };
987
+
988
+ boxed: BOXED closedTerm {
989
+ $$ = itex2MML_copy3("<menclose notation=\"box\">", $2, "</menclose>");
990
+ itex2MML_free_string($2);
991
+ };
992
+
993
+ bold: BOLD closedTerm {
994
+ $$ = itex2MML_copy3("<mstyle mathvariant=\"bold\">", $2, "</mstyle>");
995
+ itex2MML_free_string($2);
996
+ };
997
+
998
+ roman: RM ST rmchars END {
999
+ $$ = itex2MML_copy3("<mi mathvariant=\"normal\">", $3, "</mi>");
1000
+ itex2MML_free_string($3);
1001
+ };
1002
+
1003
+ rmchars: RMCHAR {
1004
+ $$ = itex2MML_copy_string($1);
1005
+ itex2MML_free_string($1);
1006
+ }
1007
+ | rmchars RMCHAR {
1008
+ $$ = itex2MML_copy2($1, $2);
1009
+ itex2MML_free_string($1);
1010
+ itex2MML_free_string($2);
1011
+ };
1012
+
1013
+ bbold: BB ST bbchars END {
1014
+ $$ = itex2MML_copy3("<mi>", $3, "</mi>");
1015
+ itex2MML_free_string($3);
1016
+ };
1017
+
1018
+ bbchars: bbchar {
1019
+ $$ = itex2MML_copy_string($1);
1020
+ itex2MML_free_string($1);
1021
+ }
1022
+ | bbchars bbchar {
1023
+ $$ = itex2MML_copy2($1, $2);
1024
+ itex2MML_free_string($1);
1025
+ itex2MML_free_string($2);
1026
+ };
1027
+
1028
+ bbchar: BBLOWERCHAR {
1029
+ $$ = itex2MML_copy3("&", $1, "opf;");
1030
+ itex2MML_free_string($1);
1031
+ }
1032
+ | BBUPPERCHAR {
1033
+ $$ = itex2MML_copy3("&", $1, "opf;");
1034
+ itex2MML_free_string($1);
1035
+ }
1036
+ | BBDIGIT {
1037
+ /* Blackboard digits 0-9 correspond to Unicode characters 0x1D7D8-0x1D7E1 */
1038
+ char * end = $1 + 1;
1039
+ int code = 0x1D7D8 + strtoul($1, &end, 10);
1040
+ $$ = itex2MML_character_reference(code);
1041
+ itex2MML_free_string($1);
1042
+ };
1043
+
1044
+ frak: FRAK ST frakletters END {
1045
+ $$ = itex2MML_copy3("<mi>", $3, "</mi>");
1046
+ itex2MML_free_string($3);
1047
+ };
1048
+
1049
+ frakletters: frakletter {
1050
+ $$ = itex2MML_copy_string($1);
1051
+ itex2MML_free_string($1);
1052
+ }
1053
+ | frakletters frakletter {
1054
+ $$ = itex2MML_copy2($1, $2);
1055
+ itex2MML_free_string($1);
1056
+ itex2MML_free_string($2);
1057
+ };
1058
+
1059
+ frakletter: FRAKCHAR {
1060
+ $$ = itex2MML_copy3("&", $1, "fr;");
1061
+ itex2MML_free_string($1);
1062
+ };
1063
+
1064
+ cal: CAL ST calletters END {
1065
+ $$ = itex2MML_copy3("<mi>", $3, "</mi>");
1066
+ itex2MML_free_string($3);
1067
+ };
1068
+
1069
+ scr: SCR ST calletters END {
1070
+ $$ = itex2MML_copy3("<mi class='mathscript'>", $3, "</mi>");
1071
+ itex2MML_free_string($3);
1072
+ };
1073
+
1074
+ calletters: calletter {
1075
+ $$ = itex2MML_copy_string($1);
1076
+ itex2MML_free_string($1);
1077
+ }
1078
+ | calletters calletter {
1079
+ $$ = itex2MML_copy2($1, $2);
1080
+ itex2MML_free_string($1);
1081
+ itex2MML_free_string($2);
1082
+ };
1083
+
1084
+ calletter: CALCHAR {
1085
+ $$ = itex2MML_copy3("&", $1, "scr;");
1086
+ itex2MML_free_string($1);
1087
+ };
1088
+
1089
+ thinspace: THINSPACE {
1090
+ $$ = itex2MML_copy_string("<mspace width=\"0.16667em\"/>");
1091
+ };
1092
+
1093
+ medspace: MEDSPACE {
1094
+ $$ = itex2MML_copy_string("<mspace width=\"0.22222em\"/>");
1095
+ };
1096
+
1097
+ thickspace: THICKSPACE {
1098
+ $$ = itex2MML_copy_string("<mspace width=\"0.27778em\"/>");
1099
+ };
1100
+
1101
+ quad: QUAD {
1102
+ $$ = itex2MML_copy_string("<mspace width=\"1em\"/>");
1103
+ };
1104
+
1105
+ qquad: QQUAD {
1106
+ $$ = itex2MML_copy_string("<mspace width=\"2em\"/>");
1107
+ };
1108
+
1109
+ negspace: NEGSPACE {
1110
+ $$ = itex2MML_copy_string("<mspace width=\"-0.16667em\"/>");
1111
+ };
1112
+
1113
+ negmedspace: NEGMEDSPACE {
1114
+ $$ = itex2MML_copy_string("<mspace width=\"-0.22222em\"/>");
1115
+ };
1116
+
1117
+ negthickspace: NEGTHICKSPACE {
1118
+ $$ = itex2MML_copy_string("<mspace width=\"-0.27778em\"/>");
1119
+ };
1120
+
1121
+ phantom: PHANTOM closedTerm {
1122
+ $$ = itex2MML_copy3("<mphantom>", $2, "</mphantom>");
1123
+ itex2MML_free_string($2);
1124
+ };
1125
+
1126
+ href: HREF TEXTSTRING closedTerm {
1127
+ char * s1 = itex2MML_copy3("<mrow href=\"", $2, "\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:type=\"simple\" xlink:href=\"");
1128
+ char * s2 = itex2MML_copy3(s1, $2, "\">");
1129
+ $$ = itex2MML_copy3(s2, $3, "</mrow>");
1130
+ itex2MML_free_string(s1);
1131
+ itex2MML_free_string(s2);
1132
+ itex2MML_free_string($2);
1133
+ itex2MML_free_string($3);
1134
+ };
1135
+
1136
+ tensor: TENSOR closedTerm MROWOPEN subsupList MROWCLOSE {
1137
+ char * s1 = itex2MML_copy3("<mmultiscripts>", $2, $4);
1138
+ $$ = itex2MML_copy2(s1, "</mmultiscripts>");
1139
+ itex2MML_free_string(s1);
1140
+ itex2MML_free_string($2);
1141
+ itex2MML_free_string($4);
1142
+ }
1143
+ | TENSOR closedTerm subsupList {
1144
+ char * s1 = itex2MML_copy3("<mmultiscripts>", $2, $3);
1145
+ $$ = itex2MML_copy2(s1, "</mmultiscripts>");
1146
+ itex2MML_free_string(s1);
1147
+ itex2MML_free_string($2);
1148
+ itex2MML_free_string($3);
1149
+ };
1150
+
1151
+ multi: MULTI MROWOPEN subsupList MROWCLOSE closedTerm MROWOPEN subsupList MROWCLOSE {
1152
+ char * s1 = itex2MML_copy3("<mmultiscripts>", $5, $7);
1153
+ char * s2 = itex2MML_copy3("<mprescripts/>", $3, "</mmultiscripts>");
1154
+ $$ = itex2MML_copy2(s1, s2);
1155
+ itex2MML_free_string(s1);
1156
+ itex2MML_free_string(s2);
1157
+ itex2MML_free_string($3);
1158
+ itex2MML_free_string($5);
1159
+ itex2MML_free_string($7);
1160
+ }
1161
+ | MULTI MROWOPEN subsupList MROWCLOSE closedTerm EMPTYMROW {
1162
+ char * s1 = itex2MML_copy2("<mmultiscripts>", $5);
1163
+ char * s2 = itex2MML_copy3("<mprescripts/>", $3, "</mmultiscripts>");
1164
+ $$ = itex2MML_copy2(s1, s2);
1165
+ itex2MML_free_string(s1);
1166
+ itex2MML_free_string(s2);
1167
+ itex2MML_free_string($3);
1168
+ itex2MML_free_string($5);
1169
+ }
1170
+ | MULTI EMPTYMROW closedTerm MROWOPEN subsupList MROWCLOSE {
1171
+ char * s1 = itex2MML_copy3("<mmultiscripts>", $3, $5);
1172
+ $$ = itex2MML_copy2(s1, "</mmultiscripts>");
1173
+ itex2MML_free_string(s1);
1174
+ itex2MML_free_string($3);
1175
+ itex2MML_free_string($5);
1176
+ };
1177
+
1178
+ subsupList: subsupTerm {
1179
+ $$ = itex2MML_copy_string($1);
1180
+ itex2MML_free_string($1);
1181
+ }
1182
+ | subsupList subsupTerm {
1183
+ $$ = itex2MML_copy3($1, " ", $2);
1184
+ itex2MML_free_string($1);
1185
+ itex2MML_free_string($2);
1186
+ };
1187
+
1188
+ subsupTerm: SUB closedTerm SUP closedTerm {
1189
+ $$ = itex2MML_copy3($2, " ", $4);
1190
+ itex2MML_free_string($2);
1191
+ itex2MML_free_string($4);
1192
+ }
1193
+ | SUB closedTerm {
1194
+ $$ = itex2MML_copy2($2, " <none/>");
1195
+ itex2MML_free_string($2);
1196
+ }
1197
+ | SUP closedTerm {
1198
+ $$ = itex2MML_copy2("<none/> ", $2);
1199
+ itex2MML_free_string($2);
1200
+ }
1201
+ | SUB SUP closedTerm {
1202
+ $$ = itex2MML_copy2("<none/> ", $3);
1203
+ itex2MML_free_string($3);
1204
+ };
1205
+
1206
+ mfrac: FRAC closedTerm closedTerm {
1207
+ char * s1 = itex2MML_copy3("<mfrac>", $2, $3);
1208
+ $$ = itex2MML_copy2(s1, "</mfrac>");
1209
+ itex2MML_free_string(s1);
1210
+ itex2MML_free_string($2);
1211
+ itex2MML_free_string($3);
1212
+ }
1213
+ | TFRAC closedTerm closedTerm {
1214
+ char * s1 = itex2MML_copy3("<mstyle displaystyle=\"false\"><mfrac>", $2, $3);
1215
+ $$ = itex2MML_copy2(s1, "</mfrac></mstyle>");
1216
+ itex2MML_free_string(s1);
1217
+ itex2MML_free_string($2);
1218
+ itex2MML_free_string($3);
1219
+ };
1220
+
1221
+ pmod: PMOD closedTerm {
1222
+ $$ = itex2MML_copy3( "<mrow><mo lspace=\"0.22222em\">(</mo><mo rspace=\"0.16667em\">mod</mo>", $2, "<mo rspace=\"0.22222em\">)</mo></mrow>");
1223
+ itex2MML_free_string($2);
1224
+ }
1225
+
1226
+ texover: MROWOPEN compoundTermList TEXOVER compoundTermList MROWCLOSE {
1227
+ char * s1 = itex2MML_copy3("<mfrac><mrow>", $2, "</mrow><mrow>");
1228
+ $$ = itex2MML_copy3(s1, $4, "</mrow></mfrac>");
1229
+ itex2MML_free_string(s1);
1230
+ itex2MML_free_string($2);
1231
+ itex2MML_free_string($4);
1232
+ }
1233
+ | left compoundTermList TEXOVER compoundTermList right {
1234
+ char * s1 = itex2MML_copy3("<mrow>", $1, "<mfrac><mrow>");
1235
+ char * s2 = itex2MML_copy3($2, "</mrow><mrow>", $4);
1236
+ char * s3 = itex2MML_copy3("</mrow></mfrac>", $5, "</mrow>");
1237
+ $$ = itex2MML_copy3(s1, s2, s3);
1238
+ itex2MML_free_string(s1);
1239
+ itex2MML_free_string(s2);
1240
+ itex2MML_free_string(s3);
1241
+ itex2MML_free_string($1);
1242
+ itex2MML_free_string($2);
1243
+ itex2MML_free_string($4);
1244
+ itex2MML_free_string($5);
1245
+ };
1246
+
1247
+ texatop: MROWOPEN compoundTermList TEXATOP compoundTermList MROWCLOSE {
1248
+ char * s1 = itex2MML_copy3("<mfrac linethickness=\"0px\"><mrow>", $2, "</mrow><mrow>");
1249
+ $$ = itex2MML_copy3(s1, $4, "</mrow></mfrac>");
1250
+ itex2MML_free_string(s1);
1251
+ itex2MML_free_string($2);
1252
+ itex2MML_free_string($4);
1253
+ }
1254
+ | left compoundTermList TEXATOP compoundTermList right {
1255
+ char * s1 = itex2MML_copy3("<mrow>", $1, "<mfrac linethickness=\"0px\"><mrow>");
1256
+ char * s2 = itex2MML_copy3($2, "</mrow><mrow>", $4);
1257
+ char * s3 = itex2MML_copy3("</mrow></mfrac>", $5, "</mrow>");
1258
+ $$ = itex2MML_copy3(s1, s2, s3);
1259
+ itex2MML_free_string(s1);
1260
+ itex2MML_free_string(s2);
1261
+ itex2MML_free_string(s3);
1262
+ itex2MML_free_string($1);
1263
+ itex2MML_free_string($2);
1264
+ itex2MML_free_string($4);
1265
+ itex2MML_free_string($5);
1266
+ };
1267
+
1268
+ binom: BINOM closedTerm closedTerm {
1269
+ char * s1 = itex2MML_copy3("<mrow><mo>(</mo><mfrac linethickness=\"0px\">", $2, $3);
1270
+ $$ = itex2MML_copy2(s1, "</mfrac><mo>)</mo></mrow>");
1271
+ itex2MML_free_string(s1);
1272
+ itex2MML_free_string($2);
1273
+ itex2MML_free_string($3);
1274
+ }
1275
+ | TBINOM closedTerm closedTerm {
1276
+ char * s1 = itex2MML_copy3("<mrow><mo>(</mo><mstyle displaystyle=\"false\"><mfrac linethickness=\"0px\">", $2, $3);
1277
+ $$ = itex2MML_copy2(s1, "</mfrac></mstyle><mo>)</mo></mrow>");
1278
+ itex2MML_free_string(s1);
1279
+ itex2MML_free_string($2);
1280
+ itex2MML_free_string($3);
1281
+ };
1282
+
1283
+ munderbrace: UNDERBRACE closedTerm {
1284
+ $$ = itex2MML_copy3("<munder>", $2, "<mo>&UnderBrace;</mo></munder>");
1285
+ itex2MML_free_string($2);
1286
+ };
1287
+
1288
+ munderline: UNDERLINE closedTerm {
1289
+ $$ = itex2MML_copy3("<munder>", $2, "<mo>&#x00332;</mo></munder>");
1290
+ itex2MML_free_string($2);
1291
+ };
1292
+
1293
+ moverbrace: OVERBRACE closedTerm {
1294
+ $$ = itex2MML_copy3("<mover>", $2, "<mo>&OverBrace;</mo></mover>");
1295
+ itex2MML_free_string($2);
1296
+ };
1297
+
1298
+ bar: BAR closedTerm {
1299
+ $$ = itex2MML_copy3("<mover>", $2, "<mo stretchy=\"false\">&#x000AF;</mo></mover>");
1300
+ itex2MML_free_string($2);
1301
+ }
1302
+ | WIDEBAR closedTerm {
1303
+ $$ = itex2MML_copy3("<mover>", $2, "<mo>&#x000AF;</mo></mover>");
1304
+ itex2MML_free_string($2);
1305
+ };
1306
+
1307
+ vec: VEC closedTerm {
1308
+ $$ = itex2MML_copy3("<mover>", $2, "<mo stretchy=\"false\">&rightarrow;</mo></mover>");
1309
+ itex2MML_free_string($2);
1310
+ }
1311
+ | WIDEVEC closedTerm {
1312
+ $$ = itex2MML_copy3("<mover>", $2, "<mo>&rightarrow;</mo></mover>");
1313
+ itex2MML_free_string($2);
1314
+ };
1315
+
1316
+ lvec: WIDELVEC closedTerm {
1317
+ $$ = itex2MML_copy3("<mover>", $2, "<mo>&leftarrow;</mo></mover>");
1318
+ itex2MML_free_string($2);
1319
+ };
1320
+ lrvec: WIDELRVEC closedTerm {
1321
+ $$ = itex2MML_copy3("<mover>", $2, "<mo>&leftrightarrow;</mo></mover>");
1322
+ itex2MML_free_string($2);
1323
+ };
1324
+ uvec: WIDEUVEC closedTerm {
1325
+ $$ = itex2MML_copy3("<munder>", $2, "<mo>&rightarrow;</mo></munder>");
1326
+ itex2MML_free_string($2);
1327
+ };
1328
+ ulvec: WIDEULVEC closedTerm {
1329
+ $$ = itex2MML_copy3("<munder>", $2, "<mo>&leftarrow;</mo></munder>");
1330
+ itex2MML_free_string($2);
1331
+ };
1332
+ ulrvec: WIDEULRVEC closedTerm {
1333
+ $$ = itex2MML_copy3("<munder>", $2, "<mo>&leftrightarrow;</mo></munder>");
1334
+ itex2MML_free_string($2);
1335
+ };
1336
+
1337
+ dot: DOT closedTerm {
1338
+ $$ = itex2MML_copy3("<mover>", $2, "<mo>&dot;</mo></mover>");
1339
+ itex2MML_free_string($2);
1340
+ };
1341
+
1342
+ ddot: DDOT closedTerm {
1343
+ $$ = itex2MML_copy3("<mover>", $2, "<mo>&Dot;</mo></mover>");
1344
+ itex2MML_free_string($2);
1345
+ };
1346
+
1347
+ dddot: DDDOT closedTerm {
1348
+ $$ = itex2MML_copy3("<mover>", $2, "<mo>&tdot;</mo></mover>");
1349
+ itex2MML_free_string($2);
1350
+ };
1351
+
1352
+ ddddot: DDDDOT closedTerm {
1353
+ $$ = itex2MML_copy3("<mover>", $2, "<mo>&DotDot;</mo></mover>");
1354
+ itex2MML_free_string($2);
1355
+ };
1356
+
1357
+ tilde: TILDE closedTerm {
1358
+ $$ = itex2MML_copy3("<mover>", $2, "<mo stretchy=\"false\">&tilde;</mo></mover>");
1359
+ itex2MML_free_string($2);
1360
+ }
1361
+ | WIDETILDE closedTerm {
1362
+ $$ = itex2MML_copy3("<mover>", $2, "<mo>&tilde;</mo></mover>");
1363
+ itex2MML_free_string($2);
1364
+ };
1365
+
1366
+ check: CHECK closedTerm {
1367
+ $$ = itex2MML_copy3("<mover>", $2, "<mo stretchy=\"false\">&#x2c7;</mo></mover>");
1368
+ itex2MML_free_string($2);
1369
+ }
1370
+ | WIDECHECK closedTerm {
1371
+ $$ = itex2MML_copy3("<mover>", $2, "<mo>&#x2c7;</mo></mover>");
1372
+ itex2MML_free_string($2);
1373
+ };
1374
+
1375
+ hat: HAT closedTerm {
1376
+ $$ = itex2MML_copy3("<mover>", $2, "<mo stretchy=\"false\">&#x5E;</mo></mover>");
1377
+ itex2MML_free_string($2);
1378
+ }
1379
+ | WIDEHAT closedTerm {
1380
+ $$ = itex2MML_copy3("<mover>", $2, "<mo>&#x5E;</mo></mover>");
1381
+ itex2MML_free_string($2);
1382
+ };
1383
+
1384
+ msqrt: SQRT closedTerm {
1385
+ $$ = itex2MML_copy3("<msqrt>", $2, "</msqrt>");
1386
+ itex2MML_free_string($2);
1387
+ };
1388
+
1389
+ mroot: SQRT OPTARGOPEN compoundTermList OPTARGCLOSE closedTerm {
1390
+ char * s1 = itex2MML_copy3("<mroot>", $5, $3);
1391
+ $$ = itex2MML_copy2(s1, "</mroot>");
1392
+ itex2MML_free_string(s1);
1393
+ itex2MML_free_string($3);
1394
+ itex2MML_free_string($5);
1395
+ }
1396
+ | ROOT closedTerm closedTerm {
1397
+ char * s1 = itex2MML_copy3("<mroot>", $3, $2);
1398
+ $$ = itex2MML_copy2(s1, "</mroot>");
1399
+ itex2MML_free_string(s1);
1400
+ itex2MML_free_string($2);
1401
+ itex2MML_free_string($3);
1402
+ };
1403
+
1404
+ raisebox: RAISEBOX TEXTSTRING TEXTSTRING TEXTSTRING closedTerm {
1405
+ char * s1 = itex2MML_copy3("<mpadded voffset='", $2, "' height='");
1406
+ char * s2 = itex2MML_copy3(s1, $3, "' depth='");
1407
+ char * s3 = itex2MML_copy3(s2, $4, "'>");
1408
+ $$ = itex2MML_copy3(s3, $5, "</mpadded>");
1409
+ itex2MML_free_string(s1);
1410
+ itex2MML_free_string(s2);
1411
+ itex2MML_free_string(s3);
1412
+ itex2MML_free_string($2);
1413
+ itex2MML_free_string($3);
1414
+ itex2MML_free_string($4);
1415
+ itex2MML_free_string($5);
1416
+ }
1417
+ | RAISEBOX NEG TEXTSTRING TEXTSTRING TEXTSTRING closedTerm {
1418
+ char * s1 = itex2MML_copy3("<mpadded voffset='-", $3, "' height='");
1419
+ char * s2 = itex2MML_copy3(s1, $4, "' depth='");
1420
+ char * s3 = itex2MML_copy3(s2, $5, "'>");
1421
+ $$ = itex2MML_copy3(s3, $6, "</mpadded>");
1422
+ itex2MML_free_string(s1);
1423
+ itex2MML_free_string(s2);
1424
+ itex2MML_free_string(s3);
1425
+ itex2MML_free_string($3);
1426
+ itex2MML_free_string($4);
1427
+ itex2MML_free_string($5);
1428
+ itex2MML_free_string($6);
1429
+ }
1430
+ | RAISEBOX TEXTSTRING TEXTSTRING closedTerm {
1431
+ char * s1 = itex2MML_copy3("<mpadded voffset='", $2, "' height='");
1432
+ char * s2 = itex2MML_copy3(s1, $3, "' depth='depth'>");
1433
+ $$ = itex2MML_copy3(s2, $4, "</mpadded>");
1434
+ itex2MML_free_string(s1);
1435
+ itex2MML_free_string(s2);
1436
+ itex2MML_free_string($2);
1437
+ itex2MML_free_string($3);
1438
+ itex2MML_free_string($4);
1439
+ }
1440
+ | RAISEBOX NEG TEXTSTRING TEXTSTRING closedTerm {
1441
+ char * s1 = itex2MML_copy3("<mpadded voffset='-", $3, "' height='");
1442
+ char * s2 = itex2MML_copy3(s1, $4, "' depth='+");
1443
+ char * s3 = itex2MML_copy3(s2, $3, "'>");
1444
+ $$ = itex2MML_copy3(s3, $5, "</mpadded>");
1445
+ itex2MML_free_string(s1);
1446
+ itex2MML_free_string(s2);
1447
+ itex2MML_free_string(s3);
1448
+ itex2MML_free_string($3);
1449
+ itex2MML_free_string($4);
1450
+ itex2MML_free_string($5);
1451
+ }
1452
+ | RAISEBOX TEXTSTRING closedTerm {
1453
+ char * s1 = itex2MML_copy3("<mpadded voffset='", $2, "' height='+");
1454
+ char * s2 = itex2MML_copy3(s1, $2, "' depth='depth'>");
1455
+ $$ = itex2MML_copy3(s2, $3, "</mpadded>");
1456
+ itex2MML_free_string(s1);
1457
+ itex2MML_free_string(s2);
1458
+ itex2MML_free_string($2);
1459
+ itex2MML_free_string($3);
1460
+ }
1461
+ | RAISEBOX NEG TEXTSTRING closedTerm {
1462
+ char * s1 = itex2MML_copy3("<mpadded voffset='-", $3, "' height='0pt' depth='+");
1463
+ char * s2 = itex2MML_copy3(s1, $3, "'>");
1464
+ $$ = itex2MML_copy3(s2, $4, "</mpadded>");
1465
+ itex2MML_free_string(s1);
1466
+ itex2MML_free_string(s2);
1467
+ itex2MML_free_string($3);
1468
+ itex2MML_free_string($4);
1469
+ };
1470
+
1471
+ munder: XARROW OPTARGOPEN compoundTermList OPTARGCLOSE EMPTYMROW {
1472
+ char * s1 = itex2MML_copy3("<munder><mo>", $1, "</mo><mrow>");
1473
+ $$ = itex2MML_copy3(s1, $3, "</mrow></munder>");
1474
+ itex2MML_free_string(s1);
1475
+ itex2MML_free_string($1);
1476
+ itex2MML_free_string($3);
1477
+ }
1478
+ | UNDER closedTerm closedTerm {
1479
+ char * s1 = itex2MML_copy3("<munder>", $3, $2);
1480
+ $$ = itex2MML_copy2(s1, "</munder>");
1481
+ itex2MML_free_string(s1);
1482
+ itex2MML_free_string($2);
1483
+ itex2MML_free_string($3);
1484
+ };
1485
+
1486
+ mover: XARROW closedTerm {
1487
+ char * s1 = itex2MML_copy3("<mover><mo>", $1, "</mo>");
1488
+ $$ = itex2MML_copy3(s1, $2, "</mover>");
1489
+ itex2MML_free_string(s1);
1490
+ itex2MML_free_string($1);
1491
+ itex2MML_free_string($2);
1492
+ }
1493
+ | OVER closedTerm closedTerm {
1494
+ char * s1 = itex2MML_copy3("<mover>", $3, $2);
1495
+ $$ = itex2MML_copy2(s1, "</mover>");
1496
+ itex2MML_free_string(s1);
1497
+ itex2MML_free_string($2);
1498
+ itex2MML_free_string($3);
1499
+ };
1500
+
1501
+ munderover: XARROW OPTARGOPEN compoundTermList OPTARGCLOSE closedTerm {
1502
+ char * s1 = itex2MML_copy3("<munderover><mo>", $1, "</mo><mrow>");
1503
+ char * s2 = itex2MML_copy3(s1, $3, "</mrow>");
1504
+ $$ = itex2MML_copy3(s2, $5, "</munderover>");
1505
+ itex2MML_free_string(s1);
1506
+ itex2MML_free_string(s2);
1507
+ itex2MML_free_string($1);
1508
+ itex2MML_free_string($3);
1509
+ itex2MML_free_string($5);
1510
+ }
1511
+ | UNDEROVER closedTerm closedTerm closedTerm {
1512
+ char * s1 = itex2MML_copy3("<munderover>", $4, $2);
1513
+ $$ = itex2MML_copy3(s1, $3, "</munderover>");
1514
+ itex2MML_free_string(s1);
1515
+ itex2MML_free_string($2);
1516
+ itex2MML_free_string($3);
1517
+ itex2MML_free_string($4);
1518
+ };
1519
+
1520
+ emptymrow: EMPTYMROW {
1521
+ $$ = itex2MML_copy_string("<mrow/>");
1522
+ };
1523
+
1524
+ mathenv: BEGINENV MATRIX tableRowList ENDENV MATRIX {
1525
+ $$ = itex2MML_copy3("<mrow><mtable displaystyle=\"false\" rowspacing=\"0.5ex\">", $3, "</mtable></mrow>");
1526
+ itex2MML_free_string($3);
1527
+ }
1528
+ | BEGINENV GATHERED tableRowList ENDENV GATHERED {
1529
+ $$ = itex2MML_copy3("<mrow><mtable displaystyle=\"true\" rowspacing=\"1.0ex\">", $3, "</mtable></mrow>");
1530
+ itex2MML_free_string($3);
1531
+ }
1532
+ | BEGINENV PMATRIX tableRowList ENDENV PMATRIX {
1533
+ $$ = itex2MML_copy3("<mrow><mo>(</mo><mrow><mtable displaystyle=\"false\" rowspacing=\"0.5ex\">", $3, "</mtable></mrow><mo>)</mo></mrow>");
1534
+ itex2MML_free_string($3);
1535
+ }
1536
+ | BEGINENV BMATRIX tableRowList ENDENV BMATRIX {
1537
+ $$ = itex2MML_copy3("<mrow><mo>[</mo><mrow><mtable displaystyle=\"false\" rowspacing=\"0.5ex\">", $3, "</mtable></mrow><mo>]</mo></mrow>");
1538
+ itex2MML_free_string($3);
1539
+ }
1540
+ | BEGINENV VMATRIX tableRowList ENDENV VMATRIX {
1541
+ $$ = itex2MML_copy3("<mrow><mo>&VerticalBar;</mo><mrow><mtable displaystyle=\"false\" rowspacing=\"0.5ex\">", $3, "</mtable></mrow><mo>&VerticalBar;</mo></mrow>");
1542
+ itex2MML_free_string($3);
1543
+ }
1544
+ | BEGINENV BBMATRIX tableRowList ENDENV BBMATRIX {
1545
+ $$ = itex2MML_copy3("<mrow><mo>{</mo><mrow><mtable displaystyle=\"false\" rowspacing=\"0.5ex\">", $3, "</mtable></mrow><mo>}</mo></mrow>");
1546
+ itex2MML_free_string($3);
1547
+ }
1548
+ | BEGINENV VVMATRIX tableRowList ENDENV VVMATRIX {
1549
+ $$ = itex2MML_copy3("<mrow><mo>&DoubleVerticalBar;</mo><mrow><mtable displaystyle=\"false\" rowspacing=\"0.5ex\">", $3, "</mtable></mrow><mo>&DoubleVerticalBar;</mo></mrow>");
1550
+ itex2MML_free_string($3);
1551
+ }
1552
+ | BEGINENV SMALLMATRIX tableRowList ENDENV SMALLMATRIX {
1553
+ $$ = itex2MML_copy3("<mstyle scriptlevel=\"2\"><mrow><mtable displaystyle=\"false\" rowspacing=\"0.5ex\">", $3, "</mtable></mrow></mstyle>");
1554
+ itex2MML_free_string($3);
1555
+ }
1556
+ | BEGINENV CASES tableRowList ENDENV CASES {
1557
+ $$ = itex2MML_copy3("<mrow><mo>{</mo><mrow><mtable displaystyle=\"false\" columnalign=\"left left\">", $3, "</mtable></mrow></mrow>");
1558
+ itex2MML_free_string($3);
1559
+ }
1560
+ | BEGINENV ALIGNED tableRowList ENDENV ALIGNED {
1561
+ $$ = itex2MML_copy3("<mrow><mtable displaystyle=\"true\" columnalign=\"right left right left right left right left right left\" columnspacing=\"0em\">", $3, "</mtable></mrow>");
1562
+ itex2MML_free_string($3);
1563
+ }
1564
+ | BEGINENV ARRAY ARRAYALIGN ST columnAlignList END tableRowList ENDENV ARRAY {
1565
+ char * s1 = itex2MML_copy3("<mtable displaystyle=\"false\" rowspacing=\"0.5ex\" align=\"", $3, "\" columnalign=\"");
1566
+ char * s2 = itex2MML_copy3(s1, $5, "\">");
1567
+ $$ = itex2MML_copy3(s2, $7, "</mtable>");
1568
+ itex2MML_free_string(s1);
1569
+ itex2MML_free_string(s2);
1570
+ itex2MML_free_string($3);
1571
+ itex2MML_free_string($5);
1572
+ itex2MML_free_string($7);
1573
+ }
1574
+ | BEGINENV ARRAY ST columnAlignList END tableRowList ENDENV ARRAY {
1575
+ char * s1 = itex2MML_copy3("<mtable displaystyle=\"false\" rowspacing=\"0.5ex\" columnalign=\"", $4, "\">");
1576
+ $$ = itex2MML_copy3(s1, $6, "</mtable>");
1577
+ itex2MML_free_string(s1);
1578
+ itex2MML_free_string($4);
1579
+ itex2MML_free_string($6);
1580
+ }
1581
+ | BEGINENV SVG XMLSTRING ENDSVG {
1582
+ $$ = itex2MML_copy3("<semantics><annotation-xml encoding=\"SVG1.1\">", $3, "</annotation-xml></semantics>");
1583
+ itex2MML_free_string($3);
1584
+ }
1585
+ | BEGINENV SVG ENDSVG {
1586
+ $$ = itex2MML_copy_string(" ");
1587
+ };
1588
+
1589
+ columnAlignList: columnAlignList COLUMNALIGN {
1590
+ $$ = itex2MML_copy3($1, " ", $2);
1591
+ itex2MML_free_string($1);
1592
+ itex2MML_free_string($2);
1593
+ }
1594
+ | COLUMNALIGN {
1595
+ $$ = itex2MML_copy_string($1);
1596
+ itex2MML_free_string($1);
1597
+ };
1598
+
1599
+ substack: SUBSTACK MROWOPEN tableRowList MROWCLOSE {
1600
+ $$ = itex2MML_copy3("<mrow><mtable columnalign=\"center\" rowspacing=\"0.5ex\">", $3, "</mtable></mrow>");
1601
+ itex2MML_free_string($3);
1602
+ };
1603
+
1604
+ array: ARRAY MROWOPEN tableRowList MROWCLOSE {
1605
+ $$ = itex2MML_copy3("<mrow><mtable>", $3, "</mtable></mrow>");
1606
+ itex2MML_free_string($3);
1607
+ }
1608
+ | ARRAY MROWOPEN ARRAYOPTS MROWOPEN arrayopts MROWCLOSE tableRowList MROWCLOSE {
1609
+ char * s1 = itex2MML_copy3("<mrow><mtable ", $5, ">");
1610
+ $$ = itex2MML_copy3(s1, $7, "</mtable></mrow>");
1611
+ itex2MML_free_string(s1);
1612
+ itex2MML_free_string($5);
1613
+ itex2MML_free_string($7);
1614
+ };
1615
+
1616
+ arrayopts: anarrayopt {
1617
+ $$ = itex2MML_copy_string($1);
1618
+ itex2MML_free_string($1);
1619
+ }
1620
+ | arrayopts anarrayopt {
1621
+ $$ = itex2MML_copy3($1, " ", $2);
1622
+ itex2MML_free_string($1);
1623
+ itex2MML_free_string($2);
1624
+ };
1625
+
1626
+ anarrayopt: collayout {
1627
+ $$ = itex2MML_copy_string($1);
1628
+ itex2MML_free_string($1);
1629
+ }
1630
+ | colalign {
1631
+ $$ = itex2MML_copy_string($1);
1632
+ itex2MML_free_string($1);
1633
+ }
1634
+ | rowalign {
1635
+ $$ = itex2MML_copy_string($1);
1636
+ itex2MML_free_string($1);
1637
+ }
1638
+ | align {
1639
+ $$ = itex2MML_copy_string($1);
1640
+ itex2MML_free_string($1);
1641
+ }
1642
+ | eqrows {
1643
+ $$ = itex2MML_copy_string($1);
1644
+ itex2MML_free_string($1);
1645
+ }
1646
+ | eqcols {
1647
+ $$ = itex2MML_copy_string($1);
1648
+ itex2MML_free_string($1);
1649
+ }
1650
+ | rowlines {
1651
+ $$ = itex2MML_copy_string($1);
1652
+ itex2MML_free_string($1);
1653
+ }
1654
+ | collines {
1655
+ $$ = itex2MML_copy_string($1);
1656
+ itex2MML_free_string($1);
1657
+ }
1658
+ | frame {
1659
+ $$ = itex2MML_copy_string($1);
1660
+ itex2MML_free_string($1);
1661
+ }
1662
+ | padding {
1663
+ $$ = itex2MML_copy_string($1);
1664
+ itex2MML_free_string($1);
1665
+ };
1666
+
1667
+ collayout: COLLAYOUT ATTRLIST {
1668
+ $$ = itex2MML_copy2("columnalign=", $2);
1669
+ itex2MML_free_string($2);
1670
+ };
1671
+
1672
+ colalign: COLALIGN ATTRLIST {
1673
+ $$ = itex2MML_copy2("columnalign=", $2);
1674
+ itex2MML_free_string($2);
1675
+ };
1676
+
1677
+ rowalign: ROWALIGN ATTRLIST {
1678
+ $$ = itex2MML_copy2("rowalign=", $2);
1679
+ itex2MML_free_string($2);
1680
+ };
1681
+
1682
+ align: ALIGN ATTRLIST {
1683
+ $$ = itex2MML_copy2("align=", $2);
1684
+ itex2MML_free_string($2);
1685
+ };
1686
+
1687
+ eqrows: EQROWS ATTRLIST {
1688
+ $$ = itex2MML_copy2("equalrows=", $2);
1689
+ itex2MML_free_string($2);
1690
+ };
1691
+
1692
+ eqcols: EQCOLS ATTRLIST {
1693
+ $$ = itex2MML_copy2("equalcolumns=", $2);
1694
+ itex2MML_free_string($2);
1695
+ };
1696
+
1697
+ rowlines: ROWLINES ATTRLIST {
1698
+ $$ = itex2MML_copy2("rowlines=", $2);
1699
+ itex2MML_free_string($2);
1700
+ };
1701
+
1702
+ collines: COLLINES ATTRLIST {
1703
+ $$ = itex2MML_copy2("columnlines=", $2);
1704
+ itex2MML_free_string($2);
1705
+ };
1706
+
1707
+ frame: FRAME ATTRLIST {
1708
+ $$ = itex2MML_copy2("frame=", $2);
1709
+ itex2MML_free_string($2);
1710
+ };
1711
+
1712
+ padding: PADDING ATTRLIST {
1713
+ char * s1 = itex2MML_copy3("rowspacing=", $2, " columnspacing=");
1714
+ $$ = itex2MML_copy2(s1, $2);
1715
+ itex2MML_free_string(s1);
1716
+ itex2MML_free_string($2);
1717
+ };
1718
+
1719
+ tableRowList: tableRow {
1720
+ $$ = itex2MML_copy_string($1);
1721
+ itex2MML_free_string($1);
1722
+ }
1723
+ | tableRowList ROWSEP tableRow {
1724
+ $$ = itex2MML_copy3($1, " ", $3);
1725
+ itex2MML_free_string($1);
1726
+ itex2MML_free_string($3);
1727
+ };
1728
+
1729
+ tableRow: simpleTableRow {
1730
+ $$ = itex2MML_copy3("<mtr>", $1, "</mtr>");
1731
+ itex2MML_free_string($1);
1732
+ }
1733
+ | optsTableRow {
1734
+ $$ = itex2MML_copy_string($1);
1735
+ itex2MML_free_string($1);
1736
+ };
1737
+
1738
+ simpleTableRow: tableCell {
1739
+ $$ = itex2MML_copy_string($1);
1740
+ itex2MML_free_string($1);
1741
+ }
1742
+ | simpleTableRow COLSEP tableCell {
1743
+ $$ = itex2MML_copy3($1, " ", $3);
1744
+ itex2MML_free_string($1);
1745
+ itex2MML_free_string($3);
1746
+ };
1747
+
1748
+ optsTableRow: ROWOPTS MROWOPEN rowopts MROWCLOSE simpleTableRow {
1749
+ char * s1 = itex2MML_copy3("<mtr ", $3, ">");
1750
+ $$ = itex2MML_copy3(s1, $5, "</mtr>");
1751
+ itex2MML_free_string(s1);
1752
+ itex2MML_free_string($3);
1753
+ itex2MML_free_string($5);
1754
+ };
1755
+
1756
+ rowopts: arowopt {
1757
+ $$ = itex2MML_copy_string($1);
1758
+ itex2MML_free_string($1);
1759
+ }
1760
+ | rowopts arowopt {
1761
+ $$ = itex2MML_copy3($1, " ", $2);
1762
+ itex2MML_free_string($1);
1763
+ itex2MML_free_string($2);
1764
+ };
1765
+
1766
+ arowopt: colalign {
1767
+ $$ = itex2MML_copy_string($1);
1768
+ itex2MML_free_string($1);
1769
+ }
1770
+ | rowalign {
1771
+ $$ = itex2MML_copy_string($1);
1772
+ itex2MML_free_string($1);
1773
+ };
1774
+
1775
+ tableCell: {
1776
+ $$ = itex2MML_copy_string("<mtd/>");
1777
+ }
1778
+ | compoundTermList {
1779
+ $$ = itex2MML_copy3("<mtd>", $1, "</mtd>");
1780
+ itex2MML_free_string($1);
1781
+ }
1782
+ | CELLOPTS MROWOPEN cellopts MROWCLOSE compoundTermList {
1783
+ char * s1 = itex2MML_copy3("<mtd ", $3, ">");
1784
+ $$ = itex2MML_copy3(s1, $5, "</mtd>");
1785
+ itex2MML_free_string(s1);
1786
+ itex2MML_free_string($3);
1787
+ itex2MML_free_string($5);
1788
+ };
1789
+
1790
+ cellopts: acellopt {
1791
+ $$ = itex2MML_copy_string($1);
1792
+ itex2MML_free_string($1);
1793
+ }
1794
+ | cellopts acellopt {
1795
+ $$ = itex2MML_copy3($1, " ", $2);
1796
+ itex2MML_free_string($1);
1797
+ itex2MML_free_string($2);
1798
+ };
1799
+
1800
+ acellopt: colalign {
1801
+ $$ = itex2MML_copy_string($1);
1802
+ itex2MML_free_string($1);
1803
+ }
1804
+ | rowalign {
1805
+ $$ = itex2MML_copy_string($1);
1806
+ itex2MML_free_string($1);
1807
+ }
1808
+ | rowspan {
1809
+ $$ = itex2MML_copy_string($1);
1810
+ itex2MML_free_string($1);
1811
+ }
1812
+ | colspan {
1813
+ $$ = itex2MML_copy_string($1);
1814
+ itex2MML_free_string($1);
1815
+ };
1816
+
1817
+ rowspan: ROWSPAN ATTRLIST {
1818
+ $$ = itex2MML_copy2("rowspan=", $2);
1819
+ itex2MML_free_string($2);
1820
+ };
1821
+
1822
+ colspan: COLSPAN ATTRLIST {
1823
+ $$ = itex2MML_copy2("columnspan=", $2);
1824
+ itex2MML_free_string($2);
1825
+ };
1826
+
1827
+ %%
1828
+
1829
+ char * itex2MML_parse (const char * buffer, size_t length)
1830
+ {
1831
+ char * mathml = 0;
1832
+
1833
+ int result;
1834
+
1835
+ itex2MML_setup (buffer, length);
1836
+ itex2MML_restart ();
1837
+
1838
+ result = itex2MML_yyparse (&mathml);
1839
+
1840
+ if (result && mathml) /* shouldn't happen? */
1841
+ {
1842
+ itex2MML_free_string (mathml);
1843
+ mathml = 0;
1844
+ }
1845
+ return mathml;
1846
+ }
1847
+
1848
+ int itex2MML_filter (const char * buffer, size_t length)
1849
+ {
1850
+ itex2MML_setup (buffer, length);
1851
+ itex2MML_restart ();
1852
+
1853
+ return itex2MML_yyparse (0);
1854
+ }
1855
+
1856
+ #define ITEX_DELIMITER_DOLLAR 0
1857
+ #define ITEX_DELIMITER_DOUBLE 1
1858
+ #define ITEX_DELIMITER_SQUARE 2
1859
+ #define ITEX_DELIMITER_PAREN 3
1860
+
1861
+ static char * itex2MML_last_error = 0;
1862
+
1863
+ static void itex2MML_keep_error (const char * msg)
1864
+ {
1865
+ if (itex2MML_last_error)
1866
+ {
1867
+ itex2MML_free_string (itex2MML_last_error);
1868
+ itex2MML_last_error = 0;
1869
+ }
1870
+ itex2MML_last_error = itex2MML_copy_escaped (msg);
1871
+ }
1872
+
1873
+ int itex2MML_html_filter (const char * buffer, size_t length)
1874
+ {
1875
+ return itex2MML_do_html_filter (buffer, length, 0);
1876
+ }
1877
+
1878
+ int itex2MML_strict_html_filter (const char * buffer, size_t length)
1879
+ {
1880
+ return itex2MML_do_html_filter (buffer, length, 1);
1881
+ }
1882
+
1883
+ int itex2MML_do_html_filter (const char * buffer, size_t length, const int forbid_markup)
1884
+ {
1885
+ int result = 0;
1886
+
1887
+ int type = 0;
1888
+ int skip = 0;
1889
+ int match = 0;
1890
+
1891
+ const char * ptr1 = buffer;
1892
+ const char * ptr2 = 0;
1893
+
1894
+ const char * end = buffer + length;
1895
+
1896
+ char * mathml = 0;
1897
+
1898
+ void (*save_error_fn) (const char * msg) = itex2MML_error;
1899
+
1900
+ itex2MML_error = itex2MML_keep_error;
1901
+
1902
+ _until_math:
1903
+ ptr2 = ptr1;
1904
+
1905
+ while (ptr2 < end)
1906
+ {
1907
+ if (*ptr2 == '$') break;
1908
+ if ((*ptr2 == '\\') && (ptr2 + 1 < end))
1909
+ {
1910
+ if (*(ptr2+1) == '[' || *(ptr2+1) == '(') break;
1911
+ }
1912
+ ++ptr2;
1913
+ }
1914
+ if (itex2MML_write && ptr2 > ptr1)
1915
+ (*itex2MML_write) (ptr1, ptr2 - ptr1);
1916
+
1917
+ if (ptr2 == end) goto _finish;
1918
+
1919
+ ptr1 = ptr2;
1920
+
1921
+ if (ptr2 + 1 < end)
1922
+ {
1923
+ if ((*ptr2 == '\\') && (*(ptr2+1) == '['))
1924
+ {
1925
+ type = ITEX_DELIMITER_SQUARE;
1926
+ ptr2 += 2;
1927
+ }
1928
+ else if ((*ptr2 == '\\') && (*(ptr2+1) == '('))
1929
+ {
1930
+ type = ITEX_DELIMITER_PAREN;
1931
+ ptr2 += 2;
1932
+ }
1933
+ else if ((*ptr2 == '$') && (*(ptr2+1) == '$'))
1934
+ {
1935
+ type = ITEX_DELIMITER_DOUBLE;
1936
+ ptr2 += 2;
1937
+ }
1938
+ else
1939
+ {
1940
+ type = ITEX_DELIMITER_DOLLAR;
1941
+ ptr2 += 2;
1942
+ }
1943
+ }
1944
+ else goto _finish;
1945
+
1946
+ skip = 0;
1947
+ match = 0;
1948
+
1949
+ while (ptr2 < end)
1950
+ {
1951
+ switch (*ptr2)
1952
+ {
1953
+ case '<':
1954
+ case '>':
1955
+ if (forbid_markup == 1) skip = 1;
1956
+ break;
1957
+
1958
+ case '\\':
1959
+ if (ptr2 + 1 < end)
1960
+ {
1961
+ if (*(ptr2 + 1) == '[' || *(ptr2 + 1) == '(')
1962
+ {
1963
+ skip = 1;
1964
+ }
1965
+ else if (*(ptr2 + 1) == ']')
1966
+ {
1967
+ if (type == ITEX_DELIMITER_SQUARE)
1968
+ {
1969
+ ptr2 += 2;
1970
+ match = 1;
1971
+ }
1972
+ else
1973
+ {
1974
+ skip = 1;
1975
+ }
1976
+ }
1977
+ else if (*(ptr2 + 1) == ')')
1978
+ {
1979
+ if (type == ITEX_DELIMITER_PAREN)
1980
+ {
1981
+ ptr2 += 2;
1982
+ match = 1;
1983
+ }
1984
+ else
1985
+ {
1986
+ skip = 1;
1987
+ }
1988
+ }
1989
+
1990
+ }
1991
+ break;
1992
+
1993
+ case '$':
1994
+ if (*(ptr2-1) == '\\')
1995
+ {
1996
+ skip = 0;
1997
+ }
1998
+ else if (type == ITEX_DELIMITER_SQUARE || type == ITEX_DELIMITER_PAREN)
1999
+ {
2000
+ skip = 1;
2001
+ }
2002
+ else if (ptr2 + 1 < end)
2003
+ {
2004
+ if (*(ptr2 + 1) == '$')
2005
+ {
2006
+ if (type == ITEX_DELIMITER_DOLLAR)
2007
+ {
2008
+ ptr2++;
2009
+ match = 1;
2010
+ }
2011
+ else
2012
+ {
2013
+ ptr2 += 2;
2014
+ match = 1;
2015
+ }
2016
+ }
2017
+ else
2018
+ {
2019
+ if (type == ITEX_DELIMITER_DOLLAR)
2020
+ {
2021
+ ptr2++;
2022
+ match = 1;
2023
+ }
2024
+ else
2025
+ {
2026
+ skip = 1;
2027
+ }
2028
+ }
2029
+ }
2030
+ else
2031
+ {
2032
+ if (type == ITEX_DELIMITER_DOLLAR)
2033
+ {
2034
+ ptr2++;
2035
+ match = 1;
2036
+ }
2037
+ else
2038
+ {
2039
+ skip = 1;
2040
+ }
2041
+ }
2042
+ break;
2043
+
2044
+ default:
2045
+ break;
2046
+ }
2047
+ if (skip || match) break;
2048
+
2049
+ ++ptr2;
2050
+ }
2051
+ if (skip)
2052
+ {
2053
+ if (type == ITEX_DELIMITER_DOLLAR)
2054
+ {
2055
+ if (itex2MML_write)
2056
+ (*itex2MML_write) (ptr1, 1);
2057
+ ptr1++;
2058
+ }
2059
+ else
2060
+ {
2061
+ if (itex2MML_write)
2062
+ (*itex2MML_write) (ptr1, 2);
2063
+ ptr1 += 2;
2064
+ }
2065
+ goto _until_math;
2066
+ }
2067
+ if (match)
2068
+ {
2069
+ mathml = itex2MML_parse (ptr1, ptr2 - ptr1);
2070
+
2071
+ if (mathml)
2072
+ {
2073
+ if (itex2MML_write_mathml)
2074
+ (*itex2MML_write_mathml) (mathml);
2075
+ itex2MML_free_string (mathml);
2076
+ mathml = 0;
2077
+ }
2078
+ else
2079
+ {
2080
+ ++result;
2081
+ if (itex2MML_write)
2082
+ {
2083
+ if (type == ITEX_DELIMITER_DOLLAR)
2084
+ (*itex2MML_write) ("<math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><merror><mtext>", 0);
2085
+ else
2086
+ (*itex2MML_write) ("<math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><merror><mtext>", 0);
2087
+
2088
+ (*itex2MML_write) (itex2MML_last_error, 0);
2089
+ (*itex2MML_write) ("</mtext></merror></math>", 0);
2090
+ }
2091
+ }
2092
+ ptr1 = ptr2;
2093
+
2094
+ goto _until_math;
2095
+ }
2096
+ if (itex2MML_write)
2097
+ (*itex2MML_write) (ptr1, ptr2 - ptr1);
2098
+
2099
+ _finish:
2100
+ if (itex2MML_last_error)
2101
+ {
2102
+ itex2MML_free_string (itex2MML_last_error);
2103
+ itex2MML_last_error = 0;
2104
+ }
2105
+ itex2MML_error = save_error_fn;
2106
+
2107
+ return result;
2108
+ }